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