第16課 計(jì)算機(jī)測控系統(tǒng)軟件抗干擾_第1頁
第16課 計(jì)算機(jī)測控系統(tǒng)軟件抗干擾_第2頁
第16課 計(jì)算機(jī)測控系統(tǒng)軟件抗干擾_第3頁
第16課 計(jì)算機(jī)測控系統(tǒng)軟件抗干擾_第4頁
第16課 計(jì)算機(jī)測控系統(tǒng)軟件抗干擾_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、于勁松于勁松檢測與自動(dòng)化工程系檢測與自動(dòng)化工程系 新主樓新主樓 E902 計(jì)算機(jī)測控技術(shù)第七單元 抗干擾技術(shù)7.3 測控系統(tǒng)軟件抗干擾設(shè)計(jì)測控系統(tǒng)軟件抗干擾設(shè)計(jì) 在干擾作用下,微機(jī)系統(tǒng)硬件部分不會受到在干擾作用下,微機(jī)系統(tǒng)硬件部分不會受到任何損壞,或易損壞部分設(shè)置有監(jiān)測狀態(tài)可任何損壞,或易損壞部分設(shè)置有監(jiān)測狀態(tài)可供查詢供查詢 程序區(qū)不會受干擾侵害程序區(qū)不會受干擾侵害 RAM區(qū)中的重要數(shù)據(jù)不被破壞,或雖被破壞區(qū)中的重要數(shù)據(jù)不被破壞,或雖被破壞可以重新建立可以重新建立7.3 測控系統(tǒng)軟件抗干擾設(shè)計(jì)測控系統(tǒng)軟件抗干擾設(shè)計(jì)1) 軟件抗干擾是一種軟件抗干擾是一種價(jià)廉、靈活、方便價(jià)廉、靈活、方便的抗干擾的

2、抗干擾方法。方法。 純軟件抗干擾不需要硬件資源,不改變純軟件抗干擾不需要硬件資源,不改變硬件的環(huán)境,不需要對干擾源精確定位,不需硬件的環(huán)境,不需要對干擾源精確定位,不需要定量分析;要定量分析;2) 用軟件方法處理故障,實(shí)質(zhì)上是采用用軟件方法處理故障,實(shí)質(zhì)上是采用冗余冗余技術(shù)技術(shù)對故障進(jìn)行屏蔽,對干擾響應(yīng)進(jìn)行掩蓋,在干對故障進(jìn)行屏蔽,對干擾響應(yīng)進(jìn)行掩蓋,在干擾過后對干擾所產(chǎn)生的影響在功能上進(jìn)行補(bǔ)償,擾過后對干擾所產(chǎn)生的影響在功能上進(jìn)行補(bǔ)償,實(shí)現(xiàn)容錯(cuò)自救實(shí)現(xiàn)容錯(cuò)自救 ;3) 軟件抗干擾是軟件抗干擾是對硬件抗干擾的補(bǔ)充對硬件抗干擾的補(bǔ)充,解決硬件,解決硬件無法解決的干擾問題。無法解決的干擾問題。7.

3、3 測控系統(tǒng)軟件抗干擾設(shè)計(jì)測控系統(tǒng)軟件抗干擾設(shè)計(jì) 1 1、采取軟件的方法抑制疊加在模擬輸入信號、采取軟件的方法抑制疊加在模擬輸入信號上噪聲對數(shù)據(jù)采集結(jié)果的影響,如數(shù)字濾波器上噪聲對數(shù)據(jù)采集結(jié)果的影響,如數(shù)字濾波器技術(shù);技術(shù); 2、由于干擾而使運(yùn)行程序發(fā)生混亂,導(dǎo)致程、由于干擾而使運(yùn)行程序發(fā)生混亂,導(dǎo)致程序亂飛或陷入死循環(huán)時(shí),采取使程序納入正軌序亂飛或陷入死循環(huán)時(shí),采取使程序納入正軌的措施,如的措施,如軟件冗余、軟件陷阱、軟件冗余、軟件陷阱、“看門狗看門狗”技術(shù)。技術(shù)。 7.3 測控系統(tǒng)軟件抗干擾設(shè)計(jì)測控系統(tǒng)軟件抗干擾設(shè)計(jì) 在不同的工業(yè)控制系統(tǒng)中,測控軟件雖然完成的在不同的工業(yè)控制系統(tǒng)中,測控軟

