微控制器抗干擾

2022-12-20 23:45:03 字數 5161 閱讀 4702

1引言在微控制器的應用系統中,系統的抗干擾技術是系統可靠性的重要方面。乙個系統的正確與否,不僅取決於系統的設計思想和方法,同時還取決於系統的抗干擾措施,不然勢必會出現原理正確而系統穩定性差,甚至不能實施,使得耗費了大量錢財和時間研製出來的控制系統成為一種擺設,電腦變成了「煩惱」。正因如此,抗干擾技術的研究越來越引起大家的高度重視。

以下為筆者在多年微控制器控制系統設計和應用中拾取的一些抗干擾的經驗體會。2微控制器系統軟體的抗干擾

一般來講,竄入微機測控系統的干擾,其頻譜往往很寬,採用硬體抗干擾措施,只能抑制某個頻率段的干擾,仍有一些干擾會進入系統。因此,除了採取硬體抗干擾方法外,還要採取軟體抗干擾措施。

2.1模擬輸入訊號抗干擾

疊加在系統模擬輸入訊號上的雜訊干擾,會導致較大的測量誤差。但由於這些雜訊的隨機性,可以通過數字濾波技術剔除虛假訊號,求去真值。常用方法如下:

算術平均濾波法算術平均濾波法就是連續取n個值進行採緩笄篤淦驕怠8梅椒ㄊ視τ詼砸話憔哂興婊願扇諾男藕漚新瞬āu庵致瞬ǚǖ奶氐閌牽簄值較大時,訊號的平滑度好,但靈敏度低;當n值較小時,平滑度低,但靈敏度高。遞推平均濾波法

該方法是把n個測量資料看成乙個佇列,佇列的長度為n,每進行一次新的測量,就把測量結果放入隊尾,而扔掉原來隊首的一次資料。計算n個資料的平均值。對週期性的干擾,此方法有良好的抑制作用,平滑度高,靈敏度低。

但對偶發脈衝的干擾抑制作用差。防脈衝干擾平均值濾波法

在脈衝干擾比較嚴重的場合,如果採用一般的平均濾波法,則干擾將會「平均」到結果中去,故平均值法不易消除由於脈衝干擾而引起的誤差。為此,在n個取樣資料中,取掉最大值和最小值,然後計算n-2個資料的算術平均值。為了加快測量速度,n一般取值為4。

2.2「宕機」現象的克服

當干擾通過匯流排或其他口線作用到cpu時,就會造成程式計數器pc值的改變,引起程式混亂,使系統失控。因此,在設計微控制器系統時,如何發現cpu受到干擾,並盡可能無擾地使系統恢復到正常工作狀態是軟體設計應考慮的主要問題。

無論何種控制系統,一般講,宕機現象都是不允許的。克服宕機現象最有效的辦法就是採用微控制器工加了硬體看門狗電路後仍然有宕機現象,分析原因,可能有以下方面:

因為某種原因,程式混亂後,看門狗電路雖然發出了復位脈衝,但在程式剛剛正常還來不及發出乙個脈衝訊號,此時程式再次被干擾,而這時看門狗電路已處於穩態,不能再發出復位脈衝。程式進入死迴圈,在該死迴圈中,恰好又有看門狗監視i/o口上操作的指令。而該i/o口仍有脈衝訊號輸出,看門狗檢測不到這種異常情況。

在有嚴重干擾時,中斷方式控制字有時會受到破壞,導致中斷關閉。

可見,只用硬體看門狗電路是無法確保微控制器正常工作的。因此,可採用以下方法作為補充。軟體「看門狗」的應用

選用定時器t0作為看門狗,將t0的中斷定義為最高端中斷。看門狗啟動後,系統必須及時重新整理t0的時間常數。指令冗餘技術①nop的使用

在8031微控制器指令系統中所有指令都不超過3個位元組。因此,在程式中連續插入3條nop指令,

有助於降低程式計數器發生錯誤的概率。②重要指令冗餘

對於程式流向起決定作用的指令(如ret,reti,acall,ljmp,jz等)和某些對系統工作狀態有重要作用的指令(如setbea等)的後面,可重複寫下這些指令,以確保這些指令的正確執行。軟體陷阱法

微控制器系統程式跑飛意味著cpu執行不正確流程程式。而當亂飛程式進入非程式區,採用冗餘技術無法使程式納入正確軌道,此時可採用軟體陷阱法,攔截亂飛程式。軟體陷阱就是用引導指令(如ljmp)將撲獲到的亂飛程式引向復位入口位址0000h,在此對程式進行出錯處理,使其納入正軌。

①軟體陷阱格式nopnop

ljmp 0000h②軟體陷阱安排未使用的中斷區;未使用的大片rom空間;程式區;中斷服務程式區。2.3系統復位特徵

