1. 電子行業里的"看門狗"是什麼意思
看門狗,又叫 watchdog timer,是一個定時器電路, 一般有一個輸入,叫喂狗,一個輸出到MCU的RST端,MCU正常工作的時候,每隔一端時間輸出一個信號到喂狗端,給 WDT 清零,如果超過規定的時間不喂狗,(一般在程序跑飛時),WDT 定時超過,就回給出一個復位信號到MCU,是MCU復位. 防止MCU死機. 看門狗的作用就是防止程序發生死循環,或者說程序跑飛。
工作原理:在系統運行以後也就啟動了看門狗的計數器,看門狗就開始自動計數,如果到了一定的時間還不去清看門狗,那麼看門狗計數器就會溢出從而引起看門狗中斷,造成系統復位。所以在使用有看門狗的晶元時要注意清看門狗。
硬體看門狗是利用了一個定時器,來監控主程序的運行,也就是說在主程序的運行過程中,我們要在定時時間到之前對定時器進行復位如果出現死循環,或者說PC指針不能回來。那麼定時時間到後就會使單片機復位。常用的WDT晶元如MAX813 ,5045, IMP 813等,價格4~10元不等.
軟體看門狗技術的原理和這差不多,只不過是用軟體的方法實現,我們還是以51系列來講,我們知道在51單片機中有兩個定時器,我們就可以用這兩個定時器來對主程序的運行進行監控。我們可以對T0設定一定的定時時間,當產生定時中斷的時候對一個變數進行賦值,而這個變數在主程序運行的開始已經有了一個初值,在這里我們要設定的定時值要小於主程序的運行時間,這樣在主程序的尾部對變數的值進行判斷,如果值發生了預期的變化,就說明T0中斷正常,如果沒有發生變化則使程序復位。對於T1我們用來監控主程序的運行,我們給T1設定一定的定時時間,在主程序中對其進行復位,如果不能在一定的時間里對其進行復位,T1 的定時中斷就會使單片機復位。在這里T1的定時時間要設的大於主程序的運行時間,給主程序留有一定的的裕量。而T1的中斷正常與否我們再由T0定時中斷子程序來監視。這樣就夠成了一個循環,T0監視T1,T1監視主程序,主程序又來監視T0,從而保證系統的穩定運行。
51 系列有專門的看門狗定時器,對系統頻率進行分頻計數,定時器溢出時,將引起復位.看門狗可設定溢出率,也可單獨用來作為定時器使用.
凌陽61的看門狗比較單一,一個是時間單一,第二是功能在實際的使用中只需在循環當中加入清狗的指令就OK了。
C8051Fxxx單片機內部也有一個21位的使用系統時鍾的定時器,該定時器檢測對其控制 寄存器的兩次特定寫操作的時間間隔。如果這個時間間隔超過了編程的極限值,將產生一個WDT復位。
--------------------------------------------------------------------------------
看門狗使用注意:大多數51 系列單片機都有看門狗,當看門狗沒有被定時清零時,將引起復位。這可防止程序跑飛。設計者必須清楚看門狗的溢出時間以決定在合適的時候,清看門狗。清看門狗也不能太過頻繁否則會造成資源浪費。程序正常運行時,軟體每隔一定的時間(小於定時器的溢出周期)給定時器置數,即可預防溢出中斷而引起的誤復位。
看門狗運用:看門狗是恢復系統的正常運行及有效的監視管理器(具有鎖定光碟機,鎖定任何指定程序的作用,可用在家庭中防止小孩無節制地玩游戲、上網、看錄像)等具有很好的應用價值.
系統軟體"看門狗"的設計思路:
1.看門狗定時器T0的設置。在初始化程序塊中設置T0的工作方式,並開啟中斷和計數功能。系統Fosc=12 MHz,T0為16位計數器,最大計數值為(2的10次方)-1=65 535,T0輸入計數頻率是.Fosc/12,溢出周期為(65 535+1)/1=65 536(μs)。
2.計算主控程序循環一次的耗時。考慮系統各功能模塊及其循環次數,本系統主控製程序的運行時間約為16.6 ms。系統設置"看門狗"定時器T0定時30 ms(T0的初值為65 536-30 000=35 536)。主控程序的每次循環都將刷新T0的初值。如程序進入"死循環"而T0的初值在30 ms內未被刷新,這時"看門狗"定時器T0將溢出並申請中斷。
3.設計T0溢出所對應的中斷服務程序。此子程序只須一條指令,即在T0對應的中斷向量地址(000BH)寫入"無條件轉移"命令,把計算機拖回整個程序的第一行,對單片機重新進行初始化並獲得正確的執行順序。
2. 什麼是看門狗它的原理
看門狗是一種電子器件,單片機中也含有該功能件。它的主要作用就是一個定時器,如果程序出現跑飛,在一定的時間內沒有對看門狗復位(不能運行到有看門狗復位的語句),看門狗就會使系統復位。從而避免死循環的發生。
看門狗分硬體看門狗和軟體看門狗。
硬體看門狗,是利用一個定時器電路,定時輸出連接到電路的復位端,程序在一定時間范圍內對定時器清零(俗稱「喂狗」),因此程序正常工作時,定時器總不能溢出,也就不能產生復位信號。如果程序出現故障,不在定時周期內復位看門狗,就使得看門狗定時器溢出產生復位信號並重啟系統。
軟體看門狗原理上一樣,只是將硬體電路上的定時器用處理器的內部定時器代替,這樣可以簡化硬體電路設計,但在可靠性方面不如硬體定時器,比如系統內部定時器自身發生故障就無法檢測到。當然也有通過雙定時器相互監視,這不僅加大系統開銷,也不能解決全部問題,比如中斷系統故障導致定時器中斷失效。
3. 單片機中的看門狗是什麼東西,有什麼作用
看門狗(WDT)是一個定時器。看門狗是用來防止萬一單片機程序出錯造成重大損失的。防錯的原理很簡單,它在硬體上就是一個定時器,當它溢出的時候就會讓單片機強制復位使程序重新開始執行。
正常的情況下是不能讓它溢出的,所以在程序上每隔一段時間要給他置一次值(俗稱喂狗),只要程序中正常給它喂他就不會溢出。
一旦程序跑飛了,有干擾或者進入死循環之類的情況時,不能正常執行程序了,那麼就永遠執行不到喂狗的指令了,但此時定時器是硬體控制的,仍然會走,所以溢出了,單片機就復位了。
一般安全性要求比較高的,系統跑飛了會造成重大事故的都會加一個「狗」保安全。
通常,看門狗的溢出時間越短越靈敏,跑飛之後復位的時間越短,也就越安全,但是,喂狗的操作也要更頻繁。
(3)程序中看門狗什麼意思擴展閱讀:
看門狗工作原理:
使用時,WDT將遞增直到溢出或「超時」。 除非處於休眠或空閑模式,否則WDT超時將強制器件復位。 為避免WDT超時復位,用戶必須使用PWRSAV或CLRWDT指令定期清除看門狗定時器。 如果WDT在休眠或空閑模式下超時。
器件將喚醒並從執行PWRSAV指令的位置繼續執行代碼。 在以上兩種情況下,WDTO位(RCON <4>)將被置1,表明器件復位或喚醒事件是由WDT超時引起的。
如果WDT將CPU從睡眠或空閑模式喚醒,則還將置位「睡眠」狀態位(RCON <3>)或「空閑」狀態位(RCON <2>),表明該設備先前已上電。 保存模式。
在正常操作期間,WDT超時將產生設備復位。 當設備處於睡眠狀態時,WDT超時將喚醒設備以繼續正常操作(稱為WDT喚醒)。 清零WDTE設置位可以永久關閉WDT。 後分頻器分配完全由軟體控制,也就是說,可以在程序執行期間隨時更改它。
為避免不可預測的器件復位,當從Timer0預分頻器分配更改為WDT後分頻器分配時,必須執行以下指令序列。 即使禁止了WDT,也必須執行該指令序列。
4. 凌陽單片機程序中清看門狗是什麼意思
那是為了程序裡面防止一些不可知的因素程序跑飛功能不正常而設置的硬體復位,通常這個功能是編程時可選開啟的,開了之後會一定的周期(大概是8M時鍾周期)地出發這個看門狗功能。所以如果開了看門狗,主循環中一般需要加一句clear watchdog,或者其他有長時間等待再或者死循環的地方,都要注意清看門狗。