單片機應用系統抗干擾技術
-
企業:控制網
領域:人機界面
行業:輸配電
- 點擊數:1521 發布時間:2005-09-22 14:22:31
- 分享到:
著重分析了干擾對單片機應用系統的影響,并結合親身經驗,從軟、硬兩個方面闡述了單片機應用系統抗干擾技術,這些技術在實際應用中取得了良好的效果。
1. 引 言
近年來,單片機在工業自動化、生產過程控制、智能儀器儀表等領域的應用越來越廣泛,大大提高了產品的質量,有效地提高了生產效率。但是,測控系統的工作環境往往復雜、比較惡劣,尤其是系統周圍的電磁環境,這對系統的可靠性與安全性構成了極大的威脅。單片機測控系統必須長期穩定、可靠運行,否則將導致控制誤差加大,嚴重時會使系統失靈,甚至造成巨大損失。下面著重分析干擾對單片機應用系統的影響,并結合親身經驗,從軟、硬兩個方面給出具體的解決方法。
2. 干擾對單片機應用系統的影響
影響應用系統可靠、安全運行的主要因素來自系統內部和外部的各種電磁干擾,以及系統結構設計、元器件安裝、加工工藝和外部電磁環境條件等。這些因素對單片機系統造成的干擾后果主要表現在以下幾個方面:
2.1 測量數據誤差加大
干擾侵入單片機系統測量單元模擬信號的輸入通道,疊加在測量信號上,會使數據采集誤差加大,甚至干擾信號淹沒測量信號,特別是檢測一些微弱信號,如人體的生物電信號。
2.2 影響單片機RAM存儲器和E2PROM等
在單片機系統中,程序及表格、數據存在程序存儲器EPROM或FLASH中,避免了這些數據受干擾破壞。但是,對于片內RAM、外擴RAM、E2PROM中的數據都有可能受到外界干擾而變化。
2.3 控制系統失靈
單片機輸出的控制信號通常依賴于某些條件的狀態輸入信號和對這些信號的邏輯處理結果。若這些輸入的狀態信號受到干擾,引入虛假狀態信息,將導致輸出控制誤差加大,甚至控制失靈。
2.4 程序運行失常
外界的干擾有時導致機器頻繁復位而影響程序的正常運行。若外界干擾導致單片機程序計數器PC值的改變,則破壞了程序的正常運行。由于受干擾后的PC值是隨機的,程序將執行一系列毫無意義的指令,最后進入“死循環”,這將使輸出嚴重混亂或死機。
3. 硬件抗干擾技術
3.1 選擇良好的元器件與單片機
硬件抗干擾技術是系統設計時首選的抗干擾措施,它能有效抑制干擾源,阻斷干擾傳輸通道。常用的硬件設計抗干擾措施如下:
① 現在市場上出售的元器件種類繁多,有些元器件可用但性能不佳,有些元器件極易受到干擾,因此在選擇關鍵元器件如譯碼器、鍵盤掃描控制器、RAM等時,最好選用性能穩定的工業級產品;
② 單片機的選擇不光考慮硬件配置、存儲容量等,更要選擇抗干擾性能較強的單片機,筆者在使用多種類型的單片機中認為,AVR系列單片機抗干擾能力較強;
③ 外時鐘是高頻的噪聲源,對系統的內外都能產生干擾,因此在滿足需要的前提下,選用頻率低的單片機是明智之舉。
3.2 抑制電源干擾
單片機系統中的各個單元都需要使用直流電源,而直流電源一般是市電電網的交流電經過變壓、整流、濾波、穩壓后產生的,因此電網上的各種干擾便會引入系統。除此之外,由于交流電源共用,各電子設備之間通過電源也會產生相互干擾,因此抑制電源干擾尤其重要。電源干擾主要有以下幾類:
① 電源線中的高頻干擾
供電電力線相當于一個接受天線,能把雷電、電弧、廣播電臺等輻射的高頻干擾信號通過電源變壓器初級耦合到次級,形成對單片機系統的干擾;
② 感性負載產生的瞬變噪音
切斷大容量感性負載時,能產生很大的電流和電壓變化率,從而形成瞬變噪音干擾,成為電磁干擾的主要形式;
③ 晶閘管通斷時的干擾
晶閘管通斷時的電流變化率很大,使得晶閘管在導通瞬間流過一個具有高次諧波的大電流,在電源阻抗上產生很大的壓降,從而使電網電壓出現缺口,這種畸變了的電壓波形含有高次諧波,可以向空間輻射或通過傳導耦合,干擾其它設備。此外,還有電網電壓波動或電壓瞬時跌落產生干擾,等等。
電源干擾的抑制,通常可采用以下幾種方法:
① 接地技術
實踐證明,單片機系統設備的抗干擾與系統的接地方式有很大關系,接地技術往往是抑制噪音的重要手段。良好的接地可以在很大程度上抑制系統內部噪音耦合,防止外部干擾的侵入,提高系統的抗干擾能力。設備的金屬外殼等要安全接地;屏蔽用的導體必須良好接地;
② 屏蔽線與雙膠線傳輸
屏蔽線對靜電干擾有強的抑制作用,而雙膠線有抵消電磁感應干擾的作用。開關信號檢測線和模擬信號檢測線可以使用屏蔽雙膠線,來抵御靜電和電磁感應干擾;特殊的干擾源也可以用屏蔽線連接,屏蔽了干擾源向外施加干擾;
③ 隔離技術
信號的隔離目的之一是從電路上把干擾源和易干擾的部分隔離出來,使監控裝置與現場僅保持信號聯系,但不直接發生電的聯系。隔離的實質是把引進的干擾通道切斷,從而達到隔離現場干擾的目的。
一般單片機應用系統既有弱電控制系統又有強電控制系統,通常實行弱電和強電隔離,是保證系統工作穩定、設備與操作人員安全的重要措施。常用的隔離方式有光電隔離、變壓器隔離、繼電器隔離和布線隔離等。
④ 模擬信號采樣抗干擾技術
單片機應用系統中通常要對一個或多個模擬信號進行采樣,并將其通過A/D轉換成數字信號進行處理。為了提高測量精度和穩定性,不僅要保證傳感器本身的轉換精度、傳感器供電電源的穩定、測量放大器的穩定 、A/D轉換基準電壓的穩定,而且要防止外部電磁感應噪聲的影響,如果處理不當,微弱的有用信號可能完全被無用的噪音信號淹沒。在實際工作中,可以采用具有差動輸入的測量放大器,采用屏蔽雙膠線傳輸測量信號,或將電壓信號改變為電流信號,以及采用阻容濾波等技術。
在許多信號變化比較慢的采樣系統中,如人體生物電(心電圖、腦電圖)采樣、地震波記錄等,影響最大的是50Hz的工頻干擾。因此對工頻干擾信號的抑制是保證測量精度的重要措施之一。抑制和消除工頻干擾,常用的方法是在A/D轉換電路之前加RC濾波器,或者采用采樣時間是50Hz的工頻周期整數倍的雙積分式A/D轉換器。
3.3 數字信號傳輸通道的抗干擾技術
數字輸出信號可作為系統被控設備的驅動信號(如繼電器等),數字輸入信號可作為設備的響應回答和指令信號(如行程開關、啟動按鈕等)。數字信號接口部分是外界干擾進入單片機系統的主要通道之一。在工程設計中,對數字信號的輸入/輸出過程采取的抗干擾措施有:傳輸線的屏蔽技術,如采用屏蔽線、雙膠線等;采用信號隔離措施;合理接地,由于數字信號在電平轉換過程中形成公共阻抗干擾,選擇合適的接地點可以有效抑制地線噪聲。
3.4 硬件監控電路
在單片機系統中,為了保證系統可靠、穩定地運行,增強抗干擾能力,需要配置硬件監控電路,硬件監控電路從功能上包括以下幾個方面:
① 上電復位:保證系統加電時能正確地啟動;
② 掉電復位:當電源失效或電壓降到某一電壓值以下時,產生復位信號對系統進行復位;
③ 數據保護:當電源或系統工作異常時,對數據進行必要的保護,如寫保護、后備電池切換等;
④ 電源監測:供電電壓出現異常時,給出報警指示信號或中斷請求信號;
⑤ 硬件看門狗:當處理器遇到干擾或程序運行混亂產生“死鎖”時,對系統進行復位。
有些著名的半導體廠商已將上述這些功能集成到一起,如MAXIM公司的MAX690、MAX706等。
3.5 印制板電路合理布線
印制電路板(PCB)是電子產品中電路元件和器件的支撐件,它提供電路元件和器件之間的電氣連接。隨著電子技術的飛速發展,PCB的密度越來越高,PCB設計的好壞對抗干擾能力影響很大。因此,在進行PCB設計時,必須遵守PCB設計的一般原則,并應符合抗干擾設計的要求。下面著重說明兩點:
① 關鍵器件放置:在器件布置方面與其它邏輯電路一樣,應把相互有關的器件盡量放得靠近些,這樣可以獲得較好的抗噪聲效果。時鐘發生器、晶振和CPU的時鐘輸入端都易產生噪聲,要相互靠近些;CPU復位電路、硬件看門狗電路要盡量靠近CPU相應引腳;易產生噪聲的器件、大電流電路等應盡量遠離邏輯電路,如有可能,應另外做電路板。
② D/A、A/D轉換電路要特別注意地線的正確連接,否則干擾影響將很嚴重。D/A、A/D芯片及采樣芯片均提供了數字地和模擬地,分別有相應的管腳。在線路設計中,必須將所有器件的數字地和模擬地分別相連,但數字地與模擬地僅在一點上相連。
另外,也可以采用屏蔽保護,屏蔽可用來隔離空間輻射。對噪聲特別大的部件(如變頻電源、開關電源)可以用金屬盒罩起來以減少噪聲源對單片機的干擾,對容易受干擾的部分,可以增加屏蔽罩并接地,使干擾信號被短路接地。
4. 軟件抗干擾原理及方法
盡管我們采取了硬件抗干擾措施,但由于干擾信號產生的原因錯綜復雜,且具有很大的隨機性,很難保證系統完全不受干擾。因此,往往在硬件抗干擾措施的基礎上,采取軟件抗干擾技術加以補充,作為硬件措施的輔助手段。軟件抗干擾方法具有簡單、靈活方便、耗費低等特點,在單片機系統中被廣泛應用。
4.1 數字濾波方法
數字濾波是在對模擬信號多次采樣的基礎上,通過軟件算法提取最逼近真值數據的過程。數字濾波的的算法靈活,可選擇權限參數,其效果往往是硬件濾波電路無法達到的。
4.2 輸入信號重復檢測方法
輸入信號的干擾是疊加在有效電平信號上的一系列離散尖脈沖,作用時間很短。當控制系統存在輸入干擾,又不能用硬件加以有效抑制時,可用軟件重復檢測的方法,達到“去偽存真”的目的,直到連續兩次或連續兩次以上的采集結果完全一致時方為有效。若信號總是變化不定,在達到最高次數限額時,則可給出報警信號。對于來自各類開關型傳感器的信號,如限位開關、行程開關、操作按鈕等,都可采用這種輸入方式。如果在連續采集數據之間插入延時,則能夠對付較寬的干擾。
4.3 輸出端口數據刷新方法
開關量輸出軟件抗干擾設計,主要是采取重復輸出的方法,這是一種提高輸出接口抗干擾性能的有效措施。對于那些用鎖存器輸出的控制信號,這些措施很有必要。在盡可能短的周期內,將數據重復輸出,受干擾影響的設備在還沒有來得及響應時,正確的信息又到來,這樣就可以及時防止誤動作的產生。在程序結構的安排上,可為輸出數據建立一個數據緩沖區,在程序的周期性循環體內將數據輸出。對于增量控制型設備不能這樣重復送數,只有通過檢測通道,從設備的反饋信息中判斷數據傳輸的正確與否。
在執行重復輸出功能時,對于可編程接口芯片,工作方式控制字與輸出狀態字一并重復設置,使輸出模塊可靠地工作。
4.4 軟件攔截技術
當竄入單片機系統的干擾作用在CPU部位時,后果更加嚴重,將使系統失靈。最典型的故障是破壞程序計數器PC的狀態,導致程序從一個區域跳轉到另一個區域,或者程序在地址空間內“亂飛”,或者陷入“死循環”。使用軟件攔截技術可以攔截“亂飛”的程序或者使程序擺脫“死循環”,并將運行程序納入正軌,轉到指定的程序入口。
4.5 “軟件看門狗”技術
PC受到干擾而失控,引起程序“亂飛”,也可能使程序陷入“死循環”。當軟件攔截技術不能使失控的程序擺脫“死循環”的困境時,通常采用程序監視技術WDT TIMER(WDT),又稱“看門狗”技術,使程序脫離“死循環”。WDT是一種軟、硬件結合的抗程序跑飛措施,其硬件主體是一個用于產生定時T的計數器或單穩,該計數器或單穩基本獨立運行,其定時輸出端接至CPU的復位線,而其定時清零則由CPU控制。在正常情況下,程序啟動WDT后,CPU周期性的將WDT清零,這樣WDT的定時溢出就不會發生,如同睡眠一般不起任何作用。在受到干擾的異常情況下,CPU時序邏輯被破壞,程序執行混亂,不可能周期性的將WDT清零,這樣當WDT的定時溢出時,其輸出使系統復位,CPU擺脫因一時干擾而陷入癱瘓的狀態。
5. 結 語
上述是筆者在實際工作中總結的一些常見的單片機系統抗干擾措施,在設計單片機系統時也采納了這些方法,并取得了良好的效果。