新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)看門狗電路的作用,看門狗系統(tǒng)設(shè)計(jì)技巧及其抗干擾措施

單片機(jī)看門狗電路的作用,看門狗系統(tǒng)設(shè)計(jì)技巧及其抗干擾措施

作者: 時(shí)間:2018-07-31 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://m.butianyuan.cn/article/201807/384555.htm

(3)采用計(jì)數(shù)器、單穩(wěn)態(tài)觸發(fā)器、定時(shí)器等器件構(gòu)成。在圖3中用4060構(gòu)成了一個(gè)二級“”電路。

因/I/N/T/O中斷入口0003H處僅有0003H~000AH單元可為中斷服務(wù)程序所用,很可能容納不下中斷服務(wù)程序,故應(yīng)在其內(nèi)安排一條JMP Watch dog指令。由于“跑飛”,PC值在響應(yīng)中斷前已被破壞,在響應(yīng)中斷后,該內(nèi)容自動(dòng)被壓入堆棧,故一定要用兩條POP A指令將無用內(nèi)容彈出,以便為中斷返回時(shí)由堆棧給PC賦予“跑飛”處的正確值,這一點(diǎn)在設(shè)計(jì)中斷服務(wù)程序時(shí)尤其要引起重視。通過對P1.0取反,恢復(fù)對4060的觸發(fā)脈沖。在中斷服務(wù)中應(yīng)安排被破壞數(shù)據(jù)的診斷、修復(fù)以及查找“跑飛”處的地址正確入口,并在返回前將其壓棧。當(dāng)執(zhí)行RETI時(shí),“跑飛”處斷點(diǎn)地址入口自動(dòng)彈棧到PC,恢復(fù)正常運(yùn)行。P1.0取反指令在何處插入應(yīng)通過計(jì)算指令周期讓兩條CLR P1.0指令間隔小于定時(shí)器的定時(shí)時(shí)間T1


(4)利用8031片內(nèi)定時(shí)器/計(jì)數(shù)器 8031片內(nèi)有兩個(gè)十六位的定時(shí)器/計(jì)數(shù)器,可用定時(shí)器T0。在應(yīng)用程序?qū)0初始化時(shí),將其定時(shí)時(shí)間T2設(shè)置得比應(yīng)用程序循環(huán)體執(zhí)行時(shí)間T1長,可?。篢2=(1.5~2)T1。當(dāng)程序正常時(shí),T0不會(huì)溢出,“跑飛”時(shí)溢出,定時(shí)器/計(jì)數(shù)器控制寄存器TCON的TF0(TCON.5)由8031內(nèi)部硬件置位TF0=1,發(fā)出中斷信號。設(shè)8031采用12MHz晶振,經(jīng)定時(shí)器內(nèi)部12分頻后得1MHz的定時(shí)時(shí)鐘,對應(yīng)定時(shí)時(shí)間1μs,最長可定時(shí)約65.5ms,如應(yīng)用程序循環(huán)時(shí)間T1=10ms,則可取T2=2T1=20ms,定時(shí)器的初值X可由下式確定:

(216-X)×1μs=20ms

X=45536D=B1EOH

定時(shí)器的初始化程序:

MOV TLO,#OEOH

MOV THO,#OB1H;定時(shí)器/計(jì)數(shù)器T0寫入初值

MOV TMOD,#O1H;設(shè)置定時(shí)器/計(jì)數(shù)器工作方式1

SETB TRO;   起動(dòng)定時(shí)器/計(jì)數(shù)器T0

在應(yīng)用程序的系統(tǒng)初始化時(shí)用下面指令設(shè)定T0優(yōu)先級:

SETB EA;   開放中斷

SETB ETO;  允許T0中斷

SETB PTO;  置T0中斷優(yōu)先級最高

T0中斷服務(wù)流程與/I/N/T/O中斷服務(wù)流程(見圖4)相比,其中斷入口為000BH,去掉P1.0取反的指令,其余相同??績?yōu)先級別最高的中斷將控制權(quán)重新奪回交給CPU,使系統(tǒng)恢復(fù)正常。

6

4、 斷點(diǎn)的查找與恢復(fù)

斷點(diǎn)的查找與恢復(fù)是人們最關(guān)注的問題,我們的方法是擴(kuò)展一外部數(shù)據(jù)存儲(chǔ)器,用以存儲(chǔ)“跑飛”前斷點(diǎn)(或接近斷點(diǎn))的PC之值以及一些重要的變量、指針及控制字的值。利用正常工作時(shí)P1.0向“”發(fā)送的觸發(fā)脈沖經(jīng)反向、延時(shí)等作為外部擴(kuò)展RAM的片選信號以T1為周期定時(shí)對外部RAM中內(nèi)容進(jìn)行刷新。當(dāng)“跑飛”后因觸發(fā)脈沖丟失而避免了外部RAM被攻擊,保證其內(nèi)容的可靠性。隨著T1的減少,被恢復(fù)的值就愈趨近斷點(diǎn)值,但要非常準(zhǔn)確找到斷點(diǎn),還值得人們研究。在中斷響應(yīng)時(shí)由于P1.0恢復(fù)了輸出觸發(fā)脈沖,故可將斷點(diǎn)值讀出。

結(jié)束語

”是對付“跑飛”的有力手段,在生產(chǎn)過程中由于特定的生產(chǎn)條件使得“看門狗”技術(shù)有其相當(dāng)?shù)淖饔?。我們在對某水泥廠微機(jī)配料系統(tǒng)的技術(shù)改造過程中采用了二級“看門狗”技術(shù),該系統(tǒng)運(yùn)行兩年多來經(jīng)受住了各種強(qiáng)干擾的考驗(yàn),取得了令人滿意的效果。

對于“跑飛”后的診斷、恢復(fù),尤其是如何更準(zhǔn)確地找到程序“跑飛”斷點(diǎn),對被損數(shù)據(jù)加以恢復(fù)等方面盡管有許多軟件可以利用,但還是值得人們多加關(guān)注的問題。


上一頁 1 2 3 下一頁

關(guān)鍵詞: 看門狗 單片機(jī)

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