回答:
看門狗,又叫 watchdog timer,從本質上來說就是一個定時器電路,一般有一個輸入和一個輸出,其中輸入叫做“喂狗”(kicking the dog/service the dog),輸出一般連接到另外一個部分的復位端,一般是連接到單片機。“看門狗”的功能是定期的查看芯片內部的情況,一旦發生錯誤就向芯片發出重啟信號。“看門狗”命令在程序的中斷中擁有最高的優先級,防止程序跑飛,也可以防止程序在線運行時候出現死循環。簡而言之:如果一切正常,dog就不會發出叫聲,反之異常dog就會叫,并且拒之門外!
在實際生產運用中,工控機大多數都是集成生產、制造、管理等現場的設備中,比如提到最多的機器視覺方案。其中控制著各個大型機器的運行,工控機在其中雖只是占領了很小的空間但卻起著決定性的作用,為了保護好整體設施以及提高工業生產的效率,需要在工控機上安裝看門狗,以便對各個機器間進行很好的監控,有異常運行時立馬重啟程序最快的時間內恢復運行。當程序出現死循環的時候,輕則是整個配套的機器系統出現故障,從而影響著整個工業的生產,重則整個生產線系統出現癱瘓,無法正常運作,出現不可挽救的損失。
“看門狗”工作原理
看門狗是一種監控系統的運行狀況的手段,通過軟硬件結合的方式實現對系統運行狀況的監控。在系統運行以后也就啟動了看門狗的計數器,看門狗就開始自動計數,穩定運行的軟件會在執行完特定指令后進行喂狗,若在一定周期內看門狗沒有收到來自軟件的喂狗信號,則認為系統故障,會進入中斷處理程序或強制系統復位。系統上電后根據不同的工作模式可以選擇使能看門狗的時機,若看門狗被使能則計數器開始計數,如果在設定的時間內沒有及時喂狗則會發生看門狗超時。看門狗主要由寄存器、計數器和狗叫模塊構成:通過寄存器對看門狗進行基本設置,計數器計算狗叫時間,狗叫模塊決定看門狗超時后發出的中斷或復位方式。
硬件看門狗
硬件看門狗是利用一個定時器電路,其定時輸出連接到電路的復位端,程序在一定時間范圍內對定時器清零(俗稱“喂狗”),因此程序正常工作時,定時器總不能溢出,也就不能產生復位信號。
如果程序出現故障,不在定時周期內復位看門狗,就使得看門狗定時器溢出產生復位信號并重啟系統。
軟件看門狗
軟件看門狗原理上一樣,只是將硬件電路上的定時器用處理器的內部定時器代替,這樣可以簡化硬件電路設計,一般是將一個芯片中的定時器來作為看門狗,通過程序的初始化,寫入初值,并啟動定時器。程序按時對定時器賦初值(或復位),以免它餓了。
免責聲明:本網站部分文章、圖片等信息來源于網絡,版權歸原作者平臺所有,僅用于學術分享,如不慎侵犯了你的權益,請聯系我們,我們將做刪除處理!