1. 哪些情況需要用到掉電保護(hù)功能
在大多數(shù)工控應(yīng)用中,由于各種復(fù)雜的環(huán)境因素,使工控設(shè)備不可避免的會(huì)面臨供電突然斷掉的情況。為了可以保證系統(tǒng)運(yùn)行狀態(tài)確定性以及記錄數(shù)據(jù)完整性,當(dāng)系統(tǒng)供電恢復(fù)后,現(xiàn)場(chǎng)數(shù)據(jù)可以及時(shí)恢復(fù),避免應(yīng)用系統(tǒng)產(chǎn)生混亂。為了保證保存數(shù)據(jù)的實(shí)時(shí)性,現(xiàn)場(chǎng)數(shù)據(jù)的存儲(chǔ)頻率還會(huì)非常高,因此還要求數(shù)據(jù)保存的速度應(yīng)足夠快,從而不影響應(yīng)用程序的正常運(yùn)行。
對(duì)目前的非易失性存儲(chǔ)器,NandFlash、NorFlash、EEPROM,有一定的擦寫壽命限制,而且寫入速度也不高,不利于現(xiàn)場(chǎng)數(shù)據(jù)實(shí)時(shí)保存。但是成本較低。
對(duì)于一些成本較高的非易失性存儲(chǔ)器,例如鐵電存儲(chǔ)器,不利于降低產(chǎn)品的成本;而且容量也不大。
對(duì)目前的易失性存儲(chǔ)器如DDR,數(shù)據(jù)寫入和讀取速度都非常的高,不過(guò)掉電后,數(shù)據(jù)將會(huì)全部掉失。如果使用一個(gè)后備電池的話,使得DDR一直通電,數(shù)據(jù)就不會(huì)掉失。但是電池有充電和放電時(shí)間,使用壽命的限制。也不利于產(chǎn)品的維護(hù)和降低成本。
因此本文提出一種“NandFlash + DDR + 法拉電容(又叫超級(jí)電容)”的低成本,高可靠性的解決方案。NandFlash(SLC)具有擦除次數(shù)高,達(dá)10萬(wàn)次,數(shù)據(jù)存儲(chǔ)時(shí)間長(zhǎng),成本低等特點(diǎn),被大多數(shù)嵌入式工控機(jī)所使用。
2. 實(shí)現(xiàn)的原理
如果能預(yù)知掉電的發(fā)生,并能夠利用超級(jí)電容繼續(xù)為最小系統(tǒng)供電2秒鐘。側(cè)可以在有外電時(shí)把實(shí)時(shí)性比較高的數(shù)據(jù)保存在內(nèi)存DDR里。獲得掉電發(fā)生時(shí),在超級(jí)電容供電的2秒鐘里,把內(nèi)存的一些重要的數(shù)據(jù)和現(xiàn)場(chǎng)運(yùn)行狀態(tài)數(shù)據(jù)打包成文件保存到NandFlash存儲(chǔ)器。以保證工控設(shè)備在供電回復(fù)后能繼續(xù)正常運(yùn)行。基于這個(gè)原理廣州市微嵌計(jì)算機(jī)科技有限公司生產(chǎn)的8寸WINCE工業(yè)平板電腦(WLT_TFT8060_080)已經(jīng)實(shí)現(xiàn)了這個(gè)掉電保護(hù)功能。只需要在購(gòu)買時(shí)選配這個(gè)掉電保護(hù)模塊就可以了。
上圖中的+5V為外部供電電源,+3.3V給CPU、NandFlash和DDRII 供電,C3為超級(jí)電容(法拉電容)。外部供電后,D3導(dǎo)通前,通過(guò)R1,R2充電;D3導(dǎo)通后,通過(guò)R1、D3快速通電;電容電壓上升到4.7V左右后,通過(guò)R1、R2緩慢充電。+5V系統(tǒng)掉電時(shí), U1是一個(gè)復(fù)位芯片,電壓低于4.2V后,RST腳立刻產(chǎn)生一個(gè)低電平通知CPU,同時(shí) C3通過(guò)D2放電,維持核心系統(tǒng)工作至少2S。CPU可以有2S以上的時(shí)間充分保存現(xiàn)場(chǎng)的數(shù)據(jù)。
4. 軟件的編程
本公司提供一個(gè)動(dòng)態(tài)庫(kù)“PwLostSave.dll”,用戶只需要在應(yīng)用程序中使用該庫(kù)的兩個(gè)函數(shù)即可。
“PwLostSave.dll”的函數(shù)定義在“PwLostSave.h”頭文件中。提供了兩個(gè)函數(shù):
BOOL InitPowLostSave(void (*lpfnNotify)(void), DWORD dwpriority);
功能說(shuō)明:注冊(cè)和初始化掉電通知功能,該函數(shù)只能執(zhí)行一次。
BOOL CheckPowerOn(DWORD dwChkTimes);
功能說(shuō)明:用于檢測(cè)外部電源是否重新供電。一般用于 用戶編寫的函數(shù)lpfnNotify(回調(diào)函數(shù))中。
5. 軟件說(shuō)明
一般掉電保護(hù)是強(qiáng)實(shí)時(shí)性的任務(wù),可以通過(guò)觸發(fā)中斷的方式來(lái)獲得Windows CE操作系統(tǒng)的服務(wù)。
用戶在回調(diào)函數(shù)“l(fā)pfnNotify”中實(shí)現(xiàn)自己編寫的掉電處理程序即可。
6. 總結(jié)
使用廣州市微嵌計(jì)算機(jī)科技有限公司生產(chǎn)的8寸WINCE工業(yè)平板電腦(WLT_TFT8060_080),測(cè)試結(jié)果如下。在上電2分鐘后,電容充電,掉電后可以保存到Nandflash的數(shù)據(jù)大小約為800Kb;上電10分鐘后,電容充分充電,可以保存到Nandflash的數(shù)據(jù)大小約為3Mb。當(dāng)然,如果用戶在回調(diào)函數(shù)“l(fā)pfnNotify”中處理過(guò)多的內(nèi)容,則影響保存數(shù)據(jù)量。
對(duì)于實(shí)時(shí)采集數(shù)據(jù)的用戶來(lái)說(shuō),應(yīng)先將數(shù)據(jù)保存到DDR中,當(dāng)達(dá)到一定大小,例如1M,立刻將數(shù)據(jù)寫入到NandFlash。系統(tǒng)掉電時(shí)候,將剩余的數(shù)據(jù)在“l(fā)pfnNotify”中保存到NandFlash即可。
技術(shù)支持企業(yè)QQ:800005447
附件:
新款WLT_TFT8060_080使用說(shuō)明.pdf http://dl.dbank.com/c0glnjhjz3