ATmegal28擴展512KB掉電保護SRAM方案
如今,電子技術發(fā)展迅猛,尤其是單片機已廣泛地應用于通信、交通、家用電器、便攜式智能儀表和機器人制作等領域,產(chǎn)品功能、精度和質(zhì)量均有大幅度提高,且電路簡單,故障率低,可靠性高,價格低廉。在單片機的某些應用中,如果不對系統(tǒng)的外部SRAM進行擴展,就不能滿足系統(tǒng)設計的要求。因此如何擴展、擴展什么類型的芯片、擴展的容量多大就成為值得考慮的問題。這個問題解決的好與壞直接關系到項目的成敗。本文介紹在AVR ATmegal28中如何實現(xiàn)擴展掉電數(shù)據(jù)不丟失的512 KB SRAM的方案。
本文引用地址:http://m.butianyuan.cn/article/78882.htm1 系統(tǒng)硬件結構
單片機采用的是Atmel公司生產(chǎn)的ATmegal28,其引腳排列如圖l所示。ATmegal 28單片機為基于AVR RISC結構的8位低功耗CMOS微處理器,憑借先進的指令集以及單周期指令執(zhí)行時間,其數(shù)據(jù)吞吐率高達1MIPS/MHz,可以緩解系統(tǒng)的功耗和處理速度之間的矛盾。AVR單片機內(nèi)核具有豐富的指令集和32個通用工作寄存器,所有的寄存器都直接與算術邏輯單元(ALU)相連接,使得一條指令可以在一個時鐘周期內(nèi)同時訪問兩個獨立的寄存器。這種結構大大提高了代碼效率,并且具有比普通的復雜
指令集微處理器高10倍的數(shù)據(jù)吞吐量。ATmegal28單片機內(nèi)置:128 KB的在系統(tǒng)可編程Flash程序存儲器,具有在寫的過程中還可以讀的能力,即同時讀寫(RWW);4 KB的EEPROM;4 KB的SRAM;53個通用I/O端口線;32個通用工作寄存器;實時時鐘(RTC);4個靈活的具有比較模式和PWM功能的定時器/計數(shù)器(T/c);2個UJSART;面向字節(jié)的兩線接口(TWI);8通道10位ADC;可選的可編程增益;片內(nèi)振蕩器的可編程看門狗定時器;串行外圍設備接口(SPI);與IEEEll49.1規(guī)范兼容的JTAG測試接口,此接口同時還可以用于片上調(diào)試;6種可以通過軟件選擇的省電模式。
SRAM接口電路由鎖存器74AHC573D和BS62LV1006SIP55組成,如圖2所示。XRAM接口的工作頻率很高,當系統(tǒng)的工作條件高于8 MHz@4 V(4 V電源電壓,8 MHz工作頻率)和4 MHz@2.7 V(2.7 V電源電壓。4 MHz工作頻率)時,要小心地選擇地址鎖存器。此時,典型的74HC系列鎖存器已經(jīng)無法滿足要求。XRAM接口與74AHC系列的鎖存器相兼容。BS62LV4006SIP55是BSI的高效率、低功耗CMOS靜態(tài)隨機訪問存儲器,能適應2.4~5.5 V的大范圍工作電壓,具有典型CMOS的高效率低功耗特性;在3.0V/25℃的條件下電流為0.25μA,在3.0V/85℃的條件下,最長訪問時間為55 ns。通過片選CE信號、輸出使能OE信號和三態(tài)輸出驅動,可以很方便地進行SRAM擴展。當BS62LV4006SIP55處于未片選狀態(tài)時,它具有自動降低功耗的特性。
掉電數(shù)據(jù)保護電路由SA56600-42D接口電路、DS1302ZN接口電路和預警比較電路組成,電路原理圖如圖3所示。SA56600-42D是Philips公司生產(chǎn)的為保護SRAM中數(shù)據(jù)的集成芯片;DS1302ZN則是DALLAS公司生產(chǎn)的實時時鐘(RTC),但它還具有可編程控制的充電器的功能,通過第8腳能為鋰電池進行控制充電;預警比較電路有保護現(xiàn)場數(shù)據(jù)的作用,當外部電壓低于10V時,模擬比較器就會觸發(fā)中斷,從而把現(xiàn)場數(shù)據(jù)保護到外擴SRAM或EEPROM中。
2 工作原理
在主函數(shù)main()中,對I/O口、計時器、A/D轉換器、模擬比較器、RTC DSl302和外擴SRAM等進行初始化。對外擴的SRAM進行訪問時,通過PD5~PD7確定頁面地址,再根據(jù)A口、C口的第二功能訪問外部SRAM的指定地址,這部分在程序清單中有簡單的例子。有一點要注意,外部存儲器映射到內(nèi)部存儲器之后,在缺省條件下MCU只能訪問每頁的60 KB外部存儲器(地址0x0000~0xlOFF為內(nèi)部存儲器所保留)。然而,可以利用屏蔽高位地址的方法來訪問整個64 KB外部存儲器。這點對于跨頁訪問要特別注意。
在計時器中斷程序中,每隔一段設定的時間就要調(diào)用一次A/D轉換,以獲得鋰電池的電壓。在A/D中斷處理函數(shù)中對獲得的鋰電池電壓進行處理。如果獲得的鋰電池的電壓低于一個設定的值,則調(diào)用DSl302的90H命令對鋰電池進行充電;如果鋰電池電壓高于設定的值,則調(diào)用DSl302的91H命令,獲得寄存器對應TCS3~TCSl位的值,判斷DS1302是否對電池充電。如果在充電,就凋用DSl302的90H命令,結束對電池充電。
當預警比較電路中ATNl的電壓低于AIN0時,觸發(fā)模擬比較器中斷。在此中斷處理函數(shù)中把內(nèi)部SRAM的數(shù)據(jù)備份到外部的SRAM或者EEPROM中,從而防止因外部電源掉電造成數(shù)據(jù)丟失。
當外部電源掉電或恢復供電時,SA56600-42D會自動切換外擴SRAM的供電。在外部電壓低于4.2 V時,SA56600-42D會使外擴SRAM處于未使能狀態(tài),使SRAM不能訪問;在外部電壓低于3.3 V時,SA5660042D會自動切換到鋰電池為外擴SRAM供電,達到保護外擴SRAM中數(shù)據(jù)的同的;在外部電壓高于4.2 V時,SA56600-42D會自動切換到主電源為外擴SRAM供電。
3 本系統(tǒng)的優(yōu)點
①使用高性能RISC架構的AVR ATmegal28單片機,從硬件上克服了傳統(tǒng)單片機在處理能力、外圍接口能力上的不足,可以實現(xiàn)復雜的程序控制。
?、谕鈹USRAM達到512 KB,突破了傳統(tǒng)的64KB尋址范圍的限制。這對單片機來說有很重要的現(xiàn)實意義。
?、弁鈹USRAM且實現(xiàn)掉電數(shù)據(jù)保護功能。相對于擴充EEPROM的系統(tǒng),本系統(tǒng)的反應要快很多。
?、軕帽痉桨福谀承梅矫婢筒恍枰褂肁RM微處理器,從而達到降低系統(tǒng)成本和開發(fā)難度的目的。
程序清單見本刊網(wǎng)站www.mesnet.com.cn——編者注。
結語
采用本系統(tǒng)的擴展外部SRAM的方案,既能保證系統(tǒng)的響應速度,又能保證數(shù)據(jù)的安全性。本設計方案具有硬件結構簡單、成本低等優(yōu)勢,在顯示、語音、交通控制和智能化停車場管理系統(tǒng)等方面,具有一定的參考價值。經(jīng)在某停車場智能管理系統(tǒng)中的實際運行,證明該設計方案是成功的。
評論