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