4、件雖然完成的功能不同,但就其結(jié)構(gòu)來說,一般具有如下特點(diǎn):功能不同,但就其結(jié)構(gòu)來說,一般具有如下特點(diǎn): (1)實(shí)時(shí)性:實(shí)時(shí)性:工業(yè)控制系統(tǒng)中有些事件的發(fā)生具有工業(yè)控制系統(tǒng)中有些事件的發(fā)生具有隨機(jī)性,要求工控軟件能夠及時(shí)地處理隨機(jī)事件;隨機(jī)性,要求工控軟件能夠及時(shí)地處理隨機(jī)事件; (2)周期性:周期性:工控軟件在完成系統(tǒng)的初始化工作后,工控軟件在完成系統(tǒng)的初始化工作后,隨之進(jìn)入主程序循環(huán)。在執(zhí)行主程序過程中,如有隨之進(jìn)入主程序循環(huán)。在執(zhí)行主程序過程中,如有中斷申請,則在執(zhí)行完相應(yīng)的中斷服務(wù)程序中斷申請,則在執(zhí)行完相應(yīng)的中斷服務(wù)程序(往往具往往具有周期性)后,繼續(xù)主程序循環(huán);有周期性)后,繼續(xù)主程序

5、循環(huán); 7.3 測控系統(tǒng)軟件抗干擾設(shè)計(jì)測控系統(tǒng)軟件抗干擾設(shè)計(jì) (3)相關(guān)性:相關(guān)性:工控軟件由多個(gè)任務(wù)模塊組成,各模工控軟件由多個(gè)任務(wù)模塊組成,各模塊配合工作,相互關(guān)聯(lián),相互依存;塊配合工作,相互關(guān)聯(lián),相互依存; (4)交互性:交互性:工控軟件允許操作人員干預(yù)系統(tǒng)的運(yùn)工控軟件允許操作人員干預(yù)系統(tǒng)的運(yùn)行,調(diào)整系統(tǒng)的工作參數(shù)。行,調(diào)整系統(tǒng)的工作參數(shù)。 7.3 測控系統(tǒng)軟件抗干擾設(shè)計(jì)測控系統(tǒng)軟件抗干擾設(shè)計(jì) 但在工業(yè)現(xiàn)場環(huán)境的干擾下,但在工業(yè)現(xiàn)場環(huán)境的干擾下,測控軟件的周期性、測控軟件的周期性、相關(guān)性及實(shí)時(shí)性相關(guān)性及實(shí)時(shí)性受到破壞,程序無法正常執(zhí)行,受到破壞,程序無法正常執(zhí)行,導(dǎo)致測控系統(tǒng)的失控,其表

6、現(xiàn)是:導(dǎo)致測控系統(tǒng)的失控,其表現(xiàn)是: (1)程序計(jì)數(shù)器)程序計(jì)數(shù)器PC值發(fā)生變化,破壞了程序的值發(fā)生變化,破壞了程序的正常運(yùn)行正常運(yùn)行 (2)輸入)輸入/輸出接口狀態(tài)受到干擾,破壞了測控輸出接口狀態(tài)受到干擾,破壞了測控軟件的相關(guān)性和周期性,造成系統(tǒng)資源被某個(gè)任軟件的相關(guān)性和周期性,造成系統(tǒng)資源被某個(gè)任務(wù)模塊獨(dú)占,使系統(tǒng)發(fā)生務(wù)模塊獨(dú)占,使系統(tǒng)發(fā)生“死鎖死鎖”7.3 測控系統(tǒng)軟件抗干擾設(shè)計(jì)測控系統(tǒng)軟件抗干擾設(shè)計(jì)(3)數(shù)據(jù)采集誤差加大)數(shù)據(jù)采集誤差加大(4)RAM數(shù)據(jù)區(qū)受到干擾發(fā)生變化數(shù)據(jù)區(qū)受到干擾發(fā)生變化 (5)控制狀態(tài)失靈)控制狀態(tài)失靈7.3 測控系統(tǒng)軟件抗干擾設(shè)計(jì)測控系統(tǒng)軟件抗干擾設(shè)計(jì)一、指令

7、冗余技術(shù)一、指令冗余技術(shù) 為了使為了使“亂飛亂飛”程序在程序區(qū)迅速納入正程序在程序區(qū)迅速納入正軌,應(yīng)該多用單字節(jié)指令,并在關(guān)鍵地方軌,應(yīng)該多用單字節(jié)指令,并在關(guān)鍵地方人為地插入一些單字節(jié)指令人為地插入一些單字節(jié)指令NOP,或?qū)⒂校驅(qū)⒂行巫止?jié)指令重寫,稱之為指令冗余。效單字節(jié)指令重寫,稱之為指令冗余。1. NOP使用使用 51單片機(jī)指令系統(tǒng)包括:單片機(jī)指令系統(tǒng)包括:49條單字節(jié)指令、條單字節(jié)指令、45條雙字條雙字節(jié)指令和節(jié)指令和17條三字節(jié)指令,例如:條三字節(jié)指令,例如:CLR AE4H 只有操作碼,隱含操作數(shù)只有操作碼,隱含操作數(shù)MOV A, 10H74H 10H 操作碼操作碼 操作數(shù)操作

