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