掉電保護簡介
掉電數(shù)據(jù)保護是系統(tǒng)設(shè)備一個重要的功能。
傳輸文件進行 [薄膜開關(guān)] 打樣
目前,掉電數(shù)據(jù)保護的方法主要有2種:
?。ǎ保┘幼銐蛉萘總溆眯铍姵?,使系統(tǒng)掉電后繼續(xù)工作;
?。ǎ玻┎患觽溆秒姵兀训綦姇r需要保護的數(shù)據(jù)存儲在非易失性存儲器中,如FLASH和EEPROM。
第一種方法器件體積大、費用高并且蓄電池壽命短;第二種方法簡單,但擦寫器件的壽命有限。本文在第二種的基礎(chǔ)上提出一種改進方法,即利用LM358作為電壓比較器,當檢測到系統(tǒng)掉電時才將數(shù)據(jù)寫入EEPROM中。該方法不僅實現(xiàn)了系統(tǒng)數(shù)據(jù)掉電的保護,而且延長了EEPROM的壽命。
基于LM358的單片機掉電保護電路設(shè)計
傳輸文件進行 [薄膜開關(guān)] 打樣
如圖1,通過調(diào)節(jié)R2,使系統(tǒng)正常供電時,Ua》Ub=3.5V,c端輸出高電平;當系統(tǒng)掉電時,因二極管D1的隔離,使LM358得不到供電。由于電容C2和電感L的存在,電容C2和電感L1繼續(xù)為單片機提供短暫時供電,并且因下拉電阻R5的存在,使得c端輸出低電平。用于觸發(fā)單片機INT0中斷。
根據(jù)STC12C5A60S2系列單片機資料,對EEPROM寫一個字節(jié)和擦除一個扇區(qū)所需的時間分別為55μs和21ms。正常模式下,典型功耗為2mA-7mA。5V單片機和3.3V單片機對EEPROM進行操作的有效最低電壓分別為Umin=3.7V和Umin=2.4V。
系統(tǒng)掉電后,等效電路模型為RLC串聯(lián)回路。放電過程時電路的微分方程為:
根據(jù)R、L和C的參數(shù)值的不同,可分為欠阻尼振蕩狀態(tài)、臨界阻尼狀態(tài)、過阻尼狀態(tài)。上面的方程可分為以下三種:
綜上所述:當負載R一定時,選取合適的電容和電感(本文選取C 2 =6600uf/25V、L 1 =0.1H)。L 1 和C 2 的具體參數(shù)可通過試驗測試得到。只要u c (t)從初始狀態(tài)的u c (t)| t=0 衰減到u c (t)| t=t0 =U min 的時間大于維持觸發(fā)中斷對EEPROM進行操作所需的時間t0就能滿足系統(tǒng)正常工作的要求。
單片機軟件設(shè)計
主程序和中斷服務(wù)子程序流程圖分別如下圖2和圖3所示。
傳輸文件進行 [薄膜開關(guān)] 打樣
圖2:主程序
傳輸文件進行 [薄膜開關(guān)] 打樣
圖3:中斷服務(wù)子程序
與本設(shè)計有關(guān)的程序如下:
void main(void)
{
??
Byte_Read(Address);
While(1)
{??}
}
void INT0_int()interrupt 0
{
Sector_Erase(Address);
Byte_Program(Address,Date);
Delay(XX); //延時,確保系統(tǒng)可靠
}
分析:系統(tǒng)掉電時,INT0中斷被觸發(fā),在中斷服務(wù)子函數(shù)中對EEPROM進行擦除和寫的操作。
總結(jié)
該系統(tǒng)的實現(xiàn),應(yīng)用于二維運動控制平臺。系統(tǒng)掉電時,X軸和Y軸坐標以及其他參數(shù)被寫入EEPROM中。系統(tǒng)重新上電后,讀取出存儲在EEPROM里X軸和Y軸坐標及其他參數(shù),工作平臺以該位置為起點繼續(xù)沿著原設(shè)定的位置運動。
本文的核心就是基于LM358作為電壓比較器,檢測到系統(tǒng)掉電時才對EEPROM進行擦寫,避免了每執(zhí)行一遍程序?qū)EPROM進行擦除一次而造成其壽命短的問題。軟、硬件結(jié)構(gòu)設(shè)計簡單,提高了系統(tǒng)的實用性。
本文給出了典型的應(yīng)用程序,具有良好的可移植性。加入循環(huán)語句可以把多個數(shù)據(jù)存EEPROM或從EEPROM里讀出。