8、數(shù)MOV 40H, 30H75H 40H 30H 碼碼 數(shù)數(shù) 數(shù)數(shù) 指令順序決定操作碼和操作數(shù),而操作時(shí)序完全指令順序決定操作碼和操作數(shù),而操作時(shí)序完全由程序計(jì)數(shù)器由程序計(jì)數(shù)器PC控制,一旦控制,一旦PC因干擾而出現(xiàn)錯(cuò)誤,因干擾而出現(xiàn)錯(cuò)誤,程序?qū)⒚撾x正常運(yùn)行,出現(xiàn)程序?qū)⒚撾x正常運(yùn)行,出現(xiàn)“亂飛亂飛”。在取指令時(shí)刻落。在取指令時(shí)刻落到雙字節(jié)指令或三字節(jié)指令的操作數(shù)上,將操作數(shù)當(dāng)?shù)诫p字節(jié)指令或三字節(jié)指令的操作數(shù)上,將操作數(shù)當(dāng)作操作碼,程序執(zhí)行將出錯(cuò)。作操作碼,程序執(zhí)行將出錯(cuò)。 為使為使“亂飛亂飛”程序在程序區(qū)納入正軌,應(yīng)該多用單程序在程序區(qū)納入正軌,應(yīng)該多用單字節(jié)指令,并在關(guān)鍵地方人為地插入一些單

