(福建師范大學(xué)光電與信息工程學(xué)院,福州350007)
(福建師范大學(xué)光電與信息工程學(xué)院,福州350007)
針對無人值守嵌入式設(shè)備應(yīng)用環(huán)境復(fù)雜多變、系統(tǒng)可靠性要求越來越高的特點,設(shè)計了一種看門狗監(jiān)控系統(tǒng),它采用TINY13微控制器來實現(xiàn)系統(tǒng)的邏輯功能,并且提供超休眠時間自動喚醒功能等基于三重故障修復(fù)機制設(shè)計的冷、熱啟動修復(fù)方法,使無人值守嵌入式設(shè)備無需人為干預(yù)就能快速地、最大可能地恢復(fù)至正常工作狀態(tài),有助于提高系統(tǒng)的可靠性,對于保障無人值守嵌入式設(shè)備的長期穩(wěn)定運行、降低設(shè)備維護成本等方面具有重大意義。
無人值守嵌入式設(shè)備;可靠性;看門狗;故障修復(fù)機制
可靠性是嵌入式系統(tǒng)的命脈,是系統(tǒng)能否付諸應(yīng)用的關(guān)鍵[1]。隨著計算機技術(shù)和自動控制技術(shù)的持續(xù)發(fā)展,以及勞動力成本的不斷提高,在國防、遙感遙測、工農(nóng)業(yè)生產(chǎn)等領(lǐng)域有大量的嵌入式設(shè)備采用無人值守方式運行,由于這些設(shè)備的應(yīng)用環(huán)境復(fù)雜多變,其內(nèi)部重要資源如PC指針、堆棧以及RAM/ROM數(shù)據(jù)等容易受到溫濕度變化、電磁輻射、以及電源波動等因素的干擾[2-4],從而導(dǎo)致系統(tǒng)可靠性降低,而且越來越小的IC尺寸、越來越高的工作頻率,也大大地提高了系統(tǒng)出現(xiàn)故障的概率[3],當(dāng)無人值守嵌入式設(shè)備,如航天航空設(shè)備、航標(biāo)遙測設(shè)備、無線傳感網(wǎng)絡(luò)等,發(fā)生故障時,通常需要花費大量的人力、財力以及較長的時間才能完成修復(fù)工作。因此如何提高無人值守嵌入式設(shè)備的可靠性一直是設(shè)計人員追求的目標(biāo)[3,5]。
看門狗技術(shù)就是一種公認(rèn)地、能有效地實現(xiàn)這一目標(biāo)的方法,它在嵌入式系統(tǒng)中被廣泛使用[6]。有眾多學(xué)者在如何利用和改進看門狗技術(shù)以提高無人值守設(shè)備的可靠性方面進行了研究。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)對日益復(fù)雜的嵌入式應(yīng)用而提出了采用一塊額外的微控制器以增加MPSoC系統(tǒng)可靠性的方法[7];Mária Pohronská通過FPGA設(shè)計了多個看門狗定時器以提高實時嵌入式系統(tǒng)的可靠性[8];Ashraf M El-Attar和Gamal Fahmy對傳統(tǒng)看門狗進行了改進設(shè)計,以使衛(wèi)星空間成像系統(tǒng)可以盡快地從瞬時性故障中恢復(fù)[9];文獻[10]的作者應(yīng)用常規(guī)看門狗芯片設(shè)計了一種看門狗監(jiān)控系統(tǒng),以保障無人值守設(shè)備在休眠低功耗、燒寫編程、遠(yuǎn)程升級維護等模式時可以正常運行;Abaffy J和Krajcˇovic T為了增強軟件任務(wù)的可靠性,在Linux系統(tǒng)中建立專用看門狗監(jiān)控任務(wù)檢查其他任務(wù)是否正常運行,以增加系統(tǒng)軟件的可靠性[11]。
由于無人值守嵌入式設(shè)備的應(yīng)用千差萬別,其對看門狗監(jiān)控系統(tǒng)的要求也不盡相同,比如:由于加載的操作系統(tǒng)或者程序的規(guī)模不同,設(shè)備從上電到啟動完成所需要的時間往往都會超過常規(guī)看門狗的喂狗時間(一般在1.6 s左右),因此在設(shè)備啟動的過程中也需要不斷喂狗,這給實際使用帶來了不便,而且為了降低功耗,無人值守嵌入式設(shè)備常常設(shè)有休眠機制,進入休眠模式時設(shè)備會將看門狗監(jiān)控系統(tǒng)屏蔽[10],但是,在此休眠過程中如果被監(jiān)控的無人值守嵌入式設(shè)備發(fā)生故障,就會出現(xiàn)整個設(shè)備失效的情況。
此外,目前市場上大多數(shù)看門狗監(jiān)控系統(tǒng)主要通過控制被監(jiān)控設(shè)備的復(fù)位引腳以實現(xiàn)復(fù)位重啟,俗稱熱啟動,但設(shè)備的啟動過程會受到眾多因素的影響,只要其中一個因素出現(xiàn)問題,都會導(dǎo)致設(shè)備啟動異常,此時即使頻繁地?zé)釂右矡o法使其恢復(fù)正常。
針對以上問題,本文采用TINY13微控制器設(shè)計了一套看門狗監(jiān)控系統(tǒng),其喂狗時間可根據(jù)實際應(yīng)用需求進行設(shè)定,被監(jiān)控設(shè)備在上電到啟動完成前不需要喂狗,并且提供超休眠時間自動喚醒功能等基于三重故障修復(fù)機制設(shè)計的冷、熱啟動修復(fù)方法,有助于進一步提高無人值守嵌入式設(shè)備的可靠性。
本看門狗監(jiān)控系統(tǒng)的硬件原理圖如圖1所示,使能輸入端(EN)經(jīng)過一個轉(zhuǎn)換電路后與微控制器U1的PB4引腳相連;喂狗信號輸入端(WDI)經(jīng)過一個轉(zhuǎn)換電路后與微控制器U1的PB3引腳相連;微控制器U1的PB0引腳經(jīng)過一個轉(zhuǎn)換電路后與電源控制輸出端(PCT)相連;微控制器U1的引腳PB1經(jīng)過一個轉(zhuǎn)換電路后與復(fù)位信號輸出端(RST)相連。
VDD1為看門狗監(jiān)控系統(tǒng)的工作電源,VDD2為被監(jiān)控的無人值守嵌入式設(shè)備的工作電源。
硬件上,為了保障系統(tǒng)間電平的匹配,每個輸入輸出端都設(shè)有轉(zhuǎn)換電路;為了防止因引腳懸空而出現(xiàn)的不確定狀態(tài),每個輸入輸出端都配有下拉電阻,以實現(xià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è)備的一個I/O口相連,喂狗信號輸入端(WDI)與無人值守嵌入式設(shè)備的一個I/O口相連,復(fù)位信號輸出端(RST)與無人值守設(shè)備的復(fù)位輸入端RST相連。
圖2 系統(tǒng)連接示意圖
軟件設(shè)計在本看門狗監(jiān)控系統(tǒng)中占據(jù)著極其重要的地置,如何建立一種有效的故障修復(fù)機制、以及如何有效地控制各個模塊的耗時,都會對本看門狗監(jiān)控系統(tǒng)的可靠性產(chǎn)生重大影響。本文在軟件設(shè)計方面采用了三重故障修復(fù)機制來保證系統(tǒng)的可靠性[9,12-13],其故障狀態(tài)分類如表1所示,狀態(tài)轉(zhuǎn)移圖如圖3所示。
表1 故障分類
圖3 系統(tǒng)三重故障修復(fù)機制狀態(tài)轉(zhuǎn)移圖
當(dāng)看門狗監(jiān)控系統(tǒng)在主循環(huán)中檢測喂狗,如果在設(shè)定時間內(nèi)喂狗信號輸入端(WDI)沒有收到喂狗信號時首先進入故障狀態(tài)一,由本看門狗監(jiān)控系統(tǒng)對被監(jiān)控的無人值守嵌入式設(shè)備進行復(fù)位,即為一級故障修復(fù)機制。如果無人值守嵌入式設(shè)備在休眠狀態(tài)中發(fā)生故障,看門狗監(jiān)控系統(tǒng)已被屏蔽,超過最大休眠時間喂狗信號輸入端(WDI)沒有收到喂狗信號,則狀態(tài)機翻轉(zhuǎn)至故障狀態(tài)二,由超休眠時間自動喚醒機制將被監(jiān)控的無人值守嵌入式設(shè)備復(fù)位,即為二級故障修復(fù)機制。當(dāng)被監(jiān)控的無人值守嵌入式設(shè)備連續(xù)三次復(fù)位后依然無法進入正常工作狀態(tài),則狀態(tài)機翻轉(zhuǎn)至故障狀態(tài)三,由看門狗監(jiān)控系統(tǒng)切斷被監(jiān)控的無人值守嵌入式設(shè)備的電源,之后重新開啟其電源,實現(xiàn)冷啟動,即為三級故障修復(fù)機制。
當(dāng)然無人值守嵌入式設(shè)備也會存在由于器件損傷、物理失效等狀況而導(dǎo)致其永久性故障的可能,在這種情況下,即使本看門狗監(jiān)控系統(tǒng)采用最高等級故障修復(fù)機制,被監(jiān)控的無人值守嵌入式設(shè)備仍然無法恢復(fù)正常工作狀態(tài),但看門狗監(jiān)控系統(tǒng)依舊會采用三級故障修復(fù)機制對其進行修復(fù),并非直接定性為永久性故障而不再做處理,確保系統(tǒng)無需人為干預(yù)就能夠快速地、最大可能地恢復(fù)至正常工作狀態(tài)。
看門狗監(jiān)控系統(tǒng)的整體流程如圖4所示,在上電啟動之后,先進行內(nèi)部資源初始化,包括本微處理器自身內(nèi)置的看門狗等,然后延時T1,再進入主循環(huán)。上電啟動延時T1時間的目的在于等待被監(jiān)控的無人值守嵌入式設(shè)備啟動完成,這個過程不需要喂狗,給實際使用帶來了方便,也能實現(xiàn)程序的在線升級。在非上電啟動時會通過跳過延時T1,直接進入主循環(huán)。
圖4 系統(tǒng)流程圖
主循環(huán)流程如圖5所示,主循環(huán)開始先執(zhí)行按鍵處理模塊,后根據(jù)使能輸入端(EN)判斷看門狗監(jiān)控系統(tǒng)是否使能,使能則進入檢測喂狗模塊,屏蔽(非使能)則進入屏蔽處理模塊。之后執(zhí)行軟件看門狗監(jiān)控任務(wù)再回到主循環(huán)。
圖5 主循環(huán)流程
按鍵處理模塊流程如圖6所示,先檢測按鍵S101是否按下,沒有按下則將[MR標(biāo)志]設(shè)為正常后退出本模塊。有按下則檢查[MR標(biāo)志]是否正常,不正常則退出本模塊;正常則檢測S101按下的時長,若[S101按下時長]大于T2則將[MR標(biāo)志]設(shè)為異常,后退出本模塊;若[S101按下時長]小于等于T2則RST輸出復(fù)位脈沖。
圖6 按鍵處理模塊流程
檢測喂狗模塊流程如圖7所示,如果[WDI喂狗間隔]大于設(shè)定時間T3則進入復(fù)位處理模塊,否則退出本模塊。
圖7 喂狗檢測模塊流程
屏蔽處理模塊流程如圖8所示,如果[屏蔽時長]大于最大休眠時間T4則進入復(fù)位處理模塊,否則退出本模塊。
圖8 屏蔽處理模塊流程
復(fù)位處理模塊流程圖9所示,如果[RST復(fù)位次數(shù)]小于等于C1則RST輸出復(fù)位脈沖,實現(xiàn)熱啟動,并將[RST復(fù)位次數(shù)]加1,后延時 T1。如果[RST復(fù)位次數(shù)]大于C1則PCT輸出斷電脈沖,實現(xiàn)冷啟動,并將[RST復(fù)位次數(shù)]清零,后延時T1。
圖9 復(fù)位處理模塊流程
定時中斷處理模塊流程如圖10所示,在定時中斷處理中,如果S101按下,則[S101按下時長]加1;否則將[S101按下時長]清零。如果使能輸入端(EN)為高電平即看門狗監(jiān)控系統(tǒng)被使能,則將[屏蔽時長]清零,否則將[屏蔽時長]加1;[WDI喂狗間隔]加1后退出本模塊。
圖10 定時中斷處理模塊流程
WDI中斷處理模塊流程如圖11所示,在產(chǎn)生WDI中斷之后將[WDI喂狗間隔]清零。
圖11 WDI中斷處理模塊流程
為了保障本看門狗監(jiān)控系統(tǒng)自身的可靠性,在硬件上,我們選擇了TINY13作為本監(jiān)控系統(tǒng)的微處理器,它可以通過編程熔絲的方式啟用本微控制器內(nèi)置的硬件看門狗,并且只能通過固定序列才能對內(nèi)置硬件看門狗的配置進行改寫,在編程熔絲之后對內(nèi)置硬件看門狗的使能操作只能通過高壓編程(12 V)才能進行改寫。
圖12 軟件看門狗監(jiān)控任務(wù)
軟件上,我們在系統(tǒng)任務(wù)中增加了一個軟件看門狗監(jiān)控任務(wù)[11],如圖12所示,看門狗監(jiān)控任務(wù)定時檢查對看門狗監(jiān)控系統(tǒng)軟件影響最大的定時器中斷使能標(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)自身因為故障沒有喂狗會產(chǎn)生熱啟動方式的重啟,重啟之后會自動跳過上電啟動延時T1,直接進入主循環(huán),快速恢復(fù)到正常監(jiān)控流程。同時,通過配合硬件電路上轉(zhuǎn)換電路設(shè)計,使得看門狗因自身故障而不工作時或者被斷電時,被監(jiān)控的無人值守嵌入式設(shè)備的電源默認(rèn)處于接通狀態(tài),不會對其正常運行產(chǎn)生影響。
該看門狗監(jiān)控系統(tǒng)于2011年開始應(yīng)用于嵌入式航標(biāo)遙測監(jiān)控終端中,該終端是采用NXP LPC236X設(shè)計的,第一期在長江沿線航道的宜昌航道局試用,之后逐步推廣到南京航道局、東海海事局、海南海事局等地應(yīng)用,達3 000多套。航標(biāo)遙測監(jiān)控終端多安放在江河或海面的浮桶或小船上,漂浮在航道附近,其應(yīng)用環(huán)境復(fù)雜多變(晝夜溫差大、濕度高、鹽霧腐蝕等),對可靠性的要求較高,一旦其發(fā)生故障需要專人乘船前往維護,需要耗費大量的人力、財力和較長的時間才能完成修復(fù)工作,采用本看門狗監(jiān)控系統(tǒng)后,有效降低了航標(biāo)遙測監(jiān)控終端的故障發(fā)生率和設(shè)備維護成本,達到了預(yù)期的設(shè)計目標(biāo)。
本文所設(shè)計的看門狗監(jiān)控系統(tǒng)為設(shè)計人員提高無人值守嵌入式設(shè)備的可靠性提供了一種新的思路,由它監(jiān)控的系統(tǒng)可以更好地滿足現(xiàn)代計算機應(yīng)用領(lǐng)域的不確定性、復(fù)雜性和高標(biāo)準(zhǔn)性的要求。此外,由于它具備結(jié)構(gòu)簡單、通用性好、以及故障恢復(fù)能力強的優(yōu)勢,對保障無人值守嵌入式設(shè)備的長期穩(wěn)定運行、降低設(shè)備維護成本等方面具有重大意義。
[1]李伯成.嵌入式系統(tǒng)可靠性設(shè)計[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].傳感技術(shù)學(xué)報,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]吳允平,李旺彪,蘇偉達,等.一種嵌入式系統(tǒng)的看門狗電路設(shè)計[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)*
汪 培,胡文倩,李彬雅,丁 兵,李汪彪,蘇偉達,吳允平*
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 文獻標(biāo)識碼:A 文章編號:1005-9490(2013)06-0854-05
項目來源:教育部科技研究重點項目(212087);福建省科技廳重大項目(2011H6009);福建省高校新世紀(jì)優(yōu)秀人才支持計劃項目(JA11037);福建省教育廳項目(JA10078)
2013-05-19修改日期:2013-06-09
EEACC:0170N;1250F
汪 培(1988-),男,漢族,湖南桃江人,福建師范大學(xué)通信與信息系統(tǒng)碩士研究生,研究方向為嵌入式系統(tǒng),aa88x@qq.com;
吳允平(1971-),男,漢族,福建連江人,工學(xué)博士,福建師范大學(xué)教授,碩士生導(dǎo)師,主要研究方向為檢測技術(shù)與自動化裝置的研究與教學(xué)工作,wyp @fjnu.edu.cn。