ic卡数据循环存储以及文件管理.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ic卡数据循环存储以及文件管理

IC卡数据循环存储以及文件管理 ; 摘要:一种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卡,才能保证后续文件建立和数据写入的正确性。; 文件的建立依赖于系统的功能指令。当系统得到建立新文件的指令时,立即启动新文件建立程序,完成文件起始地址配置以及目录区管理,具体过程见图2。; 图2 ; 3 文件写入及目录管理; 文件数据的写入按照i2c总线规约逐字节写入。特殊之处在于,每写完一个字节之后,地址指针加1,调整后的指针如果超过0fffh,则重新高速为0040h,这将意味着“吃掉“(覆盖掉)最早建立的文件或其它在前文件。这里,通过目录管理了程序找出被“吃掉”的文件,并将从目录中删除。由于在所选用存储时已经有效使存储空间远大于单个文件的长度,因此不会出现同一个文件“吃掉”自身的情况。只有当多个文件的总长度超过存储空间时,才会出现在前文件被“吃掉”的现象。不过,被吃掉的文件永远是最早形成的文件,是按照系统设计已经可以丢弃的文件。; 目录管理的主要功能是:实时统计ic卡内实际文件的数量,记载新建立的文件,及时删除已经被覆盖掉的文件。文件检索过程只有目录映像区进行,根据文件目录映像区的结构,读出所有已记录的在前文件的地址,与当前文件地址比较。如果所检查的在前文件地址进入当前文件首尾地址范围内,则认定为该文件已经被当前文件覆盖,应用从目录中删除。; 由于存储器空间被安排成环状结构,会出现当前文件的结尾地址大于开始地址的情况,因此不能简单地根据地址的绝对大小判断覆盖问题。考虑到单一文件的长度远小于存储数据空间,以及目录映像区文件次序的前后排列关系,我们采取自前一文件到最早文件的次序检索方法。如果遇到某个文件被覆盖,则后续文件一定被覆盖。由于在前文件的起始地址存在大于或小于当前文件结尾地址的情况,因此应分两种情况进行分析,统计出有效文件的数量并找到到被覆盖的文件,将其从目录中删除,过程见图3。r2为文件数量计数器,初值为零。; 图3 ; 结语; eeprom循环写入的方法避免了大块数据在存储器内移动的问题,同时消除了存储器写满后影响后续写入的问题,充分使

文档评论(0)

ailuojue2 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档