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

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

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

 


 采用定時(shí)器T0作為WATHDOG,,將T0的中斷定義為高級(jí)中斷,,系統(tǒng)中的其他中斷設(shè)為低級(jí)中斷,WATCHDOG啟動(dòng)后,,系統(tǒng)必須及時(shí)刷新T0的時(shí)間常數(shù),。這樣,當(dāng)程序正常運(yùn)行時(shí),,由于每次還未到T0產(chǎn)生溢出中斷,,即將T0的時(shí)間常數(shù)刷新,T0中斷永遠(yuǎn)不會(huì)發(fā)生,;而當(dāng)程序因干擾進(jìn)入某一小區(qū)域死循環(huán)時(shí),,T0將產(chǎn)生高級(jí)中斷,T0中斷可直接轉(zhuǎn)向出錯(cuò)處理程序,,由出錯(cuò)處理程序來(lái)完成系統(tǒng)復(fù)位,。
針對(duì)電源的干擾、過程通道的干擾,、空間輻射的干擾等幾種主要的干擾源,,本文從硬件、軟件兩個(gè)方面探討了一些提高抗干擾能力的方法,。不同的單片機(jī)系統(tǒng)都有自己的系統(tǒng)特點(diǎn)和要求,,在硬件和軟件抗干擾設(shè)計(jì)上也各有自己的特色,在實(shí)踐中可以有針對(duì)性地采用其中幾種,。
參考文獻(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] 史勇,,謝曉霞.測(cè)控系統(tǒng)中的軟件抗干擾技術(shù)[J].現(xiàn)代電子技術(shù),,2006(19).

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