延長EEPROM使用壽命的方法
發(fā)布時間:2008/5/26 0:00:00 訪問次數(shù):3015
    
    
    作者:李維平 張濤 丁振君
    
    eeprom(electrically erasable programmable read一only memory)即電子擦除式只讀存儲器,它是一種非揮發(fā)性存儲器,與擦除式只讀存儲器(eprom)類似,電源消失后,儲存的數(shù)據(jù)依然存在,要消除儲存在其中的內(nèi)容,不是用紫外線照射方式,而是以電子信號直接消除即可。
    正是由于eeprom具有以上特點,該器件可廣泛應(yīng)用于對數(shù)據(jù)存儲安全性及可靠性要求高的應(yīng)用場合,如門禁考勤系統(tǒng),測量和醫(yī)療儀表,非接觸式智能卡,稅控收款機,預(yù)付費電度表或復(fù)費率電度表、水表、煤氣表以及家電遙控器等應(yīng)用場合。該類型存儲器在可靠數(shù)據(jù)存儲領(lǐng)域會獲得越來越廣泛的應(yīng)用。
    但是,eeprom有固定的使用壽命,這是指某一位由1寫為o或由o寫為1的次數(shù)。不同廠家的產(chǎn)品,相同廠家不同型號、系列的產(chǎn)品,它們的壽命也不盡相同,100萬次為常見主流產(chǎn)品。假若某eeprom壽命為100萬次,每秒擦寫一次,則其使用時間為1000000/(3600×24)=12天。這對于需要較長時間保存數(shù)據(jù)的應(yīng)用場合,顯然不滿足要求。
    1 延長eeprom壽命的方法
    一般應(yīng)用中,要存儲的數(shù)據(jù)比較單一,eeprom空間與要存儲的數(shù)據(jù)相比要大得多。為此,可采用一種利用存儲器空間延長eeprom工作壽命的方法。
    方法l:不固定數(shù)據(jù)存放的地址,而是用一個固定的基地址加上eeprom內(nèi)的一個單元的內(nèi)容(即偏移地址)作為真正的地址;若發(fā)現(xiàn)存儲單元已壞(寫入和讀出的內(nèi)容不同),則偏移地址加1,重新寫入。如果采用100倍的存儲器空間冗余,可將eeprom的實際壽命延長100倍。
    方法2:從第一個存儲單元開始存儲數(shù)據(jù)n次,然后轉(zhuǎn)到下一個單元再存n次,依次類推,當最后一個單元存放n次之后,再轉(zhuǎn)到第一個單元重新開始。本文推薦采用該法,因為上一種方法存在一個致命缺陷:當某一個eeprom單元寫壞再用下一個單元時,原先存儲的數(shù)據(jù)就讀不出來了。本文后面的內(nèi)容也依此作根據(jù)進行闡釋。
    2 eeprom數(shù)據(jù)儲存地址的確認
    嵌入式系統(tǒng)中的eeprom電源消失后,儲存的數(shù)據(jù)依然存在。確認數(shù)據(jù)所存地址是能夠正確將所存數(shù)據(jù)讀出的基本條件,但是掉電后再上電時如何確認數(shù)據(jù)的地址指針呢?可以采用以下的方法。
    2.1 找最大數(shù)據(jù)法
    查找eeprom中的最大數(shù)據(jù),就是掉電前最后一次存儲的數(shù)據(jù)。該法對于單片機來講,編程時程序量較大,可采用折半查找法或分塊查找法降低程序代碼量。
    2.2用后還原法
    循環(huán)將當前數(shù)據(jù)寫入eeprom后,立即將前面的eeprom空間都清0再上電,查找數(shù)據(jù)非0的eeprom空間即可。有的單片機要求在寫入數(shù)據(jù)之前,必須將所有空間都恢復(fù)為oxff,這樣查找非0xff的數(shù)據(jù)空間即可。
    2.3地址指針法
    為每一個數(shù)據(jù)在eeprom中設(shè)一個地址指針ee—adr[i],這樣只要確認eeadr[i]數(shù)值即可找到相應(yīng)數(shù)據(jù)。對于地址指針法有下述一些技巧。
    ①一個地址指針對應(yīng)一個數(shù)據(jù)。該方法思路簡單,假設(shè)eeprom空間可以存放50組數(shù)據(jù)和50個地址adr[i],一組數(shù)據(jù)占用4個字節(jié),一個地址占用1個字節(jié),共250字節(jié),在儲存數(shù)據(jù)時,使50個地址指向50組數(shù)據(jù)的首地址,且使小于變量i的adr[i]都清零,或重新賦值為0xff。查找數(shù)據(jù)時,找到非o或非0xff的adr[i],然后根據(jù)adr[i]的值來確定數(shù)據(jù)的儲存地址即可。
    ②用兩個變量來記錄數(shù)據(jù)儲存的地址,addr一0ld和addilnew分別標志當前數(shù)據(jù)讀出時的地址和新采集來的數(shù)據(jù)下一次要存儲的地址。
    ③用一個字節(jié)的eeprom空間作為地址指針。此時,地址指針的數(shù)值總是和數(shù)據(jù)儲存的地址值相等,此種情況最具有技巧性,因為此時可以使用最少的地址指針,因而可以最大量的節(jié)省。eeprom空間,從而延長eep—rom壽命。此方法的思路是:假設(shè)第o字節(jié)作為地址指針,當該指針值為1時,數(shù)據(jù)從第一個地址開始儲存;為2時,數(shù)據(jù)從第二個地址開始儲存,依此類推。
    3 應(yīng)用實例
    本人在設(shè)計智能流量儀表時,使用美國microchip公司的pic16f877單片機。該單片機本身自帶有256字節(jié)的eeprom,其擦寫次數(shù)典型值為100萬次,主要用其儲存累計流量和儀表系數(shù)。其中,第201~255字節(jié)用于存儲儀表系數(shù),因其不需要經(jīng)常操作,所以對這些數(shù)據(jù)不再采用變地址動態(tài)存儲。第0字節(jié)儲存數(shù)據(jù)的地
    
    
    作者:李維平 張濤 丁振君
    
    eeprom(electrically erasable programmable read一only memory)即電子擦除式只讀存儲器,它是一種非揮發(fā)性存儲器,與擦除式只讀存儲器(eprom)類似,電源消失后,儲存的數(shù)據(jù)依然存在,要消除儲存在其中的內(nèi)容,不是用紫外線照射方式,而是以電子信號直接消除即可。
    正是由于eeprom具有以上特點,該器件可廣泛應(yīng)用于對數(shù)據(jù)存儲安全性及可靠性要求高的應(yīng)用場合,如門禁考勤系統(tǒng),測量和醫(yī)療儀表,非接觸式智能卡,稅控收款機,預(yù)付費電度表或復(fù)費率電度表、水表、煤氣表以及家電遙控器等應(yīng)用場合。該類型存儲器在可靠數(shù)據(jù)存儲領(lǐng)域會獲得越來越廣泛的應(yīng)用。
    但是,eeprom有固定的使用壽命,這是指某一位由1寫為o或由o寫為1的次數(shù)。不同廠家的產(chǎn)品,相同廠家不同型號、系列的產(chǎn)品,它們的壽命也不盡相同,100萬次為常見主流產(chǎn)品。假若某eeprom壽命為100萬次,每秒擦寫一次,則其使用時間為1000000/(3600×24)=12天。這對于需要較長時間保存數(shù)據(jù)的應(yīng)用場合,顯然不滿足要求。
    1 延長eeprom壽命的方法
    一般應(yīng)用中,要存儲的數(shù)據(jù)比較單一,eeprom空間與要存儲的數(shù)據(jù)相比要大得多。為此,可采用一種利用存儲器空間延長eeprom工作壽命的方法。
    方法l:不固定數(shù)據(jù)存放的地址,而是用一個固定的基地址加上eeprom內(nèi)的一個單元的內(nèi)容(即偏移地址)作為真正的地址;若發(fā)現(xiàn)存儲單元已壞(寫入和讀出的內(nèi)容不同),則偏移地址加1,重新寫入。如果采用100倍的存儲器空間冗余,可將eeprom的實際壽命延長100倍。
    方法2:從第一個存儲單元開始存儲數(shù)據(jù)n次,然后轉(zhuǎn)到下一個單元再存n次,依次類推,當最后一個單元存放n次之后,再轉(zhuǎn)到第一個單元重新開始。本文推薦采用該法,因為上一種方法存在一個致命缺陷:當某一個eeprom單元寫壞再用下一個單元時,原先存儲的數(shù)據(jù)就讀不出來了。本文后面的內(nèi)容也依此作根據(jù)進行闡釋。
    2 eeprom數(shù)據(jù)儲存地址的確認
    嵌入式系統(tǒng)中的eeprom電源消失后,儲存的數(shù)據(jù)依然存在。確認數(shù)據(jù)所存地址是能夠正確將所存數(shù)據(jù)讀出的基本條件,但是掉電后再上電時如何確認數(shù)據(jù)的地址指針呢?可以采用以下的方法。
    2.1 找最大數(shù)據(jù)法
    查找eeprom中的最大數(shù)據(jù),就是掉電前最后一次存儲的數(shù)據(jù)。該法對于單片機來講,編程時程序量較大,可采用折半查找法或分塊查找法降低程序代碼量。
    2.2用后還原法
    循環(huán)將當前數(shù)據(jù)寫入eeprom后,立即將前面的eeprom空間都清0再上電,查找數(shù)據(jù)非0的eeprom空間即可。有的單片機要求在寫入數(shù)據(jù)之前,必須將所有空間都恢復(fù)為oxff,這樣查找非0xff的數(shù)據(jù)空間即可。
    2.3地址指針法
    為每一個數(shù)據(jù)在eeprom中設(shè)一個地址指針ee—adr[i],這樣只要確認eeadr[i]數(shù)值即可找到相應(yīng)數(shù)據(jù)。對于地址指針法有下述一些技巧。
    ①一個地址指針對應(yīng)一個數(shù)據(jù)。該方法思路簡單,假設(shè)eeprom空間可以存放50組數(shù)據(jù)和50個地址adr[i],一組數(shù)據(jù)占用4個字節(jié),一個地址占用1個字節(jié),共250字節(jié),在儲存數(shù)據(jù)時,使50個地址指向50組數(shù)據(jù)的首地址,且使小于變量i的adr[i]都清零,或重新賦值為0xff。查找數(shù)據(jù)時,找到非o或非0xff的adr[i],然后根據(jù)adr[i]的值來確定數(shù)據(jù)的儲存地址即可。
    ②用兩個變量來記錄數(shù)據(jù)儲存的地址,addr一0ld和addilnew分別標志當前數(shù)據(jù)讀出時的地址和新采集來的數(shù)據(jù)下一次要存儲的地址。
    ③用一個字節(jié)的eeprom空間作為地址指針。此時,地址指針的數(shù)值總是和數(shù)據(jù)儲存的地址值相等,此種情況最具有技巧性,因為此時可以使用最少的地址指針,因而可以最大量的節(jié)省。eeprom空間,從而延長eep—rom壽命。此方法的思路是:假設(shè)第o字節(jié)作為地址指針,當該指針值為1時,數(shù)據(jù)從第一個地址開始儲存;為2時,數(shù)據(jù)從第二個地址開始儲存,依此類推。
    3 應(yīng)用實例
    本人在設(shè)計智能流量儀表時,使用美國microchip公司的pic16f877單片機。該單片機本身自帶有256字節(jié)的eeprom,其擦寫次數(shù)典型值為100萬次,主要用其儲存累計流量和儀表系數(shù)。其中,第201~255字節(jié)用于存儲儀表系數(shù),因其不需要經(jīng)常操作,所以對這些數(shù)據(jù)不再采用變地址動態(tài)存儲。第0字節(jié)儲存數(shù)據(jù)的地
熱門點擊
- 延長EEPROM使用壽命的方法
- 智能測量系統(tǒng)中的海量數(shù)據(jù)存儲技術(shù)
- 存儲器類型綜述及DDR接口設(shè)計的實現(xiàn)
- DSP處理器與FLASH存儲器的接口設(shè)計
- TrueFFS原理及其在CF卡上的實現(xiàn)
- 基于FM18L08的高速數(shù)據(jù)存儲系統(tǒng)
- DSP片外高速海量SDRAM存儲系統(tǒng)設(shè)計
- 大容量NANDFlashTC58DVG02A
推薦技術(shù)資料
- 循線機器人是機器人入門和
- 循線機器人是機器人入門和比賽最常用的控制方式,E48S... [詳細]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究