微控制器應用系統採用看門狗電路後,在一定程度上解決了系統宕機現象,但是每次發生復位都使系統執行初始化,這在干擾較強的情況下仍不能正常工作。同時系統雖然沒有宕機,但工作狀態頻繁改變,這同樣是不能容忍的。

理想的復位特徵應該是:系統可以鑑別是首次上電復位(又稱冷起動),還是異常復位(又稱熱啟動)。首次上電復位則進行全部初始化,異常復位則不需要進行全部初始化,測控程式不必從頭開始執行,而應故障部位開始。

上電標誌的設定方法①sp建立上電標誌。②psw.5建立上電標誌。③內ram建立上電標誌。

軟體復位與中斷啟用標誌

當系統執行中斷服務程式時,來不及執行reti指令而受干擾跳出該程式後,程式亂飛過程中由軟體陷阱或軟體「看門狗」將程式引向0000h,顯然這時中斷啟用標誌並未清除,這樣就會使系統熱啟動時,不管中斷標誌是否置位,都不會響應同級中斷的請求。因此,由軟體陷阱或「看門狗」捕獲的程式一定要完成清除msc-51系列中中斷啟用標誌,才能消除系統熱啟動後不響應中斷的隱患。

程式失控後恢復執行的方法

一般來說,主程式是由若干個功能模組組成,每個功能模組入口設定乙個標誌,系統故障復位後,可根據這些標誌選擇進入相應的功能模組。這一點對一些自動化生產線的控制系統尤為重要。

總之,微機測控系統由於受到嚴重干擾而發生程式亂飛、陷入死迴圈以及中斷關閉等故障。系統通過冗餘技術、軟體陷阱技術和「看門狗」技術等,使程式重新進入0000h單元,納入正軌。因故障而進入0000h後,系統要執行上電標誌判定、ram資料檢查與恢復、清除中斷啟用標誌等一系列操作,決定入口位址。

2.4睡眠抗干擾

在實際應用中,**擾的**往往是系統本身,例如被控負載的中斷狀態變化等。而這種干擾是可預知的,在軟體設計時可採取適當措施避開。當系統接通或斷開大功率負載時,暫停一切資料採集等工作。

待干擾過後,再恢復進行。這比單純在硬體上採取抗干擾措施要好的多。8031微控制器中有乙個電源控制暫存器pcon。

當pcon.0=1時,8031微控制器進入等待工33作狀態。這時微控制器時鐘被封鎖,所有i/o口引腳均保持進入等待工作方式前的狀態,內部時鐘仍然繼續供給中斷系統定時/計數器和序列口、8031微控制器現場(棧指標、程式計數器pc、狀態字psw、累加器acc、內部ram)和其他特殊功能暫存器內容保持不變。中斷退出和硬體復位均可使8031微控制器退出睡眠狀態。

3微控制器系統中硬體抗干擾設計

乙個好的電路設計,應在設計過程中充分考慮抗干擾性的要求。分析系統中可能引起干擾的部件,採取必要的硬體抗干擾措施,抑制干擾源、切斷干擾傳播途徑。3.1抑制干擾源常用措施

給繼電器線圈增加續流二極體,消除斷電時產生的反電動勢。

在繼電器接點兩端並接火花抑制電路,(一般為rc串聯電路,電阻一般為幾~幾十kω,電容為0.01μf)減小電火花影響。

給電機加濾波電路,注意電容、電感連線要盡量靠近電機。

電路板上每個ic要並接乙個0.01~0.1μf高頻電容,減小ic對電源的影響。注意高頻電容的佈線應靠近電源端,並盡量短,否則等於增大了電容的等效串聯電阻,會影響濾波效果。避免90°折線,減小高頻雜訊發射。

在可控矽兩端並接rc抑制電路,減小可控矽雜訊。3.2切斷干擾傳播途徑措施

充分考慮電源對微控制器的影響。給微控制器電源加濾波電路,減小電源雜訊對微控制器的干擾。若用微控制器的i/o口來控制電機等雜訊器件,在i/o口與雜訊源之間應加ⅱ形濾波電路,或進行光電隔離。

注意晶振佈線。晶振與微控制器引腳盡量靠近,用地線把時鐘區隔離起來,晶振外殼接地並固定電路板合理分割槽,如數碼訊號、模擬訊號盡可能使干擾源與敏感器件遠離。用地線將數字區與模擬區隔離,數字地與模擬地分離,最後接在一點接於電源地。

微控制器和大功率器件的地線要單獨接地,以減小相互之間的干擾。

在微控制器i/o口、電源線、電路板連線等關鍵地方使用抗干擾元件,如磁環、電源濾波器、遮蔽罩等。

3.3提高敏感器件的抗干擾性能

提高敏感器件的抗干擾性能是指從敏感器件考慮盡量減小對干擾雜訊的拾取,以及從不正常狀態盡快恢復的方法。常用措施:

