嵌入式系統(tǒng)應(yīng)用中NV SRAM存儲器的應(yīng)用
傳統(tǒng)方案中常常采用EPROM、EEPROM和Flash存儲程序,NVSRAM具有高速存取時間和與SRAM相同的接口,因而可用于存儲程序。本文介紹NVSRAM如何與基于程序和數(shù)據(jù)存儲的微處理器進(jìn)行接口,并說明選用NVSRAM與現(xiàn)有的其它非易失存儲器相比具有哪些優(yōu)勢。
盡管EPROM、EEPROM、Flash和NVSRAM在某種程度上提供了相同特性的非易失存儲方案,而在一些特殊應(yīng)用中,不適當(dāng)?shù)拇鎯ζ鞣桨笇?dǎo)致設(shè)計缺陷。微處理器系統(tǒng)選擇存儲器時主要面臨下列問題:
1。對特定的應(yīng)用,存儲容量不足;
2。程序存儲器需要較快的存取時間;
3。保證非易失存儲的寫周期次數(shù)不夠大,產(chǎn)品工作在有效壽命的后期時存在可靠性問題;
4。扇區(qū)寫入不可避免,特別是存儲器的扇區(qū)大于微處理器的緩沖區(qū)時。
5。采用UV擦除方式不便于開發(fā),一般無法滿足在線編程的要求,需要特殊的附加設(shè)備,而不適當(dāng)?shù)牟僮鲿?dǎo)致數(shù)據(jù)在光照下被擦除。表1列出了四種存儲器的不同特點,顯然,NVSRAM的綜合指標(biāo)最高。
EPROM的缺陷在于需要UV擦除時間,編程時需要額外的高電壓Vpp和Vcc。EPROM為程序存儲提供了一種可行方案,在微處理器應(yīng)用中能夠提供適當(dāng)?shù)慕涌诤妥x時間,但由于缺少電擦除功能無法用于非易失數(shù)據(jù)存儲。
EEPROM是一種較好的程序存儲方案,但其有限的寫周期次數(shù)和較低的寫速度使其很少用于數(shù)據(jù)存儲。寫周期次數(shù)的限制使其在大多數(shù)應(yīng)用中只能用于程序存儲。
初看起來,F(xiàn)lash是一種很好的解決方案,它同時提供了同步和異步讀功能,與EPROM和EEPROM相比具有較高的寫速度。但Flash存在寫周期次數(shù)有限的問題,劃分后的扇區(qū)(64字節(jié)到64k字節(jié))必須一次性寫入。這意味著數(shù)據(jù)必須由微處理器高速緩沖,然后一次寫入Flash器件的存儲區(qū)內(nèi)。如果設(shè)計中微處理器不具備足夠的內(nèi)部RAM,就無法緩存這些數(shù)據(jù)。在一些應(yīng)用中,如數(shù)據(jù)記錄儀,當(dāng)電源出現(xiàn)故障時可能導(dǎo)致滯留在微處理器緩沖區(qū)的數(shù)據(jù)丟失。盡管市場上也有一些Flash器件不需要扇區(qū)寫入,但產(chǎn)品的訂貨批量受限制。另外,這種產(chǎn)品還缺乏Flash器件標(biāo)準(zhǔn),雖然大多數(shù)Flash器件的異步讀操作與SRAM或EPROM相同,但并非所有器件都是如此,而且,寫接口標(biāo)準(zhǔn)較多,當(dāng)產(chǎn)品更新?lián)Q代無法支持相應(yīng)的標(biāo)準(zhǔn)時將限制器件的實際使用壽命。另外,還需保證寫操作不要超出最大寫周期次數(shù),因為當(dāng)器件達(dá)到有效壽命時將開始出現(xiàn)隨機(jī)存儲誤碼。有些Flash存儲器需要提供額外的編程電壓(大于13V)以保證快速寫模式,因而增加了系統(tǒng)成本,而尋找容量低于1Mb的Flash也比較困難。
NVSRAM可提供16kb至16Mb的存儲容量,存取時間高達(dá)70ns。讀、寫接口均與SRAM保持一致,標(biāo)準(zhǔn)Vcc條件下NVSRAM與同等速度SRAM的操作完全相同。無需擔(dān)心存儲數(shù)據(jù)分區(qū)問題,數(shù)據(jù)存儲位置與標(biāo)準(zhǔn)SRAM相同。電源失效時(Vcc跌落到標(biāo)準(zhǔn)工作電壓以下),內(nèi)部電路將片選(CE)信號置位,使存儲器處于寫保護(hù)狀態(tài)、并切換電源以便保持?jǐn)?shù)據(jù)。電源恢復(fù)正常后,NVSRAM恢復(fù)微處理器對CE信號的控制,SRAM電源切換到Vcc。CE信號被切換的瞬間只要微處理器控制信號沒有處于寫有效狀態(tài)(CE為高)就不會丟失數(shù)據(jù)。
由于工作狀態(tài)下NVSRAM與SRAM兼容,可以用速度相符的NVSRAM簡單地替代任何微處理器系統(tǒng)的SRAM,這種替代僅有的制約是需要了解電源所能提供的電流。Dallas半導(dǎo)體建議采用CPU監(jiān)控電路以保證微處理器在NVSRAM就緒之前處于復(fù)位狀態(tài)。微處理器復(fù)位狀態(tài)下,絕大多數(shù)總線控制信號(CE、WE、RD)處于禁止?fàn)顟B(tài),能夠避免NVSRAM在有效期內(nèi)數(shù)據(jù)不丟失。Maxim提供多種CPU監(jiān)控電路,完全勝任這項工作,配合其它與復(fù)位信號相關(guān)的功能就能保證系統(tǒng)更加可靠工作。
圖1是利用單片NV
SRAM存儲程序和數(shù)據(jù)的典型電路,該電路的主要優(yōu)點是節(jié)省了元器件數(shù),充分利用了存儲器空間。如果微控制器僅占用32kB存儲空間的1kB存儲程序,則其余31kB可用于非易失數(shù)據(jù)存儲。32kB的存儲容量足以滿足許多應(yīng)用場合,如果對程序和數(shù)據(jù)分別采用兩類存儲器將造成不必要的浪費,而且將迫使設(shè)計人員選用更大容量的存儲器。
利用NVSRAM存儲數(shù)據(jù)
NVSRAM非常適合在微控制器系統(tǒng)中存儲校準(zhǔn)信息、記錄數(shù)據(jù)等。如上所述,與SRAM工作在相同速度的NVSRAM采用標(biāo)準(zhǔn)的Vcc電源,NVSRAM在讀、寫操作時不需要延長時鐘周期,除非與高速DSP或先進(jìn)的微控制器配合使用。
絕大多數(shù)微控制器、包括8051系列產(chǎn)品,均提供程序存儲器和外部RAM的控制信號,圖1表明了如何利用這些現(xiàn)有的控制信號產(chǎn)生一組新的單片NVSRAM控制信號,同時用于程序和數(shù)據(jù)存儲。圖2表示3V系統(tǒng)中如何利用現(xiàn)存的控制信號對兩片獨立的存儲器尋址,主要區(qū)別是PSEN用于程序存儲器輸出使能控制,8051的RD信號(P3。7)用于數(shù)據(jù)存儲器的輸出使能控制。當(dāng)兩個存儲器輸出同時驅(qū)動到總線時,會導(dǎo)致總線沖突;另一種出現(xiàn)總線沖突的可能是微控制器將數(shù)據(jù)輸送給NVSRAM的時候,外部存儲器受指令控制輸出數(shù)據(jù)。這些情況都需要在設(shè)計中慎重考慮,以避免總線沖突。
針對這種設(shè)計需要說明兩點:首先,程序存儲器必須始終加寫保護(hù);其次,數(shù)據(jù)存儲器的可尋址空間可能大于微處理器尋址空間。
當(dāng)NVSRAM的WE引腳置為高電平時,不能寫入任何數(shù)據(jù),因此,需利用存儲器編程器對該引腳進(jìn)行編程。BPMicrosystems和DataI/O編程器幾乎支持所有Dallas半導(dǎo)體的NV
SRAM。當(dāng)采用編程器進(jìn)行器件編程時,注意在把器件安裝到電路之前要避免器件受ESD沖擊,因為ESD沖擊會造成器件中的數(shù)據(jù)丟失。一旦器件在保證數(shù)據(jù)正確的前提下裝入線路板,NVSRAM將有效保證數(shù)據(jù)的完整性。[!--empirenews.page--]
如果需要尋址更多的數(shù)據(jù)存儲器,只需在微處理器的數(shù)字接口簡單地添加高位地址線即可,圖中所示的8051支持64kB(A0-A15)的尋址空間,最高5位地址線(A16-20)和片選引腳可用于選擇64kB存儲器頁,對于編程器而言采取讀、寫子程序能使大容量存儲變得完全透明。上述操作不適用于程序存儲器,由于微處理器取代碼時不允許頁選擇,它按照16位地址取指令,可能選擇錯誤的頁碼。如果圖1選用DS1245,則只能尋址到一半的數(shù)據(jù)。如果用A16建立第二頁存儲器,當(dāng)存取第二頁的數(shù)據(jù)時會導(dǎo)致微控制器取第二頁的指令。
具體設(shè)計中需注意以下事項
1。檢查總線時序
控制信號是否提供了足夠的讀、寫時間,要特別注意系統(tǒng)的時鐘速率,因為控制信號的時序總是取決于時鐘速率。如果總線控制信號速度過高,大多數(shù)微處理器能夠展寬時鐘,降低數(shù)據(jù)存儲速率。
2。確認(rèn)總線控制信號在上電或掉電時的狀態(tài)
如果Vcc高于門限電壓時CE=WE=0,當(dāng)前地址的數(shù)據(jù)在沒有正常寫操作的情況下將被破壞。如果系統(tǒng)僅對本地可尋址空間尋址,要確??偩€控制信號在復(fù)位狀態(tài)處于禁止?fàn)顟B(tài)、保證數(shù)據(jù)不被破壞。當(dāng)采用擴(kuò)展尋址時,需保證I/O信號控制CE和WE在上電或掉電狀態(tài)下均處于高電平。利用CPU監(jiān)控電路能夠保證微處理器在NVSRAM處于電池備份模式時不會訪問NVSRAM。這時模塊內(nèi)的片選信號為高電平,與外部CE信號無關(guān),模塊內(nèi)的SRAM將拒絕任何外部訪問。
微處理器利用NVSRAM存儲程序
利用NVSRAM存儲程序時有兩點值得特別考慮:1。NVSRAM必須具有足夠快的存取速率、不需要降低時鐘速度。2。Vcc低于電壓監(jiān)視門限時,不能訪問NV
SRAM。微處理器必須在每個機(jī)器周期取指令(通常每個機(jī)器周期占用一個以上的時鐘周期),如果程序存儲器速度較慢、需降低時鐘速率以符合存儲器存取速率的要求。顯然,這種情況制約了系統(tǒng)性能。目前,5V高速NVSRAM的存取時間可以達(dá)到70ns,3。3V的NVSRAM可以達(dá)到100ns,能夠符合大多數(shù)應(yīng)用的要求。
利用復(fù)位門限接近Vcc的CPU監(jiān)控電路能夠避免微處理器在NVSRAM就緒之前對其進(jìn)行讀、寫操作,此外,Vcc噪聲有可能導(dǎo)致電壓瞬間跌落至Vcc門限以下,造成器件在瞬間干擾時無法讀取。鑒于這一點,建議在靠近模塊的Vcc引腳安裝去耦電容。由于市場上可以很容易找到5%電壓容差的CPU監(jiān)控芯片,因此,采用電壓容差為10%的NVSRAM可簡化設(shè)計,現(xiàn)有的3。3V和5V的器件均可滿足這種要求。
如上所述,NVSRAM不適合作便攜數(shù)據(jù)的載體,當(dāng)器件脫離具有實際意義的電路時容易丟失數(shù)據(jù)。最好是在線進(jìn)行器件編程,為解決嵌入式系統(tǒng)的在線編程問題,可以簡單構(gòu)建一個導(dǎo)入裝載器,流程如圖3所示。
導(dǎo)入器在切換存儲器(從微控制器的內(nèi)部EPROM切換到外部NVSRAM)時工作,存儲器內(nèi)部電路通過RS232端口接收數(shù)據(jù),將數(shù)據(jù)復(fù)制到適當(dāng)?shù)刂返腘VSRAM內(nèi)。實現(xiàn)該流程的簡單數(shù)據(jù)格式是Intel的十六進(jìn)制文件格式,因為這種對數(shù)據(jù)和數(shù)據(jù)地址的編碼格式是許多匯編語言采用的標(biāo)準(zhǔn)文件格式。EA引腳置“1”,選擇內(nèi)部存儲器,此時PC機(jī)可以通過一個RS232串口給微控制器發(fā)送數(shù)據(jù)。微控制器將代碼寫入NVSRAM后即可關(guān)閉電源、清EA引腳,當(dāng)再次上電時微處理器便開始執(zhí)行存放在NVSRAM內(nèi)的代碼。一旦完成了最初的硬件和軟件開發(fā),就可以方便地進(jìn)行快速編程,大大縮短產(chǎn)品開發(fā)周期。這種方案的缺陷是對于不同產(chǎn)品的開發(fā)必須保持固定的晶振頻率,以保證串行端口的波特率能夠由PC機(jī)軟件調(diào)節(jié)。