9、字節(jié)指令字節(jié)指令,并在關(guān)鍵地方人為地插入一些單字節(jié)指令NOP,或?qū)⒂行巫止?jié)指令重寫,或?qū)⒂行巫止?jié)指令重寫指令冗余指令冗余。 在雙字節(jié)指令或在雙字節(jié)指令或3字節(jié)指令后插入兩個(gè)單字節(jié)指令后插入兩個(gè)單字節(jié)字節(jié)NOP指令,這樣保證其后的指令不被拆指令,這樣保證其后的指令不被拆散,使亂飛的程序進(jìn)入正軌。散,使亂飛的程序進(jìn)入正軌。對于程序流向起決定作用的指令(如:對于程序流向起決定作用的指令(如:RET、RETI、ACALL、LCALL、LJMP、JZ、JNZ、JC、JNC、DJNZ、SETB、EA等前面等前面插入兩條插入兩條NOP指令,保證亂飛的程序迅速進(jìn)指令,保證亂飛的程序迅速進(jìn)入正軌,確保上述指

10、令的執(zhí)行。入正軌,確保上述指令的執(zhí)行。 對于程序流向起決定作用的指令對于程序流向起決定作用的指令(如如RET、RETI、ACALL、LCALL、LJMP、JZ、JNZ、JC、JNC等等)和某些對系統(tǒng)工作狀態(tài)和某些對系統(tǒng)工作狀態(tài)有重要作用的指令有重要作用的指令(如如SETB、EA等等)的后面的后面,可,可重復(fù)寫上這些指令重復(fù)寫上這些指令,以確保這些指令,以確保這些指令的正確執(zhí)行。的正確執(zhí)行。 時(shí)間冗余方法是通過消耗時(shí)間資源達(dá)到糾時(shí)間冗余方法是通過消耗時(shí)間資源達(dá)到糾錯(cuò)目的。錯(cuò)目的。 1 1、重復(fù)檢測法、重復(fù)檢測法 : 當(dāng)硬件無法去除輸入信號中迭加的尖峰當(dāng)硬件無法去除輸入信號中迭加的尖峰干擾,可采用

11、時(shí)間冗余的重復(fù)檢測法干擾,可采用時(shí)間冗余的重復(fù)檢測法, ,對接口對接口中的輸入數(shù)據(jù)信息進(jìn)行多次檢測,若檢測結(jié)中的輸入數(shù)據(jù)信息進(jìn)行多次檢測,若檢測結(jié)果完全一致,則是真的輸入信號;若相鄰的果完全一致,則是真的輸入信號;若相鄰的檢測內(nèi)容不一致,或多次檢測結(jié)果不一致,檢測內(nèi)容不一致,或多次檢測結(jié)果不一致,則是偽輸入信號。則是偽輸入信號。 圖圖731 重復(fù)檢測法重復(fù)檢測法 2、重復(fù)輸出法:重復(fù)輸出法: 對于那些用鎖存器輸出的控制信號,為對于那些用鎖存器輸出的控制信號,為保證不因干擾而出現(xiàn)錯(cuò)誤保證不因干擾而出現(xiàn)錯(cuò)誤, ,可采用重復(fù)輸出可采用重復(fù)輸出法。對可編程輸出接口芯片可將法。對可編程輸出接口芯片可將工

12、作方式控工作方式控制字和輸出狀態(tài)字一并多次重復(fù)輸出制字和輸出狀態(tài)字一并多次重復(fù)輸出。輸出。輸出重復(fù)周期盡可能短些。重復(fù)周期盡可能短些。 3、指令復(fù)執(zhí)技術(shù)、指令復(fù)執(zhí)技術(shù) : 這種技術(shù)是重復(fù)執(zhí)行已發(fā)現(xiàn)錯(cuò)誤的指這種技術(shù)是重復(fù)執(zhí)行已發(fā)現(xiàn)錯(cuò)誤的指令(一旦發(fā)現(xiàn)錯(cuò)誤、就重新執(zhí)行被錯(cuò)誤破令(一旦發(fā)現(xiàn)錯(cuò)誤、就重新執(zhí)行被錯(cuò)誤破壞的現(xiàn)行指令),如故障是瞬時(shí)的,在指壞的現(xiàn)行指令),如故障是瞬時(shí)的,在指令復(fù)執(zhí)期間,有可能不再出現(xiàn),程序可繼令復(fù)執(zhí)期間,有可能不再出現(xiàn),程序可繼續(xù)執(zhí)行。續(xù)執(zhí)行。 4、程序卷回技術(shù)、程序卷回技術(shù) 程序卷回不是某一條指令的重復(fù)執(zhí)行,而是程序卷回不是某一條指令的重復(fù)執(zhí)行,而是一小段程序的重復(fù)執(zhí)行。

13、為了實(shí)現(xiàn)卷回,也要一小段程序的重復(fù)執(zhí)行。為了實(shí)現(xiàn)卷回,也要保留現(xiàn)場。這種卷回方法可卷回若干次,直到保留現(xiàn)場。這種卷回方法可卷回若干次,直到故障排除或顯示故障為止。故障排除或顯示故障為止。 在程序的適當(dāng)位在程序的適當(dāng)位置設(shè)置若干檢查點(diǎn),置設(shè)置若干檢查點(diǎn),在每一個(gè)檢查點(diǎn)保存在每一個(gè)檢查點(diǎn)保存程序在程序在該檢查點(diǎn)之前該檢查點(diǎn)之前正確運(yùn)行而得到的全正確運(yùn)行而得到的全部信息及標(biāo)志。部信息及標(biāo)志。如果如果故障是暫時(shí)性的故障是暫時(shí)性的,則程則程序卷回到上一檢查點(diǎn)序卷回到上一檢查點(diǎn)開始重新執(zhí)行,這樣開始重新執(zhí)行,這樣可以完全消除錯(cuò)誤,可以完全消除錯(cuò)誤,其框圖如左圖所示。其框圖如左圖所示。 5、延時(shí)避開法、延時(shí)

14、避開法 當(dāng)系統(tǒng)要接通或斷開大功率負(fù)載時(shí),如大當(dāng)系統(tǒng)要接通或斷開大功率負(fù)載時(shí),如大型感性負(fù)載的通斷,容易引起電源過電壓、欠型感性負(fù)載的通斷,容易引起電源過電壓、欠壓、浪涌以及產(chǎn)生尖峰干擾等,此時(shí)使壓、浪涌以及產(chǎn)生尖峰干擾等,此時(shí)使CPU暫暫停工作,待干擾過去以后再恢復(fù)工作,這比單停工作,待干擾過去以后再恢復(fù)工作,這比單純在硬件上采取抗干擾措施要方便許多。純在硬件上采取抗干擾措施要方便許多。一、軟件陷阱一、軟件陷阱 軟件陷阱,就是用引導(dǎo)指令強(qiáng)行將捕獲軟件陷阱,就是用引導(dǎo)指令強(qiáng)行將捕獲到的亂飛程序引向復(fù)位入口地址到的亂飛程序引向復(fù)位入口地址0000H,在,在此處將程序轉(zhuǎn)向?qū)iT對程序出錯(cuò)進(jìn)行處理的此處

15、將程序轉(zhuǎn)向?qū)iT對程序出錯(cuò)進(jìn)行處理的程序,使程序納入正軌。程序,使程序納入正軌。 軟件冗余軟件冗余使亂飛的程序納入正軌是有條件的,使亂飛的程序納入正軌是有條件的,首先跑飛的程序必須落到程序區(qū),其次必須執(zhí)首先跑飛的程序必須落到程序區(qū),其次必須執(zhí)行到冗余指令行到冗余指令。 當(dāng)跑飛的程序落到非程序區(qū)當(dāng)跑飛的程序落到非程序區(qū)(如如EPROM中未使中未使用的區(qū)域、程序中的數(shù)據(jù)表格區(qū)等用的區(qū)域、程序中的數(shù)據(jù)表格區(qū)等)時(shí),第一個(gè)時(shí),第一個(gè)條件便不滿足;當(dāng)跑飛的程序落到一個(gè)已形成條件便不滿足;當(dāng)跑飛的程序落到一個(gè)已形成死循環(huán)的程序中,第二個(gè)條件也不滿足。對前死循環(huán)的程序中,第二個(gè)條件也不滿足。對前一種情況采取的

