《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)應(yīng)用系統(tǒng)綜合抗干擾技術(shù)的研究
單片機(jī)應(yīng)用系統(tǒng)綜合抗干擾技術(shù)的研究
來源:微型機(jī)與應(yīng)用2012年第7期
李家坤
(長江工程職業(yè)技術(shù)學(xué)院,,湖北 武漢 430212)
摘要: 針對單片機(jī)應(yīng)用系統(tǒng)在工作環(huán)境中的主要干擾源及由此產(chǎn)生的影響,從硬件和軟件兩方面提出了抗干擾的綜合措施,。
關(guān)鍵詞: 軟件 單片機(jī) 抗干擾 硬件
Abstract:
Key words :

摘  要: 針對單片機(jī)應(yīng)用系統(tǒng)在工作環(huán)境中的主要干擾源及由此產(chǎn)生的影響,,從硬件軟件兩方面提出了抗干擾的綜合措施,。
關(guān)鍵詞: 單片機(jī);抗干擾,;硬件,;軟件

 在單片機(jī)應(yīng)用系統(tǒng)的工作環(huán)境中,往往不可避免地存在著各種干擾源,,如供電系統(tǒng)的干擾,、過程通道的干擾、空間輻射的干擾等,這些干擾極容易入侵計(jì)算機(jī),,造成單片機(jī)應(yīng)用系統(tǒng)的可靠性和穩(wěn)定性大大下降,。因此,增強(qiáng)單片機(jī)應(yīng)用系統(tǒng)的抗干擾能力,,提高系統(tǒng)運(yùn)行的可靠性,、穩(wěn)定性顯得尤為重要[1]??垢蓴_技術(shù)主要有硬件抗干擾和軟件抗干擾,,本文分析了干擾的來源及其影響,并在硬件和軟件兩方面系統(tǒng)地提出了有效的抗干擾措施,。
1 干擾的來源和后果
 工業(yè)現(xiàn)場環(huán)境中干擾是以脈沖的形式進(jìn)入單片機(jī)系統(tǒng),,主要有供電系統(tǒng)的干擾、過程通道的干擾及空間輻射的干擾,。供電系統(tǒng)干擾是以電源的噪聲干擾引起的,;過程通道干擾是干擾通過前向通道和后向通道進(jìn)入系統(tǒng);空間輻射干擾多發(fā)生在高電壓,、大電流,、高頻電磁場附近,并通過靜電感應(yīng),、電磁感應(yīng)等方式侵入系統(tǒng)內(nèi)部,。干擾一般沿各種線路侵入系統(tǒng),此外,,系統(tǒng)接地裝置不可靠,,也是產(chǎn)生干擾的重要原因;各類傳感器,,輸入輸出線路的絕緣損壞均有可能引入干擾[2],。
干擾產(chǎn)生的后果主要有:(1)造成數(shù)據(jù)采集誤差加大;(2)造成程序運(yùn)行失常,;(3)引起系統(tǒng)被控對象的誤操作,;(4)引起被控對象狀態(tài)不穩(wěn)定;(5)造成定時不準(zhǔn),;(6)使存貯器中有效數(shù)據(jù)發(fā)生變化,。
2 單片機(jī)應(yīng)用系統(tǒng)的硬件抗干擾技術(shù)
2.1 供電系統(tǒng)的抗干擾措施

 (1)遠(yuǎn)離干擾源,。進(jìn)入計(jì)算機(jī)的電源線不宜接入帶有大功率感性負(fù)載的動力線,,可以采用專用的220 V交流電源供電。
?。?)安裝隔離變壓器,??紤]到高頻噪聲通過變壓器不是依初次級線圈的互感耦合,而是靠初次級寄生電容耦合的,,因此隔離變壓器的初次級之間應(yīng)采用三層屏蔽層保護(hù),。
 (3)模擬電路與數(shù)字電路系統(tǒng)獨(dú)立供電,。模擬電路與數(shù)字電路之間無電路上的直接聯(lián)系,,而是利用浮空技術(shù),互不共地,。
?。?)數(shù)字電路系統(tǒng)采用集成度高、抗干擾性強(qiáng)的開關(guān)電源,。在交流電源輸入端加入LC高頻濾波網(wǎng)絡(luò),,能有效地濾除高頻干擾。
?。?)安裝低通濾波器,。由諧波頻譜分析可知,電源引起的干擾大部分是高次諧波,,可在隔離變壓器之后設(shè)計(jì)低通濾波器,,使得50 Hz市電基波通過,濾去高次諧波,,以改善電源波形,。
 (6)采用分散獨(dú)立的功能塊供電,。在實(shí)際的控制系統(tǒng)中,,用三端集成穩(wěn)壓塊分別組成所需的穩(wěn)壓電源,這樣可以減少公共阻抗和公共電源的相互耦合,,有利于電源散熱,,大大提高供電的可靠性。
