奧泰視景網(wǎng)絡(luò)媒體播放器看門狗工作原理介紹

來源:投影時(shí)代 更新日期:2009-09-19 作者:pjtime資訊組

    在由單片機(jī)構(gòu)成的微型計(jì)算機(jī)系統(tǒng)中,由于單片機(jī)的工作常常會(huì)受到來自外界電磁場(chǎng)的干擾,造成程序的跑飛,而陷入死循環(huán),程序的正常運(yùn)行被打斷,由單片機(jī)控制的系統(tǒng)無法繼續(xù)工作,會(huì)造成整個(gè)系統(tǒng)的陷入停滯狀態(tài),發(fā)生不可預(yù)料的后果,所以出于對(duì)單片機(jī)運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測(cè)的考慮,便產(chǎn)生了一種專門用于監(jiān)測(cè)單片機(jī)程序運(yùn)行狀態(tài)的芯片,俗稱"看門狗"(WatchDog)。

    看門狗電路的應(yīng)用,使單片機(jī)可以在無人狀態(tài)下實(shí)現(xiàn)連續(xù)工作,其工作原理是:看門狗芯片和單片機(jī)的一個(gè)I/O引腳相連,該I/O引腳通過程序控制它定時(shí)地往看門狗的這個(gè)引腳上送入高電平(或低電平),這一程序語句是分散地放在單片機(jī)其他控制語句中間的,一旦單片機(jī)由于干擾造成程序跑飛后而陷入某一程序段 進(jìn)入死循環(huán)狀態(tài)時(shí),寫看門狗引腳的程序便不能被執(zhí)行,這個(gè)時(shí)候,看門狗電路就會(huì)由于得不到單片機(jī)送來的信號(hào),便在它和單片機(jī)復(fù)位引腳相連的引腳上送出一個(gè)復(fù)位信號(hào),使單片機(jī)發(fā)生復(fù)位,即程序從程序存儲(chǔ)器的起始位置開始執(zhí)行,這樣便實(shí)現(xiàn)了單片機(jī)的自動(dòng)復(fù)位。

    看門狗,又叫 WatchDog Timer,是一個(gè)定時(shí)器電路, 一般有一個(gè)輸入,叫喂狗(kicking the dog or service the dog),一個(gè)輸出到MCU的RST端,MCU正常工作的時(shí)候,每隔一端時(shí)間輸出一個(gè)信號(hào)到喂狗端,給 WDT 清零,如果超過規(guī)定的時(shí)間不喂狗,(一般在程序跑飛時(shí)),WDT 定時(shí)超過,就回給出一個(gè)復(fù)位信號(hào)到MCU,是MCU復(fù)位. 防止MCU死機(jī). 看門狗的作用就是防止程序發(fā)生死循環(huán),或者說程序跑飛。

    工作原理:在系統(tǒng)運(yùn)行以后也就啟動(dòng)了看門狗的計(jì)數(shù)器,看門狗就開始自動(dòng)計(jì)數(shù),如果到了一定的時(shí)間還不去清看門狗,那么看門狗計(jì)數(shù)器就會(huì)溢出從而引起看門狗中斷,造成系統(tǒng)復(fù)位。所以在使用有看門狗的芯片時(shí)要注意清看門狗。

    硬件看門狗是利用了一個(gè)定時(shí)器,來監(jiān)控主程序的運(yùn)行,也就是說在主程序的運(yùn)行過程中,我們要在定時(shí)時(shí)間到之前對(duì)定時(shí)器進(jìn)行復(fù)位如果出現(xiàn)死循環(huán),或者說PC指針不能回來。那么定時(shí)時(shí)間到后就會(huì)使單片機(jī)復(fù)位。常用的WDT芯片如MAX813 ,5045, IMP 813等,價(jià)格4~10元不等。

    軟件看門狗技術(shù)的原理和這差不多,只不過是用軟件的方法實(shí)現(xiàn),我們還是以51系列來講,我們知道在51單片機(jī)中有兩個(gè)定時(shí)器,我們就可以用這兩個(gè)定時(shí)器來對(duì)主程序的運(yùn)行進(jìn)行監(jiān)控。我們可以對(duì)T0設(shè)定一定的定時(shí)時(shí)間,當(dāng)產(chǎn)生定時(shí)中斷的時(shí)候?qū)σ粋(gè)變量進(jìn)行賦值,而這個(gè)變量在主程序運(yùn)行的開始已經(jīng)有了一個(gè)初值,在這里我們要設(shè)定的定時(shí)值要小于主程序的運(yùn)行時(shí)間,這樣在主程序的尾部對(duì)變量的值進(jìn)行判斷,如果值發(fā)生了預(yù)期的變化,就說明T0中斷正常,如果沒有發(fā)生變化則使程序復(fù)位。對(duì)于T1我們用來監(jiān)控主程序的運(yùn)行,我們給T1設(shè)定一定的定時(shí)時(shí)間,在主程序中對(duì)其進(jìn)行復(fù)位,如果不能在一定的時(shí)間里對(duì)其進(jìn)行復(fù)位,T1 的定時(shí)中斷就會(huì)使單片機(jī)復(fù)位。在這里T1的定時(shí)時(shí)間要設(shè)的大于主程序的運(yùn)行時(shí)間,給主程序留有一定的的裕量。而T1的中斷正常與否我們?cè)儆蒚0定時(shí)中斷子程序來監(jiān)視。這樣就夠成了一個(gè)循環(huán),T0監(jiān)視T1,T1監(jiān)視主程序,主程序又來監(jiān)視T0,從而保證系統(tǒng)的穩(wěn)定運(yùn)行。

廣告聯(lián)系:010-82755684 | 010-82755685 手機(jī)版:m.pjtime.com官方微博:weibo.com/pjtime官方微信:pjtime
Copyright (C) 2007 by PjTime.com,投影時(shí)代網(wǎng) 版權(quán)所有 關(guān)于投影時(shí)代 | 聯(lián)系我們 | 歡迎來稿 | 網(wǎng)站地圖
返回首頁 網(wǎng)友評(píng)論 返回頂部 建議反饋
快速評(píng)論
驗(yàn)證碼: 看不清?點(diǎn)一下
發(fā)表評(píng)論