看門狗技術(shù)在某型相機導(dǎo)航數(shù)據(jù)接口板中的應(yīng)用
摘要:介紹一種將軟件和硬件相結(jié)合實現(xiàn)的“看門狗”技術(shù)在某型相機導(dǎo)航數(shù)據(jù)接口板中的應(yīng)用。結(jié)合實際應(yīng)用給出硬件電路和軟件流程。實踐證明,采用該技術(shù)可使429接口板具有較高的抗干擾性及高可靠性。
關(guān)鍵詞:航空相機; 抗干擾性; 可靠性; “看門狗”技術(shù)
在某型航空相機中,通過429總線數(shù)據(jù)接口板與任務(wù)機通訊接收相關(guān)數(shù)據(jù)和控制指令,同時與相機主板通過并口通訊交換數(shù)據(jù),這樣一來,如果接口板程序陷入“死機”或“死循環(huán)”狀態(tài),那么整個相機系統(tǒng)將無法正常運行,因此,必須盡早發(fā)現(xiàn)故障并采取補救措施。本設(shè)計系統(tǒng)中采用了軟件與硬件相結(jié)合的“看門狗”技術(shù)。
1 系統(tǒng)中的硬件“看門狗"
專用硬件看門狗是指一些集成化的或集成在單片機內(nèi)的專用看門狗電路,實際上它是一個特殊的定時器,當(dāng)定時時間到時發(fā)出溢出脈沖。從實現(xiàn)角度上看,該方式是一種軟件與外部專用電路相結(jié)合的技術(shù),硬件電路連接好以后,在程序中適當(dāng)?shù)夭迦胍恍┛撮T狗復(fù)位指令(即“喂狗”指令),保證程序正常運行時看門狗不溢出;而當(dāng)程序運行異常時,看門
狗超時發(fā)出溢出脈沖,并通過單片機的RESET引腳使單片機復(fù)位。在這種方式中,看門狗能否可靠有效地工作,與硬件組成及軟件的控制策略都有密切的關(guān)系。
該系統(tǒng)采用Maxim公司推出的內(nèi)有“看門狗”(Watchdog)定時器的MAX813L型雙列直插式微處理器,其引腳排列如圖1所示。
圖2示出MAX813L“看門狗”定時器的時序。WDI為“看門狗”的輸入端.用來啟動Watchdog使定時器開始計數(shù)。當(dāng)RESET有效或WDI輸入為高阻態(tài)時,Watchdog定時器被清零且不計數(shù)。當(dāng)復(fù)位信號變?yōu)榈碗娖角襑DI電平發(fā)生變化(上升沿變化或下降沿變化)時,定時器開始計數(shù)。Watchdog一旦被驅(qū)動。若在1.6s內(nèi)不再重新觸發(fā)WDI.或WDI不是高阻態(tài)也無復(fù)位信號時,定時器將發(fā)生計數(shù)溢出,使WDO變?yōu)榈碗娖?。通常,Watchdog可使CPU擺脫“死循環(huán)”的困境,因為陷入死循環(huán)后就不可能發(fā)出WDI脈沖,最多經(jīng)過1.6s后,發(fā)出WDO信號。
圖3為實際應(yīng)用接口板時的“看門狗”硬件連接,其中MAX813L的1腳與8腳相連,7腳接CPU的復(fù)位腳,6腳與CPU的P1.7相連。在軟件設(shè)計中,P1.7不斷輸出脈沖信號(“喂狗”指令),如因某種原因CPU進(jìn)人死循環(huán),則P1.7無脈沖輸出,經(jīng)1.6s后,MAX813L的8腳輸出低電平,將該低電平加到1腳,MAX813L則產(chǎn)生復(fù)位輸出,使CPU有效復(fù)位,CPU從而擺脫死循環(huán)的困境。另外,當(dāng)電源電壓低于門限值(4.65V)時,MAX813L也產(chǎn)生復(fù)位輸出,使CPU處于復(fù)位狀態(tài),不執(zhí)行任何指令,直至電源電壓恢復(fù)正常,可有效防止電源電壓較低時CPU產(chǎn)生錯誤的動作。以下是系統(tǒng)的“喂狗”函數(shù)。
Sbit WDI=P1.7:
void WatchDog()
{
WDI=1;
delayl ms();
WDI=0;
)
2 系統(tǒng)中的軟件“看門狗"
硬件“看門狗”技術(shù)能有效監(jiān)視程序,避免CPU陷入“死循環(huán)”或“死機”故障,但對中斷關(guān)閉故障無能為力;而軟件“看門狗”技術(shù)對高級中斷服務(wù)程序陷入“死循環(huán)”無能為力,但能監(jiān)視全部中斷關(guān)閉的故障。該系統(tǒng)將硬件“看門狗”與軟件“看門狗”相結(jié)合,互相取長補短。獲得出色的抗干擾效果。
圖3所示的“看門狗”硬件電路足以應(yīng)對中斷服務(wù)程序出現(xiàn)的“死循環(huán)”故障,因此,設(shè)計軟件時只需考慮監(jiān)視所有的中斷關(guān)閉故障即可。這樣從而大大簡化軟件流程。系統(tǒng)要求每隔一段時間接口板要與任務(wù)機進(jìn)行一次通訊,而通訊過程是在T0中斷處理程序中完成的,同時接口板還要與相機主板完成并口通訊,而這一通訊過程是在INT0中斷處理程序中完成的。這樣,一旦由于某種原因T0中斷或INT0被關(guān)閉,那么接口板將無法完成與任務(wù)機的 429通訊及與相機主板的并口數(shù)據(jù)通訊。系統(tǒng)軟件 設(shè)計流程如圖4所示,其中的A0、A1分別為T0、INT0中斷運行的狀態(tài)觀測器.每當(dāng)T0、I:NT0中斷1次,A0、A1就相應(yīng)加1。在主程序功能模塊的入口處給A0、A1賦初值,并在中斷處理程序中重新對A0、Al賦新值,由于整個429數(shù)據(jù)解碼程序一般足夠長.在解碼的過程中接口板至少會分別完成與429任務(wù)機及相機主板的一次通訊,因此在每個周期429數(shù)據(jù)解算完畢的出口處分別將.A0、A1與其初值進(jìn)行比較,以判斷A0、A1是否發(fā)生變化,從而觀測二個中斷是否正常執(zhí)行。若中斷因干擾而關(guān)閉,A0、A1的值不發(fā)生變化,程序可轉(zhuǎn)向相應(yīng)函數(shù)進(jìn)行出錯處理,進(jìn)而將程序納入正軌。
3 結(jié)論
用硬件電路使程序擺脫“死循環(huán)”或“死機”,用軟件“看門狗”技術(shù)解除中斷關(guān)閉故障,使程序重新納入正軌。這種軟硬件相結(jié)合實現(xiàn)“看門狗”技術(shù)的方案合理利用了硬件“看門狗”和軟件“看門狗”技術(shù)的優(yōu)點,使429接口板獲得良好的抗干擾效果及較高的可靠性。
評論