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