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