佈線時儘量減少迴路面積,降低感應雜訊;

佈線時電源線與地線盡量粗。除減小壓降外,更重要的是降低耦合雜訊;對微控制器的閒置i/o,不能懸空,應接地或電源,其他ic的閒置口一樣;滿足要求的前提下,盡量降低微控制器晶振和選用低速數位電路;軟體抗干擾

竄入微控制器測控系統干擾的頻譜往往很寬,且具有隨機性。採用硬體抗干擾往往只能抑制某個頻率段的干擾。

常用的軟體抗干擾的主要方法和技術如:數字濾波方法、輸入口資訊重複檢測、輸出埠資料

重新整理方法、指令冗餘技術、軟體陷進技術和看門狗技術等。

數字濾波器是將一組輸入的數字序列(模擬訊號經取樣和經a/d轉換後得到,或計算機的輸出訊號)執行一定運算而轉換成另一組輸出序列的裝置。1、程式判斷濾波

判斷兩次取樣允許的最大偏差△y,差值大於△y,說明輸入是干擾訊號,應當刪除,上次取樣值作為本次取樣值;若小於△y,本次取樣值有效。

假定從8位a/d中讀取資料(如果更高的a/d,可定義資料型別為int)子程式getfromad();/*max值可以根據實際情況調整cvalue為有效值,cnewvalue為當前取樣值濾波程式返回有效實際值*/#define max 15char cvalue;char filter()

2、中值濾波

對某一引數連續取樣n次(一般為奇數),然後按從大到小的順序排列,取中間為本次取樣值。有效克服了偶然因素引起的波動干擾。

對溫度、液位等變化緩慢的被測引數可以收到良好的效果,對於流量、速度的等快速變化的引數則不合適。

實質上是乙個排隊序列,排序演算法很多,目前常用的是「冒泡法」。#define n 5 //n值可以根據時間情況調整char filter()

}}return databuf[(n-1)/2];//取中間值作為本次取樣值}

3、算術平均值濾波

連續取樣n個值,然後計算算術平均值,這種方法適用於對一般具有隨機干擾的訊號進行濾波。此類訊號的特點是有乙個平均值,訊號在該值範圍附近上下波動。但對於測量速度較慢或要求資料計算速度較快的實時控制系統無法使用。

當n值較大時,訊號的平滑度高,但靈敏度低;n值較小時,平滑度低,但靈敏度高。應視具體情況選n值,以達到既節約時間,又可獲得好的濾波效果。#define n 12char filter()

4、遞推平均值濾波

就是把n個測量資料看成乙個佇列,長度為n。每執行一次新的測量就把測量資料放到隊尾,而丟棄原來隊首的一次資料,這樣在佇列中始終有n個「最新」的資料。計算濾波值時,只要把佇列中的n個資料平均,即可得到新的濾波值。

對週期性干擾有良好的抑制作用,平滑度高,靈敏度低。但對偶然出現的脈衝性干擾的抑制作用差,不易清除由於脈衝干擾引起的取樣值的偏差。因此它使用於高頻振盪系統,而不適用於脈衝干擾比較嚴重的場合。

其工程經驗值:流量n一般為12,壓力一般為4,液位一般為4~12,溫度一般為1~4。#define n 12

char value_buf[n];char i=0;char filter()

for(j=0;j}

}for(count=1;countsum+=value_buf[count];return (char)(sum/[n-2])}

微控制器抗干擾措施

微控制器抗干擾措施.txt如果你看到面前的陰影,別怕,那是因為你的背後有陽光!我允許你走進我的世界,但絕不允許你在我的世界裡走來走去。1 引言 在微控制器的應用系統中,系統的抗干擾技術是系統可靠性的重要方面。乙個系統的正確與否,不僅取決於系統的設計思想和方法,同時還取決於系統的抗干擾措施,不然勢必會...

微控制器抗干擾技術簡介

用於生產現場的微控制器應用系統,易受各種干擾侵襲,直接影響到系統的可靠性。因此,應用系統的抗干擾設計已經成為設計人員關注的重要課題。由於各應用系統所處環境不同,面臨的干擾源也不同,相應採取的抗干擾措施也不盡相同。在計算機應用系統的設計中,主要考慮以下各方面的問題 1 切斷來自電源的干擾,對微機系統危...

微控制器應用系統的抗干擾設計

作者 公尺秀傑隋秀梅趙麗 數字技術與應用 2009年第11期 摘要 本文分析了微控制器系統干擾的現象和原因,提出了一些在實際應用中取得了良好效果的提高抗干擾能力的方法。關鍵詞 微控制器抗干擾硬體軟體 中圖分類號 tp368 文獻標識碼 a 文章編號 1007 9416 2009 11 0009 02...