《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)系統(tǒng)中RAM數(shù)據(jù)掉電保護(hù)的處理方法
單片機(jī)系統(tǒng)中RAM數(shù)據(jù)掉電保護(hù)的處理方法
摘要: 在測量,、控制等領(lǐng)域的應(yīng)用中,,常要求單片機(jī)內(nèi)部和外部RAM中的數(shù)據(jù)在電源掉電時(shí)不丟失,重新加電時(shí),,RAM中的數(shù)據(jù)能夠保存完好,,這就要求對單片機(jī)系統(tǒng)加接掉電保護(hù)電路,。掉電保護(hù)通常可采用以下三種方法:一是加接不間斷電源,;二是采用備份電源,;三是采用EEPROM來保存數(shù)據(jù),。
Abstract:
Key words :

  在測量、控制等領(lǐng)域的應(yīng)用中,,常要求單片機(jī)內(nèi)部和外部RAM中的數(shù)據(jù)在電源掉電時(shí)不丟失,,重新加電時(shí),RAM中的數(shù)據(jù)能夠保存完好,,這就要求對單片機(jī)系統(tǒng)加接掉電保護(hù)電路,。掉電保護(hù)通常可采用以下三種方法:一是加接不間斷電源,,讓整個(gè)系統(tǒng)在掉電時(shí)繼續(xù)工作,,二是采用備份電源,掉電后保護(hù)系統(tǒng)中全部或部分?jǐn)?shù)據(jù)存儲單元的內(nèi)容,;三是采用EEPROM來保存數(shù)據(jù),。由于第一種方法體積大、成本高,,對單片機(jī)系統(tǒng)來說,,不宜采用。第二種方法是根據(jù)實(shí)際需要,,掉電時(shí)保存一些必要的數(shù)據(jù),,使系統(tǒng)在電源恢復(fù)后,能夠繼續(xù)執(zhí)行程序,,因而經(jīng)濟(jì)實(shí)用,,故大量采用[1]。EEPROM既具有ROM掉電不丟失數(shù)據(jù)的特點(diǎn),,又有RAM隨機(jī)讀寫的特點(diǎn),。但由于其讀寫速度與讀寫次數(shù)的限制,使得EEPROM不能完全代替RAM,。下面將介紹最常用的一些掉電保護(hù)的處理方法,,希望能對相關(guān)設(shè)計(jì)人員在實(shí)際工作中有所幫助。

 

  1 簡單的RAM數(shù)據(jù)掉電保護(hù)電路

 

  在具有掉電保護(hù)功能的單片機(jī)系統(tǒng)中,,一般采用CMOS單片機(jī)和CMOS RAM,。CMOS型RAM存儲器靜態(tài)電源小,在正常工作狀態(tài)下一般由電源向片外 RAM供電,,而在斷電狀態(tài)下由小型蓄電池向片外RAM供電,,以保存有用數(shù)據(jù),采用這種方法保存數(shù)據(jù),,時(shí)間一般在3-5個(gè)月[2],。然而,系統(tǒng)在上電及斷電過程中,總線狀態(tài)的不確定性往往導(dǎo)致RAM內(nèi)某些數(shù)據(jù)的變化,,即數(shù)據(jù)受到?jīng)_失,。因此對于斷電保護(hù)數(shù)據(jù)用的RAM存儲器,除了配置供電切換電路外,,還要采取數(shù)據(jù)防沖失措施,,當(dāng)電源突然斷電時(shí),電壓下降有個(gè)過程,,CPU在此過程中會失控,,可能會誤發(fā)出寫信而沖失RAM中的數(shù)據(jù),僅有電池是不能有效完成數(shù)據(jù)保護(hù)的,,還需要對片選信號加以控制,保證整個(gè)切換過程中CS引腳的信號一直保持接近VCC,。通常,,采用在RAM的CS和VCC引腳之間接一個(gè)電阻來實(shí)現(xiàn) COMS RAM的電源切換,然而,,如果在掉電時(shí),,譯碼器的輸出出現(xiàn)低電平,就可能出現(xiàn)問題,,圖1給出一種簡單的電路設(shè)計(jì),,它能夠避免上述問題的產(chǎn)生。

  圖1中,,4060開關(guān)電路起到對CS控制的作用,。當(dāng)電壓小于等于4.5V時(shí)就使開關(guān)斷開,CS線上拉至“1”,,這樣,,RAM中的數(shù)據(jù)就不會沖失;當(dāng)電壓大于4.5V時(shí),,4060開關(guān)接通,,使RAM能正常進(jìn)行讀寫。

 

  4060開關(guān)電路

 

  2 可靠的RAM掉電保護(hù)電路

 

  上述的電路雖然簡單,,但有時(shí)可能起不到RAM掉電保護(hù)的作用,,原因是在電源掉電和重新加電的過程中,電源電壓躍變的干擾可能使RAM瞬間處于讀寫狀態(tài),,使原來RAM中的數(shù)據(jù)遭到破壞,,因此,在掉電剛剛開始以及重新加電直到電源電壓保持穩(wěn)定下來之前,,RAM應(yīng)處于數(shù)據(jù)保持狀態(tài),,6264 RAM、 5101 RAM等RAM芯片上都有一個(gè)CE2引腳,在一般情況下需將此引腳拉高,,當(dāng)把該引腳拉至小于或等于0.2V時(shí),,RAM就進(jìn)入數(shù)據(jù)保持狀態(tài)。

  實(shí)用的靜態(tài)RAM掉電保護(hù)電路如圖2所示,,圖2中U1,、U2為電壓比較器,穩(wěn)壓管D3提供一個(gè)基準(zhǔn)電壓Vr(Vr= 3.5V),。當(dāng)Vcc為5V時(shí),,在R4上得到的分壓大于Vr,U2輸出高電平,,又因?yàn)閁4輸出也為高電平,,故CE2輸出為高電位,單片機(jī)此時(shí)可對RAM進(jìn)行存取,,當(dāng)電源掉電時(shí),,Vcc開始下降,當(dāng)滿足如下條件時(shí):

  R4×Vcc/[(R4+R3)/(R5+R6)]≥Vr

 

  電壓比較器

  

 

  U2 輸出低電平,,通過U5和U6使CE2輸出小于等于0.2V,,RAM進(jìn)入數(shù)據(jù)保持狀態(tài)(按圖2中元件參數(shù)代入上式,當(dāng)Vcc降到4.7V時(shí),,U2輸出為低電位),。若Vcc繼續(xù)下降使U3翻轉(zhuǎn),再通過D4,、U4和U6進(jìn)一步保證CE2為低電平,。此外,當(dāng)Vcc下降到小于E時(shí),,D2截止,,D1導(dǎo)通,這時(shí)E作為 RAM的備份電源,,當(dāng)單片機(jī)重新加電時(shí),,Vcc由0躍變到5V時(shí),U2的輸出端會出現(xiàn)瞬間的干擾脈沖,,由于U3和U4間電路的積分延遲(約0.7RC),, CE2并不立即升到高電平,因而阻止了U2的干擾脈沖,,當(dāng)延時(shí)結(jié)束時(shí),,電源電壓已穩(wěn)定在5V,此后CE2升高,,單片機(jī)便可對RAM進(jìn)行存取,。圖2中U3和 U6為一塊四施秘特與非門(CD4093),,該電路直接由E供電,這樣才能保證掉電后使CE2≤0.2V,,并在重新加電時(shí)CE2不受電源電壓躍變的干擾,,比較器U1和U2為電源供電,Vcc為后備電源U1的電壓監(jiān)視電路,,當(dāng)后備電池快用完時(shí)(小于3.5V),,發(fā)光管會發(fā)出亮光,表明要換上新電池,,備份電源可用3節(jié)5號干電池,,也可以采用鋰電池或鎳電池。

 

  在測量,、控制等領(lǐng)域的應(yīng)用中,,常要求單片機(jī)內(nèi)部和外部RAM中的數(shù)據(jù)在電源掉電時(shí)不丟失,重新加電時(shí),,RAM中的數(shù)據(jù)能夠保存完好,,這就要求對單片機(jī)系統(tǒng)加接掉電保護(hù)電路。掉電保護(hù)通??刹捎靡韵氯N方法:一是加接不間斷電源,讓整個(gè)系統(tǒng)在掉電時(shí)繼續(xù)工作,,二是采用備份電源,,掉電后保護(hù)系統(tǒng)中全部或部分?jǐn)?shù)據(jù)存儲單元的內(nèi)容;三是采用EEPROM來保存數(shù)據(jù),。由于第一種方法體積大,、成本高,對單片機(jī)系統(tǒng)來說,,不宜采用,。第二種方法是根據(jù)實(shí)際需要,掉電時(shí)保存一些必要的數(shù)據(jù),,使系統(tǒng)在電源恢復(fù)后,,能夠繼續(xù)執(zhí)行程序,因而經(jīng)濟(jì)實(shí)用,,故大量采用[1],。EEPROM既具有ROM掉電不丟失數(shù)據(jù)的特點(diǎn),又有RAM隨機(jī)讀寫的特點(diǎn),。但由于其讀寫速度與讀寫次數(shù)的限制,,使得EEPROM不能完全代替RAM。下面將介紹最常用的一些掉電保護(hù)的處理方法,,希望能對相關(guān)設(shè)計(jì)人員在實(shí)際工作中有所幫助,。

 

  1 簡單的RAM數(shù)據(jù)掉電保護(hù)電路

 

  在具有掉電保護(hù)功能的單片機(jī)系統(tǒng)中,,一般采用CMOS單片機(jī)和CMOS RAM。CMOS型RAM存儲器靜態(tài)電源小,,在正常工作狀態(tài)下一般由電源向片外 RAM供電,,而在斷電狀態(tài)下由小型蓄電池向片外RAM供電,以保存有用數(shù)據(jù),,采用這種方法保存數(shù)據(jù),,時(shí)間一般在3-5個(gè)月[2]。然而,,系統(tǒng)在上電及斷電過程中,,總線狀態(tài)的不確定性往往導(dǎo)致RAM內(nèi)某些數(shù)據(jù)的變化,即數(shù)據(jù)受到?jīng)_失,。因此對于斷電保護(hù)數(shù)據(jù)用的RAM存儲器,,除了配置供電切換電路外,還要采取數(shù)據(jù)防沖失措施,,當(dāng)電源突然斷電時(shí),,電壓下降有個(gè)過程,CPU在此過程中會失控,,可能會誤發(fā)出寫信而沖失RAM中的數(shù)據(jù),,僅有電池是不能有效完成數(shù)據(jù)保護(hù)的,還需要對片選信號加以控制,,保證整個(gè)切換過程中CS引腳的信號一直保持接近VCC,。通常,采用在RAM的CS和VCC引腳之間接一個(gè)電阻來實(shí)現(xiàn) COMS RAM的電源切換,,然而,,如果在掉電時(shí),譯碼器的輸出出現(xiàn)低電平,,就可能出現(xiàn)問題,,圖1給出一種簡單的電路設(shè)計(jì),它能夠避免上述問題的產(chǎn)生,。

  圖1中,,4060開關(guān)電路起到對CS控制的作用。當(dāng)電壓小于等于4.5V時(shí)就使開關(guān)斷開,,CS線上拉至“1”,,這樣,RAM中的數(shù)據(jù)就不會沖失,;當(dāng)電壓大于4.5V時(shí),,4060開關(guān)接通,使RAM能正常進(jìn)行讀寫,。

 

  4060開關(guān)電路

 

  2 可靠的RAM掉電保護(hù)電路

 

  上述的電路雖然簡單,,但有時(shí)可能起不到RAM掉電保護(hù)的作用,,原因是在電源掉電和重新加電的過程中,電源電壓躍變的干擾可能使RAM瞬間處于讀寫狀態(tài),,使原來RAM中的數(shù)據(jù)遭到破壞,,因此,在掉電剛剛開始以及重新加電直到電源電壓保持穩(wěn)定下來之前,,RAM應(yīng)處于數(shù)據(jù)保持狀態(tài),,6264 RAM、 5101 RAM等RAM芯片上都有一個(gè)CE2引腳,,在一般情況下需將此引腳拉高,,當(dāng)把該引腳拉至小于或等于0.2V時(shí),RAM就進(jìn)入數(shù)據(jù)保持狀態(tài),。

  實(shí)用的靜態(tài)RAM掉電保護(hù)電路如圖2所示,,圖2中U1、U2為電壓比較器,,穩(wěn)壓管D3提供一個(gè)基準(zhǔn)電壓Vr(Vr= 3.5V),。當(dāng)Vcc為5V時(shí),在R4上得到的分壓大于Vr,,U2輸出高電平,,又因?yàn)閁4輸出也為高電平,故CE2輸出為高電位,,單片機(jī)此時(shí)可對RAM進(jìn)行存取,,當(dāng)電源掉電時(shí),Vcc開始下降,,當(dāng)滿足如下條件時(shí):

  R4×Vcc/[(R4+R3)/(R5+R6)]≥Vr

 

  電壓比較器

  

 

  U2 輸出低電平,通過U5和U6使CE2輸出小于等于0.2V,,RAM進(jìn)入數(shù)據(jù)保持狀態(tài)(按圖2中元件參數(shù)代入上式,,當(dāng)Vcc降到4.7V時(shí),U2輸出為低電位),。若Vcc繼續(xù)下降使U3翻轉(zhuǎn),,再通過D4、U4和U6進(jìn)一步保證CE2為低電平,。此外,,當(dāng)Vcc下降到小于E時(shí),D2截止,,D1導(dǎo)通,,這時(shí)E作為 RAM的備份電源,當(dāng)單片機(jī)重新加電時(shí),,Vcc由0躍變到5V時(shí),,U2的輸出端會出現(xiàn)瞬間的干擾脈沖,,由于U3和U4間電路的積分延遲(約0.7RC), CE2并不立即升到高電平,,因而阻止了U2的干擾脈沖,,當(dāng)延時(shí)結(jié)束時(shí),電源電壓已穩(wěn)定在5V,,此后CE2升高,,單片機(jī)便可對RAM進(jìn)行存取。圖2中U3和 U6為一塊四施秘特與非門(CD4093),,該電路直接由E供電,,這樣才能保證掉電后使CE2≤0.2V,并在重新加電時(shí)CE2不受電源電壓躍變的干擾,,比較器U1和U2為電源供電,,Vcc為后備電源U1的電壓監(jiān)視電路,當(dāng)后備電池快用完時(shí)(小于3.5V),,發(fā)光管會發(fā)出亮光,,表明要換上新電池,備份電源可用3節(jié)5號干電池,,也可以采用鋰電池或鎳電池,。

 

  3 利用TL7705對現(xiàn)場數(shù)據(jù)進(jìn)行保護(hù)

 

  單片機(jī)構(gòu)成的應(yīng)用系統(tǒng)在突然斷電時(shí),往往使片內(nèi)RAM數(shù)據(jù)遭到破壞,,下面介紹一種利用TL7705構(gòu)成的電源監(jiān)控電路,,使單片機(jī)系統(tǒng)在掉電時(shí)自動保護(hù)現(xiàn)場數(shù)據(jù)。

  3.1 TL7705的工作原理

  TL7705 是電源監(jiān)控用集成電路,,采用8腳雙列直插式封裝,,其內(nèi)部結(jié)構(gòu)圖3所示。圖3中,,基準(zhǔn)電壓發(fā)生器具有較高的穩(wěn)定性,,可由1腳輸出2.5V基準(zhǔn)電壓,為了吸收電源的同脈沖干擾,,通常在1腳上接一個(gè)0.1μF的濾波電容來提高其抗干擾能力,,被監(jiān)控的電源電壓由SENSE端7腳引入,經(jīng)過R1和R2分壓后送入比較器CMP1,,與基準(zhǔn)電壓進(jìn)行比較,,當(dāng)其值小于基準(zhǔn)電壓時(shí),T1導(dǎo)通,,定時(shí)電容CT通過T1放電,,使CMP2比較器翻轉(zhuǎn),T2和T3導(dǎo)通,,輸出腳RESET 為高電平,,SESET反為低電平,,當(dāng)送入CMP1比較器的電壓高于基準(zhǔn)電壓時(shí),T1截止100μA恒流源給CT充電,,當(dāng)CT上的電壓高于2.5V時(shí),, CMP2比較器翻轉(zhuǎn),T2和T3截止,,RESET和RESET反輸出關(guān)斷,。

  3.2 TL7705與80C51單片機(jī)的接法

  在某些單片機(jī)應(yīng)用系統(tǒng)中需要在系統(tǒng)掉電時(shí)記憶當(dāng)前現(xiàn)場狀態(tài),以使電源恢復(fù)后能繼續(xù)從斷電處運(yùn)行,,圖4是以80C51單片機(jī)為例采用其空閑方式或掉電方式,,在備用電池支持下實(shí)現(xiàn)掉電后的數(shù)據(jù)保護(hù)。

 

  空閑掉電方式

 

  圖4中,,R1,、C1和74LSO4構(gòu)成單片機(jī)的上電自動復(fù)位和手動按鈕復(fù)位電路,備用電池P1及D1,、D2實(shí)現(xiàn)掉電時(shí)備用電池的切換,。電源正常時(shí)D1不導(dǎo)通,+5V直接給單片機(jī)供電,,并為電池P1充電,,為了減小電池耗電,備用電池只給單片機(jī)供電,,保護(hù)片內(nèi)RAM中的數(shù)據(jù),,電源掉電后,其他外圍電路的工作電壓僅靠電源電容維持很短的時(shí)間,,電位器RW用來調(diào)節(jié)檢測電壓,,范圍為4.5-4.75V,當(dāng)?shù)綦姇r(shí),,外圍電路的電壓下降到門限設(shè)定電壓時(shí),,可將片外RAM 中需要保護(hù)的數(shù)據(jù)寫入片內(nèi)RAM中,并使單片機(jī)進(jìn)入掉電工作方式以完成數(shù)據(jù)保護(hù),,為了保證單片機(jī)有足夠的處理時(shí)間,取檢測電壓為4.75V,,當(dāng)電源電壓降至4.75V時(shí),,TL7705由RESET反向單片機(jī)發(fā)出中斷請求信號(INTO反)。單片機(jī)運(yùn)行到一個(gè)可斷斷點(diǎn)后,,相應(yīng)中斷,,在中斷服務(wù)程序中保護(hù)現(xiàn)場數(shù)據(jù),使單片機(jī)進(jìn)入掉電工作狀態(tài),。

 

  4 采用軟件冗余措施保證數(shù)據(jù)的準(zhǔn)確性

 

  最常用的一種方法是采用軟件冗余措施,,即將欲保護(hù)的數(shù)據(jù)寫入RAM中的不同區(qū)域,,如0000H-00FFH、0100H-01FFH和0200H- 02FFH這三個(gè)區(qū)域存儲同樣一組數(shù)據(jù),,當(dāng)使用這些數(shù)據(jù)前,,先對各組進(jìn)行檢查,對于正確的數(shù)據(jù)方可應(yīng)用,,同時(shí)將錯(cuò)誤的數(shù)據(jù)進(jìn)行修正,,在上電與斷電過程中,總線不確寫性是隨機(jī)的,,不可將所有數(shù)據(jù)完全沖失,。采用硬件對數(shù)據(jù)進(jìn)行斷電保護(hù),同時(shí)在軟件上采用冗余的措施是最常用的數(shù)據(jù)保護(hù)方法,,在斷電突然發(fā)生時(shí)可保證數(shù)據(jù)的準(zhǔn)確無誤,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。