16、措施是一種情況采取的措施是設(shè)立設(shè)立軟件陷阱軟件陷阱,對后一,對后一種情況可采取種情況可采取“看門狗看門狗”技術(shù)解決技術(shù)解決。軟件陷阱可采用兩種形式,如表軟件陷阱可采用兩種形式,如表7-3-1所示所示。 未使用的中斷區(qū)未使用的中斷區(qū) 未使用的未使用的EPROM空間空間 非非EPROM芯片空間芯片空間 運(yùn)行程序區(qū)運(yùn)行程序區(qū) 中斷服務(wù)程序區(qū)中斷服務(wù)程序區(qū) RAM數(shù)據(jù)保護(hù)的條件陷阱數(shù)據(jù)保護(hù)的條件陷阱 軟件陷阱軟件陷阱是指用來將捕獲的跑飛程序引向復(fù)位入口是指用來將捕獲的跑飛程序引向復(fù)位入口或錯(cuò)誤處理程序入口地址的幾條指令?;蝈e(cuò)誤處理程序入口地址的幾條指令。通常把以下幾條指令作為常用的軟件陷阱通常把以下幾

17、條指令作為常用的軟件陷阱: :NOPNOPNOPNOPLJMP 0000H LJMP 0000H 機(jī)器碼機(jī)器碼 00 00 02 00 0000 00 02 00 00( ( 或或LJMP ERROR, ERROR LJMP ERROR, ERROR 為錯(cuò)誤處理程序的入口標(biāo)號為錯(cuò)誤處理程序的入口標(biāo)號) )為防止干擾導(dǎo)致未使用的中斷被異常開放為防止干擾導(dǎo)致未使用的中斷被異常開放, , 對于未使用的對于未使用的中斷服務(wù)程序則可以這樣中斷服務(wù)程序則可以這樣: :NOPNOPNOPNOPPOP direct1 ;POP direct1 ;將斷點(diǎn)彈出堆棧區(qū)將斷點(diǎn)彈出堆棧區(qū) POP direct2POP

18、direct2LJMP 0000HLJMP 0000H ; ;轉(zhuǎn)到轉(zhuǎn)到0000H0000H NOPNOPPOP direct1 ;將斷點(diǎn)彈出堆棧區(qū)將斷點(diǎn)彈出堆棧區(qū) POP direct2PUSH 00H ; 斷點(diǎn)地址改為0000HPUSH 00HRETI 未使用的中斷區(qū)未使用的中斷區(qū)中斷程序中中斷程序中direct1direct1、direct2direct2為主程序中非使用單元為主程序中非使用單元 在未使用的在未使用的EPROM空間填入空間填入 LJMP 0202H ; 機(jī)器碼機(jī)器碼 02 02 02 LJMP 0000H ; 機(jī)器碼機(jī)器碼 02 00 00 當(dāng)亂飛程序進(jìn)入當(dāng)亂飛程序進(jìn)入此區(qū)

19、后,便會迅速自動(dòng)入軌此區(qū)后,便會迅速自動(dòng)入軌 在地址在地址 0202H:LJMP 0000H 在程序存儲空間中非在程序存儲空間中非EPROM區(qū)區(qū) 當(dāng)跑飛程序計(jì)數(shù)器當(dāng)跑飛程序計(jì)數(shù)器PC值落入到非值落入到非EPROM區(qū),讀入?yún)^(qū),讀入的數(shù)據(jù)將是的數(shù)據(jù)將是FFH,是,是“MOV R7,A”的機(jī)器碼,將破的機(jī)器碼,將破壞壞R7值??赏ㄟ^譯碼將值??赏ㄟ^譯碼將EPROM未占用的程序存儲器未占用的程序存儲器空間映射到一個(gè)外部中斷,在中斷服務(wù)程序中,將跑空間映射到一個(gè)外部中斷,在中斷服務(wù)程序中,將跑飛的程序拉回正軌。飛的程序拉回正軌。 運(yùn)行程序區(qū)運(yùn)行程序區(qū)運(yùn)行程序采用模塊化結(jié)構(gòu),在模塊間采用軟運(yùn)行程序采用模塊

