范慶廣
[摘要]:本文先講述了單片機(jī)系統(tǒng)干擾的來源和后果,然后從硬件和軟件兩方面給出了解決的辦法,這些方法可以提高單片機(jī)系統(tǒng)的穩(wěn)定性和可靠性。
[關(guān)鍵詞]:單片機(jī)系統(tǒng) 硬件 軟件 抗干擾技術(shù)
中圖分類號(hào):TP2 文獻(xiàn)標(biāo)識(shí)碼:J
1、 引 言
單片機(jī)的應(yīng)用越來越廣泛,被廣泛地應(yīng)用于各個(gè)領(lǐng)域比如:工業(yè)控制、醫(yī)療器械、通訊等場(chǎng)合,對(duì)單片機(jī)的可靠性的要求越來越高。單片機(jī)系統(tǒng)的可靠性是由多種因素決定的,其中系統(tǒng)抗干擾性能是可靠性的重要指標(biāo)之一。但在實(shí)驗(yàn)室里設(shè)計(jì)的控制系統(tǒng),在安裝、調(diào)試后完全符合設(shè)計(jì)要求,但把系統(tǒng)置入現(xiàn)場(chǎng)后,系統(tǒng)常常不能夠正常穩(wěn)定地工作。產(chǎn)生這種情況的原因主要是現(xiàn)場(chǎng)環(huán)境復(fù)雜和各種各樣的電磁干擾,所以單片機(jī)應(yīng)用系統(tǒng)的可靠性設(shè)計(jì)、抗干擾技術(shù)的應(yīng)用變得越來越重要了。
2、 干擾的來源和后果
工業(yè)現(xiàn)場(chǎng)環(huán)境中干擾是以脈沖的形式進(jìn)入單片機(jī)系統(tǒng),其主要的渠道有三條,即空間干擾,供電系統(tǒng)干擾,過程通道干擾。空間干擾多發(fā)生在高電壓、大電流、高頻電磁場(chǎng)附近,并通過靜電感應(yīng),電磁感應(yīng)等方式侵入系統(tǒng)內(nèi)部:供電系統(tǒng)干擾以電源的噪聲干擾引起的;過程通道干擾是干擾通過前向通道和后向通道進(jìn)入系統(tǒng)。干擾一般沿各種線路侵入系統(tǒng)。系統(tǒng)接地裝置不可靠,也是產(chǎn)生干擾的重要原因;各類傳感器,輸入輸出線路的絕緣損壞均有可能引入干擾。干擾產(chǎn)生的后果:
(1)數(shù)據(jù)采集誤差的加大當(dāng)干擾侵入單片機(jī)系統(tǒng)的前向通道疊加在信號(hào)上,會(huì)使數(shù)據(jù)采集誤差增大,特別是前向通道的傳感器接口是小電壓信號(hào)輸入時(shí),此現(xiàn)象會(huì)更加嚴(yán)重。
(2)程序運(yùn)行失常
① 控制狀態(tài)失靈
在單片機(jī)系統(tǒng)中,由于干擾的加入使輸出誤差加大,造成邏輯狀態(tài)改變,最終導(dǎo)致控制失常。
② 死機(jī)
在單片機(jī)系統(tǒng)受強(qiáng)干擾后,造成程序計(jì)數(shù)器PC值的改變,破壞程序正常運(yùn)行。
(3)系統(tǒng)被控對(duì)象誤操作
① 單片機(jī)內(nèi)部程序指針錯(cuò)亂,指向了其它地方,運(yùn)行了錯(cuò)誤的程序;
② RAM 中的某些數(shù)據(jù)被沖亂或者特殊寄存器的值被改變,使程序計(jì)算出錯(cuò)誤的結(jié)果。
③ 中斷誤觸發(fā),使系統(tǒng)進(jìn)行錯(cuò)誤的中斷處理。
(4)被控對(duì)象狀態(tài)不穩(wěn)定
鎖存電路與被控對(duì)象問的線路(包括驅(qū)動(dòng)電路)受干擾,從而造成被控對(duì)象狀態(tài)不穩(wěn)定。
3、 硬件抗干擾
3.1 合理選擇元器件
根據(jù)系統(tǒng)參數(shù)合理地選擇器件以滿足系統(tǒng)性能要求。盡可能選用集成度高、溫漂小、抗干擾性能好、功耗低的元器件。選擇抗干擾性能強(qiáng)的CPU,如果是工作在干擾比較大的環(huán)境,可以試試選用不同品牌的單片機(jī).在實(shí)踐的過程中,發(fā)現(xiàn)摩托羅拉、AVR系列的單片機(jī)的抗干擾性能不錯(cuò).另外,外時(shí)鐘是高頻的噪聲源,對(duì)系統(tǒng)的內(nèi)外都能產(chǎn)生干擾,因此在滿足需要的前提下,選用頻率低的單片機(jī)是明智之舉.
3.2 抑制電源干擾
在交流電網(wǎng)進(jìn)線端并接壓敏電阻.吸收浪涌電壓;采用低通濾波器抑制電網(wǎng)引入的高頻噪聲,在設(shè)計(jì)濾波器時(shí)要注意讓諧振頻率遠(yuǎn)小于干擾頻率;采用模擬電路與數(shù)字電路的電源分開、電源浮空技術(shù)、使用電源隔離變壓器和電源濾波技術(shù)。
3.3 抑制電磁場(chǎng)干擾
采用由導(dǎo)電性能良好的金屬作屏蔽盒,并接地,則屏蔽盒內(nèi)電力線不會(huì)影響外部,同時(shí)外部的電力線也不會(huì)穿透屏蔽盒進(jìn)人內(nèi)部,可抑制干擾源,阻截干擾的傳輸途徑,起電場(chǎng)隔離的作用。磁路屏蔽則采用高導(dǎo)磁性材料并以封閉式結(jié)構(gòu)為妥。
3.4 良好的接地
單片機(jī)系統(tǒng)設(shè)備的抗干擾與系統(tǒng)的接地方式有很大關(guān)系,接地技術(shù)往往是抑制噪音的重要手段.良好的接地可以在很大程度上抑制系統(tǒng)內(nèi)部噪音耦合,防止外部干擾的侵入,提高系統(tǒng)的抗干擾能力.單片機(jī)系統(tǒng)中的高頻電路應(yīng)就近多點(diǎn)接地,低頻電路應(yīng)一點(diǎn)接地;設(shè)備的金屬外殼等要安全接地,屏蔽用的導(dǎo)體必須良好接地.這里的接地指接大地,也稱作保護(hù)地.為單片機(jī)系統(tǒng)提供良好的地線對(duì)提高系統(tǒng)的抗f擾能力極為有益.特別是對(duì)有防雷擊要求的系統(tǒng),良好的接地至關(guān)重要。如果系統(tǒng)不接地,或雖有地線但接地電阻過大,則抗干擾元件就不能正常發(fā)揮作用.單片機(jī)供電的電源的地俗稱邏輯地,它們和大地的地的關(guān)系可以相通、浮空、或接一電阻,要視應(yīng)用場(chǎng)合而定.不能把地線隨便接在暖氣管子上.絕對(duì)不能把接地線與動(dòng)力線的火線、零線中的零線混淆.在復(fù)雜現(xiàn)場(chǎng)條件下,可以考慮把整個(gè)CPU控制電路采用金屬機(jī)箱做好接地,接地電阻不小于4歐姆,保證沒有空間干擾的串入。
4、 軟件抗干擾
4.1 CPU 抗干擾措施
當(dāng)干擾作用到單片機(jī)本身時(shí),單片機(jī)將不能按正常狀態(tài)執(zhí)行程序,從而引起混亂。如何發(fā)現(xiàn)單片機(jī)受到干擾,如何攔截失去控制的程序流向,如何使系統(tǒng)的損失減小,如何恢復(fù)系統(tǒng)的正常運(yùn)行,則是CPU 抗干擾需要解決的問題,具體可以采用以下幾種方法。
(1)人工復(fù)位
對(duì)于失控的CPU,最簡單的方法是使其復(fù)位,程序自動(dòng)從0000H開始執(zhí)行。為此只要在單片機(jī)的RESET端加上一個(gè)高電平信號(hào),并持續(xù)10ms以上即可。
(2)掉電保護(hù)
電網(wǎng)瞬間斷電或電壓突然下降將使微機(jī)系統(tǒng)陷入混亂狀態(tài),電網(wǎng)電壓恢復(fù)正常后,微機(jī)系統(tǒng)難以恢復(fù)正常,對(duì)此類事故的有效方法是掉電保護(hù)。掉電信號(hào)由硬件電路檢測(cè)到,加到單片機(jī)的外部中斷輸入端,軟件中斷將掉電中斷規(guī)定為高級(jí)中斷,使系統(tǒng)及時(shí)對(duì)掉電作出反應(yīng)。在掉IU中斷子程序中,首先進(jìn)行現(xiàn)場(chǎng)保護(hù),保存當(dāng)時(shí)重要的狀忿參數(shù),當(dāng)電源恢復(fù)正常時(shí),CPU 重新復(fù)位,恢復(fù)現(xiàn)場(chǎng),繼續(xù)未完成的工作。
4.2 指令冗余
CPU 取指令過程是先取操作碼,再取操作數(shù)。當(dāng)單片機(jī)受干擾出現(xiàn)錯(cuò)誤時(shí),程序便脫離正常軌道"亂飛",當(dāng)亂飛到某雙字節(jié)指令,若取指令時(shí)刻落在操作數(shù)上,誤將操作數(shù)當(dāng)作操作碼,程序?qū)⒊鲥e(cuò),若"飛"到了三字節(jié)指令,出錯(cuò)機(jī)率更大。因此,在關(guān)鍵地方人為地插入一些單字節(jié)指令,或?qū)⒂行巫止?jié)指令重寫,這便稱為"指令冗余"。通常是在雙字節(jié)指令和三字節(jié)指令后插入兩個(gè)字節(jié)以上的空操作指令NOP,這樣即使亂飛程序飛到操作數(shù)卜.由于NOP的存在,避免了后面的指令被當(dāng)作操作數(shù)執(zhí)行,程序自動(dòng)納入正軌。
4.3 設(shè)置軟件陷阱
當(dāng)亂飛程序進(jìn)入非程序區(qū),冗余指令便無法起作用。通過軟件陷阱,攔截亂飛程序,將其引向指定位置,再進(jìn)行出錯(cuò)處理。軟件陷阱是指用來將捕獲的亂飛程序引向復(fù)位入口地址0000H 的指令。通常在EPR()M 中非程序區(qū)填入以下指令作為軟件陷阱:
NOP
NOP
LJMP 0000H
軟件陷阱通常安排在下列幾種地方:
(1)未使用的中斷向量區(qū)。
(2)未使用的大片ROM 空間。
(3)表格。
考慮到程序存貯器的容量,軟件陷阱一般1K 空間有2- 3個(gè)就可以進(jìn)行有效攔截。由于軟件陷阱都安排在程序正常執(zhí)行不到的地方,故不會(huì)影響程序執(zhí)行效率。
5 、結(jié)束語
在工程實(shí)踐中通常都是幾種抗干擾方法并用,互相補(bǔ)充,才能取得良好的抗干擾效果。從根本上來說,硬件抗干擾是主動(dòng)的,軟件抗干擾是被動(dòng)的。細(xì)致分析干擾源,硬件與軟件抗干擾措施相結(jié)合,完善系統(tǒng)監(jiān)控程序,則可以保證系統(tǒng)準(zhǔn)確、可靠地運(yùn)行。
[參 考 文 獻(xiàn)]
[1].單片機(jī)系統(tǒng)實(shí)用抗干擾技術(shù)[M].北京:人民郵電出版社,2004.
[2] 李國金,任曉奎.單片機(jī)抗干擾技術(shù).現(xiàn)代電子技術(shù),2003年第15期.
[3] 杜彥明,張大軍.單片機(jī)硬件抗干擾技術(shù)的應(yīng)用.維護(hù)經(jīng)驗(yàn).
[4] 錢炳蕓,王建平.單片機(jī)應(yīng)用系統(tǒng)中的抗干擾技術(shù).現(xiàn)代電子技術(shù),2005年6月第2期.