記錄數據的可靠性,通常只考慮到突然掉電、寫入不完全等,往往忽略了存儲器件的使用壽命。存儲器件的擦除次數壽命是行業公認的客觀事實,工程師只能盡量的符合器件使用規范,以免過快損耗擦寫壽命。
Nand-Flash/eMMC(帶有Flash控制器的Nand-Flash)作為一種非線性宏單元模式存儲器,為固態大容量存儲的實現提供了廉價有效的解決方案。Nand-Flash存儲器具有容量大,改寫速度快等優點,適用于大量數據的存儲,因而越來越廣泛地應用在如嵌入式產品、智能手機、云端存儲資料庫等業界各領域。
圖1 Nand-Flash與eMMC芯片
存儲器件使用壽命
使用了Nand-Flash的主板出現丟數據掉程序現象,是一個讓無數工程師毛骨悚然的事故。眼看著程序用著用著就消失了,只能干著急也無法下手。有經驗的工程師手起刀落換上一顆新物料,熬夜補代碼繼續撐過半個項目周期。回頭無處發泄還要大刀闊斧換廠商、換品牌。與其換幾片Nand-Flash還能負擔得起,但畢竟這是一個無底洞,不如去深入探明問題原因,不然散盡家財也無法彌補虧空。
器件數據手冊中通常描述Nand-Flash的塊擦寫壽命達10萬次,EMMC的塊擦寫最高也會有1萬次;同理,EEPROM、SD卡、CF卡、U盤、Flash硬盤等存儲介質在都存在寫壽命的問題。在文件系統向寫數據的底層存儲器塊寫數據時,常規會先將塊里的數據讀出來,擦除塊干凈后,將需要寫入的數據和之前讀出來的塊數據一起在回寫到存儲器里面去,如果文件系統寫平衡沒有處理好,特別是要求1分鐘以內要記錄一次數據這樣頻繁的擦寫塊操作,就有可能將Nand-Flash或EMMC的塊寫壞。
存儲器件掉電丟數據
文件系統向存儲器寫數據時,常規是先將塊里的數據讀出來,擦除塊干凈后,將需要寫入的數據和之前讀出來的塊數據一起在回寫到存儲器里面去。如果設備在擦除塊過程中或者在回寫數據過程中意外發生斷電甚至電壓不穩定,均會造出數據丟失或者損壞。如果丟失的數據是文件系統的FAT表,則會造成文件系統崩潰。這就是引起系統程序無法啟動災難性后果的原因。
系統數據保護方案
很多時候,產品在未出廠前燒錄程序、反復測試,無論怎樣折騰也不會出現丟程序的情況。這可能的因素是測試設備保證了穩定的運行中電源輸出,因此系統運行中正常的Flash保護機制是可靠執行的。
相對于用戶實際使用而言,想避免Flash損壞的情況。需要嚴格遵守產品說明使用,尤其注意避免在Flash擦除或寫入過程中人為地突然掉電。這是存儲器件用法的一個大忌,即使完好的器件,如此不規范的使用也會大大縮短其壽命。而且不同環境下的電源系統五花八門,在電源不滿足功率要求情況下程序對于電源低電量的檢測閾值較低,此時強制啟動系統或執行寫操作更會加劇系統耗電波動,巨大的紋波也會引起CPU對存儲的誤操作。
解決此問題對于軟件方面而言:
調試系統或現場使用時,建議使用軟件復位,避免人為頻繁的通過斷電實現復位操作;有斷電必要時,將打印信息添加如“系統加載完成”、“數據保存完畢”等指示說明后操作;
軟件采取Flash均衡保存算法,高效地調整更改數據時擦除的Flash區域大小;
可將數據先寫入內存或者鐵電存儲器,然后定期的再將數據搬移到大的存儲器里面,減少直接斷Nand-Flash、EMMC擦寫次數;
在程序中加入或者提高電源電量檢測的閾值,程序上保證所有電源系統下的芯片在此閾值上均可以正常工作;
讀寫過程中仔細對壞塊表進行維護更新,避免程序寫入壞塊。讀取數據時對ECC校驗,確保讀取數據無誤。
從硬件角度考慮需要注意:
用法上避免在Flash擦除或寫入過程中人為突然掉電;
設計好處理控制核心的電源系統,防止CPU等在啟動、運行中,電源系統因瞬時變化引起的紋波等情況;
搭配掉電檢測電路,在檢測到外部電源掉電的同時,及時迅速關閉文件系統,停止向文件系統內寫數據的操作;
添加文件系統電源域UPS電源,乃至整機掉電續航工作電源;
對于使用EEPROM等小容量存儲的用戶而言,可以考慮使用高可靠性的鐵電材料加工制成的鐵電非易失性存儲器FRAM來替換。FRAM可以像RAM一樣快速讀寫。數據在掉電后可以保存10年,且其讀寫壽命高達100億次,比EEPROM和其他非易失性記憶體系統可靠性更高,結構更簡單,功耗低等優點。
圖2 鐵電材料非易失性存儲器 下面簡介一款基于法拉電容的UPS電路設計思路,要點如下:
由于電容存在個體差異,電容存儲電荷的速率不一樣,存在過充造成電壓超過耐壓值的問題,電路中存在多顆法拉電容時需要做均壓處理;
為保證電容能夠充滿電能,源端需采用恒流源充電;
為維持電容電壓穩定,并降低充電電路功耗,需增加過壓檢測電路;
若對電壓高于法拉電容本身電壓上限的電源系統提供掉電續航時,Vcc_backup端需通過BOOST升壓電路后以實現,且注意系統正常時(充電過程中)關斷EN腳。
圖3 基于法拉電容的UPS核心電路
系統電源正常時,充電電路即給UPS充電。系統電源掉電時,UPS放電給系統提供備用電能,建議UPS在掉電后能持續給文件系統供電能力不低于10秒,在10秒續航期間內,系統可以將電源異常狀態上報、及時保持臨時重要數據、關閉文件系統,保證系統穩定性,避免文件系統在掉電情況下出現損害,影響應用程序的正常啟動。
圖4 建議UPS充放電時序 此外系統掉電情況需要掉電檢測電路實現。使用一顆比較器器件即可,注意使用Output_VCC端供電,以確保外部掉電時,比較器仍然可以工作。比較器負端連接一個參考電壓,參考電壓由穩壓二極管提供。正常供電時,比較器輸出電壓由升壓電路的反饋端分壓決定;掉電時,比較器輸出低電平,此時處理器仍未掉電,收到狀態信息可及時響應處理。另一路掉電檢測可供其它功能使用。
圖5 系統掉電檢測電路 工業品質穩定可靠 在ARM內核核心板、開發板、工控機等領域,M6708核心板、M/A335x核心板、M/A28x核心板、EPC系列工控主板、IoT系列無線主板/網關、DCP系列經典工控機等產品中,核心板產品針對Nand-Flash有著完善的壞塊管理、工控主板添加掉電保護等措施。例如在Linux系統下加固Flash驅動、對操作系統進行雙備份;軟件與硬件信號測試對Flash進行10萬次掉電試驗等。 同時,致遠電子配備專業的EMC實驗室、安規實驗室、環境實驗室等可實際模擬惡劣應用狀況試驗。結合優質供應商保證各產品分立器件均達到EMC工業三級標準,有良好的靜電抗性、雷擊浪涌抗性、電瞬變群脈沖抗性、以及極低的EMI傳導騷擾情況;可實現-40℃~+85℃的工業級環境適應性。為從Flash至整套目標系統的可靠性安全穩定提供切實保障。
圖6 DCP-1000L產品剖析圖示
-
存儲器
+關注
關注
38文章
7494瀏覽量
163917 -
系統數據
+關注
關注
0文章
8瀏覽量
9195
原文標題:如何避免現場設備系統損壞或丟數據?
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論