單片機看門(mén)狗電路的作用,看門(mén)狗系統設計技巧及其抗干擾措施
在由單片機構成的微型計算機系統中,由于單片機的工作常常會(huì )受到來(lái)自外界電磁場(chǎng)的干擾,造成程序的跑飛,而陷入死循環(huán),程序的正常運行被打斷,由單片機控制的系統無(wú)法繼續工作,會(huì )造成整個(gè)系統的陷入停滯狀態(tài),發(fā)生不可預料的后果,所以出于對單片機運行狀態(tài)進(jìn)行實(shí)時(shí)監測的考慮,便產(chǎn)生了一種專(zhuān)門(mén)用于監測單片機程序運行狀態(tài)的芯片,俗稱(chēng)“看門(mén)狗”(watchdog)
本文引用地址:http://dyxdggzs.com/article/201807/384555.htm其作用是使單片機可以在無(wú)人狀態(tài)下實(shí)現連續工作,其工作原理是:看門(mén)狗芯片和單片機的一個(gè)I/O引腳相連,該I/O引腳通過(guò)程序控制它定時(shí)地往看門(mén)狗的這個(gè)引腳上送入高電平(或低電平),這一程序語(yǔ)句是分散地放在單片機其他控制語(yǔ)句中間的,一旦單片機由于干擾造成程序跑飛后而陷入某一程序段 進(jìn)入死循環(huán)狀態(tài)時(shí),寫(xiě)看門(mén)狗引腳的程序便不能被執行,這個(gè)時(shí)候,看門(mén)狗電路就會(huì )由于得不到單片機送來(lái)的信號,便在它和單片機復位引腳相連的引腳上送出一個(gè)復位信號,使單片機發(fā)生復位,即程序從程序存儲器的起始位置開(kāi)始執行,這樣便實(shí)現了單片機的自動(dòng)復位。
單片機看門(mén)狗電路的作用
看門(mén)狗的作用: 看門(mén)狗定時(shí)器是一個(gè)計數器,基本功能是在發(fā)生軟件問(wèn)題和程序跑飛后使系統重新啟動(dòng)??撮T(mén)狗計數器正常工作時(shí)自動(dòng)計數,程序流程定期將其復位清零,如果系統在某處卡死或跑飛,該定時(shí)器將溢出,并將進(jìn)入中斷。在定時(shí)器中斷中執行一些復位操作,使系統恢復正常的工作狀態(tài),即在程序沒(méi)有正常運行期間,如期復位看門(mén)狗以保證所選擇
的定時(shí)溢出歸零,使處理器重新啟動(dòng)。軟件的可靠性一直是一個(gè)關(guān)鍵問(wèn)題。任何使用軟件的人都可能會(huì )經(jīng)歷計算機死機或程序跑飛的問(wèn)題,這種情況在嵌入式系統中也同樣存在。由于單片機的抗干擾能力有限,在工業(yè)現場(chǎng)的儀器儀表中,常會(huì )由于電壓不穩、電弧干擾等造成死機。在水表、電表等無(wú)人看守的情況下,也會(huì )因系統遭受干擾而無(wú)法重啟。為了保證系統在干擾后能自動(dòng)恢復正常,看門(mén)狗定時(shí)器(Watchdog TImer)的利用是很有價(jià)值的。
現今市面上流行的一些單片機,多嵌有內部WDT,如TI的MSP430系列,Philips的P87XXX和P89XXX系列,Microchip的PIC列,Atmel的AT89SXX系列和Holtek公司的Htxxx系列。但是這些內部看門(mén)狗在工作時(shí),多存在一定的誤差。一些工程師在設計的過(guò)程中,由于忽略了這一點(diǎn),導致系統出現異常。MSP430系列單片機是美國德州儀器公司(TI)近幾年開(kāi)發(fā)的新一代單片機,該系列是一款16位、具有精簡(jiǎn)指令集、超低功耗的全新概念混合型單片機。在眾多單片機系列中,由于它具有極低的功耗、豐富的片內外設和方便靈活的開(kāi)發(fā)手段,已成為一顆耀眼的新星。其內部自帶看門(mén)狗及復位電路,理論上如果程序跑飛,可用看門(mén)狗將其復位。但在實(shí)際使用過(guò)程中,發(fā)現看門(mén)狗的作用并非萬(wàn)無(wú)一失,以下實(shí)驗證明了這一點(diǎn)。實(shí)驗電路如圖1所示。