2.2 過程通道的抗干擾措施
 導(dǎo)線間的相互耦合(包括電耦合,、磁耦合、電磁耦合)是過程通道干擾的主要因素之一,,合理布線,、選線以及通道的隔離是抑制、消除干擾的主要措施,。
?。?)布線上采用“遠(yuǎn)離技術(shù)”。將干擾源遠(yuǎn)離被干擾的信號線和回路,,即強(qiáng)電的饋線必須單獨(dú)連線,,絕對不能與弱信號線綁扎在一起,盡量避免平行走向,最好使兩者正交,,這樣可以將電場耦合與磁場耦合形成的干擾電壓降到最小,。
 (2)采用雙絞線傳輸,,注意長線傳輸?shù)淖杩蛊ヅ?。要求源的輸出阻抗、傳輸線的特性阻抗與接收端的輸入阻抗三者相等,。
?。?)采用電流傳輸代替電壓傳輸。這種方法可獲得較好的抗干擾能力,。
?。?)采用光電耦合隔離。光電耦合器是在密封條件下,,利用光電耦合來溝通被切斷的電路,,不會受到外界光的干擾。
?。?)進(jìn)入A/D的每路信號,,先要進(jìn)行濾波和限幅,以減小干擾的影響,。同時采用低噪聲前置差動放大電路,,獲得較大的共模抑制比。
(6)對于暫不工作的A/D通道,,輸入一律短路,,以防止感應(yīng)電壓進(jìn)入計(jì)算機(jī),影響系統(tǒng)正常工作,。
2.3 空間輻射的抗干擾措施
 輻射干擾主要來源于空間存在的多種電磁波,。例如,通信,、廣播,、大功率設(shè)備的開關(guān)電弧,電網(wǎng)有脈沖源工作時的射頻波及系統(tǒng)內(nèi)部高頻電路輻射出的電磁波等,,這些輻射波的電磁感應(yīng)的方式通過殼體,、導(dǎo)線等形成接收電路,造成對電路的干擾[3],。
防止輻射干擾的主要方法有:
?。?)屏蔽技術(shù)。包括靜電屏蔽,、電磁屏蔽,、磁屏蔽,。屏蔽方式有兩種:一種是把容易被干擾的電路或?qū)Ь€、殼體等屏蔽起來,,以防接收輻射干擾,;另一種是把輻射屏蔽起來,防止輻射干擾影響其他電路,,例如將ADC等器件置于接地的金屬罩內(nèi),。
 (2)合理布局,。將內(nèi)部具有輻射性能的電路獨(dú)立遠(yuǎn)置,,以避免對其他電路的影響。
?。?)在信道中設(shè)置各種濾波器,,以濾除由輻射而引起的干擾。
2.4 其他抗干擾措施
2.4.1 印制電路板的布線與工藝

?。?)盡量采用多層印制電路板,,多層板可提供良好的接地網(wǎng),可防止產(chǎn)生地電位差和元件之間的耦合,。
?。?)印制電路板要合理分區(qū)。模擬電路區(qū),、數(shù)字電路區(qū),、功率驅(qū)動區(qū)要盡量分開,地線不能相混,,分別和電源端的地線相連,。
 (3)元件面和焊接面應(yīng)采用相互垂直,、斜交,,或者彎曲走線,避免相互平行以減小寄生耦合:避免相鄰導(dǎo)線平行段過長,;加大信號線間距,。高頻電路互聯(lián)導(dǎo)線盡量短,使用45°或者圓弧折線布線,,不要使用90°折線,,以減小高頻信號的發(fā)射。
?。?)印制電路板要按單點(diǎn)接電,、單點(diǎn)心接地的原則送電,。三個區(qū)域的電源線,、地線分三路引出,。地線、電源線要盡量粗,,噪聲元件與非噪聲元件要盡量分開,。時鐘振蕩電路、特殊高速邏輯電路部分用地線圈起來,,讓周圍電場趨近于零,。
 (5)使用滿足系統(tǒng)要求的最低頻率的時鐘,,時鐘產(chǎn)生器要盡量靠近用到該時鐘的器件,。石英晶體振蕩器外殼要接地,時鐘線盡量短,,時鐘線要遠(yuǎn)離I/O線,,在石英晶體振蕩器下面要加大接地的面積而不應(yīng)該走其他信號線。
