日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

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

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

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

1 引言

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

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

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

t40-1.gif (3512 bytes)

圖1 原理框圖

t40-2.gif (3578 bytes)

圖2 原理波形圖

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

t40-3.gif (5521 bytes)

圖3 二級“看門狗”電路

  (4)利用8031片內(nèi)定時(shí)器/計(jì)數(shù)器 8031片內(nèi)有兩個十六位的定時(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不會溢出,“跑飛”時(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;   起動定時(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ù)流程與中斷服務(wù)流程(見圖4)相比,其中斷入口為000BH,去掉P1.0取反的指令,其余相同。靠優(yōu)先級別最高的中斷將控制權(quán)重新奪回交給CPU,使系統(tǒng)恢復(fù)正常。

t41-1.gif (4667 bytes)

圖4 中斷服務(wù)流程

2.4 斷點(diǎn)的查找與恢復(fù)
  斷點(diǎn)的查找與恢復(fù)是人們最關(guān)注的問題,我們的方法是擴(kuò)展一外部數(shù)據(jù)存儲器,用以存儲“跑飛”前斷點(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)值讀出。

3 結(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)注的問題。

編輯:admin  最后修改時(shí)間:2018-05-08

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

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

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

莱芜市| 韶关市| 息烽县| 年辖:市辖区| 大荔县| 调兵山市| 宣化县| 高青县| 左云县| 广平县| 泸定县| 来安县| 察隅县| 安义县| 加查县| 霍林郭勒市| 邢台县| 汉寿县| 仲巴县| 凤山市| 琼中| 龙江县| 扶绥县| 凤翔县| 家居| 延边| 陵川县| 高邮市| 中阳县| 黑龙江省| 庆元县| 黄浦区| 太仆寺旗| 嵊泗县| 乐亭县| 嘉义县| 县级市| 十堰市| 瓦房店市| 乌拉特后旗| 富阳市|