MAXQ環(huán)境下EEPROM的保護(hù)措施
發(fā)布時(shí)間:2008/5/27 0:00:00 訪問次數(shù):536
    
    
    介紹
    
    在嵌入式微控制器應(yīng)用中,通常都要用到非易失性存儲(chǔ)器。無(wú)論是掉電時(shí)維持需要保存的設(shè)置,還是存儲(chǔ)公司的重要記錄,可靠的非易失性存儲(chǔ)器都是現(xiàn)代微控制器領(lǐng)域的一個(gè)基本單元。非易失性存儲(chǔ)常常采用外部串行存儲(chǔ)器實(shí)現(xiàn)。多年以來(lái),該領(lǐng)域用到了數(shù)十億顆類似存儲(chǔ)器件,它們的可靠性得到了的廣泛認(rèn)可。目前,存儲(chǔ)器可以做到幾百字節(jié)到1兆字節(jié)甚至更大的容量,在每一個(gè)需要保持設(shè)置的設(shè)備中,都能找到這樣一個(gè)緊湊、廉價(jià)的器件。
    包括eeprom、閃存和旋轉(zhuǎn)式存儲(chǔ)器在內(nèi),所有類型的非易失性存儲(chǔ)器都面臨一個(gè)共同的問題:寫周期被中斷時(shí),數(shù)據(jù)會(huì)丟失。一旦在寫周期執(zhí)行過程中掉電,那么即使再恢復(fù)電源,也很難修復(fù)損壞的數(shù)據(jù)。 本文提出了一種基于事務(wù)的提交-回退機(jī)制,用于保護(hù)一個(gè)外部串行eeprom存儲(chǔ)器件的內(nèi)容。這些措施同樣適用于大多數(shù)maxq微控制器的內(nèi)置eeprom?梢韵螺d本應(yīng)用的代碼文件(zip,20.5kb)。
    
    i2c eeprom的特點(diǎn)
    
    串行存儲(chǔ)器件有多種接口,但最常用的接口是i2c接口。這種總線接口有很多優(yōu)點(diǎn):高度標(biāo)準(zhǔn)化的接口;控制器和存儲(chǔ)器之間只需兩條線;而且具有靈活的時(shí)序要求,可以由軟件驅(qū)動(dòng)。一個(gè)i2c主機(jī)可以驅(qū)動(dòng)很多i2c從機(jī),從而最大程度減少了主機(jī)的引腳數(shù)。在所有eeprom器件中,寫周期都要比讀周期長(zhǎng)的多。因?yàn)樵趯懼芷谶^程中,電荷需要借助隧道效應(yīng)并通過絕緣層進(jìn)行轉(zhuǎn)移,而這個(gè)過程很費(fèi)時(shí)間。雖然增加電壓可以加快這個(gè)過程,但是過高的電壓會(huì)導(dǎo)致絕緣層的介質(zhì)擊穿,從而損壞器件。典型的eeprom器件寫周期持續(xù)10毫秒左右;而讀周期通常需要幾百個(gè)納秒。
    
    為了顯著縮短寫周期的時(shí)間,許多i2c eeprom器件采用頁(yè)面模式。該模式允許將多個(gè)字節(jié)傳送到緩存中,然后將數(shù)據(jù)一次性寫入存儲(chǔ)區(qū)。i2c存儲(chǔ)器件的典型頁(yè)面尺寸為32字節(jié)。因此,可以在一個(gè)寫周期內(nèi)向eeprom填入32個(gè)字節(jié)。
    
    這一點(diǎn)非常重要,因?yàn)榇衑eprom器件都具有特定的耐久度:即每個(gè)頁(yè)面所能承受的寫周期次數(shù)上限。典型的寫周期次數(shù)從10,000到1,000,000次。然而,即使存儲(chǔ)器件能夠承受1百萬(wàn)次寫周期,軟件也會(huì)很快將其損耗殆盡。軟件每秒僅執(zhí)行100次寫周期,那么不到3個(gè)小時(shí)就會(huì)耗盡器件的寫周期次數(shù)。
    
    考慮到這些基本的eeprom特性,設(shè)計(jì)者為一個(gè)嵌入式處理器設(shè)計(jì)可靠的非易失存儲(chǔ)系統(tǒng)時(shí),需切記以下幾點(diǎn):
    
    不要在同一頁(yè)面上反復(fù)執(zhí)行寫操作。尤其是不要將某個(gè)頁(yè)面設(shè)置成寫入任何其它頁(yè)面時(shí)都要更新的“目錄”。如果在寫周期過程中電源被中斷,必須提供以下機(jī)制:(1) 檢測(cè)被中斷的寫操作;(2) 完成被中斷的操作;(3) 或者將事件回退至寫操作之前的狀態(tài)。必須通過某些數(shù)據(jù)校驗(yàn)機(jī)制(校驗(yàn)和、crc或消息摘要)來(lái)保證數(shù)據(jù)的完整性。
    
    設(shè)計(jì)目標(biāo)
    
    雖然上面提到的eeprom問題可通過多種非易失文件系統(tǒng)加以解決,但這樣的文件機(jī)制對(duì)于小型嵌入式微控制器來(lái)說(shuō)負(fù)擔(dān)過重。很多文件系統(tǒng)需要更多的ram,遠(yuǎn)遠(yuǎn)超出了小型微控制器所能提供的容量,而且對(duì)于多數(shù)應(yīng)用,也不需要一個(gè)完整的文件系統(tǒng)?紤]到這一點(diǎn),下面列出了eeprom數(shù)據(jù)保護(hù)機(jī)制的設(shè)計(jì)目標(biāo):
    
    精簡(jiǎn):保護(hù)機(jī)制用于存儲(chǔ)校驗(yàn)數(shù)據(jù)的空間不應(yīng)超過eeprom的10%,它應(yīng)該只需要少量的計(jì)算開銷。
    
    塊大小:被保護(hù)的塊大小,應(yīng)該和eeprom的寫操作頁(yè)面大小一樣。由于eeprom器件的頁(yè)面大小通常是2的偶數(shù)次冪,因此與每個(gè)塊保留1或2個(gè)字節(jié)的做法相比,相同的尺寸大小更便于軟件編碼。
    
    耐久性:每個(gè)保護(hù)周期不要對(duì)同一頁(yè)面進(jìn)行寫操作。
    
    可靠性:每次掉電情況下,數(shù)據(jù)都應(yīng)是可恢復(fù)的。
    
    這里提到的保護(hù)機(jī)制有6個(gè)接口函數(shù):讀、寫、提交、回退、檢查和清理。
    
    讀函數(shù)接收一個(gè)塊編號(hào)和一個(gè)指向32字節(jié)緩存的指針。如果緩存地址和塊編號(hào)處于有效范圍內(nèi),程序就會(huì)將指定的塊數(shù)據(jù)讀入緩存
    
    
    介紹
    
    在嵌入式微控制器應(yīng)用中,通常都要用到非易失性存儲(chǔ)器。無(wú)論是掉電時(shí)維持需要保存的設(shè)置,還是存儲(chǔ)公司的重要記錄,可靠的非易失性存儲(chǔ)器都是現(xiàn)代微控制器領(lǐng)域的一個(gè)基本單元。非易失性存儲(chǔ)常常采用外部串行存儲(chǔ)器實(shí)現(xiàn)。多年以來(lái),該領(lǐng)域用到了數(shù)十億顆類似存儲(chǔ)器件,它們的可靠性得到了的廣泛認(rèn)可。目前,存儲(chǔ)器可以做到幾百字節(jié)到1兆字節(jié)甚至更大的容量,在每一個(gè)需要保持設(shè)置的設(shè)備中,都能找到這樣一個(gè)緊湊、廉價(jià)的器件。
    包括eeprom、閃存和旋轉(zhuǎn)式存儲(chǔ)器在內(nèi),所有類型的非易失性存儲(chǔ)器都面臨一個(gè)共同的問題:寫周期被中斷時(shí),數(shù)據(jù)會(huì)丟失。一旦在寫周期執(zhí)行過程中掉電,那么即使再恢復(fù)電源,也很難修復(fù)損壞的數(shù)據(jù)。 本文提出了一種基于事務(wù)的提交-回退機(jī)制,用于保護(hù)一個(gè)外部串行eeprom存儲(chǔ)器件的內(nèi)容。這些措施同樣適用于大多數(shù)maxq微控制器的內(nèi)置eeprom?梢韵螺d本應(yīng)用的代碼文件(zip,20.5kb)。
    
    i2c eeprom的特點(diǎn)
    
    串行存儲(chǔ)器件有多種接口,但最常用的接口是i2c接口。這種總線接口有很多優(yōu)點(diǎn):高度標(biāo)準(zhǔn)化的接口;控制器和存儲(chǔ)器之間只需兩條線;而且具有靈活的時(shí)序要求,可以由軟件驅(qū)動(dòng)。一個(gè)i2c主機(jī)可以驅(qū)動(dòng)很多i2c從機(jī),從而最大程度減少了主機(jī)的引腳數(shù)。在所有eeprom器件中,寫周期都要比讀周期長(zhǎng)的多。因?yàn)樵趯懼芷谶^程中,電荷需要借助隧道效應(yīng)并通過絕緣層進(jìn)行轉(zhuǎn)移,而這個(gè)過程很費(fèi)時(shí)間。雖然增加電壓可以加快這個(gè)過程,但是過高的電壓會(huì)導(dǎo)致絕緣層的介質(zhì)擊穿,從而損壞器件。典型的eeprom器件寫周期持續(xù)10毫秒左右;而讀周期通常需要幾百個(gè)納秒。
    
    為了顯著縮短寫周期的時(shí)間,許多i2c eeprom器件采用頁(yè)面模式。該模式允許將多個(gè)字節(jié)傳送到緩存中,然后將數(shù)據(jù)一次性寫入存儲(chǔ)區(qū)。i2c存儲(chǔ)器件的典型頁(yè)面尺寸為32字節(jié)。因此,可以在一個(gè)寫周期內(nèi)向eeprom填入32個(gè)字節(jié)。
    
    這一點(diǎn)非常重要,因?yàn)榇衑eprom器件都具有特定的耐久度:即每個(gè)頁(yè)面所能承受的寫周期次數(shù)上限。典型的寫周期次數(shù)從10,000到1,000,000次。然而,即使存儲(chǔ)器件能夠承受1百萬(wàn)次寫周期,軟件也會(huì)很快將其損耗殆盡。軟件每秒僅執(zhí)行100次寫周期,那么不到3個(gè)小時(shí)就會(huì)耗盡器件的寫周期次數(shù)。
    
    考慮到這些基本的eeprom特性,設(shè)計(jì)者為一個(gè)嵌入式處理器設(shè)計(jì)可靠的非易失存儲(chǔ)系統(tǒng)時(shí),需切記以下幾點(diǎn):
    
    不要在同一頁(yè)面上反復(fù)執(zhí)行寫操作。尤其是不要將某個(gè)頁(yè)面設(shè)置成寫入任何其它頁(yè)面時(shí)都要更新的“目錄”。如果在寫周期過程中電源被中斷,必須提供以下機(jī)制:(1) 檢測(cè)被中斷的寫操作;(2) 完成被中斷的操作;(3) 或者將事件回退至寫操作之前的狀態(tài)。必須通過某些數(shù)據(jù)校驗(yàn)機(jī)制(校驗(yàn)和、crc或消息摘要)來(lái)保證數(shù)據(jù)的完整性。
    
    設(shè)計(jì)目標(biāo)
    
    雖然上面提到的eeprom問題可通過多種非易失文件系統(tǒng)加以解決,但這樣的文件機(jī)制對(duì)于小型嵌入式微控制器來(lái)說(shuō)負(fù)擔(dān)過重。很多文件系統(tǒng)需要更多的ram,遠(yuǎn)遠(yuǎn)超出了小型微控制器所能提供的容量,而且對(duì)于多數(shù)應(yīng)用,也不需要一個(gè)完整的文件系統(tǒng)?紤]到這一點(diǎn),下面列出了eeprom數(shù)據(jù)保護(hù)機(jī)制的設(shè)計(jì)目標(biāo):
    
    精簡(jiǎn):保護(hù)機(jī)制用于存儲(chǔ)校驗(yàn)數(shù)據(jù)的空間不應(yīng)超過eeprom的10%,它應(yīng)該只需要少量的計(jì)算開銷。
    
    塊大小:被保護(hù)的塊大小,應(yīng)該和eeprom的寫操作頁(yè)面大小一樣。由于eeprom器件的頁(yè)面大小通常是2的偶數(shù)次冪,因此與每個(gè)塊保留1或2個(gè)字節(jié)的做法相比,相同的尺寸大小更便于軟件編碼。
    
    耐久性:每個(gè)保護(hù)周期不要對(duì)同一頁(yè)面進(jìn)行寫操作。
    
    可靠性:每次掉電情況下,數(shù)據(jù)都應(yīng)是可恢復(fù)的。
    
    這里提到的保護(hù)機(jī)制有6個(gè)接口函數(shù):讀、寫、提交、回退、檢查和清理。
    
    讀函數(shù)接收一個(gè)塊編號(hào)和一個(gè)指向32字節(jié)緩存的指針。如果緩存地址和塊編號(hào)處于有效范圍內(nèi),程序就會(huì)將指定的塊數(shù)據(jù)讀入緩存
