老板,樓不用跳了,SD卡問題我們解決了
SD存儲卡(包括Micro SD卡)是一種基于半導體快閃記憶器的新一代記憶設備,由于它體積小、數據傳輸速度快、價格低廉等眾多優勢,被廣泛地于便攜式裝置上使用,例如數碼相機、個人數碼助理(外語縮寫PDA)和多媒體播放器等。在十幾年的發展史上,秒殺眾SM卡、CF卡、XD卡、MMC等存儲卡,但是,萬物有利必有弊,今天,小編要為大家分享一個由SD引發的災難,以及該災難被我們項目組攻克的技術案例。
去年上半年,我們公司承接了某大型廣告公司的電梯廣告顯示屏的項目,該產品使用了飛思卡爾的IMX6系列芯片作為主控CPU,具備媒體人機觸摸互動、媒體投放、遠程升級、錄像監控等功能。其中很重要的一項功能就是監控和保存功能,因客戶的報價較低 ,我們理所當然的選擇了SD卡作為錄像數據的保存介質。沒想到,災難半年后就降臨了,半年前發貨的10K機器,每個月都有10%的損壞率,損壞的機器90%都是SD卡損壞了。關鍵的監控視頻信息全部丟失,客戶不但要求我們賠償SD卡的損失,延長質保期,而且威脅一個月內不解決將終止合作,客戶是老板的唯一大客戶,丟失這個客戶我們離解散就不遠。老板甚至放下狠話:一個月內不解決,你們跳槽,我跳樓。
項目組首先從客戶的使用的電梯的場景入手,場景的特點如下:
1、電梯內部布滿各種通信線、音視頻線、電力線,互相之間的干擾非常嚴重
2、電梯內的廣告機每天晚上12點至早上6點回自動斷電,白天自動上電
3、廣告機只要開機就需要一直錄像,保存到本地的SD卡中。
于是我們首先模擬現場的應用場景,第一個場景公司內部無法模擬,于是先模擬第二和第三個場景,事設備上電10分鐘,掉電5分鐘,只要一上電就開始錄像,提高上下電的頻率。樣本數量使用了50臺。
實驗第一天,SD卡損壞0張;
實驗第二天,SD卡損壞1張;
實驗第三天SD卡損壞3張,一直到實驗到第6天,SD卡一共損壞8張。
我們基本找到SD卡損壞的原因:就是設備上下電導致的。于是大家分頭行動,從硬件和軟件、驅動著手,分析掉電可能引起的原因。
首先是驅動工程師查閱MMC的規范“JESD84-B45”時有發現,如下圖1所示,
文中大概的意思就是,主機在掉電關閉設備前,應該通知SD卡控制,由控制判斷掉電的緊迫性,從而進入對本身設備的保護模式,并且在這之前,應該保持設備的電源處于工作范圍之內。
圖1 :JESD84-B45規范中掉電的要求。
繼續查閱SD卡2.0規范中,SD卡的標準只保證在讀數據過程中,意外斷電和移除可以對數據進行保護,對寫和擦除過程中的掉電的,完全沒有把握保護數據,也就是SD卡內部的本身固件、用戶數據都是有可能丟失的。
圖2:SD 2.0標準中對SD卡的保護闡述
通過查閱相關的規范,我們知道了原因的所在,就是我們的設備在斷電的時候,還在錄像保存數據,進行不斷的寫和擦除SD卡的操作。經過討論,我們采用了如下的方案。.其中,方案的核心主要有3個,第一:掉電檢測電路;第二:超級電容繼續供電電路,第三:掉電后軟件處理機制。
圖3:SD卡掉電保護的處理過程
下圖4是掉電檢測電路,可以精準的檢測一旦電壓跌落至10V(電源為12V供電),馬上送掉電信號給CPU。
圖4:掉電檢測電路
下圖5是超級電容的充放電電路,增加該電路可以使掉電后繼續維持2秒鐘的時間,使CPU完成掉電后的保護處理工作。
圖5:超級電容充放電電路
經過了上述的整改,我們生產了50臺設備,進行連續7天24小時,10分鐘一個循環的上下電測試,沒有一臺設備的SD卡損壞,證明了上述方案可行。老板的樓,終于不用跳了。
經驗總結,其實CPU原廠提供的DEMO參考設計,基本都是處在能用的狀態,離真正的高可靠應用,還有很大的距離,需要我們工程人員的不斷挖掘和積累。才能設計出高可靠性的產品。