(福建師范大學(xué)光電與信息工程學(xué)院,福州350007)
(福建師范大學(xué)光電與信息工程學(xué)院,福州350007)
針對(duì)無人值守嵌入式設(shè)備應(yīng)用環(huán)境復(fù)雜多變、系統(tǒng)可靠性要求越來越高的特點(diǎn),設(shè)計(jì)了一種看門狗監(jiān)控系統(tǒng),它采用TINY13微控制器來實(shí)現(xiàn)系統(tǒng)的邏輯功能,并且提供超休眠時(shí)間自動(dòng)喚醒功能等基于三重故障修復(fù)機(jī)制設(shè)計(jì)的冷、熱啟動(dòng)修復(fù)方法,使無人值守嵌入式設(shè)備無需人為干預(yù)就能快速地、最大可能地恢復(fù)至正常工作狀態(tài),有助于提高系統(tǒng)的可靠性,對(duì)于保障無人值守嵌入式設(shè)備的長(zhǎng)期穩(wěn)定運(yùn)行、降低設(shè)備維護(hù)成本等方面具有重大意義。
無人值守嵌入式設(shè)備;可靠性;看門狗;故障修復(fù)機(jī)制
可靠性是嵌入式系統(tǒng)的命脈,是系統(tǒng)能否付諸應(yīng)用的關(guān)鍵[1]。隨著計(jì)算機(jī)技術(shù)和自動(dòng)控制技術(shù)的持續(xù)發(fā)展,以及勞動(dòng)力成本的不斷提高,在國(guó)防、遙感遙測(cè)、工農(nóng)業(yè)生產(chǎn)等領(lǐng)域有大量的嵌入式設(shè)備采用無人值守方式運(yùn)行,由于這些設(shè)備的應(yīng)用環(huán)境復(fù)雜多變,其內(nèi)部重要資源如PC指針、堆棧以及RAM/ROM數(shù)據(jù)等容易受到溫濕度變化、電磁輻射、以及電源波動(dòng)等因素的干擾[2-4],從而導(dǎo)致系統(tǒng)可靠性降低,而且越來越小的IC尺寸、越來越高的工作頻率,也大大地提高了系統(tǒng)出現(xiàn)故障的概率[3],當(dāng)無人值守嵌入式設(shè)備,如航天航空設(shè)備、航標(biāo)遙測(cè)設(shè)備、無線傳感網(wǎng)絡(luò)等,發(fā)生故障時(shí),通常需要花費(fèi)大量的人力、財(cái)力以及較長(zhǎng)的時(shí)間才能完成修復(fù)工作。因此如何提高無人值守嵌入式設(shè)備的可靠性一直是設(shè)計(jì)人員追求的目標(biāo)[3,5]。
看門狗技術(shù)就是一種公認(rèn)地、能有效地實(shí)現(xiàn)這一目標(biāo)的方法,它在嵌入式系統(tǒng)中被廣泛使用[6]。有眾多學(xué)者在如何利用和改進(jìn)看門狗技術(shù)以提高無人值守設(shè)備的可靠性方面進(jìn)行了研究。Christopher Boelmann、Torben Weis、Michael Engel等人在他們正研究的大規(guī)模無線傳感網(wǎng)絡(luò)中采用微控制器來作為專用看門狗監(jiān)控系統(tǒng)來提高無線傳感網(wǎng)絡(luò)設(shè)備的自穩(wěn)定性[3];Suleyman Tosun為了應(yīng)對(duì)日益復(fù)雜的嵌入式應(yīng)用而提出了采用一塊額外的微控制器以增加MPSoC系統(tǒng)可靠性的方法[7];Mária Pohronská通過FPGA設(shè)計(jì)了多個(gè)看門狗定時(shí)器以提高實(shí)時(shí)嵌入式系統(tǒng)的可靠性[8];Ashraf M El-Attar和Gamal Fahmy對(duì)傳統(tǒng)看門狗進(jìn)行了改進(jìn)設(shè)計(jì),以使衛(wèi)星空間成像系統(tǒng)可以盡快地從瞬時(shí)性故障中恢復(fù)[9];文獻(xiàn)[10]的作者應(yīng)用常規(guī)看門狗芯片設(shè)計(jì)了一種看門狗監(jiān)控系統(tǒng),以保障無人值守設(shè)備在休眠低功耗、燒寫編程、遠(yuǎn)程升級(jí)維護(hù)等模式時(shí)可以正常運(yùn)行;Abaffy J和Krajcˇovic T為了增強(qiáng)軟件任務(wù)的可靠性,在Linux系統(tǒng)中建立專用看門狗監(jiān)控任務(wù)檢查其他任務(wù)是否正常運(yùn)行,以增加系統(tǒng)軟件的可靠性[11]。
由于無人值守嵌入式設(shè)備的應(yīng)用千差萬別,其對(duì)看門狗監(jiān)控系統(tǒng)的要求也不盡相同,比如:由于加載的操作系統(tǒng)或者程序的規(guī)模不同,設(shè)備從上電到啟動(dòng)完成所需要的時(shí)間往往都會(huì)超過常規(guī)看門狗的喂狗時(shí)間(一般在1.6 s左右),因此在設(shè)備啟動(dòng)的過程中也需要不斷喂狗,這給實(shí)際使用帶來了不便,而且為了降低功耗,無人值守嵌入式設(shè)備常常設(shè)有休眠機(jī)制,進(jìn)入休眠模式時(shí)設(shè)備會(huì)將看門狗監(jiān)控系統(tǒng)屏蔽[10],但是,在此休眠過程中如果被監(jiān)控的無人值守嵌入式設(shè)備發(fā)生故障,就會(huì)出現(xiàn)整個(gè)設(shè)備失效的情況。
此外,目前市場(chǎng)上大多數(shù)看門狗監(jiān)控系統(tǒng)主要通過控制被監(jiān)控設(shè)備的復(fù)位引腳以實(shí)現(xiàn)復(fù)位重啟,俗稱熱啟動(dòng),但設(shè)備的啟動(dòng)過程會(huì)受到眾多因素的影響,只要其中一個(gè)因素出現(xiàn)問題,都會(huì)導(dǎo)致設(shè)備啟動(dòng)異常,此時(shí)即使頻繁地?zé)釂?dòng)也無法使其恢復(fù)正常。
針對(duì)以上問題,本文采用TINY13微控制器設(shè)計(jì)了一套看門狗監(jiān)控系統(tǒng),其喂狗時(shí)間可根據(jù)實(shí)際應(yīng)用需求進(jìn)行設(shè)定,被監(jiān)控設(shè)備在上電到啟動(dòng)完成前不需要喂狗,并且提供超休眠時(shí)間自動(dòng)喚醒功能等基于三重故障修復(fù)機(jī)制設(shè)計(jì)的冷、熱啟動(dòng)修復(fù)方法,有助于進(jìn)一步提高無人值守嵌入式設(shè)備的可靠性。
本看門狗監(jiān)控系統(tǒng)的硬件原理圖如圖1所示,使能輸入端(EN)經(jīng)過一個(gè)轉(zhuǎn)換電路后與微控制器U1的PB4引腳相連;喂狗信號(hào)輸入端(WDI)經(jīng)過一個(gè)轉(zhuǎn)換電路后與微控制器U1的PB3引腳相連;微控制器U1的PB0引腳經(jīng)過一個(gè)轉(zhuǎn)換電路后與電源控制輸出端(PCT)相連;微控制器U1的引腳PB1經(jīng)過一個(gè)轉(zhuǎn)換電路后與復(fù)位信號(hào)輸出端(RST)相連。
VDD1為看門狗監(jiān)控系統(tǒng)的工作電源,VDD2為被監(jiān)控的無人值守嵌入式設(shè)備的工作電源。
硬件上,為了保障系統(tǒng)間電平的匹配,每個(gè)輸入輸出端都設(shè)有轉(zhuǎn)換電路;為了防止因引腳懸空而出現(xiàn)的不確定狀態(tài),每個(gè)輸入輸出端都配有下拉電阻,以實(shí)現(xiàn)硬件的“初始化”;進(jìn)一步增加了本看門狗監(jiān)控系統(tǒng)的可靠性。
圖1 看門狗監(jiān)控系統(tǒng)功能原理圖
看門狗監(jiān)控系統(tǒng)與無人值守嵌入式設(shè)備的連接示意圖如圖2所示,看門狗監(jiān)控系統(tǒng)的電源控制輸出端(PCT)連接至無人值守嵌入式設(shè)備的電源輸入端VCC,使能輸入端(EN)與無人值守嵌入式設(shè)備的一個(gè)I/O口相連,喂狗信號(hào)輸入端(WDI)與無人值守嵌入式設(shè)備的一個(gè)I/O口相連,復(fù)位信號(hào)輸出端(RST)與無人值守設(shè)備的復(fù)位輸入端RST相連。
圖2 系統(tǒng)連接示意圖
軟件設(shè)計(jì)在本看門狗監(jiān)控系統(tǒng)中占據(jù)著極其重要的地置,如何建立一種有效的故障修復(fù)機(jī)制、以及如何有效地控制各個(gè)模塊的耗時(shí),都會(huì)對(duì)本看門狗監(jiān)控系統(tǒng)的可靠性產(chǎn)生重大影響。本文在軟件設(shè)計(jì)方面采用了三重故障修復(fù)機(jī)制來保證系統(tǒng)的可靠性[9,12-13],其故障狀態(tài)分類如表1所示,狀態(tài)轉(zhuǎn)移圖如圖3所示。
表1 故障分類
圖3 系統(tǒng)三重故障修復(fù)機(jī)制狀態(tài)轉(zhuǎn)移圖
當(dāng)看門狗監(jiān)控系統(tǒng)在主循環(huán)中檢測(cè)喂狗,如果在設(shè)定時(shí)間內(nèi)喂狗信號(hào)輸入端(WDI)沒有收到喂狗信號(hào)時(shí)首先進(jìn)入故障狀態(tài)一,由本看門狗監(jiān)控系統(tǒng)對(duì)被監(jiān)控的無人值守嵌入式設(shè)備進(jìn)行復(fù)位,即為一級(jí)故障修復(fù)機(jī)制。如果無人值守嵌入式設(shè)備在休眠狀態(tài)中發(fā)生故障,看門狗監(jiān)控系統(tǒng)已被屏蔽,超過最大休眠時(shí)間喂狗信號(hào)輸入端(WDI)沒有收到喂狗信號(hào),則狀態(tài)機(jī)翻轉(zhuǎn)至故障狀態(tài)二,由超休眠時(shí)間自動(dòng)喚醒機(jī)制將被監(jiān)控的無人值守嵌入式設(shè)備復(fù)位,即為二級(jí)故障修復(fù)機(jī)制。當(dāng)被監(jiān)控的無人值守嵌入式設(shè)備連續(xù)三次復(fù)位后依然無法進(jìn)入正常工作狀態(tài),則狀態(tài)機(jī)翻轉(zhuǎn)至故障狀態(tài)三,由看門狗監(jiān)控系統(tǒng)切斷被監(jiān)控的無人值守嵌入式設(shè)備的電源,之后重新開啟其電源,實(shí)現(xiàn)冷啟動(dòng),即為三級(jí)故障修復(fù)機(jī)制。
當(dāng)然無人值守嵌入式設(shè)備也會(huì)存在由于器件損傷、物理失效等狀況而導(dǎo)致其永久性故障的可能,在這種情況下,即使本看門狗監(jiān)控系統(tǒng)采用最高等級(jí)故障修復(fù)機(jī)制,被監(jiān)控的無人值守嵌入式設(shè)備仍然無法恢復(fù)正常工作狀態(tài),但看門狗監(jiān)控系統(tǒng)依舊會(huì)采用三級(jí)故障修復(fù)機(jī)制對(duì)其進(jìn)行修復(fù),并非直接定性為永久性故障而不再做處理,確保系統(tǒng)無需人為干預(yù)就能夠快速地、最大可能地恢復(fù)至正常工作狀態(tài)。
看門狗監(jiān)控系統(tǒng)的整體流程如圖4所示,在上電啟動(dòng)之后,先進(jìn)行內(nèi)部資源初始化,包括本微處理器自身內(nèi)置的看門狗等,然后延時(shí)T1,再進(jìn)入主循環(huán)。上電啟動(dòng)延時(shí)T1時(shí)間的目的在于等待被監(jiān)控的無人值守嵌入式設(shè)備啟動(dòng)完成,這個(gè)過程不需要喂狗,給實(shí)際使用帶來了方便,也能實(shí)現(xiàn)程序的在線升級(jí)。在非上電啟動(dòng)時(shí)會(huì)通過跳過延時(shí)T1,直接進(jìn)入主循環(huán)。
圖4 系統(tǒng)流程圖
主循環(huán)流程如圖5所示,主循環(huán)開始先執(zhí)行按鍵處理模塊,后根據(jù)使能輸入端(EN)判斷看門狗監(jiān)控系統(tǒng)是否使能,使能則進(jìn)入檢測(cè)喂狗模塊,屏蔽(非使能)則進(jìn)入屏蔽處理模塊。之后執(zhí)行軟件看門狗監(jiān)控任務(wù)再回到主循環(huán)。
圖5 主循環(huán)流程
按鍵處理模塊流程如圖6所示,先檢測(cè)按鍵S101是否按下,沒有按下則將[MR標(biāo)志]設(shè)為正常后退出本模塊。有按下則檢查[MR標(biāo)志]是否正常,不正常則退出本模塊;正常則檢測(cè)S101按下的時(shí)長(zhǎng),若[S101按下時(shí)長(zhǎng)]大于T2則將[MR標(biāo)志]設(shè)為異常,后退出本模塊;若[S101按下時(shí)長(zhǎng)]小于等于T2則RST輸出復(fù)位脈沖。
圖6 按鍵處理模塊流程
檢測(cè)喂狗模塊流程如圖7所示,如果[WDI喂狗間隔]大于設(shè)定時(shí)間T3則進(jìn)入復(fù)位處理模塊,否則退出本模塊。
圖7 喂狗檢測(cè)模塊流程
屏蔽處理模塊流程如圖8所示,如果[屏蔽時(shí)長(zhǎng)]大于最大休眠時(shí)間T4則進(jìn)入復(fù)位處理模塊,否則退出本模塊。
圖8 屏蔽處理模塊流程
復(fù)位處理模塊流程圖9所示,如果[RST復(fù)位次數(shù)]小于等于C1則RST輸出復(fù)位脈沖,實(shí)現(xiàn)熱啟動(dòng),并將[RST復(fù)位次數(shù)]加1,后延時(shí) T1。如果[RST復(fù)位次數(shù)]大于C1則PCT輸出斷電脈沖,實(shí)現(xiàn)冷啟動(dòng),并將[RST復(fù)位次數(shù)]清零,后延時(shí)T1。
圖9 復(fù)位處理模塊流程
定時(shí)中斷處理模塊流程如圖10所示,在定時(shí)中斷處理中,如果S101按下,則[S101按下時(shí)長(zhǎng)]加1;否則將[S101按下時(shí)長(zhǎng)]清零。如果使能輸入端(EN)為高電平即看門狗監(jiān)控系統(tǒng)被使能,則將[屏蔽時(shí)長(zhǎng)]清零,否則將[屏蔽時(shí)長(zhǎng)]加1;[WDI喂狗間隔]加1后退出本模塊。
圖10 定時(shí)中斷處理模塊流程
WDI中斷處理模塊流程如圖11所示,在產(chǎn)生WDI中斷之后將[WDI喂狗間隔]清零。
圖11 WDI中斷處理模塊流程
為了保障本看門狗監(jiān)控系統(tǒng)自身的可靠性,在硬件上,我們選擇了TINY13作為本監(jiān)控系統(tǒng)的微處理器,它可以通過編程熔絲的方式啟用本微控制器內(nèi)置的硬件看門狗,并且只能通過固定序列才能對(duì)內(nèi)置硬件看門狗的配置進(jìn)行改寫,在編程熔絲之后對(duì)內(nèi)置硬件看門狗的使能操作只能通過高壓編程(12 V)才能進(jìn)行改寫。
圖12 軟件看門狗監(jiān)控任務(wù)
軟件上,我們?cè)谙到y(tǒng)任務(wù)中增加了一個(gè)軟件看門狗監(jiān)控任務(wù)[11],如圖12所示,看門狗監(jiān)控任務(wù)定時(shí)檢查對(duì)看門狗監(jiān)控系統(tǒng)軟件影響最大的定時(shí)器中斷使能標(biāo)志、全局中斷使能標(biāo)志、WDI中斷使能標(biāo)志,以及一些相關(guān)參數(shù)是否超過了合理范圍等,如果發(fā)現(xiàn)相關(guān)使能標(biāo)志位被關(guān)閉或者參數(shù)異常則馬上重新初始化,提高系統(tǒng)軟件的可靠性。
若看門狗監(jiān)控系統(tǒng)自身因?yàn)楣收蠜]有喂狗會(huì)產(chǎn)生熱啟動(dòng)方式的重啟,重啟之后會(huì)自動(dòng)跳過上電啟動(dòng)延時(shí)T1,直接進(jìn)入主循環(huán),快速恢復(fù)到正常監(jiān)控流程。同時(shí),通過配合硬件電路上轉(zhuǎn)換電路設(shè)計(jì),使得看門狗因自身故障而不工作時(shí)或者被斷電時(shí),被監(jiān)控的無人值守嵌入式設(shè)備的電源默認(rèn)處于接通狀態(tài),不會(huì)對(duì)其正常運(yùn)行產(chǎn)生影響。
該看門狗監(jiān)控系統(tǒng)于2011年開始應(yīng)用于嵌入式航標(biāo)遙測(cè)監(jiān)控終端中,該終端是采用NXP LPC236X設(shè)計(jì)的,第一期在長(zhǎng)江沿線航道的宜昌航道局試用,之后逐步推廣到南京航道局、東海海事局、海南海事局等地應(yīng)用,達(dá)3 000多套。航標(biāo)遙測(cè)監(jiān)控終端多安放在江河或海面的浮桶或小船上,漂浮在航道附近,其應(yīng)用環(huán)境復(fù)雜多變(晝夜溫差大、濕度高、鹽霧腐蝕等),對(duì)可靠性的要求較高,一旦其發(fā)生故障需要專人乘船前往維護(hù),需要耗費(fèi)大量的人力、財(cái)力和較長(zhǎng)的時(shí)間才能完成修復(fù)工作,采用本看門狗監(jiān)控系統(tǒng)后,有效降低了航標(biāo)遙測(cè)監(jiān)控終端的故障發(fā)生率和設(shè)備維護(hù)成本,達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo)。
本文所設(shè)計(jì)的看門狗監(jiān)控系統(tǒng)為設(shè)計(jì)人員提高無人值守嵌入式設(shè)備的可靠性提供了一種新的思路,由它監(jiān)控的系統(tǒng)可以更好地滿足現(xiàn)代計(jì)算機(jī)應(yīng)用領(lǐng)域的不確定性、復(fù)雜性和高標(biāo)準(zhǔn)性的要求。此外,由于它具備結(jié)構(gòu)簡(jiǎn)單、通用性好、以及故障恢復(fù)能力強(qiáng)的優(yōu)勢(shì),對(duì)保障無人值守嵌入式設(shè)備的長(zhǎng)期穩(wěn)定運(yùn)行、降低設(shè)備維護(hù)成本等方面具有重大意義。
[1]李伯成.嵌入式系統(tǒng)可靠性設(shè)計(jì)[M].電子工業(yè)出版社,2006: 1-2.
[2]Mahatme N N,Chatterjee I,Bhuva B L,etal.Analysis of Soft Error Rates in Combinational and Sequential Logic and Implications of Hardening for Advanced Technologies[C]//Reliability Physics Symposium(IRPS),2010 IEEE International.IEEE,2010:1031 -1035.
[3]Boelmann C,Weis T,EngelM,etal.Self-Stabilizing Micro Controller for Large-Scale Sensor Networks in Spite of Program Counter Corruptions Due to Soft Errors[C]//Parallel and Distributed Systems(ICPADS),2012 IEEE 18th International Conference on. IEEE,2012:506-513.
[4]李輝,張鈺,楊牧,等.基于CMOS圖像傳感器的皮衛(wèi)星成像系統(tǒng)設(shè)計(jì)[J].傳感技術(shù)學(xué)報(bào),2010,23(1):62-67.
[5]Ozturk O.Improving Chip Multiprocessor Reliability Through Code Replication[J].Computers and Electrical Engineering,2010,36 (3):480-490.
[6]Ganssle JG.The Artof Designing Embedded Systems[M].Second Edition.Newnes,2008:298.
[7]Tosun S.Energy-and Reliability-Aware Task Scheduling onto Heterogeneous MPSoC Architectures[J].The Journal of Supercomputing,2012:1-25.
[8]PohronskáM,Krajcovic T.FPGA Implementation of Multiple Hardware Watchdog Timers for Enhancing Real-Time Systems Security[C]//EUROCON-International Conference on Computer as a Tool(EUROCON),2011 IEEE.IEEE,2011:1-4.
[9]El-Attar A M,F(xiàn)ahmy G.An Improved Watchdog Timer to Enhance Imaging System Reliability in the Presence of Soft Errors[C]// Signal Processing and Information Technology,2007 IEEE International Symposium on.IEEE,2007:1100-1104.
[10]吳允平,李旺彪,蘇偉達(dá),等.一種嵌入式系統(tǒng)的看門狗電路設(shè)計(jì)[J].電子器件,2010,33(5):579-581.
[11]Abaffy J,KrajcˇoviccˇT.Software Support for Multiple Hardware Watchdog Timers in the Linux OS[C]//Applied Electronics (AE),2010 International Conference on.IEEE,2010:1-3.
[12]Baumann R.Soft Errors in Advanced Computer Systems[J].Design and Test of Computers,IEEE,2005,22(3):258-266.
[13]HeidergottW.SEU Tolerant Device,Circuit and Processor Design[C]//Design Automation Conference,2005.Proceedings.42nd. IEEE,2005:5-10.
無人值守嵌入式設(shè)備的看門狗監(jiān)控系統(tǒng)*
汪 培,胡文倩,李彬雅,丁 兵,李汪彪,蘇偉達(dá),吳允平*
Watchdog Guarding System for Unattended Embedded System Equipments*
WANG Pei,HUWenqian,LIBinya,DING Bing,LIWangbiao,SUWeida,WU Yunping*
(College of Photonic and Electronic Engineering,F(xiàn)ujian Normal University,F(xiàn)uzhou350007,China)
As application environment for unattended embedded systems equipments is complex and changeable,and requirements of reliability is getting higher and higher,this paper designed a watchdog guarding system.The system uses a TINY13 MCU to achieve logic purpose of it,and it provides some features such as hot and cold restartwhich is based on a triple error handling and recoverymechanisms.As a result,system has the greatest possibility to return to normalworking condition withoutmanual intervention,which is helpful to improve system reliability,and it plays a significant role for ensuring a long-term stable operation of the unattended embedded system equipments and reducing the equipments’maintenance costs.
unattended embedded system equipments;reliability;watchdog;error handing and recoverymechanisms
10.3969/j.issn.1005-9490.2013.06.023
TP23 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1005-9490(2013)06-0854-05
項(xiàng)目來源:教育部科技研究重點(diǎn)項(xiàng)目(212087);福建省科技廳重大項(xiàng)目(2011H6009);福建省高校新世紀(jì)優(yōu)秀人才支持計(jì)劃項(xiàng)目(JA11037);福建省教育廳項(xiàng)目(JA10078)
2013-05-19修改日期:2013-06-09
EEACC:0170N;1250F
汪 培(1988-),男,漢族,湖南桃江人,福建師范大學(xué)通信與信息系統(tǒng)碩士研究生,研究方向?yàn)榍度胧较到y(tǒng),aa88x@qq.com;
吳允平(1971-),男,漢族,福建連江人,工學(xué)博士,福建師范大學(xué)教授,碩士生導(dǎo)師,主要研究方向?yàn)闄z測(cè)技術(shù)與自動(dòng)化裝置的研究與教學(xué)工作,wyp @fjnu.edu.cn。