陳欣

摘要
在工業單片機測控系統中,抗干擾技術是一個很重要的環節,軟件抗干擾技術具有良好的可靠性和穩定性。本文針對工業單片機測控系統中的抗干擾問題,從數字濾波技術、軟件陷阱技術、“看門狗”技術等方面進行了研究,并提出了解決方案。
【關鍵詞】單片機 抗干擾技術 數字濾波技術
1 引言
如圖1所示,單片機測控系統是在程序化管理下形成的測控系統,它可以在工業生產過程中提高機械控制的效率。但是,工業現場環境復雜,具有電磁功能的大量設備頻繁啟動、停止,產生的干擾影響了單片機系統的正常運行。本文針對單片機測控系統中的抗干擾問題,從軟件抗干擾技術方面進行了分析和研究,并提出了解決方案。
工業單片機測控系統的常見影響如下:
1.1 干擾加大數據采集的誤差
測試系統通道的輸入部分受到干擾信號的入侵,有用信號和外來干擾信號相互疊加,加劇了該通道數據采集的誤差。尤其在當前系統輸入的是小電壓信號時,數據干擾的現象更加嚴重。
1.2 干擾使數據發送變化
單片機系統中的程序是存放在存儲器EPROM中,這些程序不易發生變化。但是單片機系統的RAM數據區是可以讀寫的,它可能會受到讀入信息的干擾從而發生變化。因為干擾渠道的區別,以及數據性質的區別,單片機系統受損害的情況也各不相同,可能造成控制失靈,也可能造成數值誤差,更嚴重的會改變單片機系統某些部件(如串行口、定時器/計數器等)的運行狀態等。
1.3 干擾使控制狀態失靈
在單片機系統中,控制狀態依賴于特定條件的輸入狀況和處理結果,干擾的侵入會造成條件狀態錯誤,引起虛假的信號,從而加大輸出控制的誤差,甚至控制失常。
1.4 干擾使程序運行失常
單片機系統正常運行的前提是CPU正常工作,如果干擾信號影響到了CPU,則程序計數器不能正常運行,從而引起系統混亂、控制失靈,即通常說的程序“跑飛”。
現在使用的單片機抗干擾技術主要分為硬件與軟件兩類。硬件抗干擾技術固然可以降低系統受干擾的程度,但是成本較高,靈活性不足,而且容易受電磁干擾。軟件抗干擾技術方法靈活,不需要增加硬件設備,越來越受到工業生產的重視和青睞。目前最常見的主要有如下幾種:數字濾波抗干擾技術、軟件陷阱抗干擾技術、“看門狗”抗干擾技術等。
2 數字濾波技術
數字濾波技術就是通過研究信號的干擾性,利用技術手段來提高輸入和輸出信號的精度,當采樣數據呈離散型分布,差值比較大時,則說明該數據受到較大的干擾,不能被系統最后采集。
2.1 算術平均值濾波法
該濾波法的實質就是在一個周期內采樣N次,然后求平均值,它的優點是可以有效消除周期性的干擾。當采樣次數N較大時,信號的平滑度會變高,但是相對應的靈敏度會降低。當采樣次數N較小時,信號的平滑度會變低,但靈敏度會變高。對次數N的取值根據實際情況而不同,對一般情況測試,N=12;對于壓力,通常N=4;對于溫度、電壓等,通常N=8。該方法對具有隨機干擾的普通信號進行濾波比較有效,取樣信號有一個平均值,數值在其上下波動,也可以推廣到在幾個連續的周期內取平均值。
2.2 中位值平均濾波法
算術平均值濾波法的缺點是對于偶然脈沖性干擾的抑制性較差,中位值平均濾波法則可以克服這一點,它在若干個周期采樣,采樣參數按大小順序進行排序,排除掉采樣的最大、最小兩個邊界值,然后按照N-2個數值求平均值,這種方法可以排除由于脈沖干擾因素引起的采樣值偏差。在實際應用中,采樣的周期要選擇適當。選擇的周期較大,數據采集的延遲就會過大,系統的響應就會變慢。選擇的周期較小,去除干擾的作用就不明顯。
2.3 限幅濾波法
限幅濾波法需要對任意兩次采樣值設置一個最大偏差值A,每次檢測新采樣值都依據A值來判斷。如果連續兩次采樣值的偏差在A的范圍之內,則此次采樣值有效。如果連續兩次采樣值的偏差大于A,則認為此次采樣值無效,選用上次采樣值。該濾波法的最大優點是克服偶然因素引發的干擾,缺點是無法抑制周期性的干擾,平滑度較差。
在實際的數字濾波技術中,可以采用多種濾波技術相結合的方法,比如在算術平均值濾波法中,加入中位值平均濾波法,這樣可以提高濾波的性能。要依據實際情況,靈活選用。
3 軟體陷阱技術
抗干擾技術中“軟件陷阱”技術是一條引導指令,該指令的作用是強行將捕獲的程序指向一個固定的地址,在該地址中有專門用來處理的一段錯誤。如果用ERROR來標識該程序的入口,LJMP ERROR即為軟件陷阱,在它前面加兩條NOP指令來加強其捕獲效果。
一個軟件陷阱由三條指令組成:
NOP
NOP
LJMPERROR
一般的軟件陷阱安排在系統的如下位置:
(1)安排在系統未使用的中斷區。單片機系統有未使用的中斷向量區,為了捕捉到系統錯誤的中斷,可在該系統未使用的中斷區安排軟件陷阱。
(2)安排在系統未使用的EPROM區域。EPROM區域中存在未編程的空閑空間,初始內容為OFFH,對MCS-51單片機系統來講,當某段程序跑飛到此區域后,它將向后運行,停止跳躍。在未使用的EPROM空間中,系統設若干個個陷阱,就能利用它捕捉到跑飛的程序。
(3)安排在表格的最后。為了保護表格與檢索值的對應關系,不能在表格中間隨意安排陷阱,可以在表格的最后安排陷阱。對于比較大的表格,最后的陷阱未必能捕獲到跑飛的程序,在中途它有可能再次跑飛。
(4)安排在程序區。在系統程序區不能隨意設置陷阱,可以利用各模塊之間的空余單元來設置陷阱,避免影響程序的正常運行。當陷阱區捕獲到跑飛的程序,就會拉回它到正確的軌道。陷阱的位置通常設置在正常程序執行不到的區域,故不會影響系統的正常運行。
4 “看門狗”技術
在程序正常運行執行不到的區域安排軟件陷阱,系統一般不會受到影響。但是當系統受到干擾后失控,程序將形成死循環,軟件陷阱和冗余指令無法解決死循環問題,這時通過程序監控技術,強迫程序返回到指定的入口,用出錯處理程序使其正常運行,這種模仿人工監測的技術,又稱為“看門狗”技術。
例如:“看門狗”技術采用8031的定時器T0,除了TO的溢出中斷設為高級,剩下的中斷均設為低級,使用6M的時鐘,用如下的程序使T0定時(約10ms)形成“看門狗”,跑飛的程序無法執行指令,在該時間內將產生T0溢出中斷,系統安排LJMP ERR指令在T0的中斷向量區,轉移到出錯處理程序,來處理各種善后工作。
(1)置TO為16位定時器MOVTMOD,#OIH;
(2)允許T0中斷SETB ETO;
(3)設置T0為高級中斷SETB PT0;
(4)定時約10ms MOV THO,#OEOH;
(5)啟動T0 SETB TRO;
(6)開中斷SETB EA;
5 結束語
工業單片機測控系統在引入了軟件抗干擾技術后,一些棘手的問題就迎刃而解;但是不同的工業現場,環境和干擾源也各不相同。因此要仔細分析現場的干擾現象,不斷的實驗和總結,采取對應的措施,應地制宜,靈活運用,更好的提高系統的穩定性和可靠性。
參考文獻
[1]陳中,陳沖.基于MSP430單片機的控制系統[M]清華大學出版社,2017(06).
[2]陳中,顧春雷.沈翠鳳基于AVR單片機的控制系統設計[M].清華大學出版社,2016(03).
[3]高藝,郭振武.51單片機原理及應用技術[M].化學工業出版社,2016(08).