李 洋
(曲阜師范大學 計算機科學學院,山東 日照 276826)
嵌入式系統(tǒng),即Embedded system,是一種“完全嵌入受控器件內(nèi)部,為特定應用而設計的專用計算機系統(tǒng)”。根據(jù)英國電氣工程師協(xié)會的總結定義,嵌入式系統(tǒng)是為控制、監(jiān)視、輔助設備、機器或用于工廠運作而產(chǎn)生的設備。在國內(nèi),嵌入式系統(tǒng)也擁有另一種定義方式,即以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統(tǒng)。
嵌入式設備的工作通常情況下只針對預先定義的某一項具有特殊要求的任務。這個特點也使得嵌入式系統(tǒng)的設計人員和使用人員能夠?qū)λM行優(yōu)化和縮小,節(jié)約大量成本和空間。
嵌入式系統(tǒng)并不能滿足信息數(shù)字時代對它的要求,為此它又有了新的方向:(1)強大的硬件開發(fā)工具以及軟件包支持;(2)結構更加復雜,功能更加完整;(3)網(wǎng)絡互聯(lián);(4)精算系統(tǒng)內(nèi)核和算法,降低功耗和軟硬件成本;(5)提供友好的多功能人機界面。
面對這些新的方向和挑戰(zhàn),嵌入式系統(tǒng)需要更加確保其電源供應,防止掉電產(chǎn)生。而現(xiàn)在的嵌入式系統(tǒng)卻掉電頻發(fā),安全性不足,通過研究發(fā)現(xiàn)軟件容錯和掉電保護能夠很好地降低掉電對嵌入式系統(tǒng)的影響。
掉電保護設計的目的是通過采用這種機制,保證系統(tǒng)在某種意外情況下失去供電時完整記錄系統(tǒng)運行狀態(tài)和正在處理的數(shù)據(jù),并且在供電情況恢復正常時及時恢復現(xiàn)場數(shù)據(jù),降低系統(tǒng)混亂、丟失數(shù)據(jù)的風險。這種機制的主要設計方式是沿著系統(tǒng)產(chǎn)生掉電信號、捕捉掉電信號、記錄和處理掉電信號及數(shù)據(jù)、恢復現(xiàn)場的流程,確保掉電情況下能夠保護數(shù)據(jù)、記錄現(xiàn)場。
下面以ARM 體系硬件和μClinux 嵌入式操作系統(tǒng)為例簡單說明掉電保護機制的實現(xiàn)。
圖1 嵌入式系統(tǒng)硬件設計
如圖1 所示,是嵌入式系統(tǒng)的一種典型的硬件設計方案,在ARM 體系上采用S3C4510B 微處理器,并且硬件中的SDRAM 是易失性存儲器,系統(tǒng)運行時的數(shù)據(jù)通常狀況下都存在SDRAM 中,掉電時容易丟失。而FLASH 是非易失性存儲器,因此在掉電發(fā)生時數(shù)據(jù)和現(xiàn)場運行情況必須寫入FLASH 保留下來用于系統(tǒng)恢復。
圖2 添加電源保護的電路設計圖
由于與掉電關聯(lián)最緊密的是電源和電路設計,因此,電源保護也至關重要,如圖2,將其添加到電路設計中就能夠進一步降低掉電的發(fā)生。而且輸電電壓也要進行嚴格的控制,S3C4510B需3.3V 電壓,部分器件需5V 電壓,因此輸電電壓應控制在5V直流電壓。
在μClinux 系統(tǒng)中,要想捕捉電信號可以采用兩種方式:一是系統(tǒng)調(diào)用的方式,采用調(diào)用語句void (*signal(intslg,void(*func)(int)))(int),語句中的參數(shù)func負責傳遞掉電信號SIGPWR,這種方式簡單易操作,但是由于系統(tǒng)機制的問題易丟失信號,并不常用。二是守候進程,即在系統(tǒng)中專門設置一個進程用來觀察等待中斷信號。這種機制的實現(xiàn)基礎是系統(tǒng)以原子操作方式執(zhí)行程序,當產(chǎn)生中斷信號時,系統(tǒng)會在執(zhí)行原子操作前利用管道的方式讀取信號,并保存系統(tǒng)狀態(tài),將數(shù)據(jù)及現(xiàn)場寫入FLASH,之后退出,等待電源恢復后恢復現(xiàn)場。
掉電保護機制很好地減少了由于掉電產(chǎn)生的數(shù)據(jù)丟失,在嵌入式系統(tǒng)的開發(fā)中具有重要的推廣意義。
嵌入式系統(tǒng)的應用越來越廣泛,數(shù)字信息時代對它的要求也越來越高,它不僅要具有高強度的工作能力,其安全可靠性也至關重要。軟件容錯技術和掉電保護對提高其可靠性起到了重要作用。使用嵌入式的同時,選擇正確的保護和防止措施才能最大程度地發(fā)揮嵌入式系統(tǒng)的作用。
[1]電子科技大學計算機學院.CRTOS x86/pm 嵌入式實時操作系統(tǒng)原理與應用設計[Z].增補版.成都:電子科技大學,2011.
[2]趙秋云,魏樂,劉文清.嵌入式軟件的構件化開發(fā)研究[J].科技資訊,2011.
[3]王田苗,魏洪興.嵌入式系統(tǒng)設計與實例開發(fā)(第3 版.清華大學出版社,2008.