單片機技術中防止干擾,保安全可靠運行也是一個很重要的問題。本文從電磁輻射、電源干擾和信號通道干擾三個主要干擾源入手,介紹了采用硬件和軟件的防干擾措施,對于從事單片機應用設計者有重要參考價值。
1 引言
隨著單片機技術應用發(fā)展,在應用過程中,如何防止外界的干擾,確保單片機安全可靠運行,是一個很重要的問題。我們在多項測控項目的實踐中體會到,干擾源主要來自三個方面。一是空間場干擾,通過電磁輻射富入系統(tǒng):二是電源干擾,它直接侵害系統(tǒng):三是信號通道干擾,通過與單片機相連的前、后向通道進入系統(tǒng)。一般來說,空間場干擾在強度上遠小于其他兩個干擾源產(chǎn)生的干擾,且容易對付。只要采取良好的屏蔽、正確的接地及恰當?shù)母哳l濾波就可以得到滿意解決。
2 千擾的來源分析
2.1來自交流電源的干擾
開關的通斷,火花干擾,電焊、大電機的啟動等,在工業(yè)環(huán)境中是常見的。這些來自電源的干擾都會破壞單片機的正常運行。要完全抑制來自交流電源的干擾是十分困難的,其原因是干擾傳播的途徑往往不清楚。干擾的頻帶很難定量化,交流電源及負載的阻抗很難實測,電源濾波器的特性和實際干擾頻帶也往往有差異。
在實際使用中,常常要應用交流電源供電,因此,必須采取措施克服來自電源的干擾。
2.2來自信號通道的干擾
為達到數(shù)據(jù)采集或實時控制的目的,開關量輸入、輸出,模擬量輸入、輸出是必不可少的。在工業(yè)現(xiàn)場,如果被控對象是一個強干擾源(如可控硅、電焊機等),單片機根本無法工作。
對于開關量的輸入、輸出要采取隔離措施,已為大多數(shù)工程技術人員所接受。然而對模擬量輸入、輸出也必須采取隔離措施,大多數(shù)人尚認識不足。模擬量輸入、輸出不進行隔離。雖說可以運行,但會產(chǎn)生“程序亂飛”,使可靠性下降,對于連續(xù)工作的對象(如鍋爐、空調(diào)等)來說是不允許的。因此,在單片機控制時,這個問題也必須注意。對于模擬量、開關量的輸入、輸出都采取隔離措施,才能保證系統(tǒng)穩(wěn)定運行。
2.3來自空間的輻射干擾
在特殊的情況下,如在發(fā)射機、中頻爐、可控硅逆變電源周圍,單片機往往不能正常工作。
上述三種干擾危害以來自交流電源的干擾最甚,其次為來自信號通道的干擾。來自空間的輻射干擾不太突出,一般只須加以適當?shù)钠帘渭敖拥鼐涂山鉀Q。
3 硬件抗干擾措施
3.1電源干擾的抑制
要保證系統(tǒng)工作的穩(wěn)定可靠,前提是保證供電的穩(wěn)定性,防止電源的過壓與欠壓。因此,在電源的前向要求配置交流穩(wěn)壓器,這樣有利于提高整個系統(tǒng)的可靠性。對于短暫時間的停電,可配置UPS電源。任何電源和輸電線路都存在內(nèi)阻,正是這些內(nèi)阻才引起電源的噪聲干擾??紤]到高頻噪聲通過變壓器主要不是靠初、次線圈的互感偶合,而是由初、次級間寄生電容偶合的。因此,在交流穩(wěn)壓器之后應加隔離變壓器,且初、次級之間均需用屏蔽層隔離,以減少分布電容,提高抗共模干擾的能力。另外,由諧波頻譜分析可知,電源引起的干擾大部分是高次諧波。這樣就可在隔離變壓器之后設計低通濾波器,讓5 0HZ市電基波通過,濾去高次諧波,改善電源波形。設計時應注意:
當濾波器工作在低電壓且載有大電流時,宜采用小電感和大電容構成的濾波網(wǎng)絡:當工作在高壓下,則宜采用小電容和允許的最大電感構成的濾波網(wǎng)絡。
在整流電路之后加接附圖所示的雙T濾波器,用以消除50Hz的工頻干擾。它結構簡單,對固定頻率的干擾濾波效果好。調(diào)試步驟為:先將電容C固定,然后模擬現(xiàn)場運行環(huán)境調(diào)節(jié)電阻,當輸人50Hz信號時,使輸出V0=0。
在實際控制系統(tǒng)中,往往需要提供多種電源,此時應采用分散獨立的功能塊供電,且口用相應的三端集成穩(wěn)壓塊分別組成所需的穩(wěn)壓電源。這樣可以減少公共阻抗和公共電源的相互偶合,有利于電源散熱,大大提高供電的可靠性。
3.2信號通道干擾的抑制
(1)共阻抗偶合干擾及其抗干擾措施。通過公共接地線的偶合形成共模干擾。A/D,D/A等I/O板的輸入、輸出電路的“地”與單片機地線GND之間有各種信號電路的電流流過,并由接地線阻抗變換成電壓,形成共模干擾。其次,在I/O電路、前置放大器等各部分電路中,也存在同樣的的共地偶合形成局部的共模干擾,尤其是執(zhí)行機構開關通斷、線圈動作等通過共地構成的回饋干擾尤為嚴重,特別是感性負載時,若不注意反電勢,有關電子會受到損壞。
針對共阻抗偶合干擾采取如下措施:① 采用單點接地和分別電源供電,消除共阻抗回路。數(shù)字信號地線、信號源地線和負載地線分開設置,數(shù)字電路、模擬電路和負載電路分別單獨供電,獨自構成回路且單點接地。②加強電源退偶。為避免通過共用電源內(nèi)阻造成幾個電路之間的相互干擾,應在每個電路的直流電源進線與地線之間加裝退偶濾波器,工作頻率較高的電路加LC濾波器或RC濾波器。一般單片機主板及其外圍接口電路和一般I/O板等,在大規(guī)模集成電路電源引腳處加一只0.1u F電容,小功率TTL電路可幾片加一只退偶電容即可。③ 用集成隔離放大器切斷共阻抗環(huán)路。由于隔離放大器采用浮離式設計,消除了輸入、輸出間的直接偶合,切斷了共地和共電源環(huán)路,因而具有共模抑制比高、能保護系統(tǒng)元件不受高共模電壓的損害和防止高壓對低壓信號系統(tǒng)損壞的特點。④采用光電隔離器切斷共阻抗環(huán)路。單片機與各數(shù)字電路、脈沖電路或開關電路的接口可用數(shù)字式光電隔離器進行隔離,以切斷共阻抗環(huán)路,避免長線感應及電源和各種負載通過共阻抗回饋的各種干擾的竄入。對于線性模擬電路通道,如因考慮成本不能使用隔離放大器進行隔離時,則可采用線性光偶或用V/F變換后再用數(shù)字光偶進行隔離。
(2)靜電偶合干擾及其對策。靜電偶合是由于兩個電路間存在寄生電容,使一個電路的變化影響到另一個電路。
一般尖蜂干擾或脈沖干擾的頻譜極高,其靜電1禺合的途徑不能忽視。
針對靜電偶合干擾采取如下措施:①合理布線,減少分布電容,特別是高頻信號線盡量不要與其他信號線路平行走線,若必須平行走線時,應注意留一定的距離,以切斷靜電偶合通道。② 降低接收電路輸入阻抗。
例如用光電偶合器等。光電的輸入阻抗與干擾源相比極小,前者數(shù)量級為100Ω/~1kΩ ,而后者則為105 Ω~108Ω,因此,使用光偶可以使干擾大大減小。
(3)傳導偶合干擾及其措施。在單片機測控系統(tǒng)中,傳輸線上的信息多為脈沖信號,它在傳輸線上傳輸時會出現(xiàn)延時、畸變和衰減。尤其是當長傳輸線經(jīng)過干擾環(huán)境時,導線相當于天線拾取干擾信號,對電路產(chǎn)生干擾。
針對傳導偶合千擾采取如下措施:①長傳輸線采用屏蔽線,避免電磁感應干擾。但要注意屏蔽層要一端接大地,并保證接地良好。若采用兩端接地,屏蔽層又構成新的干擾回路,起不到好的屏蔽效果。②用光電偶合器將長線完全浮置起來,長線的“浮置”去掉了長線兩端間的公共地線,不但有效消除了各邏輯電路的電流經(jīng)公共地線時所產(chǎn)生的噪聲電壓形成相互竄擾,而且也有效地解決了長線驅動和阻抗匹配問題。同時,受控設備短路時,還能保護系統(tǒng)不受損害。③傳輸線應盡量遠離變壓器及電源等大功率器件,且盡可能短。若較長時,可用雙絞屏蔽線傳輸,用雙絞屏蔽線與光電偶合器配合使用效果更佳。同時,注意強電信號線和弱電信號線分開,高頻信號線和低頻信號線分開,交流和直流分開,電源線和信號線分開。4 軟件抗干擾措施
根據(jù)經(jīng)驗,用軟件方法抑制信號通道干擾很有效,下面就這個范圍介紹幾種軟件抗干擾的方法。
4.1數(shù)據(jù)采集干擾抑制方法
進行實時數(shù)據(jù)采集時,為了消除傳感器通道中的干擾信號,有三種常用濾波方法。
(1)算術平均算法。對一點數(shù)據(jù)連續(xù)采樣多次,以其平均值作為該點采樣結果。這樣做可以減少系統(tǒng)的隨機干擾對采樣結果的影響,多次采樣一般取3~5次平均即可。
(2)比較取合法。當測控系統(tǒng)測量結果的個別數(shù)據(jù)存在偏差時,為了剔除個別誤差較大的數(shù)據(jù),可采用此法,即根據(jù)幾個采樣點數(shù)據(jù)變化的規(guī)律,確定取合辦法。如:“采三取二”,就是對每點采樣三次,取兩次相同的為采樣結果。
(3)數(shù)字濾波法。該方法利用軟件完成RC低通濾波器的算法,經(jīng)常采用的二階遞推數(shù)字濾波公式為:
實踐證明,采用軟件濾波對消除數(shù)據(jù)采集中的誤差可以獲得滿意效果。在應用中,究竟使用哪一種方法,要根據(jù)被采樣信號的具體變化規(guī)律進行選擇。
4.2控制失常的抑制方法
在大量開關量的單片機系統(tǒng)中,確保信號的正常狀態(tài)顯得尤為重要。
如果干擾進入系統(tǒng)影響到控制條件時,就會出現(xiàn)失控現(xiàn)象,通??捎孟率鰞煞N方法抑制。
(1)重復檢查法。對于開關量、控制條件處理輸出,進行循環(huán)采樣。若相鄰各次檢測結果在允許誤差范圍內(nèi),則輸出控制。如超出誤差范圍,則重新檢測,直至檢測結果符合要求為止。
(2)設置輸出寄存單元。當干擾侵入輸出通道使輸出狀態(tài)破壞時,也會導致控制失常。此時應考慮設置輸出寄存單元,在控制輸出時可及時查詢、比較寄存器單元的內(nèi)容,一旦異??杉皶r糾正輸出狀態(tài)。
4.3程序盲目運行的抑制方法
系統(tǒng)受到干擾時,有時PC值被改變,結果導致程序飛出,盲目運行和進人死循環(huán)。顯然,抗干擾軟件要能做到:一旦系統(tǒng)出現(xiàn)上述情況后,能自動及時地引導系統(tǒng)恢復到正常狀態(tài),以下兩種方法有效。
(1)設置Watchdog。Watchdog亦即跟蹤監(jiān)視定時器,利用定時器中斷功能來監(jiān)視程序的運行狀態(tài)。具體做法為:測算好最長循環(huán)程序循環(huán)一次的時間,然后定時時間的設置稍大于它。正常循環(huán)一次后,定時器重新置初值,否則定時器繼續(xù)計數(shù),直到溢出進入中斷。在中斷服務程序中設置PC值,迫使其跳出死循環(huán)。
(2)設置陷阱方法。若PC值并非進人死循環(huán),而是隨機“亂飛”,可設置陷阱攔截。具體做法是在所有子程序和程序快的連接處(前提是程序正常運行時不會進入該處)填上絕對跳轉指令,失控的PC一旦進入該處即可捕獲,迫使其重新回到復位狀態(tài)。
5 結束語
實踐證明,只要對單片機系統(tǒng)實行總體抗干擾設計,就可保障它在工作環(huán)境惡劣的條件下可靠運行。