Almacenamiento de datos - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Almacenamiento de datos

Description:

Se usa para guardar par metros de funcionamiento del programa: tiempos, direcciones ip, etc. ... si todos los datos a guardar est n en una estructura o un ... – PowerPoint PPT presentation

Number of Views:94
Avg rating:3.0/5.0
Slides: 20
Provided by: Univer88
Category:

less

Transcript and Presenter's Notes

Title: Almacenamiento de datos


1
Almacenamiento de datos
2
Almacenamiento de datos
  • En muchas aplicaciones es necesario almacenar
    datos de forma que estos no se pierdan si
    quitamos la alimentación al módulo
  • Pueden distinguirse dos casos
  • Parámetros de funcionamiento del programa
  • Datos obtenidos por el programa
  • Los módulos disponen de 2 tipos de memorias para
    estos propósitos RAM y Flash

3
Almacenamiento en RAM
  • Los módulos disponen de al menos 256K de RAM.
    Para que los datos no se pierdan al cortar la
    alimentación al módulo debe instalarse una
    batería de litio de 3 voltios
  • Cuando se corta la alimentación al módulo, los
    chips de RAM siguen alimentados desde la batería.
    El consumo es de unos 6uA.

4
Almacenamiento en Flash
  • Las memorias Flash pertenecen a la familia de las
    ROM. Pese a ello pueden escribirse, ya que
    incluyen en el chip la circuitería para ello.
  • No obstante, la escritura suele hacerse a nivel
    de bloque y no a nivel de byte, y requerir varios
    milisegundos.
  • Los chips suelen incluir buffers intermedios de
    RAM, y comandos para el paso de buffer a Flash y
    de Flash a buffer

5
Almacenamiento en Flash
ATMEL AT45DB041
6
Almacenamiento en Flash
  • Típicamente disponemos de 2 bloques de Flash
  • UserBlock. De 16Kbytes. Se usa para guardar
    parámetros de funcionamiento del programa
    tiempos, direcciones ip, etc..
  • Flash serie. De 1Mbyte. Se usa para el
    almacenamientos masivo de datos

7
UserBlock
  • int readUserBlock( void dest, unsigned addr,
    unsigned numbytes )
  • int writeUserBlock( unsigned addr, void source,
    unsigned numbytes )
  • Escriben un bloque de bytes. Es adecuado si
    todos los datos a guardar están en una estructura
    o un array.

8
UserBlock
  • int readUserBlockArray( void dests , unsigned
    numbytes ,int numdests, unsigned addr )
  • int writeUserBlockArray( unsigned addr, void
    sources , unsigned numbytes , int numsources
    )
  • Escriben un conjunto de datos de distintos tipos
    y longitudes en bytes. Las direcciones de los
    datos se cargan en un array ,y las longitudes
    en otro.

9
UserBlock
  • Ejemplo
  • Int i,j
  • Char c
  • Float f
  • void direcciones4
  • unsigned int longitudes4

10
UserBlock
  • direcciones0i
  • direcciones1j
  • direcciones2c
  • direcciones3f
  • longitudes02
  • longitudes1sizeof(j)
  • longitudes2sizeof(c)
  • longitudes3sizeof(f)

11
UserBlock
  • readUserBlockArray(direcciones, longitudes, 4,
    0)
  • writeUserBlockArray(0,direcciones, longitudes,
    4)

12
Almacenamiento en Flash
  • Algunos módulos disponen de 1Mbyte de Flash
    serie.
  • Se utiliza para guardar datos medidas, gráficos
    para el webserver, etc..

13
Almacenamiento en Flash
ATMEL AT45DB041
14
Almacenamiento en Flash
  • define SFLASH_DEBUG
  • define SF_SPI_CSPORT PEDR
  • define SF_SPI_CSSHADOW PEDRShadow
  • define SF_SPI_CSDD PEDDR
  • define SF_SPI_CSDDSHADOW PEDDRShadow
  • define SF_SPI_CSPIN 6
  • use "sflash.lib"

15
Almacenamiento en Flash
  • INICIAR LA CONEXIÓN CON LA MEMORIA
  • sfspi_init()
  • if(sf_init())
  • printf("Flash init failed\n")
  • exit(-1)

16
Almacenamiento en Flash
  • INICIAR LA CONEXIÓN CON LA MEMORIA
  • sfspi_init()
  • if(sf_init())
  • printf("Flash init failed\n")
  • exit(-1)
  • else
  • printf("Flash init OK\n")
  • printf(" of blocks d\n", sf_blocks)
    //
  • printf("size of block d\n",
    sf_blocksize)//

17
Almacenamiento en Flash
  • PRINCIPALES FUNCIONES
  • sf_pageToRAM
  • sf_RAMToPage
  • sf_readPage
  • sf_readRAM
  • sf_writePage
  • sf_writeRAM

18
Almacenamiento en Flash
  • EJEMPLO ESCRITURA
  • for(i 0i lt sf_blocksizei)
  • flash_bufi 0
  • sf_writeRAM(flash_buf, 0, sf_blocksize)
  • sf_RAMToPage(pagenum)

19
Almacenamiento en Flash
  • EJEMPLO LECTURA
  • sf_pageToRAM(pagenum)
  • sf_readRAM(flash_buf, 0, sf_blocksize)
Write a Comment
User Comments (0)
About PowerShow.com