試驗程序清單:
#include《msp430x12.h》
void main(void){
p1dir l=0x0f; //設置p1.2-.p1.0為輸出
for(;;){
volaTIle unsigned int i;
wdtctl=wdtpw+wdtcncl;
//復位wdt
piout==0x0t;
i=5000;
do(i--)
while(i!=0);
}}
上述實(shí)驗啟動(dòng)后,如果程序正常運行,LED會(huì )閃爍。缺省時(shí),MSP430的看門(mén)狗是允許狀態(tài),所運行的程序會(huì )不斷地訪(fǎng)問(wèn)看門(mén)狗。理論上,這個(gè)系統是不會(huì )發(fā)生啟動(dòng)失敗的,因為即使啟動(dòng)失敗,看門(mén)狗也應該在數百毫秒內啟動(dòng),復位整個(gè)系統?;谶@種思想,對單片機的復位進(jìn)行測試。K2斷開(kāi),用K1連續產(chǎn)生。Reset信號,測試看門(mén)狗使系統重啟的成功率。K2閉合,則reset端高電平,理論上K1不能有效產(chǎn)生復位脈沖,觀(guān)察看門(mén)狗是否起作用。
實(shí)驗結果與分析
實(shí)驗結果如下:K2斷開(kāi),連續開(kāi)關(guān)K1,上電重啟系統,平均155次失敗1次(LED不閃),即看門(mén)狗失效概率0.6%;K2閉合,連續開(kāi)關(guān)K1,平均18次失敗1次(LED不閃),且一旦失敗,將連續失敗下去,看門(mén)狗無(wú)效率占到了約5.5%。另外,當采用同樣具有內置看門(mén)狗的其他系列單片機替代實(shí)驗中的MSP430,啟動(dòng)程序段作相應修改時(shí),實(shí)驗結果仍大致相同,這說(shuō)明具有內置看門(mén)狗的單片機面臨的問(wèn)題是相同的。經(jīng)分析可能有如下原因:
①由于看門(mén)狗的時(shí)鐘不獨立,計數時(shí)鐘與系統為同一分頻鏈路,因此看門(mén)狗不能在系統出現問(wèn)題時(shí)有效運作。
②由于時(shí)鐘可用軟件設置,啟動(dòng)失敗時(shí),開(kāi)機時(shí)鐘可能處于空檔,沒(méi)有時(shí)鐘看門(mén)狗不能生效。
③有些看門(mén)狗需要用軟件設置或啟動(dòng),因此啟動(dòng)失敗后,初始化程序沒(méi)有激活,CPU可能跳轉到隨機代碼,使看門(mén)狗被禁止。這樣的看門(mén)狗是需要有可靠的上電復位作保證的,因此,從理論上講,原設計存在著(zhù)不合理性?;谏鲜龇治?,采用片外看門(mén)狗專(zhuān)用芯片TPS3823由獨立的分頻振蕩電路提供計數脈沖。實(shí)驗電路如圖2所示。

上述電路中,TPS3823輸出定時(shí)溢出信號給Reset端。程序段中,CPU要不斷地通過(guò)I/O口輸出喂狗信號,使看門(mén)狗計數器清零。在此電路中重復上述試驗中K1、K2的相同動(dòng)作,系統重啟成功率達到100%。
未來(lái)的內置看門(mén)狗必須有獨立可靠的時(shí)鐘。系統上電后,看門(mén)狗即為允許狀態(tài),無(wú)需軟件設置,它只能被外部硬件跳線(xiàn)或內部熔絲(fuse)所禁止。目前,如果要求設計可靠性較高的嵌入式系統,外置看門(mén)狗是必須考慮的。內置看門(mén)狗的另一問(wèn)題是系統復位后,程序應判斷是由Reset端正常上電復位,還是程序跑飛看門(mén)狗所致,由此確定現場(chǎng)數據是否應該保留。這也是在看門(mén)狗應用中所應考慮的。
看門(mén)狗系統設計技巧
外部看門(mén)狗是嵌入式系統工程師工具箱里重要且關(guān)鍵的工具,然而為了捕捉到故障,且預防故障的發(fā)生,看們狗必須設計得當。因此設計一個(gè)看門(mén)狗系統時(shí)應考慮以下5個(gè)秘訣。
技巧1—監測心跳
評論