董斌華,何林燕
(1.海南三亞91868部隊,海南 三亞 572016;2.陜西科技大學(xué),陜西 西安 710021)
單片機具有體積小、成本低、可靠性好、控制功能強等優(yōu)點,已被廣泛用于工業(yè)過程控制和軍事領(lǐng)域中,然而在單片機控制系統(tǒng)中,因其受到多方面的干擾,影響了系統(tǒng)的可靠性,為了保證系統(tǒng)在各種復(fù)雜的環(huán)境中長時間、安全、穩(wěn)定的運行,必須解決好其一直存在的一個常見關(guān)鍵而又難以解決的問題——抗干擾問題。在單片機控制系統(tǒng)中,干擾源主要來自來自兩個方面:一是來自系統(tǒng)內(nèi)部元器件在工作時產(chǎn)生的干擾,干擾信號通過地址線、電源線、信號線、分布電容和電感等傳輸,影響系統(tǒng)工作狀態(tài);二是來自系統(tǒng)外部其他電氣設(shè)備產(chǎn)生的干擾,通過傳導(dǎo)和輻射等途徑影響微機控制系統(tǒng)和應(yīng)用系統(tǒng)的正常工作[1]。為使單片機控制系統(tǒng)正常工作,在硬件和軟件兩方面均可采取一定抗干擾措施來提高系統(tǒng)的可靠性。
硬件技術(shù)適合于消除頻率較高信號中的干擾,主要是抵抗空間輻射干擾,輸入/輸出通道干擾及供電系統(tǒng)的干擾。
電源產(chǎn)生的干擾主要是從電源和電源引出線侵入系統(tǒng)的,可以以下措施抑制電源干擾:
(1)采用開關(guān)電源供電,開關(guān)電源具有效率高、體積小、輸入電壓范圍寬等優(yōu)點。盡管它自身引起的脈沖干擾較大,但一般具有較好的初—次級隔離,對存在于交流電網(wǎng)上的高頻脈沖干擾有較強的隔離能力[2]。
(2)采取電網(wǎng)濾波技術(shù),即在開關(guān)電源前增加電源濾波模塊,以濾去電網(wǎng)中由各種大功率設(shè)備產(chǎn)生的尖峰脈沖干擾;直流電源濾波,對穩(wěn)壓后的直流電源進一步采取濾波技術(shù),如對各種芯片電源增加電容濾波,對直流電源與地線增加電感濾波;孟繁榮等[3]人為遏制氙燈觸發(fā)器在電源端產(chǎn)生的干擾信號,在電源端進行了多級的隔離與濾波措施,結(jié)果表明:經(jīng)過多級濾波網(wǎng)絡(luò)與隔離措施,電源輸出波形上的干擾幅值已經(jīng)控制在一個系統(tǒng)允許的范圍之內(nèi)。
(3)在單片機控制系統(tǒng)中加入有電容構(gòu)成的退耦電路,以抑制系統(tǒng)中產(chǎn)生的干擾信號通過地線耦合,造成自激振蕩,引起系統(tǒng)錯亂或不能正常工作現(xiàn)象的發(fā)生[4]。
(4)在單片機與外圍控制電路應(yīng)采用獨立的變壓器或開關(guān)穩(wěn)壓電源來分別供電,以實現(xiàn)電源隔離,從而對電網(wǎng)干擾起到一定的抑制作用[5]。
(5)合理布線及采用良好的接地系統(tǒng),地線和電源線盡可能布粗些,線路的走向盡量按輸入到輸出分布[6];單片機系統(tǒng)既有模擬電路,又有數(shù)字電路,模擬地和數(shù)字地需分開。高頻電路應(yīng)就近多點接地。低頻電路應(yīng)一點接地。交流地與信號地不能共地。當(dāng)A/D轉(zhuǎn)換器的模擬信號較弱,可采用三線采樣雙層屏蔽浮地技術(shù),提高抗共模干擾的能力。
輸入、輸出信號通過隔離可以切斷干擾信道,避免強電流對回路的沖擊。常用的隔離方法有光電隔離、繼電器隔離和變壓器隔離。變壓器隔離是傳遞脈沖輸入、輸出信號時,不能傳遞直流分量,因此常用于不要求傳遞直流分量的輸入輸出控制設(shè)備中。對數(shù)字信號的隔離采用光電耦合器。采用這種方法時,信號的傳遞是通過光—電信號傳遞的,沒有直接的電信號連接,因此隔離了干擾傳播途徑。這種方法隔離不斷輻射和感應(yīng)干擾,在具體設(shè)計時應(yīng)在A/D后和D/A前加光電耦合器[7]。對模擬量來說,可以采用光電藕合器、繼電器、隔離放大器和差動放大器等隔離[8]。
采取屏蔽保護能有效地抑制來自電場和磁場的干擾。對元器件進行屏蔽(變壓器、電感等)減少其對周圍電路的電磁干擾;對傳輸線進行屏蔽,信號線采用屏蔽線,減少外部干擾;對部件進行屏蔽,減少電磁場干擾[9]。其中對低頻電磁波可采用高導(dǎo)磁材料制做屏蔽件,如坡莫臺金鐵,磁鋼等;對高頻電磁波采用高導(dǎo)電率的材料,如銅,鋁等制做的屏蔽件可以抑制電磁干擾[10]。
此外,通過選擇合適的元器件及設(shè)計合理的元器件布局也可在一定程度上抵抗干擾,提高系統(tǒng)的穩(wěn)定性和可靠性。
軟件抗干擾技術(shù)是當(dāng)系統(tǒng)受干擾后,使系統(tǒng)恢復(fù)正常運行,或輸入信號受干擾后去偽存真的一種輔助方法。其具有設(shè)計靈活,節(jié)約硬件資源,成本低,操作方便易行,通用性強,適用于不同的系統(tǒng)及抵抗不同的干擾等特點。常用的軟件抗干擾措施包括指令冗余、軟件陷阱、“看門狗”技術(shù)等。
從單片機程序跑飛的根源考慮,單片機受到干擾后,往往會把操作數(shù)當(dāng)作指令碼來執(zhí)行,引起程序混亂。如果程序跑飛到某一條單字節(jié)指令上時,就不會發(fā)生將操作數(shù)當(dāng)成指令的錯誤,而能自動納入正規(guī)。當(dāng)跑飛的雙字節(jié)或三字節(jié)指令操作時,程序?qū)⒗^續(xù)彈飛。因此,宜盡量采用單字節(jié)指令,并在關(guān)鍵地方適當(dāng)?shù)牟迦霂讉€單字節(jié)的空操作指令NOP或?qū)⒂行巫止?jié)指令重復(fù)使用,就可以保護其后面的指令不被拆散而被完整的執(zhí)行。
軟件冗余技術(shù)適用于干擾后PC指向不正確的程序區(qū),當(dāng)PC指向非程序區(qū)或者表格區(qū)時使用冗余指令的措施已經(jīng)不再適用,可采用軟件陷阱的辦法攔截跑飛程序?qū)⑵溲杆僦赶蛞粋€指定位置[11]。軟件陷阱,就是用引導(dǎo)指令強行將撲獲到的亂飛程序引向復(fù)位入口地址0000H,在此處將程序轉(zhuǎn)向?qū)iT對程序出錯進行處理的程序,使程序納入正規(guī)。具體做法是將未使用的EPROM空間即非程序區(qū)用0000020000數(shù)據(jù)填滿,但要注意,最后一條填入數(shù)據(jù)應(yīng)為020000。這樣,當(dāng)亂飛的程序進入此區(qū)后,便會迅速自動入軌。對于MCS-51系列單片機,假設(shè)出錯處理程序入口標(biāo)號為ERROR,則軟件陷阱指令如下:
NOP
NOP
LJMPERROR
軟件陷阱一般安排在以下位置:①未使用的中斷向量區(qū),在干擾可使未使用的中斷開放并激活中斷的地方設(shè)置軟件陷阱即可及時捕獲到錯誤中斷;②未使用的ROM空間,在實際使用過程中對未使用的EPROM空間應(yīng)全部填充為00H,因為程序復(fù)位入口地址為0000H,當(dāng)“跑飛”的程序指針跳至無程序處,可以讓其重新指向主程序入口,起到防“跑飛”的功能;③表格,儲存在EPROM中的表格后安排軟件陷阱可在一定程度上防止軟件“彈飛”;④程序區(qū)。一般程序中不能任意安排軟件陷阱,但在正常程序中會有一些跳轉(zhuǎn)指令,在這些指令后使用軟件陷阱可捕獲到彈飛到跳轉(zhuǎn)指令的操作數(shù)上的出錯程序[12]。
2.3“看門狗”技術(shù)
“看門狗”的作用就是防止程序發(fā)生死循環(huán),或者說程序跑飛。其是通過不斷監(jiān)視程序運行時間,當(dāng)程序運行出現(xiàn)故障時,計數(shù)器溢出,系統(tǒng)復(fù)位并重新運行系統(tǒng)程序。
工業(yè)測控系統(tǒng)往往會遇到強干擾,如浪涌電壓、電源過壓、欠壓以及尖峰干擾等,在軟件設(shè)計中可以采取措施加以避開,當(dāng)干擾到來時,使CPU暫停工作,待干擾過后再恢復(fù)CPU工作。
另外,通過數(shù)字濾波,掉電保護,人工復(fù)位,設(shè)立標(biāo)志判斷、增加數(shù)據(jù)安全備份等軟件抗干擾措施也能起到很好的抗干擾效果,提高系統(tǒng)的可靠性。
硬件抗干擾措施和軟件抗干擾措施各具特點,硬件措施如果得當(dāng),可將絕大部分干擾拒之門外,但仍然會有少數(shù)干擾進入微機系統(tǒng),故軟件措施作為第二道防線必不可少軟件抗干擾措施是以CPU為代價的,如果沒有硬件消除絕大多數(shù)干擾,CPU將疲于奔命,無暇顧及正常工作,嚴重影響系統(tǒng)的工作效率和實時性,在實際應(yīng)用中若將硬件和軟件抗干擾有效的結(jié)合起來,則能起很好的抗干擾效果,保證系統(tǒng)準(zhǔn)確,可靠的運行。
[1]劉光斌,劉冬,姚志成.單片機系統(tǒng)實用抗干擾技術(shù)[M].北京:人民郵電出版社,2003.
[2]皮大能,胡學(xué)芝.單片機控制系統(tǒng)抗干擾技術(shù)[J].機械制造與自動化,2005,34(2):117-119.
[3]孟繁榮,張镠鐘.單片機控制系統(tǒng)中的抗干擾設(shè)計[J].應(yīng)用科技,2006,33(8):25-27.
[4]周遐,曹云川,金瑞,等.單片機控制系統(tǒng)抗干擾技術(shù)應(yīng)用方案[J].昆明冶金高等??茖W(xué)校學(xué)報,2009,25(3):63-66.
[5]朱玉紅,楊永萍.單片機控制系統(tǒng)中的干擾及抗干擾措施[J].機械研究與應(yīng)用,2001,14(4):42-43.
[6]彭在燦.單片機控制的抗干擾技術(shù)[J].機電工程技術(shù),2005,34(1):77-78.
[7]劉東漢.提高單片機系統(tǒng)抗干擾的綜合措施[J].黃石高等??茖W(xué)校學(xué)報,2004,20(4):30-33.
[8]岳燕.單片機測控系統(tǒng)中的抗干擾設(shè)計[J].煤炭工程,2006,(2):84-86.
[9]郭世維,鄧飛.單片機控制系統(tǒng)的抗干擾措施[J].煙臺職業(yè)學(xué)院學(xué)報,2006,12(2):44-47.
[10]藍軍.單片機控制系統(tǒng)的干擾抑制設(shè)計方法[J].高效實驗室工作研究,2006,(2):23-25.
[11]楊宏麗,張健.單片機應(yīng)用系統(tǒng)的抗干擾解決方案[J].微型計算機信息,2005,(5):121-122.
[12]易麗華,黃俊.淺談單片機控制系統(tǒng)軟件抗干擾方法[J].電子與封裝,2009,9(4):30-32.