摘要:微機系統(tǒng)在作業(yè)現(xiàn)場可能遇到各種干擾和自身的隨機性故障,現(xiàn)場惡劣的環(huán)境也有可能使計算機系統(tǒng)發(fā)生異常,甚至釀成嚴重事故。為此,在提高硬件系統(tǒng)抗干擾能力的同時,必須利用軟件抗干擾方法保證計算機系統(tǒng)在錯綜復雜的環(huán)境里穩(wěn)定運行,以提高微機測控系統(tǒng)的可靠性。
關(guān)鍵詞:微型計算機;軟件系統(tǒng);抗干擾方法;可靠性
0引言
抗干擾技術(shù)貫穿于微機測控系統(tǒng)的設(shè)計、制造、安裝以及運行各個階段。由于系統(tǒng)作業(yè)環(huán)境復雜,在設(shè)計和開發(fā)微機系統(tǒng)時,一般難以周全地預計系統(tǒng)在實際工業(yè)現(xiàn)場中可能遇到的干擾和自身的隨機性故障。因此,在提高硬件系統(tǒng)抗干擾能力的同時,利用軟件設(shè)計靈活、節(jié)省硬件資源的特點,來提高微機測控系統(tǒng)的可靠性顯得非常重要。
1軟件抗干擾方法的研究
可靠性設(shè)計是一項系統(tǒng)工程,必須從硬件、軟件以及結(jié)構(gòu)設(shè)計等方面全面考慮。硬件系統(tǒng)的可靠性是微機系統(tǒng)可靠性的根本,而軟件系統(tǒng)的可靠性設(shè)計可以起到抑制外來干擾,增強系統(tǒng)自身抗干擾能力的作用。通過軟件系統(tǒng)的可靠性設(shè)計,能夠最大限度地降低干擾對系統(tǒng)工作的影響,確保測控系統(tǒng)及時發(fā)現(xiàn)因干擾導致程序出現(xiàn)的錯誤,并使系統(tǒng)恢復到正常工作狀態(tài)或者及時報警。實踐中,軟件抗干擾的主要手段是:消除模擬輸入信號的噪聲;程序運行混亂時使程序重入正軌。
1.1數(shù)字濾波
抑制疊加在模擬輸入信號上的噪聲,要多采取數(shù)字濾波技術(shù)。數(shù)字濾波是通過一定的方法計算或判斷程序減少疊加在有用信號中的噪聲干擾比重,從而提高系統(tǒng)采集信號的質(zhì)量。數(shù)字濾波通常采用的方法有:中值濾波法、算術(shù)平均值法、防脈沖干擾平均值法、一階遞推數(shù)字濾波法。利用程序?qū)崿F(xiàn)RC低通濾波,對周期性干擾和頻率較高的隨機干擾的濾波效果較好。當然,在程序中采用多重濾波算法,效果更佳,此時軟件開發(fā)者應在算法復雜性、數(shù)值處理精度、采樣實時性等幾方面綜合考慮。工程實踐中,考慮到多數(shù)輸入干擾信號呈毛刺狀,作用時間短,可采用輸入多次采樣確認的方法進行濾波,即對輸入信號進行采樣,必須連續(xù)多次輸入相同才有效。
1.2軟件攔截技術(shù)
所謂攔截,是指將亂飛的程序引向指定位置,再進行出錯處理。CPU復位后,首先取指令的操作碼,之后順序取出操作數(shù),當一條完整指令執(zhí)行完成后,緊接著取下一條指令的操作碼、操作數(shù)。這些操作時序完全由程序計數(shù)器PC控制。一旦PC因干擾而出現(xiàn)錯誤,程序便脫離正常運行軌道,出現(xiàn)“亂飛”,當飛出到某一個雙字節(jié)指令時,若取指令時落在操作數(shù)上,誤將操作數(shù)當作操作碼,程序?qū)⒊鲥e。若飛出到了三字節(jié)指令時,出錯的機率更大。為了使“亂飛”程序迅速納入正軌,要多采用指令冗余技術(shù),同時要合理設(shè)計陷阱,并將陷阱安排在適當?shù)奈恢谩?/p>
1.2.1指令冗余
指令冗余是指程序設(shè)計時應多用單字節(jié)指令,并在對程序流向起決定作用的關(guān)鍵地方人為地插入一些單字節(jié)指令NOP,或者將有效單字節(jié)指令重寫,來保證“亂飛”的程序迅速納入正軌。
NOP的使用在雙字節(jié)指令和3字節(jié)指令之后插入2個單字節(jié)NOP指令,可保證其后的指令不會因前面的指令“亂飛”而繼續(xù)。因為“亂飛”的程序即使落到操作數(shù)上,由于2個空操作指令NOP的存在,避免了后面的指令被當作操作數(shù)執(zhí)行,從而使程序再次回到正軌。對程序流向起決定作用的指令和某些對系統(tǒng)工作狀態(tài)起重要作用的指令前插入2條NOP指令,可保證程序迅速納入軌道,確保這些指令正確執(zhí)行。
重要指令冗余 對于那些對程序流向起決定作用的指令(如:RET,RRETI,ACALL等)和某些對系統(tǒng)工作狀態(tài)有重要作用的指令(如:SERB,EA)的后面,可以重復寫上這些指令,以確保這些指令的正確執(zhí)行。
1.2.2軟件陷阱
當“亂飛”程序進入非程序區(qū)或表格區(qū)時,不能采用冗余技術(shù),此時可設(shè)定軟件陷阱,來截斷亂飛程序。所謂軟件陷阱就是引導指令,強行將捕獲的程序引向一個指定地址,在那里有一段專門處理程序出錯的程序(用來診斷系統(tǒng)被干擾前的工作狀態(tài),并使程序運行恢復正常)。通常在EPROM中的非程序區(qū)填入以下指令作為軟件陷阱:
DSP:……:顯示子程序
RET
RET
NOP
:軟件陷阱
NOP
NOP
:軟件陷阱
NOP
LJMP FLY
LIMP FLY
FLY:……:“亂飛”處理子程序
RET
考慮到程序存貯器的容量,一般IK空間有2—3個軟件陷阱就可以進行有效攔截。
軟件陷阱安排在以下幾種場合:
(1)未使用的中斷向量區(qū);
(2)未使用的大片EPROM空間;
(3)控制字表,時間常數(shù)表的最后的未使用空間;
(4)程序區(qū)中的一些斷裂點,如LJMP,AJMP,RET,RETI指令之后,正常執(zhí)行的程序到此不會繼續(xù)往下執(zhí)行了,在這種地方安排陷阱,就能有效地捕捉程序,而又不影響正常的程序執(zhí)行流程。
1.2.3程序運行監(jiān)視系統(tǒng)
若失控的程序在遇到冗余指令前就已自動形成死循環(huán),則冗余指令和軟件陷阱也無能為力了,這時系統(tǒng)會陷入完全癱瘓。為了避免此種情況,采取的措施是建立程序運行監(jiān)視系統(tǒng),不斷檢測程序循環(huán)運行時間,若發(fā)現(xiàn)程序循環(huán)時間超過最大循環(huán)運行時間,則認為系統(tǒng)陷入死循環(huán),運行出錯處理程序。例如,當硬件電路設(shè)計時未考慮到采用watchdog,為了簡化硬件電路,可以建立—個純軟件的watchdog監(jiān)視系統(tǒng)。這個watchdog系統(tǒng)只有采用比這個死循環(huán)更高級的中斷子程序才能奪走對CPU的控制權(quán)??梢杂靡粋€定時器來作watchdog,將它的溢出中斷設(shè)定為高級中斷,系統(tǒng)中的其他中斷均設(shè)為低級中斷。當程序掉入死循環(huán)后,在設(shè)定的間隔時間內(nèi)得不到主程序“目前正常”信號后,watchdog系統(tǒng)有一次溢出,產(chǎn)生高級中斷,從而退出死循環(huán)。在中斷向量區(qū)安放一條LJMP ERR指令,即可直接轉(zhuǎn)向出錯處理程序,由出錯處理程序來完成各種善后工作,并用軟件方法使系統(tǒng)復位。
1.3設(shè)置功能模塊入口標志
一般情況下,在自動化生產(chǎn)線的控制系統(tǒng)中,當程序失去控制后,不允許從控制程序的入口處重新開始執(zhí)行,而應當從失去控制的程序模塊恢復執(zhí)行。為此,控制程序應模塊化,可以在每個功能模塊的入口處設(shè)置一個標志。系統(tǒng)故障復位后,可根據(jù)這些標志選擇進入相應的功能模塊。
1.4信息冗余
信息冗余是為了檢測或糾正信息在運算或傳輸中的錯誤而外加的一部分信息。在傳送數(shù)據(jù)序列中,按一定的規(guī)律加入一些信息碼,使原來不相關(guān)的數(shù)據(jù)變?yōu)橄嚓P(guān),在接受端按發(fā)送端的編碼進行譯碼,附加的信息碼元就能自動檢測傳輸中產(chǎn)生的差錯并采取糾錯措施。在通信和危機系統(tǒng)中,信息經(jīng)常是以編碼形式出現(xiàn)的,奇偶碼、漢明碼、法爾碼、循環(huán)碼及各種算術(shù)誤差碼都有很強的檢錯和糾錯能力。一般冗余的信息碼越多,其檢錯和糾錯能力越強。
1.5自診斷
系統(tǒng)自診斷是提高微機系統(tǒng)可靠度和檢測干擾的有效方法之一。自診斷一般分為:開機自診斷、周期性自診斷和鍵控自診斷。
開機自診斷又稱為靜態(tài)自檢,主要是系統(tǒng)對RAM區(qū)數(shù)據(jù)、系統(tǒng)定時器功能、相互通道的讀寫、接口通信等部件的測試。檢查RAM是否讀寫正確或運行過程中RAM區(qū)數(shù)據(jù)是否安全,診斷系統(tǒng)定時器、系統(tǒng)相互通道、系統(tǒng)接口等的完整性和可靠性,若不正常則給出信息提示或報警提示。
周期性自診斷又稱為動態(tài)檢測,是在程序運行過程中進行的,包括系統(tǒng)零漂自檢、系統(tǒng)自動校正、系統(tǒng)自動補償?shù)???刂葡到y(tǒng)在運行過程中有關(guān)器件性能參數(shù)將受到各種干擾的影響,造成系統(tǒng)零點的偏移或漂移,影響系統(tǒng)工作的準確性和可靠性,因此系統(tǒng)在自檢的過程時進行自動補償,以提高系統(tǒng)運行的準確性和可靠性。
鍵控自診斷是通過人機對話設(shè)定特殊的系統(tǒng)自診斷功能。
2結(jié)束語
目前,采用抗干擾技術(shù)方法較多,提高硬件系統(tǒng)抗干擾能力是關(guān)鍵,同時利用軟件抗干擾也越來越受到重視。在工程實踐中通常都是幾種抗干擾方法并用,互相補充完善,才能取得較好的抗干擾效果。實踐證明,通過細致周到地分析干擾源、硬件與軟件抗干擾相結(jié)合、完善系統(tǒng)監(jiān)控程序等辦法,設(shè)計一個穩(wěn)定可靠的微機系統(tǒng)是完全可行的。
(注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。)