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