新聞中心

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

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

        作者: 時間:2018-07-31 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/201807/384555.htm

        (3)采用計數器、單穩態觸發器、定時器等器件構成。在圖3中用4060構成了一個二級“”電路。

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


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

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

        X=45536D=B1EOH

        定時器的初始化程序:

        MOV TLO,#OEOH

        MOV THO,#OB1H;定時器/計數器T0寫入初值

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

        SETB TRO;   起動定時器/計數器T0

        在應用程序的系統初始化時用下面指令設定T0優先級:

        SETB EA;   開放中斷

        SETB ETO;  允許T0中斷

        SETB PTO;  置T0中斷優先級最高

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

        6

        4、 斷點的查找與恢復

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

        結束語

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

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


        上一頁 1 2 3 下一頁

        關鍵詞: 看門狗 單片機

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 旅游| 兴宁市| 资兴市| 宁波市| 邯郸市| 彭山县| 阿拉善右旗| 天台县| 内江市| 孟村| 蛟河市| 庐江县| 云林县| 清河县| 威海市| 常德市| 石屏县| 华池县| 孟连| 花莲县| 兴文县| 临高县| 长沙县| 集安市| 乐亭县| 亚东县| 南开区| 田东县| 赤峰市| 丽江市| 湖南省| 周至县| 赣榆县| 尖扎县| 乐平市| 墨竹工卡县| 浦东新区| 昂仁县| 滦平县| 富锦市| 广饶县|