IC卡数据循环存储及文件管理

IC卡数据循环存储及文件管理

时间:2008-01-20 电子通信论文
摘要:一种I2C总线型EEPROM存储器,在数据记录系统中,用来保存当前时刻以前一段时间内的多组数据。使用时设计成首尾地址相接的环型存储结构,实现数据文件的循环存储。文章介绍循环存储器的结构、循环存储的实现方法以及文件管理的过程;指出该方法的优越性。

    关键词:EEPROM 循环存储 I2C总线 IC卡

绝大多数的IC卡采用的都是I2C总线型的EEPROM存储器。在现场数据记录系统中,经常需要保存的是当前时刻之前一段时间内的数据。由于EEPROM单字节写入时间太长,不易采用数据在存储器中内整体位置移动的方法管理;而单纯采用自存储器顶端向下顺序写入的方法,会出现存储器写满的现象。为解决这个问题,我们设计了环型存储的管理方法,使用首尾相接的存储环,配合以目录管理功能,完成顺的循环写入,实现了EEPROM存储器内文件的的高效保存和管理。

1 存储器及文件目录结构

这里以1片4KB的I2C总线型EEPROM为例。微处理器采用Atmel的AT89S52;EEPROM的0000H~003FH作为IC卡内文件的目录管理区,为直线结构;目录区最多可以记录30个数据文件。存储器及目录结构如图1所示。0040H~0FFFH设计成首尾相接的环型存储结构,用来作为文件存储区。数据文件从0040H处开始依次记入,每写入一个字节,地址指针自动加1,然后判断该指针是否到了存储环的交界处。地址过界,即地址大于0FFFH时,将写入地址指针再修改成0040H,将最早形成的文件记录自动覆盖掉。AT89S52内部RAM的40H~7FH作为EEPROM文件目录区的映像,系统复位后由单片机将EEPRM中0000H~003FH的内容读出并记入到该映像区。每一组现场数据作为一个记录文件输入后,单片机都要及时修改目录映像中当前文件的结束地址。每建立一个新文件记录,映像区整个数据都要向地址增大方向移动2个字节,超出7DH的自动丢弃。新建立的文件首位地址记入40H~43H,最后将该映像再重新写回到EEPROM目录区。文件目录中只有当前文件记录了起始地址和结束地址。当前文件的起始地址是前一文件结束地址的下一个地址,因此在前文件只记录其起始地址。目录区没有文件的空间用#0FFH填充。另外,每一个文件的长度不应超过文件数据存储区的总长度。单个文件的长度越短,存储器可存储的文件数越多。存储器的大小可视一般记录文件和系统要求而定。

2 存储器清除及文件建立

在IC卡第一次使用之前,首先应该通过功能程序将卡内目录管理区清空,即将0000H~003DH写入#0FFH.。003EH写入#00H,表示卡内没有文件。003FH写入自定义的卡编写,这一过程需要0.6s完成。只有使用经过初始清除处理的IC卡,才能保证后续文件建立和数据写入的正确性。

[1] [2]