嵌入式系統(tǒng)應(yīng)用中NV SRAM存儲器的應(yīng)用
如果需要尋址更多的數(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)采用擴展尋址時,需保證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。微處理器必須在每個機器周期取指令(通常每個機器周期占用一個以上的時鐘周期),如果程序存儲器速度較慢、需降低時鐘速率以符合存儲器存取速率的要求。顯然,這種情況制約了系統(tǒng)性能。目前,5V高速NVSRAM的存取時間可以達到70ns,3。3V的NVSRAM可以達到100ns,能夠符合大多數(shù)應(yīng)用的要求。
利用復(fù)位門限接近Vcc的CPU監(jiān)控電路能夠避免微處理器在NVSRAM就緒之前對其進行讀、寫操作,此外,Vcc噪聲有可能導(dǎo)致電壓瞬間跌落至Vcc門限以下,造成器件在瞬間干擾時無法讀取。鑒于這一點,建議在靠近模塊的Vcc引腳安裝去耦電容。由于市場上可以很容易找到5%電壓容差的CPU監(jiān)控芯片,因此,采用電壓容差為10%的NVSRAM可簡化設(shè)計,現(xiàn)有的3。3V和5V的器件均可滿足這種要求。
如上所述,NVSRAM不適合作便攜數(shù)據(jù)的載體,當(dāng)器件脫離具有實際意義的電路時容易丟失數(shù)據(jù)。最好是在線進行器件編程,為解決嵌入式系統(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的十六進制文件格式,因為這種對數(shù)據(jù)和數(shù)據(jù)地址的編碼格式是許多匯編語言采用的標(biāo)準(zhǔn)文件格式。EA引腳置“1”,選擇內(nèi)部存儲器,此時PC機可以通過一個RS232串口給微控制器發(fā)送數(shù)據(jù)。微控制器將代碼寫入NVSRAM后即可關(guān)閉電源、清EA引腳,當(dāng)再次上電時微處理器便開始執(zhí)行存放在NVSRAM內(nèi)的代碼。一旦完成了最初的硬件和軟件開發(fā),就可以方便地進行快速編程,大大縮短產(chǎn)品開發(fā)周期。這種方案的缺陷是對于不同產(chǎn)品的開發(fā)必須保持固定的晶振頻率,以保證串行端口的波特率能夠由PC機軟件調(diào)節(jié)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論