ATmegal28擴展512KB掉電保護SRAM方案
如今,電子技術(shù)發(fā)展迅猛,尤其是單片機已廣泛地應用于通信、交通、家用電器、便攜式智能儀表和機器人制作等領(lǐng)域,產(chǎn)品功能、精度和質(zhì)量均有大幅度提高,且電路簡(jiǎn)單,故障率低,可靠性高,價(jià)格低廉。在單片機的某些應用中,如果不對系統的外部SRAM進(jìn)行擴展,就不能滿(mǎn)足系統設計的要求。因此如何擴展、擴展什么類(lèi)型的芯片、擴展的容量多大就成為值得考慮的問(wèn)題。這個(gè)問(wèn)題解決的好與壞直接關(guān)系到項目的成敗。本文介紹在A(yíng)VR ATmegal28中如何實(shí)現擴展掉電數據不丟失的512 KB SRAM的方案。
本文引用地址:http://dyxdggzs.com/article/78882.htm1 系統硬件結構
單片機采用的是Atmel公司生產(chǎn)的ATmegal28,其引腳排列如圖l所示。ATmegal 28單片機為基于A(yíng)VR RISC結構的8位低功耗CMOS微處理器,憑借先進(jìn)的指令集以及單周期指令執行時(shí)間,其數據吞吐率高達1MIPS/MHz,可以緩解系統的功耗和處理速度之間的矛盾。AVR單片機內核具有豐富的指令集和32個(gè)通用工作寄存器,所有的寄存器都直接與算術(shù)邏輯單元(ALU)相連接,使得一條指令可以在一個(gè)時(shí)鐘周期內同時(shí)訪(fǎng)問(wèn)兩個(gè)獨立的寄存器。這種結構大大提高了代碼效率,并且具有比普通的復雜
指令集微處理器高10倍的數據吞吐量。ATmegal28單片機內置:128 KB的在系統可編程Flash程序存儲器,具有在寫(xiě)的過(guò)程中還可以讀的能力,即同時(shí)讀寫(xiě)(RWW);4 KB的EEPROM;4 KB的SRAM;53個(gè)通用I/O端口線(xiàn);32個(gè)通用工作寄存器;實(shí)時(shí)時(shí)鐘(RTC);4個(gè)靈活的具有比較模式和PWM功能的定時(shí)器/計數器(T/c);2個(gè)UJSART;面向字節的兩線(xiàn)接口(TWI);8通道10位ADC;可選的可編程增益;片內振蕩器的可編程看門(mén)狗定時(shí)器;串行外圍設備接口(SPI);與IEEEll49.1規范兼容的JTAG測試接口,此接口同時(shí)還可以用于片上調試;6種可以通過(guò)軟件選擇的省電模式。

SRAM接口電路由鎖存器74AHC573D和BS62LV1006SIP55組成,如圖2所示。XRAM接口的工作頻率很高,當系統的工作條件高于8 MHz@4 V(4 V電源電壓,8 MHz工作頻率)和4 MHz@2.7 V(2.7 V電源電壓。4 MHz工作頻率)時(shí),要小心地選擇地址鎖存器。此時(shí),典型的74HC系列鎖存器已經(jīng)無(wú)法滿(mǎn)足要求。XRAM接口與74AHC系列的鎖存器相兼容。BS62LV4006SIP55是BSI的高效率、低功耗CMOS靜態(tài)隨機訪(fǎng)問(wèn)存儲器,能適應2.4~5.5 V的大范圍工作電壓,具有典型CMOS的高效率低功耗特性;在3.0V/25℃的條件下電流為0.25μA,在3.0V/85℃的條件下,最長(cháng)訪(fǎng)問(wèn)時(shí)間為55 ns。通過(guò)片選CE信號、輸出使能OE信號和三態(tài)輸出驅動(dòng),可以很方便地進(jìn)行SRAM擴展。當BS62LV4006SIP55處于未片選狀態(tài)時(shí),它具有自動(dòng)降低功耗的特性。

