<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 軟件抗干擾技術(shù)及其在單片機上的應(yīng)用

          軟件抗干擾技術(shù)及其在單片機上的應(yīng)用

          作者: 時間:2012-05-30 來源:網(wǎng)絡(luò) 收藏

          1引言

          本文引用地址:http://www.ex-cimer.com/article/148973.htm

          微機測控系統(tǒng)中,對有以下幾個方面的基本要求:

          (1)可維護性:要求盡可能地采用模塊化設(shè)計,程序流程清晰明了,最大限度地控制使用和調(diào)用嵌套次數(shù);

          (2)可理解性:源代碼應(yīng)注意加注提示內(nèi)容,一般應(yīng)不少于整個代碼行數(shù)的60%,使其易于理解和閱讀,便于修改和補充;

          (3)實時性:隨著集合度和運算速度的提高,實時性已經(jīng)成為測試系統(tǒng)對的普遍要求,在工程軟件設(shè)計中,采用匯編語言要比采用高級語言更具有實時性;

          (4)準確性:系統(tǒng)要求在進行大量運算時,要選取合適的算法,以便控制最后結(jié)果的精度;

          (5)可靠性:可靠性是測控軟件最重要的指標之一,他要求兩方面的內(nèi)容:一方面是運行參數(shù)環(huán)境發(fā)生變化時(如電壓在規(guī)定范圍內(nèi)出現(xiàn)較大波動),軟件都能可靠運行并得出正確的結(jié)果,也就是軟件的自適應(yīng)性;另一方面是在工作環(huán)境惡劣,干擾環(huán)境復雜嚴重的情況下,軟件必須保證可靠運行,這對測控軟件尤為重要。為了保證以上兩方面的要求,就必須使用多種

          2軟件及一般方法

          2.1簡介

          軟件是當系統(tǒng)受干擾后,使系統(tǒng)恢復正常運行或輸入信號受干擾后去偽存真的一種輔助方法。此技術(shù)屬于一種被動抗干擾措施,但是由于軟件抗干擾設(shè)計靈活,節(jié)省硬件資源,操作起來方便易行,所以軟件抗干擾技術(shù)越來越受到人們的重視。

          軟件抗干擾技術(shù)主要研究的方面:

          (1)采取軟件的方法對疊加在模擬輸入信號上的噪聲進行抑制,以讀取真正有用的信息,如數(shù)字濾波器;

          (2)在程序受到干擾跑飛的情況下,采取措施使程序回到正常的軌道上來,常見的抗干擾技術(shù)有:軟件攔截技術(shù)(軟件陷阱等);輸人口信號重復檢測方法;輸出口數(shù)據(jù)刷新;數(shù)字濾波;

          (3)程序具有自檢功能。

          2.2軟件攔截技術(shù)

          2.2.1NOP指令使用

          機中最容易受到干擾的是內(nèi)部程序計數(shù)器--PC的值,當受到干擾時,PC值被改變,CPU誤將程序從正確位置跳轉(zhuǎn)到無意義區(qū)域,導致程序運行出錯。

          目前常用的方法是在對程序走向有重要作用的指令(RET,LCALL,SJMP,JC,LJMP,ACALL等)之前加人2~3個單字節(jié)的NOP指令,當失控的程序遇到該指令后得到調(diào)整,使接下來的程序得以正常執(zhí)行。從實際使用過程中總結(jié)可知,應(yīng)盡量多的使用NOP指令,而且發(fā)現(xiàn)NOP指令成對使用時,能起到比較滿意的抗干擾效果。

          2.2.2軟件陷阱

          (1)未使用的中斷區(qū)

          對于未使用的中斷源因干擾而開放,從而直接影響軟件的正常工作的中斷源,采用的方法一般是在對應(yīng)的中斷服務(wù)地址入口處設(shè)置軟件陷阱,使其跳轉(zhuǎn)到程序入口,通常的軟件陷阱設(shè)置如下面的程序:0RG0003H

          LJMP0000H;主程序入口

          而在實際使用中,此種處理方法并不合適,特別是在系統(tǒng)聯(lián)試中,突然重新執(zhí)行程序的情況應(yīng)盡量避免。實際處理應(yīng)該是讓其進入一個信息處理程序,并顯示相關(guān)信息。這樣做既可以使程序捕捉到錯誤的中斷后,及時離開,又可以根據(jù)相關(guān)信息快速定位便于試驗順利進行。

          如程序所示,只有定時器T0中斷開放,對于可能影響程序的中斷,如外部中斷、定時器T1中斷,在其中斷地址人口,均加上了軟件陷阱,使其跳轉(zhuǎn)到ER38這個故障處理程序,從而避免程序的跑飛,也便于判斷程序的走向。

          (2)未使用的EPROM空間

          當裝載軟件程序的存儲芯片為27C64,其地址空間為0000H~1FFFFH,一般程序很少能夠用完,可填充FF。而FFH是MOVR7,A的機器碼,當程序亂入非程序區(qū)后,不僅無法轉(zhuǎn)入正軌,而且還會破壞R7的內(nèi)容,因此在實際使用過程對未使用的EPROM空間應(yīng)全部填充為0,因為程序復位入口地址為0000H,當跑飛的程序指針跳至無程序處,可以讓其重新指向主程序入口,可以起到防跑飛的功能。

          (3)程序區(qū)

          為了保證可靠的運行,以及一旦發(fā)生跑飛,不但使其有出口而且便于判斷,實際中在整個程序中設(shè)置了若干軟件陷阱,當程序進入陷阱后,讓其強制進入一個指定地址執(zhí)行一段專門對程序出錯進行處理的程序。通過試驗驗證和使用中的經(jīng)驗總結(jié),在外場軟件編寫中,軟件陷阱的設(shè)置,主要是在正常的程序流程中,在認為較為重要的程序段中,隨機設(shè)置若干個故障信息顯示程序區(qū),一方面是完成正常的故障信息的顯示,另一方面就是在程序跑飛的情況下,通過故障信息的顯示,可以快速判斷跑飛',的程序段,從而使程序步入正軌。程序流程如圖1所示。

          2.2.3輸入口信號重復檢測方法

          對于重要開關(guān)量輸入信號的檢測,實際中一般采用3次或5次重復檢測的方法,即對接口中的輸人數(shù)據(jù)信息進行重復進行3次或5次檢測,若結(jié)果完全一致則認為是真的輸入信號,若多次測試結(jié)果不一致,即可以停止檢測顯示故障信息,又可以重復進行再檢測。

          對于軟件測量而言,輸入量干擾大多數(shù)是疊加到有效信號上的一系列作用時間短的尖脈沖,但是頻率不一致,因此應(yīng)在相鄰的檢測之間應(yīng)有一定的時間間隔。理論上可以是等時間段的,而在實際使用過程中,由于外部環(huán)境比較復雜,等時間段只能濾除某個頻段的干擾,為了濾除盡可能多的干擾,間隔時間應(yīng)為不等的時間段,但是對數(shù)據(jù)影響較大的尖峰,通過觀察其波形可知,其作用的時間寬度在幾十到幾百μs之間,所以把濾波時間限定ms級上。在經(jīng)過使用和驗證,此方法可以有效地保證軟件可靠運行。需要注意的是,對于軟件時序要求比較嚴格場合,延時查詢時間不宜過長,查詢次數(shù)一般以3次為宜。

          程序流程如圖2所示。

          2.2.4輸出端口數(shù)據(jù)刷新

          開關(guān)量輸出軟件抗干擾技術(shù)主要采用的方法是重復輸出,這是提高輸出端口穩(wěn)定性的有效措施之一。外場設(shè)備的微機系統(tǒng)為51機系統(tǒng),采用了8155,8255可編程I/O擴展芯片,理論上只在上電啟動時,進行初始化一次即可。但是在實際使用中發(fā)現(xiàn),由于干擾等原因,可使芯片的工作控制字遭到破壞,從而使系統(tǒng)輸入輸出狀態(tài)混亂的情況時有發(fā)生,因此,在讀取重要信號之前,先對8155,8255進行初始化操作,通過一段時間軟件運行,穩(wěn)定度大大提高,但是狀態(tài)混亂情況仍有發(fā)生,經(jīng)過分析數(shù)據(jù)特點和系統(tǒng)要求后,認為8155、8255允許多次設(shè)置狀態(tài)字、控制字等,而且對系統(tǒng)并無不良影響。因此,在實際應(yīng)用中,用到8255和8155之前均首先進行初始化操作,然后再進行狀態(tài)的讀取和寫入。通過長時間試驗和聯(lián)試,不再出現(xiàn)此類問題,軟件運行穩(wěn)定可靠。另外應(yīng)注意,在重復設(shè)置8255,8155芯片時,一定要將其工作方式、控制字一起設(shè)置,方可確保軟件可靠工作。程序流程如圖3所示。

          2.2.5數(shù)字濾波

          為了克服干擾對A/D轉(zhuǎn)換結(jié)果的影響,可根據(jù)情況采取相應(yīng)的數(shù)字濾波技術(shù)。數(shù)字濾波的方法很多,如有中值濾波法、平均值濾波法等,經(jīng)過對不同濾波法的實際使用和試驗驗證,認為采用防脈沖干擾平均值濾波法,抗干擾效果比較明顯。

          普通的平均值濾波,在干擾十分嚴重的場合,所得到的平均值中干擾的成分仍比較大,不易消除由于脈沖干擾而引起的誤差。而防脈沖干擾平均值濾波是在采集的N個數(shù)據(jù)中,去掉數(shù)據(jù)中的最大值和最小值,然后計算N-2個數(shù)據(jù)的算術(shù)平均值。在實際應(yīng)用中,此法主要是用在AD值的檢測上,由于外場設(shè)備中AD采集值判定,直接影響此設(shè)備能否投入使用,所以對所采AD值的可靠性要求高,采用此濾波法后,通過仿真可以清楚看出,在某些特定

          的情況下,AD采集值波動較大,但此法可以有效地避免了CPU對采集值的誤判,使軟件得以可靠運行。

          程序流程如圖4所示,此程序完成的主要功能是調(diào)用A/D測量輸入子程序ACD,將循環(huán)采集的6個AD值,放在70H至75H的寄存器中,RO為記錄采集次數(shù),70H和75H分別放置最大值和最小值,去除最大值和最小值后,將其余4個值求算術(shù)平均數(shù),以得到的值為最終AD采集值放在68H寄存器中。

          2.2.6程序自檢

          程序自檢是提高測控軟件可靠性的有效方法之一。在實際應(yīng)用中,自檢程序主要是對機系統(tǒng)的主要器件如8031的I/O口、外部擴展的可編程I/O接VI芯片、A/D器件、ROM器件等進行檢測,如出現(xiàn)故障能夠給出故障部位。因此自檢程序不但可以了解與測試相關(guān)外設(shè)的工作情況,而且可避免因外設(shè)原因而使測控系統(tǒng)不能正常工作的干擾。

          3結(jié)語

          在采取以上所述的多種軟件抗干擾技術(shù),經(jīng)過外場的沙塵、云雪的考驗和干擾復雜、嚴重的環(huán)境下驗證,完全可以保證軟件可靠運行。但是同時需要說明的是,軟件抗干擾技術(shù)只是被動的方式,只有在硬件沒計合理的情況下,使用適當?shù)目垢蓴_技術(shù),才能更有效地保證軟件可靠地工作。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();