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