單片機(jī)看門狗電路的作用,看門狗系統(tǒng)設(shè)計技巧及其抗干擾措施
(3)采用計數(shù)器、單穩(wěn)態(tài)觸發(fā)器、定時器等器件構(gòu)成。在圖3中用4060構(gòu)成了一個二級“看門狗”電路。
因/I/N/T/O中斷入口0003H處僅有0003H~000AH單元可為中斷服務(wù)程序所用,很可能容納不下中斷服務(wù)程序,故應(yīng)在其內(nèi)安排一條JMP Watch dog指令。由于“跑飛”,PC值在響應(yīng)中斷前已被破壞,在響應(yīng)中斷后,該內(nèi)容自動被壓入堆棧,故一定要用兩條POP A指令將無用內(nèi)容彈出,以便為中斷返回時由堆棧給PC賦予“跑飛”處的正確值,這一點(diǎn)在設(shè)計中斷服務(wù)程序時尤其要引起重視。通過對P1.0取反,恢復(fù)對4060的觸發(fā)脈沖。在中斷服務(wù)中應(yīng)安排被破壞數(shù)據(jù)的診斷、修復(fù)以及查找“跑飛”處的地址正確入口,并在返回前將其壓棧。當(dāng)執(zhí)行RETI時,“跑飛”處斷點(diǎn)地址入口自動彈棧到PC,恢復(fù)正常運(yùn)行。P1.0取反指令在何處插入應(yīng)通過計算指令周期讓兩條CLR P1.0指令間隔小于定時器的定時時間T1
(4)利用8031片內(nèi)定時器/計數(shù)器 8031片內(nèi)有兩個十六位的定時器/計數(shù)器,可用定時器T0。在應(yīng)用程序?qū)0初始化時,將其定時時間T2設(shè)置得比應(yīng)用程序循環(huán)體執(zhí)行時間T1長,可?。篢2=(1.5~2)T1。當(dāng)程序正常時,T0不會溢出,“跑飛”時溢出,定時器/計數(shù)器控制寄存器TCON的TF0(TCON.5)由8031內(nèi)部硬件置位TF0=1,發(fā)出中斷信號。設(shè)8031采用12MHz晶振,經(jīng)定時器內(nèi)部12分頻后得1MHz的定時時鐘,對應(yīng)定時時間1μs,最長可定時約65.5ms,如應(yīng)用程序循環(huán)時間T1=10ms,則可取T2=2T1=20ms,定時器的初值X可由下式確定:
(216-X)×1μs=20ms
X=45536D=B1EOH
定時器的初始化程序:
MOV TLO,#OEOH
MOV THO,#OB1H;定時器/計數(shù)器T0寫入初值
MOV TMOD,#O1H;設(shè)置定時器/計數(shù)器工作方式1
SETB TRO; 起動定時器/計數(shù)器T0
在應(yīng)用程序的系統(tǒng)初始化時用下面指令設(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ù)存儲器,用以存儲“跑飛”前斷點(diǎn)(或接近斷點(diǎn))的PC之值以及一些重要的變量、指針及控制字的值。利用正常工作時P1.0向“看門狗”發(fā)送的觸發(fā)脈沖經(jīng)反向、延時等作為外部擴(kuò)展RAM的片選信號以T1為周期定時對外部RAM中內(nèi)容進(jìn)行刷新。當(dāng)“跑飛”后因觸發(fā)脈沖丟失而避免了外部RAM被攻擊,保證其內(nèi)容的可靠性。隨著T1的減少,被恢復(fù)的值就愈趨近斷點(diǎn)值,但要非常準(zhǔn)確找到斷點(diǎn),還值得人們研究。在中斷響應(yīng)時由于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)注的問題。
評論