20、化結(jié)構(gòu),在模塊間采用軟件陷阱,程序正常運(yùn)行不執(zhí)行這些陷阱指令,件陷阱,程序正常運(yùn)行不執(zhí)行這些陷阱指令,一旦亂飛的程序落入陷阱可被拉回正常軌道。一旦亂飛的程序落入陷阱可被拉回正常軌道。 中斷服務(wù)程序區(qū)中斷服務(wù)程序區(qū)設(shè)定定時(shí)陷阱中斷服務(wù)程序,在中斷服務(wù)程設(shè)定定時(shí)陷阱中斷服務(wù)程序,在中斷服務(wù)程序中判斷中斷點(diǎn)地址,序中判斷中斷點(diǎn)地址,如地址是非有效的程序如地址是非有效的程序地址,則說明出現(xiàn)了程序亂飛,在中斷服務(wù)程地址,則說明出現(xiàn)了程序亂飛,在中斷服務(wù)程序中將亂飛的程序拉回程序復(fù)位點(diǎn)或故障處理序中將亂飛的程序拉回程序復(fù)位點(diǎn)或故障處理程序入口程序入口。 RAM數(shù)據(jù)保護(hù)的條件陷阱數(shù)據(jù)保護(hù)的條件陷阱單片機(jī)外單

21、片機(jī)外RAM保存大量數(shù)據(jù),數(shù)據(jù)寫入是使用保存大量數(shù)據(jù),數(shù)據(jù)寫入是使用“MOVX DPTR,A”指令來完成。當(dāng)指令來完成。當(dāng)CPU受到受到干擾而非法執(zhí)行該指令時(shí),就會改寫干擾而非法執(zhí)行該指令時(shí),就會改寫RAM中的中的數(shù)據(jù),導(dǎo)致數(shù)據(jù)丟失。數(shù)據(jù),導(dǎo)致數(shù)據(jù)丟失。為了減小為了減小RAM中數(shù)據(jù)丟失的可能性,可在中數(shù)據(jù)丟失的可能性,可在RAM寫操作之前加入條件陷阱,不滿足條件不允許寫操作之前加入條件陷阱,不滿足條件不允許寫操作,并進(jìn)入陷阱,形成死循環(huán)。進(jìn)入死循寫操作,并進(jìn)入陷阱,形成死循環(huán)。進(jìn)入死循環(huán)再采用環(huán)再采用“看門狗看門狗”技術(shù)。技術(shù)。教材教材P240 程序計(jì)數(shù)器程序計(jì)數(shù)器PC受干擾而失控,除引起程序

22、受干擾而失控,除引起程序跑飛,也可能使程序陷入跑飛,也可能使程序陷入“死循環(huán)死循環(huán)”。指令。指令冗余技術(shù)、軟件陷阱技術(shù)都無法使程序擺脫冗余技術(shù)、軟件陷阱技術(shù)都無法使程序擺脫死循環(huán)。這時(shí)通常采用程序監(jiān)視技術(shù),又稱死循環(huán)。這時(shí)通常采用程序監(jiān)視技術(shù),又稱“看門狗看門狗”技術(shù)(技術(shù)(watchdog)。)。 “看門狗看門狗”技術(shù)的基本原理是不斷監(jiān)視程序技術(shù)的基本原理是不斷監(jiān)視程序循環(huán)的運(yùn)行時(shí)間,若發(fā)現(xiàn)超過正常運(yùn)行所需循環(huán)的運(yùn)行時(shí)間,若發(fā)現(xiàn)超過正常運(yùn)行所需的時(shí)間,則認(rèn)為進(jìn)入死循環(huán),將強(qiáng)迫程序返的時(shí)間,則認(rèn)為進(jìn)入死循環(huán),將強(qiáng)迫程序返回初始入口(如:回初始入口(如:0000H),或出錯(cuò)處理程),或出錯(cuò)處理程

23、序入口。序入口。1、單穩(wěn)態(tài)型、單穩(wěn)態(tài)型“看門狗看門狗”電路電路 74LS123 包括兩個(gè)獨(dú)立的單穩(wěn),各管腳以字頭包括兩個(gè)獨(dú)立的單穩(wěn),各管腳以字頭 1、2相區(qū)別。單穩(wěn)輸出脈沖的寬度,主要由外相區(qū)別。單穩(wěn)輸出脈沖的寬度,主要由外接的定時(shí)電阻接的定時(shí)電阻( Rext )和定時(shí)電容和定時(shí)電容( Cext )決定。單決定。單穩(wěn)的翻轉(zhuǎn)時(shí)刻決定于穩(wěn)的翻轉(zhuǎn)時(shí)刻決定于 A、B、CLR 三個(gè)輸入三個(gè)輸入 相相與的結(jié)果,具體參見它的功能表。與的結(jié)果,具體參見它的功能表。 單穩(wěn)態(tài)型單穩(wěn)態(tài)型“看門狗看門狗”電路電路 圖圖734 單穩(wěn)態(tài)單穩(wěn)態(tài)“看門狗看門狗”電路電路圖圖735 74LS123 管腳排列與功能管腳排列與功能