熱門點(diǎn)擊
- 高速大容量SRAM
- 用存儲(chǔ)器映射的方法實(shí)現(xiàn)片外FLASH的擦寫
- 高速雙口RAM IDT7026的原理和應(yīng)用
- 新架構(gòu)SRAM消除“軟錯(cuò)誤”威脅
- 基于I2S的USB 聲卡系統(tǒng)設(shè)計(jì)
- SST89E/V58RD2和SST89E/V
- AT45DB081B在數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
- 內(nèi)含CalmRISC CPU的8位單片機(jī)S3
- 基于VxWorks的FLASH存儲(chǔ)器實(shí)時(shí)存取
- IDT7007高速雙端口RAM及其應(yīng)用
推薦技術(shù)資料
- 循線機(jī)器人是機(jī)器人入門和
- 循線機(jī)器人是機(jī)器人入門和比賽最常用的控制方式,E48S... [詳細(xì)]
- 電源管理 IC (PMIC)&
- I2C 接口和 PmBUS 以及 OTP/M
- MOSFET 和柵極驅(qū)動(dòng)器單
- 數(shù)字恒定導(dǎo)通時(shí)間控制模式(CO
- Power Management Buck/
- 反激變換器傳導(dǎo)和輻射電磁干擾分析和抑制技術(shù)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究