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