国产成人av人人爽人人澡-亚洲国产日韩欧美一区-好吊日视频这里只有精品-日本高清精品视频在线

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 技術中心 >> 單片機入門 >> 看門狗技術與單片機應用系統(tǒng)抗干擾措施

看門狗技術與單片機應用系統(tǒng)抗干擾措施

關鍵字:看門狗 作者:admin 來源:不詳 發(fā)布時間:2018-05-08  瀏覽:30

1 引言

  隨著工業(yè)自動化水平的不斷提高,以MCS-51單片機為核心所構成的單片機應用系統(tǒng)得到了廣泛應用,如水泥生料配料系統(tǒng)、電子皮帶秤給料控制、各種現場智能測量儀表等。但其工作現場條件惡劣,干擾多而且幅度大,嚴重影響著應用系統(tǒng)的正常運行與可靠性,甚至使應用系統(tǒng)計算機進入死循環(huán)而癱瘓,通常稱為程序“跑飛”。由此引出的計算機可靠性問題,一直是人們研究的重要課題。
  采用屏蔽、濾波、退耦、隔離、接地等措施能有效地提高系統(tǒng)的抗干擾能力,但很難在強干擾發(fā)生時消除因程序“跑飛”而死機情況的發(fā)生。“看門狗”技術能在程序“跑飛”時實現自我診斷并使系統(tǒng)恢復運行,是單片機應用系統(tǒng)抗干擾的有力武器。當然,它是以系統(tǒng)的硬、軟件設計開發(fā)的合理和成熟為條件的,否則將掩蓋系統(tǒng)設計開發(fā)過程中的人為缺陷與不足。

2 “看門狗”技術及其對干擾的抑制

2.1 程序“跑飛”對系統(tǒng)的攻擊
  (1)程序計數器PC的值被攻擊,成為一隨機拼合的數據。
  (2)系統(tǒng)設置的控制字與標志參數因“跑飛”后可能被訪問而被攻擊。
  (3)數據存儲器RAM內容被攻擊等。
2.2 “看門狗”技術
  “看門狗”源于“Watch dog、Watch dog timer”,或稱定時監(jiān)視技術,其本質是一可復位的定時器,其原理如圖1、2所示。

t40-1.gif (3512 bytes)

圖1 原理框圖

t40-2.gif (3578 bytes)

圖2 原理波形圖

  在程序正常運行時,計算機通過程序以周期T1向定時器發(fā)送脈沖觸發(fā)定時器(或通過軟件以T1為周期初始化定時器),而由定時脈沖控制的定時器動作時間為T2(T3),在T1<T2(T3)時,定時器不會動作,處于休眠狀態(tài)。當計算機受到強干擾等作用破壞后,程序計數器PC中內容不再是程序的正確代碼,而可能為一隨機拼合的數據,這樣會使取指不正確,必然導致程序運行混亂“跑飛”,進入死循環(huán)而死機。反過來由于程序脫離正常循環(huán),也使定時器觸發(fā)脈沖丟失,在經過T2(T3)時間后,“看門狗”定時器被激活,向CPU發(fā)出Reset信號使其復位,將“跑飛”的程序從PC=0000H開始,納入正常軌道。但有些生產過程是不能從頭開始的,應用程序均是一循環(huán)體,且在開始處均有初始化程序,包含各種寄存器、指針、變量、控制字等。此時狀態(tài)不能反應“跑飛”時的狀態(tài),有時還有人身、設備等方面的安全危險。在這種情況下,程序“跑飛”后應設法找到出錯時的斷點,此時就可以采用二級“看門狗”的方式。由程序設計時優(yōu)先級設置為最高級的定時器一先發(fā)出中斷請求信號,CPU響應中斷轉向中斷處理程序,進而恢復系統(tǒng)。第二級“看門狗”電路只有在第一級未起作用時經過T3才起動Reset信號。
2.3 “看門狗”技術的實施方法
  (1)在系統(tǒng)構成時選用芯片內帶有“看門狗”電路的單片機,如ATMEL公司的89C52等。
  (2)選配專門的“看門狗”電路,如美國Xicor公司的X25043/45、MAXIM公司的MAX813L等,它們均可構成獨立的“看門狗”電路。
  (3)采用計數器、單穩(wěn)態(tài)觸發(fā)器、定時器等器件構成。在圖3中用4060構成了一個二級“看門狗”電路。
  因中斷入口0003H處僅有0003H~000AH單元可為中斷服務程序所用,很可能容納不下中斷服務程序,故應在其內安排一條JMP Watch dog指令。由于“跑飛”,PC值在響應中斷前已被破壞,在響應中斷后,該內容自動被壓入堆棧,故一定要用兩條POP A指令將無用內容彈出,以便為中斷返回時由堆棧給PC賦予“跑飛”處的正確值,這一點在設計中斷服務程序時尤其要引起重視。通過對P1.0取反,恢復對4060的觸發(fā)脈沖。在中斷服務中應安排被破壞數據的診斷、修復以及查找“跑飛”處的地址正確入口,并在返回前將其壓棧。當執(zhí)行RETI時,“跑飛”處斷點地址入口自動彈棧到PC,恢復正常運行。P1.0取反指令在何處插入應通過計算指令周期讓兩條CLR P1.0指令間隔小于定時器的定時時間T1<T2,可取T2=(1.5~2)T1。

t40-3.gif (5521 bytes)

圖3 二級“看門狗”電路

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

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

  SETB EA;   開放中斷
  SETB ETO;  允許T0中斷
  SETB PTO;  置T0中斷優(yōu)先級最高

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

t41-1.gif (4667 bytes)

圖4 中斷服務流程

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

3 結束語

  “看門狗”是對付“跑飛”的有力手段,在生產過程中由于特定的生產條件使得“看門狗”技術有其相當的作用。我們在對某水泥廠微機配料系統(tǒng)的技術改造過程中采用了二級“看門狗”技術,該系統(tǒng)運行兩年多來經受住了各種強干擾的考驗,取得了令人滿意的效果。
  對于“跑飛”后的診斷、恢復,尤其是如何更準確地找到程序“跑飛”斷點,對被損數據加以恢復等方面盡管有許多軟件可以利用,但還是值得人們多加關注的問題。

編輯:admin  最后修改時間:2018-05-08

聯系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4