?。?)I/O驅(qū)動器件,、功率放大器件盡量靠近印制板的邊、靠近引出接插件,。重要的信號線盡量短,、盡量粗,并在兩側(cè)加上保護(hù)地,。將信號通過扁平電纜引出時,,要使用地線—信號—地線相間的結(jié)構(gòu)。
2.4.2 提高元器件的可靠性
?。?)選用質(zhì)量好的電子元件并進(jìn)行嚴(yán)格的測試,、篩選和優(yōu)化[4]。
?。?)設(shè)計(jì)時元件技術(shù)參數(shù)要留有一定的余量,。
 (3)提高印制板和組裝的質(zhì)量,。
2.4.3 使用多機(jī)冗余設(shè)計(jì)
 在對控制系統(tǒng)的可靠性有嚴(yán)格要求的場合,,使用多機(jī)冗余可進(jìn)一步提高系統(tǒng)抗干擾能力。多機(jī)冗余,,就是執(zhí)行同一個控制任務(wù),,可安排多個單片機(jī)來完成。以雙機(jī)冗余為例,,所謂雙機(jī)冗余,,就是執(zhí)行同一個控制任務(wù),可安排兩個單片機(jī)來完成,,即主機(jī)與從機(jī),。正常情況下,,主機(jī)掌握著三總線的控制權(quán),對整個系統(tǒng)進(jìn)行控制,,此時,,從機(jī)處于待機(jī)狀態(tài),等待仲裁器的觸發(fā),。
3 單片機(jī)應(yīng)用系統(tǒng)的軟件抗干擾技術(shù)
 一般來講,,竄入微機(jī)測控系統(tǒng)的干擾,其頻譜往往很寬,,采用硬件抗干擾措施,,只能抑制某個頻率段的干擾,仍有一些干擾會進(jìn)入系統(tǒng),。因此,,除了采取硬件抗干擾方法外,還要采取軟件抗干擾措施,。
3.1 采用數(shù)字濾波技術(shù)
 疊加在系統(tǒng)模擬輸入信號上的噪聲干擾,,會導(dǎo)致較大的測量誤差。但由于這些噪聲的隨機(jī)性,,可以通過數(shù)字濾波技術(shù)剔除虛假信號,,求取真值。常用方法如下:
?。?)算術(shù)平均濾波法
 算術(shù)平均濾波法就是連續(xù)取N個值進(jìn)行采樣,,然后求其平均值。該方法適應(yīng)于對一般具有隨機(jī)性干擾的信號進(jìn)行濾波,。這種濾波法的特點(diǎn)是:N值較大時,,信號的平滑度好,但靈敏度低,;當(dāng)N值較小時,,平滑度低,但靈敏度高,。
?。?)遞推平均濾波法
 該方法是把N個測量數(shù)據(jù)看成一個隊(duì)列,隊(duì)列的長度為N,,每進(jìn)行一次新的測量,,就把測量結(jié)果放入隊(duì)尾,而扔掉原來隊(duì)首的一次數(shù)據(jù),,計(jì)算N個數(shù)據(jù)的平均值,。對周期性的干擾,此方法有良好的抑制作用,平滑度高,,靈敏度低,。但對偶發(fā)脈沖的干擾抑制作用差。
?。?)防脈沖干擾平均值濾波法
 在脈沖干擾比較嚴(yán)重的場合,如果采用一般的平均濾波法,,則干擾將會“平均”到結(jié)果中去,,故平均值法不易消除由于脈沖干擾而引起的誤差。為此,,在N個采樣數(shù)據(jù)中,,去掉最大值和最小值,然后計(jì)算N-2個數(shù)據(jù)的算術(shù)平均值,。為了加快測量速度,,N一般取值為4。
3.2 采用系統(tǒng)自檢程序
 設(shè)計(jì)系統(tǒng)自檢程序是提高系統(tǒng)可靠性的有效方法之一,。自檢程序能對單片機(jī)的輸入輸出通道,、內(nèi)部RAM、特殊功能寄存器SFR,、外部RAM進(jìn)行故障檢查和診斷,,并能給出故障的部位。
3.3 系統(tǒng)程序失控的對策
 當(dāng)干擾通過總線或其他口線作用到CPU時,,就會造成程序計(jì)數(shù)器PC值的改變,,引起程序混亂,使系統(tǒng)失控,。因此,,在設(shè)計(jì)單片機(jī)系統(tǒng)時,如何發(fā)現(xiàn)CPU受到干擾,,并盡可能無擾地使系統(tǒng)恢復(fù)到正常工作狀態(tài)是軟件設(shè)計(jì)應(yīng)考慮的主要問題,。