掉電數據保護電路由SA56600-42D接口電路、DS1302ZN接口電路和預警比較電路組成,電路原理圖如圖3所示。SA56600-42D是Philips公司生產(chǎn)的為保護SRAM中數據的集成芯片;DS1302ZN則是DALLAS公司生產(chǎn)的實(shí)時(shí)時(shí)鐘(RTC),但它還具有可編程控制的充電器的功能,通過(guò)第8腳能為鋰電池進(jìn)行控制充電;預警比較電路有保護現場(chǎng)數據的作用,當外部電壓低于10V時(shí),模擬比較器就會(huì )觸發(fā)中斷,從而把現場(chǎng)數據保護到外擴SRAM或EEPROM中。

2 工作原理
在主函數main()中,對I/O口、計時(shí)器、A/D轉換器、模擬比較器、RTC DSl302和外擴SRAM等進(jìn)行初始化。對外擴的SRAM進(jìn)行訪(fǎng)問(wèn)時(shí),通過(guò)PD5~PD7確定頁(yè)面地址,再根據A口、C口的第二功能訪(fǎng)問(wèn)外部SRAM的指定地址,這部分在程序清單中有簡(jiǎn)單的例子。有一點(diǎn)要注意,外部存儲器映射到內部存儲器之后,在缺省條件下MCU只能訪(fǎng)問(wèn)每頁(yè)的60 KB外部存儲器(地址0x0000~0xlOFF為內部存儲器所保留)。然而,可以利用屏蔽高位地址的方法來(lái)訪(fǎng)問(wèn)整個(gè)64 KB外部存儲器。這點(diǎn)對于跨頁(yè)訪(fǎng)問(wèn)要特別注意。
在計時(shí)器中斷程序中,每隔一段設定的時(shí)間就要調用一次A/D轉換,以獲得鋰電池的電壓。在A(yíng)/D中斷處理函數中對獲得的鋰電池電壓進(jìn)行處理。如果獲得的鋰電池的電壓低于一個(gè)設定的值,則調用DSl302的90H命令對鋰電池進(jìn)行充電;如果鋰電池電壓高于設定的值,則調用DSl302的91H命令,獲得寄存器對應TCS3~TCSl位的值,判斷DS1302是否對電池充電。如果在充電,就凋用DSl302的90H命令,結束對電池充電。
當預警比較電路中ATNl的電壓低于A(yíng)IN0時(shí),觸發(fā)模擬比較器中斷。在此中斷處理函數中把內部SRAM的數據備份到外部的SRAM或者EEPROM中,從而防止因外部電源掉電造成數據丟失。
當外部電源掉電或恢復供電時(shí),SA56600-42D會(huì )自動(dòng)切換外擴SRAM的供電。在外部電壓低于4.2 V時(shí),SA56600-42D會(huì )使外擴SRAM處于未使能狀態(tài),使SRAM不能訪(fǎng)問(wèn);在外部電壓低于3.3 V時(shí),SA5660042D會(huì )自動(dòng)切換到鋰電池為外擴SRAM供電,達到保護外擴SRAM中數據的同的;在外部電壓高于4.2 V時(shí),SA56600-42D會(huì )自動(dòng)切換到主電源為外擴SRAM供電。
3 本系統的優(yōu)點(diǎn)
?、偈褂酶咝阅躌ISC架構的AVR ATmegal28單片機,從硬件上克服了傳統單片機在處理能力、外圍接口能力上的不足,可以實(shí)現復雜的程序控制。
?、谕鈹USRAM達到512 KB,突破了傳統的64KB尋址范圍的限制。這對單片機來(lái)說(shuō)有很重要的現實(shí)意義。
?、弁鈹USRAM且實(shí)現掉電數據保護功能。相對于擴充EEPROM的系統,本系統的反應要快很多。
?、軕帽痉桨?,在某些應用方面就不需要使用ARM微處理器,從而達到降低系統成本和開(kāi)發(fā)難度的目的。
程序清單見(jiàn)本刊網(wǎng)站www.mesnet.com.cn——編者注。
結語(yǔ)
采用本系統的擴展外部SRAM的方案,既能保證系統的響應速度,又能保證數據的安全性。本設計方案具有硬件結構簡(jiǎn)單、成本低等優(yōu)勢,在顯示、語(yǔ)音、交通控制和智能化停車(chē)場(chǎng)管理系統等方面,具有一定的參考價(jià)值。經(jīng)在某停車(chē)場(chǎng)智能管理系統中的實(shí)際運行,證明該設計方案是成功的。
評論