24、 圖圖736 單穩(wěn)態(tài)單穩(wěn)態(tài)“看門狗看門狗”程序框圖程序框圖TWTW1A1Q/2A2QREST進(jìn)入死循環(huán)進(jìn)入死循環(huán)圖圖737 計(jì)數(shù)器型計(jì)數(shù)器型“看門狗看門狗”電路電路 為了保證微處理器穩(wěn)定而可靠運(yùn)行,須配置為了保證微處理器穩(wěn)定而可靠運(yùn)行,須配置電壓監(jiān)控電路;為實(shí)現(xiàn)掉電數(shù)據(jù)保護(hù),需備用電電壓監(jiān)控電路;為實(shí)現(xiàn)掉電數(shù)據(jù)保護(hù),需備用電池及切換電路;為了是微機(jī)處理器盡快擺脫因干池及切換電路;為了是微機(jī)處理器盡快擺脫因干擾而陷入的死循環(huán),需要配置擾而陷入的死循環(huán),需要配置“看門狗看門狗”電路,電路,如如MAX705/706/813L具備具備“看門狗看門狗”定時(shí)器功定時(shí)器功能。能。嚴(yán)重的現(xiàn)場干擾可能破壞嚴(yán)重的

25、現(xiàn)場干擾可能破壞中斷控制字,中斷控制字,導(dǎo)致中斷關(guān)閉導(dǎo)致中斷關(guān)閉,而在主程序循環(huán)中硬件看門,而在主程序循環(huán)中硬件看門狗技術(shù)無法解決此類干擾。狗技術(shù)無法解決此類干擾。這樣就出現(xiàn)了依靠軟件定時(shí)中斷對程序這樣就出現(xiàn)了依靠軟件定時(shí)中斷對程序進(jìn)行監(jiān)控的軟件進(jìn)行監(jiān)控的軟件“看門狗看門狗”。軟件軟件“看門狗看門狗”的思路:的思路:主程序循環(huán)監(jiān)控定時(shí)器主程序循環(huán)監(jiān)控定時(shí)器T0中斷,定時(shí)器中斷,定時(shí)器T0監(jiān)控監(jiān)控T1中斷,中斷,T1中斷監(jiān)控主程序。這種相中斷監(jiān)控主程序。這種相互依存相互制約的抗干擾措施使系統(tǒng)運(yùn)行互依存相互制約的抗干擾措施使系統(tǒng)運(yùn)行可靠性大大提高??煽啃源蟠筇岣摺0的優(yōu)先級高于的優(yōu)先級高于T1。

26、 圖圖7310 主程序流程圖主程序流程圖由T0修改主程序完成主程序完成系統(tǒng)測控功系統(tǒng)測控功能的同時(shí),能的同時(shí),還監(jiān)視還監(jiān)視T0中斷因干擾中斷因干擾引起的中斷引起的中斷關(guān)閉故障。關(guān)閉故障。A0為為T0中中斷服務(wù)程序斷服務(wù)程序運(yùn)行狀態(tài)觀運(yùn)行狀態(tài)觀測單元測單元,T0中斷一次,中斷一次,A0自動(dòng)加自動(dòng)加1 圖圖7311 T1中斷程序流程中斷程序流程由主程由主程序清零序清零完成系統(tǒng)特完成系統(tǒng)特定測控功能定測控功能的同時(shí),還的同時(shí),還監(jiān)視主程序監(jiān)視主程序運(yùn)行狀態(tài)。運(yùn)行狀態(tài)。在中斷服務(wù)在中斷服務(wù)程序中設(shè)置程序中設(shè)置一個(gè)主程序一個(gè)主程序運(yùn)行計(jì)時(shí)器運(yùn)行計(jì)時(shí)器M,T1每中每中斷斷1次,次,M加加1.MT進(jìn)進(jìn)入死循