3.3.1 采用指令冗余技術(shù)
 CPU受到干擾后,往往將一些操作數(shù)當(dāng)作指令碼執(zhí)行,,引起程序混亂,。MCS-51指令系統(tǒng)中所有的指令都不超過3個字節(jié),而且有很多單字節(jié)指令,。當(dāng)程序彈飛到某一個單字節(jié)指令上時,,便自動納入正軌;當(dāng)彈飛到某一雙字節(jié)或三字節(jié)指令上時,,有可能落到某操作數(shù)上繼續(xù)出錯[5],。因此,在軟件設(shè)計(jì)時,,應(yīng)多采用單字節(jié)指令,,并在關(guān)鍵的地方人為地插入一些單字節(jié)指令(NOP),,或?qū)⒂行巫止?jié)指令重復(fù)書寫,這就是指令冗余,。對雙字節(jié)和三字節(jié),,在其后插入2條空操作指令NOP,可保護(hù)其后的指令不被拆散,。程序設(shè)計(jì)中,,常在一些對程序流向起決定作用的指令(如RET、RETI,、ACALL,、LCALL、LJMP,、JZ,、JC等)和某些對系統(tǒng)狀態(tài)起重要作用的指令(如SETB、EA等)之前插入2條NOP指令,,可保證納入正軌,,或者在這些重要指令后面重寫,確保這些指令的正確執(zhí)行,。
3.3.2 采用軟件陷阱技術(shù)
 所謂軟件陷阱,,就是在PC正常運(yùn)行不該到達(dá)的存儲區(qū)設(shè)置一條引導(dǎo)指令,捕獲PC并強(qiáng)行將其引向一個指定的地址,,在那里有一段專門對程序運(yùn)行出錯進(jìn)行處理的程序,,以此達(dá)到復(fù)位系統(tǒng)的目的。
如果把這段程序的入口標(biāo)號稱為ERR的話,,軟件陷阱即為一條LJMP ERR指令,,為加強(qiáng)其捕捉效果,一般還在它前面加兩條NOP指令,。因此,,真正的軟件陷阱由三條指令構(gòu)成:
 NOP
 NOP
 LJMPERR
 軟件陷阱常被安排在未使用的中斷向量區(qū);未使用的大片ROM空間,;表格及程序區(qū),。
 由于軟件陷阱都安排在程序正常執(zhí)行不到的地方,故不會影響程序執(zhí)行效率,。
3.3.3 利用“看門狗”技術(shù)
 當(dāng)跑飛程序既沒有落入軟件陷阱,,又沒有遇到冗余指令,而是在用戶程序之間或用戶本未使用的地址空間跳來跳去,,自動形成一個死循環(huán),。解決這一問題的辦法是采用“看門狗”技術(shù)來實(shí)現(xiàn)PC快速自恢復(fù)。
“看門狗”可采用硬件電路設(shè)計(jì)完成,也可以采用軟件“看門狗”,。采用軟件“看門狗”可以避免硬件“看門狗”所需要增加的開銷,。
 軟件看門狗的具體設(shè)計(jì)方法如下:

 


 采用定時器T0作為WATHDOG,將T0的中斷定義為高級中斷,,系統(tǒng)中的其他中斷設(shè)為低級中斷,,WATCHDOG啟動后,系統(tǒng)必須及時刷新T0的時間常數(shù),。這樣,,當(dāng)程序正常運(yùn)行時,由于每次還未到T0產(chǎn)生溢出中斷,,即將T0的時間常數(shù)刷新,T0中斷永遠(yuǎn)不會發(fā)生,;而當(dāng)程序因干擾進(jìn)入某一小區(qū)域死循環(huán)時,,T0將產(chǎn)生高級中斷,T0中斷可直接轉(zhuǎn)向出錯處理程序,,由出錯處理程序來完成系統(tǒng)復(fù)位,。
針對電源的干擾、過程通道的干擾,、空間輻射的干擾等幾種主要的干擾源,,本文從硬件、軟件兩個方面探討了一些提高抗干擾能力的方法,。不同的單片機(jī)系統(tǒng)都有自己的系統(tǒng)特點(diǎn)和要求,,在硬件和軟件抗干擾設(shè)計(jì)上也各有自己的特色,在實(shí)踐中可以有針對性地采用其中幾種,。
參考文獻(xiàn)
[1] 何立民.MCS-51單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,,1997.
[2] 先鋒工作室.單片機(jī)程序設(shè)計(jì)實(shí)例[M].北京:清華大學(xué)出版社,2003.
[3] 王幸之.單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)[M].北京:北京航空航天大學(xué)出版社,,2001.
[4] 周晗曉,,袁慧梅.單片機(jī)系統(tǒng)的印制板設(shè)計(jì)與抗干擾技術(shù)[J].電子工藝技術(shù),2004(6).
[5] 史勇,,謝曉霞.測控系統(tǒng)中的軟件抗干擾技術(shù)[J].現(xiàn)代電子技術(shù),,2006(19).

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。