Ⅰ 單片機的帶借位減法
cy=1,SUBB #09H,#05H,相當於256+9-5=260,其實也就是4
Ⅱ 匯編中push指令後面可以直接加數字嗎 比如push
PUSH後面是可以直接加數字的,相當於將後面這個數字壓入當前棧頂。使用格式為:
PUSH DATA
比如:PUSH 50
當SP=0100H時,執行該語句後0100H這個地址中就存入了50這個數據。
與之對應的是POP語句,這個語句後面是不能跟數字的,因為POP後面是目標地址。
Ⅲ 單片機系統硬體抗干擾的常用方法介紹
單片機系統硬體抗干擾的常用方法介紹
影響單片機系統可靠安全運行的主要因素主要來自系統內部和外部的各種電氣干擾,並受系統結構設計、元器件選擇、安裝、製造工藝影響。這些都構成單片機系統的干擾因素,常會導致單片機系統運行失常,輕則影響產品質量和產量,重則會導致事故,造成重大經濟損失。今天我就給大家介紹下單片機系統硬體抗干擾的常用方法,大家一起來看看吧。
形成干擾的基本要素有三個:
(1)干擾源。指產生干擾的元件、設備或信號, 用數學語言描述如下:/dt,
di/dt大的地方就是干擾源。如:雷電、繼電器、可控硅、電機、高頻時鍾等都可能成為干擾源。
(2)傳播路徑。指干擾從干擾源傳播到敏感器件的通路或媒介。典型的干擾傳播路徑是通過導線的傳導和空間的輻射。
(3)敏感器件。指容易被干擾的對象。如:A/D、 D/A變換器,單片機,數字IC,弱信號放大器等
干擾的分類
1.1 干擾的分類
干擾的分類有好多種,通常可以按照雜訊產生的原因、傳導方式、波形特性等等進行不同的分類。按產生的原因分:
可分為放電雜訊音、高頻振盪雜訊、浪涌雜訊。
按傳導方式分:可分為共模雜訊和串模雜訊。
按波形分:可分為持續正弦波、脈沖電壓、脈沖序列等等。
1.2 干擾的耦合方式
干擾源產生的干擾信號是通過一定的耦合通道才對測控系統產生作用的。因此,我們有必要看看干擾源和被干擾對象之間的傳遞方式。干擾的耦合方式,無非是通過導線、空間、公共線等等,細分下來,主要有以下幾種:
(1)直接耦合:這是最直接的方式,也是系統中存在最普遍的一種方式。比如干擾信號通過電源線侵入系統。對於這種形式,最有效的方法就是加入去耦電路。
(2)公共阻抗耦合:這也是常見的耦合方式,這種形式常常發生在兩個電路電流有共同通路的情況。為了防止這種耦合,通常在電路設計上就要考慮。使干擾源和被干擾對象間沒有公共阻抗。
(3)電容耦合:又稱電場耦合或靜電耦合。是由於分布電容的存在而產生的耦合。
(4)電磁感應耦合:又稱磁場耦合。是由於分布電磁感應而產生的耦合。
(5)漏電耦合:這種耦合是純電阻性的,在絕緣不好時就會發生。
2 常用硬體抗干擾技術
針對形成干擾的三要素,採取的抗干擾主要有以下手段。
2.1 抑制干擾源
抑制干擾源就是盡可能的減小干擾源的/dt, di/dt。這是抗干擾設計中最優先考慮和最重要的原則,常常會起到事半功倍的效果。 減小干擾源的/dt主要是通過在干擾源兩端並聯電容來實現。減小干擾源的di/dt則是在干擾源迴路串聯電感或電阻以及增加續流二極體來實現。
抑制干擾源的常用措施如下:
(1)繼電器線圈增加續流二極體,消除斷開線圈時產生的反電動勢干擾。僅加續流二極體會使繼電器的斷開時間滯後,增加穩壓二極體後繼電器在單位時間內可動作更多的次數。
(2)在繼電器接點兩端並接火花抑制電路(一般是RC串聯電路,電阻一般選幾K到幾十K,電容選0.01uF),減小電火花影響。
(3)給電機加濾波電路,注意電容、電感引線要盡量短。
(4)電路板上每個IC要並接一個0.01μF~0.1
μF高頻電容,以減小IC對電源的影響。注意高頻電容的布線,連線應靠近電源端並盡量粗短,否則,等於增大了電容的等效串聯電阻,會影響濾波效果。
(5)布線時避免90度折線,減少高頻雜訊發射。
(6)可控硅兩端並接RC抑制電路,減小可控硅產生的雜訊(這個雜訊嚴重時可能會把可控硅擊穿的)。
單片機自身的抗干擾措施:
為提高單片機本身的可靠性。近年來單片機的製造商在單片機設計上採取了一系列措施以期提高可靠性。這些技術主要體現在以下幾方面。
1.降低外時鍾頻率
外時鍾是高頻的雜訊源,除能引起對本應用系統的干擾之外,還可能產生對外界的干擾,使電磁兼容檢測不能達標。在對系統可靠性要求很高的應用系統中,選用頻率低的單片機是降低系統雜訊的原則之一。以8051單片機為例,最短指令周期1μs時,外時鍾是12mhz。而同樣速度的motorola 單片機系統時鍾只需4mhz,更適合用於工控系統。近年來,一些生產8051兼容單片機的廠商也採用了一些新技術,在不犧牲運算速度的前提下將對外時鍾的需求降至原來的1/3。而motorola 單片機在新推出的68hc08系列以及其16/32位單片機中普遍採用了內部瑣相環技術,將外部時鍾頻率降至32khz,而內部匯流排速度卻提高到8mhz乃至更高。
2.低雜訊系列單片機
傳統的集成電路設計中,在電源、地的引出上通常將其安排在對稱的兩邊。如左下角是地,右下角是電源。這使得電源雜訊穿過整個矽片。改進的技術將電源、地安排在兩個相鄰的引腳上,這樣一方面降低了穿過整個矽片的電流,一方面使外部去耦電容在pcb設計上更容易安排,以降低系統雜訊。另一個在集成電路設計上降低雜訊的例子是驅動電路的設計。一些單片機提供若干個大電流的輸出引腳,從幾十毫安到數百毫安。這些大功率的驅動電路集成到單片機內部無疑增加了雜訊源。而跳變沿的軟化技術可消除這方面的影響,辦法是將一個大功率管做成若干個小管子的並聯,再為每個管子輸出端串上不同等效阻值的電阻。以降低di/dt。
3.時鍾監測電路、看門狗技術與低電壓復位
監測系統時鍾,當發現系統時鍾停振時產生系統復位信號以恢復系統時鍾,是單片機提高系統可靠性的措施之一。而時鍾監控有效與省電指令stop是一對矛盾。只能使用其中之一。
看門狗技術是監測應用程序中的一段定時中斷服務程序的運行狀況,當這段程序不工作時判斷為系統故障,從而產生系統復位。
低電壓復位技術是監測單片機電源電壓,當電壓低於某一值時產生復位信號。由於單片機技術的發展,單片機本身對電源電壓范圍的要求越來越寬。電源電壓從當初的5v降至3.3v並繼續下降到2.7v、2.2v、1.8v。在是否使用低電壓復位功能時應根據具體應用情況權衡一下。
4. eft技術
新近推出的motorola m68hc08 系列單片機採用eft(electrical fast transient)技術進一步提高了單片機的抗干擾能力。當振盪電路的正弦波信號受到外界干擾時,其波形上會疊加一些毛刺。以施密特電路對其整形時,這種毛刺會成為觸發信號干擾正常的時鍾信號。交替使用施密特電路和rc濾波可以使這類毛刺不起作用,這就是eft技術。隨著vlsi技術的不斷發展,電路內部的抗干擾技術也在不斷發展之中。
5.軟體方面的措施
單片機本身在指令設計上也有一些抗干擾的考慮。非法指令復位或非法指令中斷是當運行程序時遇到非法指令或非法定址空間能產生復位或中斷。單片機應用系統程序是事先寫好的,不可能有非法指令或定址。一定是系統受到干擾,cpu讀指令時出錯了。
以上提到的是當前廣泛使用的單片機應該具有的內部抗干擾措施。在選用單片機時,要檢查一下這些性能是否都有,以求設計出可靠性高的系統。
在應用軟體設計方面,設計者都有各自的經驗。這里要提醒的是最後對不用的rom要做處理。原則是萬一程序落到這里可以自恢復。
用於單片機系統的干擾抑制元件
1.去耦電容
每個集成電路的電源、地之間應配置一個去耦電容,它可以濾掉來自電源的高頻雜訊。作為儲能元件,它吸收或提供該集成電路內部三極體導通、截止引起的電流變化(di/dt),從而降低系統雜訊。要選高頻特性好的獨石電容或瓷片電容作去耦電容。每塊印製電路板電源引入的地方要安放一隻大容量的儲能電容。由於電解電容的纏繞式結構,其分布電感較大,對濾除高頻干擾信號幾乎不起作用。使用時要與去耦電容成對使用。鉭電容則比電解電容效果更好。
2.抑制高頻的電感
用粗漆包線穿入軸向有幾個孔的鐵氧體芯,就構成了高頻扼制器件。將其串入電源線或地線中可阻止高頻信號從電源/地線引入。這種元件特別適用於隔開一塊印製電路板上的模擬電路區、數字電路區、以及大功率驅動區的供電。應該注意的是它必須放在該區儲能電容與電源之間而不能放在儲能電容與用電器件之間。
3.自恢復保險絲
這是用一種新型高分子聚合材料製成的器件,當電流低於其額定值時,它的直流電阻只有零點幾歐。而電流大到一定程度,它的阻值迅速升高,引起發熱,而越熱電阻越大,從而阻斷電源電流。當溫度降下來以後能自動恢復正常。這種器件可防止cmos器件在遇到強沖擊型干擾時引起所謂「可控硅觸發」現象。這種現象指集成電路矽片的基體變得導通,從而引起電流增大,導致cmos集成電路發熱乃至燒毀。
4.防雷擊器件
室外使用的單片機系統或電源線、信號線從室外架空引入室內的,要考慮系統的防雷擊問題。常用的防雷擊器件有:氣體放電管,tvs(transient voltage supervention)等,氣體放電管是當電源電壓大於某一值時,通常為數十伏或數百伏,氣體擊穿放電,將電源線上強沖擊脈沖導入大地,tvs可以看成兩個並聯且方向相反的齊納二極體,當電兩端電壓高於某一額定值時導通。其特點是可以瞬態通過數百乃至上千安培的電流。這類元器件要和抗共模和抗差模干擾的電感配合使用以提高抗干擾效果。
提高單片機系統抗干擾能力的主要手段
1.接地
這里的接地指接大地,也稱作保護地。為單片機系統提供良好的地線,對提高系統的抗干擾能力極為有益。特別是對有防雷擊要求的系統,良好的接地至關重要。上面提到的一系列抗干擾元件,意在將雷擊、浪涌式干擾以及快脈沖群干擾去除,而去除的方法都是將干擾引入大地,如果系統不接地,或雖有地線但接地電阻過大,則這些元件都不能發揮作用。為單片機供電的電源的地俗稱邏輯地,它們和大地的地的'關系可以相通、浮空、或接一電阻,要視應用場合而定。不能把地線隨便接在暖氣管子上。絕對不能把接地線與動力線的火線、零線中的零線混淆。
2.隔離與屏蔽
典型的信號隔離是光電隔離。使用光電隔離器件將單片機的輸入輸出隔離開,一方面使干擾信號不得進入單片機系統,另一方面單片機系統本身的雜訊也不會以傳導的方式傳播出去。屏蔽則是用來隔離空間輻射的,對雜訊特別大的部件,如開關電源,用金屬盒罩起來,可減少雜訊源對單片機系統的干擾。對特別怕干擾的模擬電路,如高靈敏度的弱信號放大電路可屏蔽起來。而重要的是金屬屏蔽本身必須接真正的地。
3.濾波
濾波指各類信號按頻率特性分類並控制它們的方向。常用的有各種低通濾波器、高通濾波器、帶通濾波器。低通濾波器用在接入的交流電源線上,旨在讓50周的交流電順利通過,將其它高頻雜訊導入大地。低通濾波器的配置指標是插入損耗,選擇的低通濾波器插入損耗過低起不到抑制雜訊的作用,而過高的插入損耗會導致「漏電」,影響系統的人身安全性。高通、帶通濾波器則應根據系統中對信號的處理要求選擇使用。
印製電路板的布線與工藝
印製電路板的設計對單片機系統能否抗干擾非常重要。要本著盡量控制雜訊源、盡量減小雜訊的傳播與耦合,盡量減小雜訊的吸收這三大原則設計印製電路板和布線。當你設計單片機用印製電路板時,不仿對照下面的條條檢查一下。
印製電路板要合理區分,單片機系統通常可分三區,即模擬電路區(怕干擾),數字電路區(即怕干擾、又產生干擾),功率驅動區(干擾源)。
印刷板按單點接電源、單點接地原則送電。三個區域的電源線、地線由該點分三路引出。雜訊元件與非雜訊元件要離得遠一些。
時鍾振盪電路、特殊高速邏輯電路部分用地線圈起來。讓周圍電場趨近於零。i/o驅動器件、功率放大器件盡量靠近印刷板的邊,靠近引出接插件。
能用低速的就不用高速的,高速器件只用在關鍵的地方。
使用滿足系統要求的最低頻率的時鍾,時鍾產生器要盡量靠近用到該時鍾的器件。
石英晶體振盪器外殼要接地,時鍾線要盡量短,且不要引得到處都是。
使用45度的折線布線,不要使用90度折線,以減小高頻信號的發射。
單面板、雙面板,電源線、地線要盡量的粗。信號線的過孔要盡量少。
層板比雙面板雜訊低20db。6層板比4層板雜訊低10db。經濟條件允許時盡量用多層板。關鍵的線盡量短並要盡量粗,並在兩邊加上保護地。將敏感信號和雜訊場帶信號通過一條扁帶電纜引出的話,要用地線-信號-地線的方式引出。石英振盪器下面、雜訊敏感器件下面要加大地的面積而不應該走其它信號線。任何信號線都不要形成環路,如不可避免,環路應盡量小。時鍾線垂直於i/o線比平行於i/o線干擾小,時鍾線要遠離i/o線。對a/d類器件,數字部分與模擬部分寧可繞一下也不要交叉。雜訊敏感線不要與高速線、大電流線平行。單片機及其它ic電路,如有多個電源、地端的話,每端都要加一個去耦電容。單片機不用的i/o埠要定義成輸出。每個集成電路要加一個去耦電容,要選高頻信號好的獨石電容式瓷片電容作去耦電容。去耦電容焊在印製電路板上時,引腳要盡量短。從高雜訊區來的信號要加濾波。繼電器線圈處要加放電二極體。可以用串一個電阻的辦法來軟化i/o線的跳變沿或提供一定的阻尼。用大容量的鉭電容或聚脂電容而不用電解電容作電路充電的儲能電容。因為電解電容分布電感較大,對高頻無效。使用電解電容時要與高特性好的去耦電容成對使用。需要時,電源線、地線上可加用銅線繞制鐵氧體而成的高頻扼流器件阻斷高頻雜訊的傳導。弱信號引出線、高頻、大功率引出電纜要加屏蔽。引出線與地線要絞起來。印刷板過大、或信號線頻率過高,使得線上的延遲時間大於等於信號上升時間時,該線要按傳輸線處理,要加終端匹配電阻。盡量不要使用ic 插座,把ic直接焊在印刷板上,ic座有較大的分布電容。
2.2 切斷干擾傳播路徑
按干擾的傳播路徑可分為傳導干擾和輻射干擾兩類。
所謂傳導干擾是指通過導線傳播到敏感器件的干擾。高頻干擾雜訊和有用信號的頻帶不同,可以通過在導線上增加濾波器的方法切斷高頻干擾雜訊的傳播,有時也可加隔離光耦來解決。電源雜訊的危害最大,要特別注意處理。
所謂輻射干擾是指通過空間輻射傳播到敏感器件的干擾。一般的解決方法是增加干擾源與敏感器件的距離,用地線把它們隔離和在敏感器件上加屏蔽罩。
切斷干擾傳播路徑的常用措施如下:
(1)充分考慮電源對單片機的影響。電源做得好,整個電路的抗干擾就解決了一大半。許多單片機對電源雜訊很敏感,要給單片機電源加濾波電路或穩壓器,以減小電源雜訊對單片機的干擾。比如,可以利用磁珠和電容組成π形濾波電路,當然條件要求不高時也可用100Ω電阻代替磁珠。
(2)如果單片機的I/O口用來控制電機等雜訊器件,在I/O口與雜訊源之間應加隔離(增加π形濾波電路)。
(3)注意晶振布線。晶振與單片機引腳盡量靠近,用地線把時鍾區隔離起來,晶振外殼接地並固定。
(4)電路板合理分區,如強、弱信號,數字、模擬信號。盡可能把干擾源(如電機、繼電器)與敏感元件(如單片機)遠離。
(5)用地線把數字區與模擬區隔離。數字地與模擬地要分離,最後在一點接於電源地。A/D、D/A晶元布線也以此為原則。
(6)單片機和大功率器件的地線要單獨接地,以減小相互干擾。大功率器件盡可能放在電路板邊緣。
(7)在單片機I/O口、電源線、電路板連接線等關鍵地方使用抗干擾元件如磁珠、磁環、電源濾波器、屏蔽罩,可顯著提高電路的抗干擾性能。
2.3 提高敏感器件的抗干擾性能
提高敏感器件的抗干擾性能是指從敏感器件這邊考慮盡量減少對干擾雜訊的拾取,以及從不正常狀態盡快恢復的方法。
提高敏感器件抗干擾性能的常用措施如下:
(1)布線時盡量減少迴路環的面積,以降低感應雜訊。
(2)布線時,電源線和地線要盡量粗。除減小壓降外,更重要的是降低耦合雜訊。
(3)對於單片機閑置的I/O口,不要懸空,要接地或接電源。其它IC的閑置端在不改變系統邏輯的情況下接地或接電源。
(4)對單片機使用電源監控及看門狗電路,如: IMP809,IMP706,IMP813,
X5043,X5045等,可大幅度提高整個電路的抗干擾性能。
(5)在速度能滿足要求的前提下,盡量降低單片機的晶振和選用低速數字電路。
(6)IC器件盡量直接焊在電路板上,少用IC座。
2.4 其它常用抗干擾措施
(1)交流端用電感電容濾波:去掉高頻低頻干擾脈沖。
(2)變壓器雙隔離措施:變壓器初級輸入端串接電容,初、次級線圈間屏蔽層與初級間電容中心接點接大地,次級外屏蔽層接印製板地,這是硬體抗干擾的關鍵手段。次級加低通濾波器:吸收變壓器產生的浪涌電壓。
(3)採用集成式直流穩壓電源: 有過流、過壓、過熱等保護作用。
(4)I/O口採用光電、磁電、繼電器隔離,同時去掉公共地。
(5)通訊線用雙絞線:排除平行互感。
(6)防雷電用光纖隔離最為有效。
(7)A/D轉換用隔離放大器或採用現場轉換:減少誤差。
(8)外殼接大地:解決人身安全及防外界電磁場干擾。
(9)加復位電壓檢測電路。防止復位不充分, CPU就工作,尤其有EEPROM的器件,復位不充份會改變EEPROM的內容。
(10)印製板工藝抗干擾:
① 電源線加粗,合理走線、接地,三匯流排分開以減少互感振盪。
② CPU、RAM、ROM等主晶元,VCC和GND之間接電解電容及瓷片電容,去掉高、低頻干擾信號。
③ 獨立系統結構,減少接插件與連線,提高可靠性,減少故障率。
④ 集成塊與插座接觸可靠,用雙簧插座,最好集成塊直接焊在印製板上,防止器件接觸不良故障。
⑤ 有條件的採用四層以上印製板,中間兩層為電源及地。
;Ⅳ 什麼是冗餘指令
指令冗餘法
單片機操作時序完全由程序計數器PC控制,一旦PC因干擾出現錯誤,
程序便脫離正常軌道,出現「亂飛」、改變操作數數值以及將操作數誤認為
操作碼等。為了使「亂飛」程序迅速納入正軌,應該多用單位元組指令,並在
關鍵地方插入一些空操作指令NOP或將有效單位元組指令重寫,這就叫做指
令冗餘。
1. NOP指令的使用:
在雙位元組指令或三位元組指令之後插入兩條NOP指令,可保證其後
的指令不被拆散。在對程序流向起決定作用的指令
(如RET、ACALL、LJMP、JZ、JNZ、JC、JNC、
DJNZ等)和對系統狀態起決定作用的指令(如SETB、EA等)
之前插入兩條NOP指令,使「亂飛」程序迅速納入正軌。
2. 重要指令冗餘:
在對程序流向起決定作用的指令(如RET、ACALL、LCALL
LJMP、JZ、JNZ、JC、JNC等)和某些對系統狀態起決定
作用的指令(如SETB、EA等)的後面可重復寫這些指令,以確保
這些指令的正確執行。採用冗餘法使PC納入正軌的條件是:
跑飛的PC必須指向程序運行區,並且必須執行到冗餘指令。
二、軟體陷阱法
當亂飛程序進入非程序區或表格區時,無法用冗餘指令使程序入軌,此時
可以編軟體陷阱程序,攔截亂飛程序,將其迅速引向一個指定位置, 在那裡
有程序運行出錯處理程序,將程序納入正軌。軟體陷阱的形式如下表。
根據亂飛程序落入陷阱區的位置不同,可選擇表中的兩種形式之一。
1. 未使用的中斷區。 當未使用的中斷因干擾而開放時,在對應的中斷
服務程序中設置軟體陷阱,以及時捕捉錯誤的中斷。返回指令用RETI,
中斷服務程序為:
NOP
NOP
POP direct1;將原先斷點彈出
POP direct2
PUSH 00H ;斷點地址改為0000H
PUSH 00H
RETI
說明:direct1、direct2為主程序中未使用的單元。
2. 未使用的EPROM空間。 EPROM的存儲空間很少全部用完。
未用的區域可用0000020000H或020202020000H填滿
最後一條應為020000H,當亂飛程序進入此區後,便會迅速入軌。
3.運行程序區。 將陷阱指令組分散放置在用戶程序各模塊之間的空餘單
元里。在正常程序中不執行這些指令。亂飛程序一旦落入此區,便迅速拉到正
確軌道。
4. 中斷服務程序區。 設用戶主程序運行區間為ADD1~ADD2,
並設定時器T0產生10ms定時中斷。當程序亂飛落入ADD1~ADD2
外,並發生了定時中斷後,可在中斷服務程序中判斷中斷斷點地址ADD×,
若ADD×<ADD1或ADD×>ADD2,說明發生了程序亂飛,則應使
程序返回到復位地址0000H,將亂飛程序拉到正確軌道。
假設ADD1=0100H,ADD2=1000H,2FH、2EH分別為
斷點地址高、低位元組單元,中斷服務程序為:
POP 2FH ;斷點地址彈入2FH、2EH
POP 2EH
PUSH 2EH
PUSH 2FH ;恢復斷點地址
CLR C ;斷點地址與0100H比較
MOV A,2EH
SUBB A,#00H
MOV A,2FH
SUBB A,#01H
JC LOOPN ;斷點小於0100H則轉
MOV A,#00H ;斷點地址與1000H比較
SUBB A,2EH
MOV A,#10H
SUBB A,2FH
JC LOOPN ;斷點大於10000H則轉
? ;中斷處理內容
?
?
RETI ;正常返回
LOOPN:POP 2FH ;修改斷點地址
POP 2EH
PUSH 00H ;故障斷點為0000H
PUSH 00H
RETI ;故障返回
5. 外部RAM防寫。 單片機外部RAM保存大量數據,其寫入指令
為MOVX @DPTR,A。當CPU受到干擾而非法執行該指令時, 會
改寫RAM中的數據。為減小RAM中數據丟失的可能性, 可在RAM寫作
之前加入條件陷阱,不滿足條件時不允許寫,並進入陷阱,形成死循環。
具體程序為:
MOV A,#××H
MOV DPTR,#××××H
MOV 6EH,#55H
MOV 6FH,#0AAH
LCALL WPDPSUB
RET
WPDPSUB:NOP
NOP
NOP
CJNE 6EH,#55H,XYJ ;6EH中不為
;55H則落入死循環
CJNE 6FH,#0AAH,XYJ ;6FH中不為
;AAH則落死循環
MOVX @DPTR,A ;A中數據寫入
;RAM××××H中
NOP
NOP
NOP
MOV 6EH,#00H
MOV 6FH,#00H
RET
XYJ: NOP ;死循環
NOP
SJMP XYJ
三、看門狗
「看門狗」可使程序脫離「死循環」。「看門狗」可由硬體實現,可由軟體
實現,也可由兩者結合來實現。軟體看門狗的基本思路是:在主程序中對T0
中斷服務程序進行監視;在T1中斷服務程序中對主程序進行監視;T0中斷
監視T1中斷。從概率統計的觀點,這種相互依存相互制約的抗干擾措施將使
系統的可靠性大大提高。
系統軟體包括主程序、高級中斷子程序和低級中斷子程序三部分。假設將T0
設計成高級中斷,T1設計成低級中斷,從而形成中斷嵌套。主程序流程圖如
圖1所示。主程序完成系統測控功能的同時,還要監視T0中斷因干擾而引起
的中斷關閉故障。A0為T0中斷服務程序運行狀態觀測單元,T0每中斷一
次,A0便自動加1。在測控功能模塊運行程序(主程序的主體)入口處,先
將A0值暫存於E0單元。由於測控功能模塊一般運行時間較長,設定在此期
間T0產生定時中斷(設T0定時溢出時間小於測控功能模塊運行時間),從
而引起A0變化。在測控功能模塊的出口處,將A0的即時值與先前的暫存單
元E0的值相比較,觀察A0的值是否發生變化。若A0的值發生變化,說明
T0中斷運行正常;若A0的值沒變化,說明T0中斷關閉,則轉到0000H
處,進行出錯處理。
T1中斷程序流程圖如圖2所示。T1中斷程序完成系統特定測控功能的同時,
還要監視主程序的運行狀態。在中斷服務程序中設置一個主程序運行計數器M,
T1每中斷一次,M自動加1,M中的數值與T1定時溢出時間之積表示時間值。
若M表示的時間值大於主程序運行時間T(為可靠起見,T要留有一定餘量),
說明主程序陷入死循環,T1中斷服務程序便修改斷點地址,返回0000H,
進行出錯處理。若M小於T,則中斷正常返回,M在主程序入口處循環清0