27、環(huán)入死循環(huán) 圖圖7312 T0中斷程序流程中斷程序流程 監(jiān)視監(jiān)視T1中斷服中斷服務(wù)程序的運(yùn)行狀務(wù)程序的運(yùn)行狀態(tài),程序短,受態(tài),程序短,受干擾機(jī)率小,干擾機(jī)率小,T1中斷中斷1次,次,A1加加1.T0中斷級別高中斷級別高于于T1中斷,中斷,T1的任何中斷故障的任何中斷故障都會因都會因T0的中斷的中斷而被檢測出來。而被檢測出來。 硬件看門狗技術(shù)能夠監(jiān)視程序陷入死循環(huán),硬件看門狗技術(shù)能夠監(jiān)視程序陷入死循環(huán),但對中斷關(guān)閉無能為力;而軟件看門狗能夠監(jiān)但對中斷關(guān)閉無能為力;而軟件看門狗能夠監(jiān)視中斷關(guān)閉故障,但對高級中斷陷入死循環(huán)無視中斷關(guān)閉故障,但對高級中斷陷入死循環(huán)無能為力。這樣軟、硬件看門狗技術(shù)相結(jié)合

28、,將能為力。這樣軟、硬件看門狗技術(shù)相結(jié)合,將可以獲得更好的抗干擾效果??梢垣@得更好的抗干擾效果。 圖圖7313 主程序流程圖主程序流程圖硬件配置同硬件配置同圖圖7-3-4,圖,圖中的中的A0,A1為為T0,T1中中斷運(yùn)行狀態(tài)斷運(yùn)行狀態(tài)觀測器。觀測器。T0,T1中斷中斷一次,一次,A0,A1加加1 圖圖7316 主程序流程圖主程序流程圖n若測控功能若測控功能模塊程序較模塊程序較短,執(zhí)行一短,執(zhí)行一次時(shí)間內(nèi)不次時(shí)間內(nèi)不足以使足以使T0、T1發(fā)生定時(shí)發(fā)生定時(shí)中斷,這時(shí)中斷,這時(shí)可采用右圖可采用右圖所示方案,所示方案,確保確保N次循次循環(huán)時(shí)間內(nèi)環(huán)時(shí)間內(nèi)T0,T1發(fā)生發(fā)生定時(shí)中斷。定時(shí)中斷。 一、上電標(biāo)

29、志設(shè)定一、上電標(biāo)志設(shè)定 程序的執(zhí)行總是從程序的執(zhí)行總是從0000H單元開始,即微機(jī)啟動(dòng)單元開始,即微機(jī)啟動(dòng) 啟動(dòng)方式:啟動(dòng)方式: 1、冷啟動(dòng):即上電復(fù)位。冷啟動(dòng)的特征是系統(tǒng)、冷啟動(dòng):即上電復(fù)位。冷啟動(dòng)的特征是系統(tǒng)要徹底初始化,測控程序模塊從頭開始執(zhí)行,即生要徹底初始化,測控程序模塊從頭開始執(zhí)行,即生產(chǎn)工藝過程從最初狀態(tài)開始運(yùn)行產(chǎn)工藝過程從最初狀態(tài)開始運(yùn)行 2、熱啟動(dòng):故障復(fù)位,即再次啟動(dòng)。熱啟動(dòng)的、熱啟動(dòng):故障復(fù)位,即再次啟動(dòng)。熱啟動(dòng)的特征是不需要全部進(jìn)行初始化,測控程序不必從頭特征是不需要全部進(jìn)行初始化,測控程序不必從頭開始執(zhí)行,而應(yīng)從故障部位開始,即生產(chǎn)工藝過程開始執(zhí)行,而應(yīng)從故障部位開始

30、,即生產(chǎn)工藝過程從故障點(diǎn)重新運(yùn)行從故障點(diǎn)重新運(yùn)行 區(qū)別是冷啟動(dòng),還是熱啟動(dòng)應(yīng)由上電標(biāo)志區(qū)別是冷啟動(dòng),還是熱啟動(dòng)應(yīng)由上電標(biāo)志來判定。來判定。 圖圖7317 PSW.5上電標(biāo)志判定上電標(biāo)志判定 MCS-51單片機(jī)硬件復(fù)位后堆棧指針單片機(jī)硬件復(fù)位后堆棧指針SP為為07H,但在應(yīng)用程序設(shè)計(jì)中,一般不會把,但在應(yīng)用程序設(shè)計(jì)中,一般不會把堆棧指針堆棧指針SP設(shè)置在設(shè)置在07H這么低的內(nèi)部這么低的內(nèi)部RAM地址,都要將堆棧指針設(shè)置大于地址,都要將堆棧指針設(shè)置大于07H。根據(jù)。根據(jù)SP這個(gè)特點(diǎn),可用這個(gè)特點(diǎn),可用SP作為上作為上電標(biāo)志。應(yīng)注意,電標(biāo)志。應(yīng)注意,SP標(biāo)志僅適用于軟件標(biāo)志僅適用于軟件復(fù)位方式。復(fù)位方式。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論