<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機看門(mén)狗電路的作用,看門(mén)狗系統設計技巧及其抗干擾措施

單片機看門(mén)狗電路的作用,看門(mén)狗系統設計技巧及其抗干擾措施

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

本文引用地址:http://dyxdggzs.com/article/201807/384555.htm

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

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


(4)利用8031片內定時(shí)器/計數器 8031片內有兩個(gè)十六位的定時(shí)器/計數器,可用定時(shí)器T0。在應用程序對T0初始化時(shí),將其定時(shí)時(shí)間T2設置得比應用程序循環(huán)體執行時(shí)間T1長(cháng),可?。篢2=(1.5~2)T1。當程序正常時(shí),T0不會(huì )溢出,“跑飛”時(shí)溢出,定時(shí)器/計數器控制寄存器TCON的TF0(TCON.5)由8031內部硬件置位TF0=1,發(fā)出中斷信號。設8031采用12MHz晶振,經(jīng)定時(shí)器內部12分頻后得1MHz的定時(shí)時(shí)鐘,對應定時(shí)時(shí)間1μs,最長(cháng)可定時(shí)約65.5ms,如應用程序循環(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í)器/計數器T0寫(xiě)入初值

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

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

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

SETB EA;   開(kāi)放中斷

SETB ETO;  允許T0中斷

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

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

6

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

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

結束語(yǔ)

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

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


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 看門(mén)狗 單片機

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>