單片機(jī)應(yīng)用系統(tǒng)的抗干擾技術(shù)
???? 隨著工業(yè)控制的發(fā)展,單片機(jī)應(yīng)用系統(tǒng)以其高性價(jià)比逐步取代模擬式控制系統(tǒng),被廣泛應(yīng)用于各個(gè)領(lǐng)域。應(yīng)用現(xiàn)場(chǎng)存在著各種干擾源,對(duì)單片機(jī)應(yīng)用系統(tǒng)的工作影響很大,在實(shí)驗(yàn)室里設(shè)計(jì)好的控制系統(tǒng),安裝調(diào)試時(shí)完全符合設(shè)計(jì)要求,而置入現(xiàn)場(chǎng)后,系統(tǒng)常常無(wú)法正常穩(wěn)定地工作。干擾雖不能直接造成硬件的損壞,但常使計(jì)算機(jī)不能正常運(yùn)行以致控制失靈,造成設(shè)備和生產(chǎn)事故。因此,為了保證設(shè)備在實(shí)際應(yīng)用中可靠地工作,從系統(tǒng)設(shè)計(jì)開(kāi)始就必須充分考慮到對(duì)系統(tǒng)抗干擾性能的要求。
??? 1 干擾源、干擾途徑和干擾的影響
??? 1.1 應(yīng)用系統(tǒng)自身干擾源及干擾途徑
??? 應(yīng)用系統(tǒng)自身干擾源是因在設(shè)計(jì)系統(tǒng)時(shí)對(duì)某些問(wèn)題考慮不全面,如元器件布局不合理、電路工作不可靠、元器件質(zhì)量差等,形成諸如電阻熱噪聲干擾、半導(dǎo)體散粒噪聲干擾、接觸噪聲干擾、過(guò)程通道干擾、公共電阻形成的干擾等。這些干擾現(xiàn)象隨流動(dòng)元器件電流增大越加明顯,這些噪聲電流通過(guò)系統(tǒng)自身電路和通道而影響系統(tǒng),其結(jié)果是使系統(tǒng)控制精度下降。
??? 1.2 電磁干擾源及干擾途徑
??? 工業(yè)現(xiàn)場(chǎng)的電磁干擾源很多,如動(dòng)力斷路器斷弧過(guò)程中的多次復(fù)燃、電磁鐵線圈電感和分布電容的諧振、大電流電弧的電磁輻射、工頻輸電線附近所存在的強(qiáng)大交變電場(chǎng)和磁場(chǎng)以及來(lái)源于太陽(yáng)等天體輻射的電磁波、雷電和地磁場(chǎng)的變化都可歸結(jié)為電磁干擾。干擾信號(hào)通過(guò)導(dǎo)線或回路之間的互感耦合、電容耦合進(jìn)入控制系統(tǒng)。電磁干擾造成的后果輕者使控制系統(tǒng)產(chǎn)生誤差,重者將使系統(tǒng)不能正常工作。
??? 1.3 供電系統(tǒng)干擾
??? 由于工業(yè)現(xiàn)場(chǎng)運(yùn)行的大功率設(shè)備眾多,特別是大感性負(fù)載設(shè)備的啟停,使得電網(wǎng)電壓大幅度浪涌與下陷,有時(shí)會(huì)出現(xiàn)長(zhǎng)時(shí)間的過(guò)壓、欠壓和短時(shí)間的尖峰電壓,他們十分方便地以線路傳輸形式經(jīng)電源線進(jìn)入控制系統(tǒng),其中過(guò)壓干擾是單片機(jī)控制系統(tǒng)最為惡劣的干擾。
??? 1.4 干擾產(chǎn)生的后果
??? 干擾常使系統(tǒng)程序"跑飛",造成"死機(jī)",數(shù)據(jù)采集誤差加大或數(shù)據(jù)發(fā)生變化,控制狀態(tài)失靈,系統(tǒng)被控對(duì)象不穩(wěn)定或誤操作等。
??? 2 應(yīng)用系統(tǒng)的硬件抗干擾技術(shù)
??? 硬件抗干擾總的原則是消除干擾源、切斷干擾侵入途徑和設(shè)計(jì)低噪聲電路。
??? 2.1 電磁干擾的抑制措施
??? 工業(yè)微機(jī)系統(tǒng)比一般計(jì)算機(jī)更多地受著各種電磁場(chǎng)干擾的影響。電磁場(chǎng)干擾可能來(lái)自系統(tǒng)外部,也可能來(lái)自系統(tǒng)內(nèi)部,抑制電磁干擾的主要手段就是采取屏蔽。方式有兩種:一是將易干擾的電路或設(shè)備等屏蔽起來(lái),以防接收輻射干擾;另一種是將輻射源屏蔽起來(lái),防止輻射出干擾影響其他電路。另外,系統(tǒng)可以浮置(如信號(hào)地不接機(jī)殼或大地)來(lái)阻斷干擾電流的通路,設(shè)備內(nèi)部具有輻射能力的電路要獨(dú)立遠(yuǎn)置,以減少對(duì)其他電路的影響。
??? 2.2過(guò)程通道干擾的抑制
??? (1) 光電耦合隔離,采用光電耦合可以切斷主機(jī)與前向、后向通道電路以及其他主機(jī)電路的聯(lián)系,能有效地防止干擾從過(guò)程通道進(jìn)入主機(jī),同時(shí)對(duì)抗共地干擾也有好處。
??? (2)雙絞線傳輸,雙絞線能使各小環(huán)路的電磁感應(yīng)干擾相抵消,對(duì)電磁場(chǎng)干擾、共模噪聲有一定的抑制效果。
??? (3)長(zhǎng)線傳輸?shù)淖杩蛊ヅ?,要求信?hào)源的輸出阻抗、傳輸線的特性阻抗與接收端的輸入阻抗相等。否則,信號(hào)在傳輸線上會(huì)產(chǎn)生反射,造成失真。
??? 2.3 印制電路板的抗干擾設(shè)計(jì)
??? 電路板是微機(jī)系統(tǒng)中器件、信號(hào)線、電源線高密度集合體,對(duì)抗干擾性能影響很大,電路板設(shè)計(jì)、布線及接地不妥可能使整個(gè)系統(tǒng)無(wú)法正常運(yùn)行。
??? (1)印制電路板:大小要適中。過(guò)大時(shí),印刷線條長(zhǎng),阻抗增加,抗噪聲能力下降,成本也高;過(guò)小,散熱不好,且易受干擾。盡量使用多層印制板,保證良好的接地網(wǎng),減少地電位差。
?? (2)器件布置上:把相關(guān)的器件就近放置,易產(chǎn)生噪聲的電路應(yīng)盡量遠(yuǎn)離主機(jī)電路,發(fā)熱量大的器件應(yīng)考慮散熱問(wèn)題,I/O驅(qū)動(dòng)器件盡量靠近印制板邊上放置。閉置的lC管腳不要懸空,元器件腳避免相互平行,以減少寄生耦合。如有可能,盡量使用貼片元件。
??? (3)布線:電路之間的連接應(yīng)盡量短,容易受干擾的信號(hào)線要重點(diǎn)保護(hù),不能與能夠產(chǎn)生干擾或傳遞干擾的線路長(zhǎng)距離平行;交直流電路要分開(kāi);對(duì)雙面布線的印制電路板,應(yīng)使兩面線條垂直交叉,以減少磁場(chǎng)耦合效應(yīng)。
??? (4)接地:交流地與信號(hào)地不能共用,以減少電源對(duì)信號(hào)的干擾;數(shù)字地、模擬地分開(kāi)設(shè)計(jì),在電源端兩種地線相連;對(duì)于多級(jí)電路,設(shè)計(jì)時(shí)要考慮各級(jí)動(dòng)態(tài)電流,注意接地阻抗相互耦合的影響,工作頻率低于1 MHz時(shí)采用一點(diǎn)接地,工作頻率較高時(shí)采取多點(diǎn)接地,接地線應(yīng)盡量粗。
??? (5)去耦電容:加去耦電容是印制電路板設(shè)計(jì)的一項(xiàng)常規(guī)做法。在電源輸入端跨接10~100 μF的電解電容或鉭電容,在每個(gè)集成電路芯片上安裝一個(gè)0.01 μF的陶瓷電容器。
??? 2.4 供電系統(tǒng)抗干擾措施
??? (1)使用交流穩(wěn)壓器,可防止電網(wǎng)過(guò)電壓、欠電壓干擾,保證供電的穩(wěn)定性。
??? (2)變壓器初次級(jí)用屏蔽層隔離,減少其間分布電容,提高共??垢蓴_能力。
??? (3)低通濾波器可濾去干擾帶來(lái)的高次諧波。
??? (4)整個(gè)系統(tǒng)采用分立式供電方式,分別對(duì)各部分進(jìn)行供電。
??? (5)采用開(kāi)關(guān)電源并提供足夠的功率余量。
??? 3 應(yīng)用系統(tǒng)的軟件抗干擾技術(shù)
??? 系統(tǒng)出現(xiàn)錯(cuò)誤或死機(jī),可以通過(guò)手工復(fù)位、定時(shí)復(fù)位等方法來(lái)解決,也可以通過(guò)下面的方法來(lái)實(shí)現(xiàn)抗干擾。
??? 3.1 在程序中插入空操作指令(指令冗余)
??? 在程序執(zhí)行過(guò)程中, CPU受到干擾后可能會(huì)將一些操作數(shù)當(dāng)作指令碼來(lái)執(zhí)行,引起程序混亂,我們應(yīng)盡快使程序納入正軌。MCS51系列單片機(jī)指令不超過(guò)3 B,當(dāng)程序彈飛到某一單字節(jié)指上時(shí),能自動(dòng)納入正軌。當(dāng)彈飛到某一雙字節(jié)或三字節(jié)指令上時(shí),有可能落到操作數(shù)上,繼續(xù)出錯(cuò)。在軟件設(shè)計(jì)時(shí),應(yīng)多采用單字節(jié)指令,并在一些關(guān)鍵地方插入NOP指令。如在雙字節(jié),三字節(jié)指令后面插入2條NOP指令。另外,在一些對(duì)程序流向起決定作用的指令之前插入兩條NOP指令(如RET,RETI,ACALL,LCALL,SJMP,AJMP,LJMP,JZ,JNZ,JC,JNC,JB,JNB,JBC,CJNE,DJNZ)以保證彈飛的程序迅速納入程序軌道。
??? 3.2 采用軟件陷阱
??? 當(dāng)CPU受干擾,造成程序彈飛到非程序區(qū),此時(shí)軟件冗余無(wú)能為力,可在非程序區(qū)設(shè)置攔截措施,使程序進(jìn)人陷阱,強(qiáng)迫程序進(jìn)入一個(gè)指定的地址,執(zhí)行一段專門對(duì)程序出錯(cuò)進(jìn)行處理的程序,軟件陷阱由3條指令構(gòu)成,其中ERR為指定地址:
??? NOP
??? NOP
??? LJMP ERR
??? 軟件陷阱常安排在下列4種地方:
(1)未使用的中斷區(qū)。當(dāng)干擾使未使用的中斷開(kāi)放.并激活這些中斷時(shí),就會(huì)引起程序混亂。如果在這些地方設(shè)置軟件陷阱,就能及時(shí)捕捉到錯(cuò)誤中斷。假如MCS51系統(tǒng)中使用3個(gè)中斷:INT0,INT1,T1,他們的中斷子程序分別在PINT0,PINT1,PT1,T0和串行口不使用中斷,中斷向量區(qū)可以設(shè)置如下:
? (2)未使用的大片 ROM空間。對(duì)于未使用的ROM單元,正常狀態(tài)下為OFFH,程序彈飛到這一區(qū)域后,如果不受新的干擾,將順序執(zhí)行,不再跳轉(zhuǎn)。只要每隔一段區(qū)域設(shè)置一個(gè)軟件陷阱,其他單元保持為0FFH不變,就一定能捕捉到彈飛到這里的程序。
??? (3)程序區(qū)。程序區(qū)由一串串執(zhí)行指令構(gòu)成,當(dāng)程序執(zhí)行到LJMP,SJMP,AJMP,RET等無(wú)條件轉(zhuǎn)移類指令時(shí),PC的值應(yīng)發(fā)生正常的跳變,此時(shí)程序不可能繼續(xù)往下順序執(zhí)行。若在這些指令后設(shè)置軟件陷阱,就可攔截彈飛到這里的程序,而又不影響正常執(zhí)行的流程。
??? (4)數(shù)據(jù)表格區(qū)。為了不破壞表格的連續(xù)性,可在數(shù)據(jù)表格區(qū)的尾部設(shè)置軟件陷阱。軟件陷阱安排在正常程序執(zhí)行不到的地方,不影響程序執(zhí)行的效率,在E2PROM容量允許的條件下,多設(shè)置軟件陷阱有利而無(wú)害。
??? .3 睡眠抗干擾
?
??? 有些單片機(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ì)干擾的敏感程度。在應(yīng)用系統(tǒng)中,CPU很多情況下是在執(zhí)行一些等待指令和循環(huán)檢查程序。由于這時(shí)CPU雖沒(méi)有重要工作,卻是清醒的,很容易受干擾??梢宰孋PU在非正常工作時(shí)休眠,必要時(shí)再由中斷系統(tǒng)來(lái)喚醒他,工作完再進(jìn)入休眠狀態(tài)。采用這種安排,CPU可以有60%以上的時(shí)間處于睡眠狀態(tài),從而使CPU受到隨機(jī)干擾的威脅大大降低,同時(shí)也降低了CPU的功耗。
??? 4"看門狗"技術(shù)
??? 當(dāng)程序飛到一個(gè)臨時(shí)構(gòu)成的死循環(huán)中或PC指針落到程序存儲(chǔ)器芯片地址之外,冗余指令和軟件陷阱對(duì)此無(wú)能為力,這時(shí)系統(tǒng)將完全癱瘓。這種情況下,只有復(fù)位。MCS96和8XC552等系列單片機(jī)內(nèi)部有一個(gè)WDT監(jiān)視定時(shí)器,是一個(gè)16位的計(jì)數(shù)器,輸人為系統(tǒng)時(shí)鐘,WDT被啟動(dòng)后,開(kāi)始對(duì)時(shí)鐘計(jì)數(shù),計(jì)滿溢出時(shí),可使RESET端出現(xiàn)適當(dāng)?shù)膹?fù)位信號(hào),使系統(tǒng)復(fù)位,在正常情況下,為了防止WDT溢出并復(fù)位整個(gè)系統(tǒng),可在程序中周期地用指令清WDT,當(dāng)程序受到干擾而沒(méi)有正常地定期清WDT時(shí),WDT的溢出就會(huì)使系統(tǒng)復(fù)位,從而恢復(fù)運(yùn)行。
??? 圖1中RST是外部復(fù)位引腳,是WDT啟動(dòng)引腳,為"0"時(shí),"看門狗"啟動(dòng)而工作,對(duì)分頻后的脈沖計(jì)數(shù),當(dāng)計(jì)滿溢出時(shí),使單片機(jī)及外圍電路復(fù)位,編程時(shí),為防止監(jiān)視定時(shí)器T3溢出,需要不斷對(duì)T3寫入。MCS51單片機(jī)內(nèi)部沒(méi)有WDT,可以由外電路來(lái)實(shí)現(xiàn),圖2是用CD4060構(gòu)成的看門狗電路。
??? 4060計(jì)數(shù)頻率由RT,CT決定,也可外接石英晶體,設(shè)實(shí)際運(yùn)行的用戶程序所需工作周期為T0;分頻器計(jì)滿時(shí)間為T,當(dāng)T>T0且系統(tǒng)工作正常時(shí),程序每隔T0對(duì)4060清除一次,CD4060無(wú)計(jì)滿輸出信號(hào),如系統(tǒng)工作不正常,程序不對(duì)4060清除。分頻器計(jì)滿輸出一脈沖信號(hào)而使CPU復(fù)位。
??? 5 結(jié) 語(yǔ)
??? 抗干擾設(shè)計(jì)是單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)中不可缺少的重要內(nèi)容。硬件抗干擾是主動(dòng)的,而軟件抗干擾是被動(dòng)的。由于干擾環(huán)境多種多樣,在設(shè)計(jì)時(shí)應(yīng)分析具體情況,選用針對(duì)性的抗干擾措施。在工程實(shí)踐中,通常幾種抗干擾方法并用,互相補(bǔ)充完善,以確保應(yīng)用系統(tǒng)能正常運(yùn)行。
評(píng)論
查看更多