福建農(nóng)林大學(xué)機(jī)電工程學(xué)院 翁海勇 俞加明 葉大鵬
掉電數(shù)據(jù)保護(hù)是系統(tǒng)設(shè)備一個(gè)重要的功能。目前,掉電數(shù)據(jù)保護(hù)的方法主要有2種:(1)加足夠容量備用蓄電池,使系統(tǒng)掉電后繼續(xù)工作;(2)不加備用電池,把掉電時(shí)需要保護(hù)的數(shù)據(jù)存儲(chǔ)在非易失性存儲(chǔ)器中,如FLASH和EEPROM[3]。第一種方法器件體積大、費(fèi)用高并且蓄電池壽命短;第二種方法簡(jiǎn)單,但擦寫器件的壽命有限[4]。本設(shè)計(jì)在第二種的基礎(chǔ)上提出一種改進(jìn)方法,即利用LM358作為電壓比較器,當(dāng)檢測(cè)到系統(tǒng)掉電時(shí)才將數(shù)據(jù)寫入EEPROM中。該方法不僅實(shí)現(xiàn)了系統(tǒng)數(shù)據(jù)掉電的保護(hù),而且延長(zhǎng)了EEPROM的壽命。
如圖1,通過調(diào)節(jié)R2,使系統(tǒng)正常供電時(shí),Ua>Ub=3.5V,c端輸出高電平;當(dāng)系統(tǒng)掉電時(shí),因二極管D1的隔離,使LM358得不到供電。由于電容C2和電感L的存在,電容C2和電感L1繼續(xù)為單片機(jī)提供短暫時(shí)供電,并且因下拉電阻R5的存在,使得c端輸出低電平。用于觸發(fā)單片機(jī)INT0中斷。
根據(jù)STC12C5A60S2系列單片機(jī)資料[1],對(duì)EEPROM寫一個(gè)字節(jié)和擦除一個(gè)扇區(qū)所需的時(shí)間分別為55μs和21ms。正常模式下,典型功耗為2mA-7mA。5V單片機(jī)和3.3V單片機(jī)對(duì)EEPROM進(jìn)行操作的有效最低電壓分別為Umin=3.7V和Umin=2.4V。
系統(tǒng)掉電后,等效電路模型為RLC串聯(lián)回路[6]。放電過程時(shí)電路的微分方程為:
根據(jù)R、L和C的參數(shù)值的不同,可分為欠阻尼振蕩狀態(tài)、臨界阻尼狀態(tài)、過阻尼狀態(tài)。方程(1)的解可分為以下三種:
綜上所述:當(dāng)負(fù)載R一定時(shí),選取合適的電容和電感(本文選取C2=6600uf/25V、L1=0.1H)。L1和C2的具體參數(shù)可通過試驗(yàn)測(cè)試得到。只要uc(t)從初始狀態(tài)的uc(t)|t=0衰減到uc(t)|t=t0=Umin的時(shí)間大于維持觸發(fā)中斷對(duì)EEPROM進(jìn)行操作所需的時(shí)間t0就能滿足系統(tǒng)正常工作的要求。
主程序和中斷服務(wù)子程序流程圖分別如圖2和圖3所示。
與本設(shè)計(jì)有關(guān)的程序如下:
圖1 系統(tǒng)電路原理圖
圖2 主程序
圖3 中斷服務(wù)子程序
分析:系統(tǒng)掉電時(shí),INT0中斷被觸發(fā),在中斷服務(wù)子函數(shù)中對(duì)EEPROM進(jìn)行擦除和寫的操作。
該系統(tǒng)的實(shí)現(xiàn),應(yīng)用于二維運(yùn)動(dòng)控制平臺(tái)。系統(tǒng)掉電時(shí),X軸和Y軸坐標(biāo)以及其他參數(shù)被寫入EEPROM中。系統(tǒng)重新上電后,讀取出存儲(chǔ)在EEPROM里X軸和Y軸坐標(biāo)及其他參數(shù),工作平臺(tái)以該位置為起點(diǎn)繼續(xù)沿著原設(shè)定的位置運(yùn)動(dòng)。
本設(shè)計(jì)的核心就是基于LM358作為電壓比較器,檢測(cè)到系統(tǒng)掉電時(shí)才對(duì)EEPROM進(jìn)行擦寫,避免了每執(zhí)行一遍程序?qū)EPROM進(jìn)行擦除一次而造成其壽命短的問題。軟、硬件結(jié)構(gòu)設(shè)計(jì)簡(jiǎn)單,提高了系統(tǒng)的實(shí)用性。本文給出了典型的應(yīng)用程序,具有良好的可移植性。加入循環(huán)語句可以把多個(gè)數(shù)據(jù)存EEPROM或從EEPROM里讀出[2][5]。
[1]STC_8051單片機(jī)全球第一品牌.全球最大的8051單片機(jī)設(shè)計(jì)公司,http://www.mcu-memory.com/.
[2]王朝輝,陸楓.一種高可靠性的單片機(jī)掉電保護(hù)設(shè)計(jì)[J].武漢科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2006(8).
[3]武志軍.AVR單片機(jī)掉電數(shù)據(jù)保護(hù)應(yīng)用實(shí)例[J].電子世界,2010(10).
[4]張延寧,王琦.EEPROM在儀表系統(tǒng)應(yīng)用中的幾個(gè)問題[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(3).
[5]洪運(yùn)富,吳文全.汽車?yán)锍虜?shù)據(jù)的存儲(chǔ)算法研究[J].儀表技術(shù),2007(9).
[6]邱光源(原著),羅先覺(修訂).電路(第五版)[M].北京:高等教育出版社,2006(5).