<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > IC卡數據循環(huán)存儲及文件管理

IC卡數據循環(huán)存儲及文件管理

作者: 時(shí)間:2004-12-08 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:一種I2C總線(xiàn)型EEPROM器,在數據記錄系統中,用來(lái)保存當前時(shí)刻以前一段時(shí)間內的多組數據。使用時(shí)設計成首尾地址相接的環(huán)型結構,實(shí)現數據文件的循環(huán)。文章介紹循環(huán)存儲器的結構、循環(huán)存儲的實(shí)現方法以及的過(guò)程;指出該方法的優(yōu)越性。

關(guān)鍵詞:EEPROM 循環(huán)存儲 I2C總線(xiàn)

絕大多數的采用的都是I2C總線(xiàn)型的EEPROM存儲器。在現場(chǎng)數據記錄系統中,經(jīng)常需要保存的是當前時(shí)刻之前一段時(shí)間內的數據。由于EEPROM單字節寫(xiě)入時(shí)間太長(cháng),不易采用數據在存儲器中內整體位置移動(dòng)的方法管理;而單純采用自存儲器頂端向下順序寫(xiě)入的方法,會(huì )出現存儲器寫(xiě)滿(mǎn)的現象。為解決這個(gè)問(wèn)題,我們設計了環(huán)型存儲的管理方法,使用首尾相接的存儲環(huán),配合以目錄管理功能,完成順的循環(huán)寫(xiě)入,實(shí)現了EEPROM存儲器內文件的的高效保存和管理。

1 存儲器及文件目錄結構

這里以1片4KB的I2C總線(xiàn)型EEPROM為例。微處理器采用Atmel的AT89S52;EEPROM的0000H~003FH作為內文件的目錄管理區,為直線(xiàn)結構;目錄區最多可以記錄30個(gè)數據文件。存儲器及目錄結構如圖1所示。0040H~0FFFH設計成首尾相接的環(huán)型存儲結構,用來(lái)作為文件存儲區。數據文件從0040H處開(kāi)始依次記入,每寫(xiě)入一個(gè)字節,地址指針自動(dòng)加1,然后判斷該指針是否到了存儲環(huán)的交界處。地址過(guò)界,即地址大于0FFFH時(shí),將寫(xiě)入地址指針再修改成0040H,將最早形成的文件記錄自動(dòng)覆蓋掉。AT89S52內部RAM的40H~7FH作為EEPROM文件目錄區的映像,系統復位后由單片機將EEPRM中0000H~003FH的內容讀出并記入到該映像區。每一組現場(chǎng)數據作為一個(gè)記錄文件輸入后,單片機都要及時(shí)修改目錄映像中當前文件的結束地址。每建立一個(gè)新文件記錄,映像區整個(gè)數據都要向地址增大方向移動(dòng)2個(gè)字節,超出7DH的自動(dòng)丟棄。新建立的文件首位地址記入40H~43H,最后將該映像再重新寫(xiě)回到EEPROM目錄區。文件目錄中只有當前文件記錄了起始地址和結束地址。當前文件的起始地址是前一文件結束地址的下一個(gè)地址,因此在前文件只記錄其起始地址。目錄區沒(méi)有文件的空間用#0FFH填充。另外,每一個(gè)文件的長(cháng)度不應超過(guò)文件數據存儲區的總長(cháng)度。單個(gè)文件的長(cháng)度越短,存儲器可存儲的文件數越多。存儲器的大小可視一般記錄文件和系統要求而定。

2 存儲器清除及文件建立

在IC卡第一次使用之前,首先應該通過(guò)功能程序將卡內目錄管理區清空,即將0000H~003DH寫(xiě)入#0FFH.。003EH寫(xiě)入#00H,表示卡內沒(méi)有文件。003FH寫(xiě)入自定義的卡編寫(xiě),這一過(guò)程需要0.6s完成。只有使用經(jīng)過(guò)初始清除處理的IC卡,才能保證后續文件建立和數據寫(xiě)入的正確性。

文件的建立依賴(lài)于系統的功能指令。當系統得到建立新文件的指令時(shí),立即啟動(dòng)新文件建立程序,完成文件起始地址配置以及目錄區管理,具體過(guò)程見(jiàn)圖2。

圖2

3 文件寫(xiě)入及目錄管理

文件數據的寫(xiě)入按照I2C總線(xiàn)規約逐字節寫(xiě)入。特殊之處在于,每寫(xiě)完一個(gè)字節之后,地址指針加1,調整后的指針如果超過(guò)0FFFH,則重新高速為0040H,這將意味著(zhù)“吃掉“(覆蓋掉)最早建立的文件或其它在前文件。這里,通過(guò)目錄管理了程序找出被“吃掉”的文件,并將從目錄中刪除。由于在所選用存儲時(shí)已經(jīng)有效使存儲空間遠大于單個(gè)文件的長(cháng)度,因此不會(huì )出現同一個(gè)文件“吃掉”自身的情況。只有當多個(gè)文件的總長(cháng)度超過(guò)存儲空間時(shí),才會(huì )出現在前文件被“吃掉”的現象。不過(guò),被吃掉的文件永遠是最早形成的文件,是按照系統設計已經(jīng)可以丟棄的文件。

目錄管理的主要功能是:實(shí)時(shí)統計IC卡內實(shí)際文件的數量,記載新建立的文件,及時(shí)刪除已經(jīng)被覆蓋掉的文件。文件檢索過(guò)程只有目錄映像區進(jìn)行,根據文件目錄映像區的結構,讀出所有已記錄的在前文件的地址,與當前文件地址比較。如果所檢查的在前文件地址進(jìn)入當前文件首尾地址范圍內,則認定為該文件已經(jīng)被當前文件覆蓋,應用從目錄中刪除。

由于存儲器空間被安排成環(huán)狀結構,會(huì )出現當前文件的結尾地址大于開(kāi)始地址的情況,因此不能簡(jiǎn)單地根據地址的絕對大小判斷覆蓋問(wèn)題??紤]到單一文件的長(cháng)度遠小于存儲數據空間,以及目錄映像區文件次序的前后排列關(guān)系,我們采取自前一文件到最早文件的次序檢索方法。如果遇到某個(gè)文件被覆蓋,則后續文件一定被覆蓋。由于在前文件的起始地址存在大于或小于當前文件結尾地址的情況,因此應分兩種情況進(jìn)行分析,統計出有效文件的數量并找到到被覆蓋的文件,將其從目錄中刪除,過(guò)程見(jiàn)圖3。R2為文件數量計數器,初值為零。

圖3

結語(yǔ)

EEPROM循環(huán)寫(xiě)入的方法避免了大塊數據在存儲器內移動(dòng)的問(wèn)題,同時(shí)消除了存儲器寫(xiě)滿(mǎn)后影響后續寫(xiě)入的問(wèn)題,充分使用了存儲空間;文件檢索和目錄修改在RAM映像區完成,加快了程序運行速度。循環(huán)寫(xiě)入方案在運達公司一種記錄棋譜的電子棋盤(pán)中已經(jīng)得到了應用,實(shí)用可靠。此方法在類(lèi)似產(chǎn)品或記錄設備中具有相當的實(shí)用價(jià)值。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>