達(dá)州職業(yè)技術(shù)學(xué)院 岳曉禮
單片機(jī)作為電子技術(shù)工作人員手中的一種可編程的“智能”元件,已經(jīng)在工業(yè)自動(dòng)化、智能化儀表、生產(chǎn)過(guò)程自動(dòng)化控制等領(lǐng)域得到了廣泛深入的運(yùn)用。但是由于單片機(jī)系統(tǒng)的工作現(xiàn)場(chǎng)非常復(fù)雜,存在來(lái)自系統(tǒng)內(nèi)部與外部的各種電氣干擾,除此以外還受到系統(tǒng)結(jié)構(gòu)、制造工藝、元器件的選擇與安裝的影響,這些都是單片機(jī)系統(tǒng)的干擾因素,對(duì)系統(tǒng)的可靠性和安全性構(gòu)成了極大的威脅。單片機(jī)系統(tǒng)必須長(zhǎng)期穩(wěn)定、可靠的運(yùn)行,否則將影響產(chǎn)品質(zhì)量和產(chǎn)量,嚴(yán)重時(shí)會(huì)使系統(tǒng)失靈,甚至造成事故和巨大的經(jīng)濟(jì)損失。這就要求我們?cè)谠O(shè)計(jì)單片機(jī)系統(tǒng)時(shí)應(yīng)結(jié)合現(xiàn)場(chǎng)情況,在硬件設(shè)計(jì)、軟件設(shè)計(jì)以及線路板設(shè)計(jì)等方面來(lái)采取相應(yīng)的抗干擾措施。
工業(yè)環(huán)境中干擾是以脈沖的形式竄入單片機(jī)系統(tǒng)的,是通過(guò)三種途徑影響系統(tǒng)的正常工作的,即空間干擾,供電系統(tǒng)干擾和過(guò)程通道干擾??臻g干擾主要發(fā)生在高電壓、大電流和高頻電磁場(chǎng)附近,通過(guò)靜電感應(yīng)、電磁感應(yīng)等方式竄入系統(tǒng);供電系統(tǒng)干擾主要由電源的噪聲干擾引起;過(guò)程通道干擾主要是干擾通過(guò)前向通道與后向通道進(jìn)入系統(tǒng)內(nèi)部。另外接地裝置的不可靠,也是產(chǎn)生干擾的重要原因;各種類(lèi)型的傳感器,輸入和輸出線路的絕緣損壞都有可能引入系統(tǒng)干擾。
干擾如果進(jìn)入單片機(jī)系統(tǒng),將會(huì)對(duì)系統(tǒng)產(chǎn)生如:數(shù)據(jù)采集誤差的加大,程序運(yùn)行失常,系統(tǒng)被控對(duì)象誤操作,被控對(duì)象狀態(tài)不穩(wěn)定,定時(shí)不準(zhǔn),數(shù)據(jù)發(fā)生變化等后果。因此必須對(duì)單片機(jī)系統(tǒng)采取抗干擾措施。
對(duì)于單片機(jī)系統(tǒng)供電系統(tǒng)的干擾最為嚴(yán)重,絕大多數(shù)單片機(jī)系統(tǒng)的直流電源都是由市電經(jīng)過(guò)整流、穩(wěn)壓和濾波后得到的,而電網(wǎng)電壓受到電氣設(shè)備的通斷、跳閘等影響,都會(huì)造成電源干擾。
提高供電系統(tǒng)的供電質(zhì)量是非常重要的一步,可以采用圖一所示的供電結(jié)構(gòu)。電源分別給系統(tǒng)各個(gè)功能模塊供電,從而減少了公共電源與公共阻抗之間的相互耦合,從而提高了電源的抗干擾性。
圖一 單片機(jī)供電結(jié)構(gòu)
利用壓敏電阻兩端的電壓超過(guò)其限定值時(shí),電流會(huì)迅速增大,呈短路狀態(tài)的特點(diǎn),用它吸收瞬間的尖峰和浪涌電壓。把壓敏電阻并聯(lián)在電源變壓器的初極與次級(jí),加入壓敏電阻后,電源干擾造成單片機(jī)程序失控的可能性將大大減小。壓敏電壓的計(jì)算公式為:VIMA=1.56×32×V~(V~:交流電壓有效值)。
市電中含有多種高次諧波,它們很容易由電源進(jìn)入單片機(jī)系統(tǒng)內(nèi)部,這些干擾以“共模”或“差?!狈绞酱嬖凇D二為電源EMI濾波器電路,它是由參數(shù)元件構(gòu)成的無(wú)源低通網(wǎng)絡(luò),L1和L2是繞在同一磁環(huán)上的兩只獨(dú)立線圈,繞匝數(shù)相同、繞向相反,稱(chēng)為共模線圈,L3和L4是獨(dú)立的差模線圈。由L1和Cy,L2和Cy就分別構(gòu)成兩對(duì)獨(dú)立端口間的低通濾波器,用來(lái)抑制電源線上的共模EMI信號(hào);由(L1-L2)形成差模電感,它與L3、L4形成的獨(dú)立差模線圈與Cx電容器又組成一只低通濾波器,用來(lái)抑制電源線上的差模EMI信號(hào)。此外單片機(jī)控制系統(tǒng)還需要有完備的電源保護(hù)電路,其具有在電源啟停、瞬時(shí)短路、瞬間降壓時(shí)產(chǎn)生復(fù)位信號(hào),當(dāng)電源電壓恢復(fù)正常后,復(fù)位信號(hào)會(huì)自動(dòng)解除。
圖二 EMI濾波器電路
印制電路板(PCB)是電路元件和器件的支撐件,它提供單片機(jī)系統(tǒng)中的電路元件和器件之間的電氣連接,是系統(tǒng)中元器件、信號(hào)、電源線的高密度集合體,印制電路板設(shè)計(jì)的好壞對(duì)抗干擾能力影響很大,因此印制電路板應(yīng)符合抗干擾設(shè)計(jì)的要求。主要有:
①采用接地抑制干擾的方法。低頻電路的地線盡量用單點(diǎn)并聯(lián)接地,高頻電路盡量用多點(diǎn)串聯(lián)接地。應(yīng)加粗接地線條,使它能通過(guò)3倍于印刷電路板上的允許電流,同時(shí)使電源線、地線的走向與數(shù)據(jù)傳遞的方向一致,有助于增強(qiáng)抗噪聲能力。盡量使用45°折線而不使用90°折線,用以減少高頻信號(hào)對(duì)外的發(fā)射與耦合,減少互感振蕩。電源線與地線應(yīng)盡量靠近走線從而減少所包圍的環(huán)路面積,因而可以減少外界磁場(chǎng)對(duì)環(huán)路切割而產(chǎn)生的電場(chǎng)干擾,同時(shí)也可以減少環(huán)路對(duì)外電磁輻射。
②對(duì)于單片機(jī)系統(tǒng)中的CPU、RAM、ROM等主芯片以及VCC、GND之間接電解電容和瓷片電容。石英晶體振蕩器的外殼接地而不要走信號(hào)線,并且要適當(dāng)加大接地面積。時(shí)鐘線要盡量的短,并用地線將時(shí)鐘區(qū)圈起來(lái),使周?chē)妶?chǎng)盡可能地減小。
③對(duì)于獨(dú)立系統(tǒng)結(jié)構(gòu),應(yīng)減少接插件與連線;輸入輸出驅(qū)動(dòng)器件、功率放大器件應(yīng)盡量的靠近線路板邊的引出接插件。集成塊與插座接觸要可靠,使用雙簧插座,最好集成塊直接焊在印制板上,要防止器件接觸不良。信號(hào)的輸入、輸出端盡量使用光電隔離,這樣既可以防止外圍器件動(dòng)作時(shí)產(chǎn)生的回流沖擊系統(tǒng),又可以使輸入端的干擾信號(hào)沒(méi)有足夠的功率去干擾發(fā)光二極管的正常工作。
④在印刷電路板的各個(gè)關(guān)鍵部位配置去耦電容。原則上每個(gè)集成電路芯片都應(yīng)安置一個(gè)0.01μF的瓷片電容排除射頻耦合干擾,電容引線不要太長(zhǎng),應(yīng)緊靠芯片的電源線和地線。如果印刷電路空間狹小時(shí),可以每4~10個(gè)芯片安置一個(gè)1~10μF限噪聲鉭電容。線路板布局時(shí),應(yīng)盡量使單片機(jī)的振蕩晶體放在單片機(jī)兩引腳近端。
當(dāng)單片機(jī)系統(tǒng)的CPU部位受到干擾信號(hào)的作用時(shí),將使系統(tǒng)失控。典型的故障是破壞程序計(jì)數(shù)器PC的狀態(tài)值,進(jìn)而導(dǎo)致程序在地址空間內(nèi)"亂飛",或者陷入死循環(huán)。對(duì)這種情況的主要有指令冗余技術(shù)、軟件陷阱技術(shù)、睡眠抗干擾技術(shù)、“看門(mén)狗”技術(shù)。
指令是由操作碼和操作數(shù)組成,操作碼指明CPU要完成怎樣的操作,而操作數(shù)是操作碼的對(duì)象。在程序執(zhí)行過(guò)程中,CPU受到干擾后可能會(huì)將一些操作數(shù)當(dāng)作指令碼來(lái)執(zhí)行,引起程序混亂,但只要PC指針落在單字節(jié)指令上時(shí)程序就可納入正軌。因而在軟件設(shè)計(jì)時(shí),應(yīng)多采用單字節(jié)指令,并在一些關(guān)鍵地方插入NOP指令(如在雙字節(jié)、三字節(jié)指令后面插入2條NOP指令),另外在一些對(duì)程序流向起決定作用的指令之前也插入兩條NOP指令(如JNC,JB,JNB,JBC,RETI,RET,JC,ACALL,LCALL,SJMP,AJMP,LJMP,JZ,JNZ,DJNZ,CJNE)以保證彈飛的程序迅速納入程序軌道,或?qū)⒂行У膯巫止?jié)指令重寫(xiě),這就是指令冗余技術(shù)。
當(dāng)CPU受干擾,造成程序彈飛到非程序區(qū)是,指令冗余技術(shù)無(wú)能為力,可在非程序區(qū)采取攔截措施,使程序進(jìn)人陷阱,強(qiáng)迫程序進(jìn)入一個(gè)指定的地址去執(zhí)行如下的指令:
NOP
NOP
LJMP ERR
此程序是專(zhuān)門(mén)對(duì)程序出錯(cuò)進(jìn)行處理(其中ERR為指定地址)的。軟件陷阱主要安排在未使用的中斷區(qū)、未使用的EPROM空間及非EPROM空間、程序運(yùn)行區(qū)及中斷服務(wù)程序區(qū)。
①在未使用的中斷區(qū),可以按照如下的方式寫(xiě)中斷服務(wù)程序:
NOP
NOP
POP D1;將原來(lái)的錯(cuò)誤斷點(diǎn)彈出
POP D2;將原來(lái)的錯(cuò)誤斷點(diǎn)彈出
PUSH 00H
PUSH 00H;將斷點(diǎn)地址重寫(xiě)為0000H
RETI
②在未使用的EPROM區(qū),可在未用的區(qū)域里填充上020000數(shù)據(jù),這樣當(dāng)程序飛入其中時(shí)就會(huì)很快的走入正軌,這條指令就是“LJMP 0000H”的機(jī)器碼。
③在非EPROM空間,當(dāng)CPU讀程序存儲(chǔ)器的時(shí)候,會(huì)產(chǎn)生一個(gè)PSEN信號(hào),可利用這個(gè)信號(hào),再加上一個(gè)非EPROM區(qū)的地址譯碼信號(hào),構(gòu)成一個(gè)選通信號(hào)來(lái)起動(dòng)一個(gè)空閑的中斷,再用軟件陷井的方法從中斷程序中把程序?qū)胝墶?/p>
某些單片機(jī)具有睡眠狀態(tài),在睡眠狀態(tài)下只有定時(shí)/計(jì)數(shù)系統(tǒng)、中斷系統(tǒng)處在工作狀態(tài),此時(shí)CPU對(duì)系統(tǒng)三總線上出現(xiàn)的干擾不會(huì)作出反應(yīng),從而降低系統(tǒng)對(duì)干擾的敏感度。因此可以讓CPU在非正常工作的時(shí)候休眠,必要時(shí)由中斷系統(tǒng)喚醒它,工作完后再進(jìn)入休眠狀態(tài)。這種安排,CPU可以在60%以上的時(shí)間處于睡眠狀態(tài),從而使CPU受到隨機(jī)干擾的威脅降低,與此同時(shí)也降低了CPU的功耗。
當(dāng)程序飛到一個(gè)臨時(shí)構(gòu)成的死循環(huán)或PC指針落到程序存儲(chǔ)器芯片地址之外時(shí),冗余指令和軟件陷阱對(duì)此毫無(wú)辦法,系統(tǒng)將完全癱瘓。在這種情況下,只有復(fù)位。因此“看門(mén)狗”技術(shù),就是一個(gè)能發(fā)出“復(fù)位”信號(hào)的計(jì)數(shù)器或定時(shí)器電路?!翱撮T(mén)狗”技術(shù)可已由硬件實(shí)現(xiàn),也可已由軟件實(shí)現(xiàn)。在單片機(jī)系統(tǒng)中,嚴(yán)重的干擾有時(shí)會(huì)破壞中斷方式控制字,關(guān)閉中斷,此時(shí)系統(tǒng)無(wú)法定時(shí)“喂狗”,硬件看門(mén)狗電路失效,但是軟件“看門(mén)狗”可有效地解決這類(lèi)問(wèn)題。實(shí)際應(yīng)用中,可以采用環(huán)形中斷監(jiān)視系統(tǒng)(如:用定時(shí)器T0監(jiān)視定時(shí)器T1,用定時(shí)器T1監(jiān)視主程序,主程序監(jiān)視定時(shí)器T0),采用這種環(huán)形結(jié)構(gòu)的軟件“看門(mén)狗”具有良好的抗干擾性能,有效的提高了系統(tǒng)的可靠性。對(duì)于需經(jīng)常使用T1定時(shí)器進(jìn)行串口通訊的測(cè)控系統(tǒng),則定時(shí)器T1不能進(jìn)行中斷,可改由串口中斷進(jìn)行監(jiān)控。
抗干擾是單片機(jī)系統(tǒng)設(shè)計(jì)中不可缺少的內(nèi)容。硬件抗干擾是主動(dòng)的,軟件抗干擾是被動(dòng)的。由于干擾環(huán)境不同,在設(shè)計(jì)系統(tǒng)時(shí)應(yīng)根據(jù)具體情況,選用針對(duì)性的抗干擾措施。
[1]王豐,欒學(xué)德.單片機(jī)應(yīng)用技術(shù)[M].北京:北京航天航空大學(xué)出版社,2007.
[2]何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)系統(tǒng)配置與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1990.
[3]馬洪連.嵌入式系統(tǒng)設(shè)計(jì)教程[M].北京:電子工業(yè)出版社,2006.
[4]李朝青.單片機(jī)原理及其接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2005.
[5]趙新民.智能儀器設(shè)計(jì)基礎(chǔ)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1999.
[6]侯大年.數(shù)字電子技術(shù)[M].北京:電子工業(yè)出版社,2000.