咨詢電話
ENGLISH0755-88840386發(fā)布時間:2020-12-08 10:46:44 |來源:網(wǎng)絡(luò)轉(zhuǎn)載
軟件的設(shè)計與硬件設(shè)計相比,軟件的設(shè)計顯得比較靈活,所以軟件抗干擾措施沒有固定模式,靈活多樣,并且正在不斷地發(fā)展,各種軟件抗干擾措施,能夠大大地提高儀器儀表的可靠性。特別是軟件濾波技術(shù),它可以使用多個通道共用一個軟件“濾波器”以降低硬件成本。而且能方便的改變?yōu)V波的特性負(fù)在本系統(tǒng)的軟件設(shè)計中,通過采取以軟件抗干擾措施再與必要的硬件抗干擾措施相結(jié)合,使控制器的抗干擾能力和可靠性提高到一個新的水平。下面介紹一些在軟件抗干擾用到的方法。
1指令冗余法從單片機程序飛跑的根源考慮,單片機受到干擾后,往往會把操作數(shù)當(dāng)作指令碼來執(zhí)行,從而引起整個程序的混亂和程序彈飛。如果程序彈飛到某一條單字節(jié)指令上時,就不會發(fā)生將操作數(shù)當(dāng)成指令的錯誤,而能自動納入正軌。當(dāng)彈飛到雙字節(jié)或三字節(jié)指令的操作時,程序?qū)⒗^續(xù)彈飛。因此,在程序中插入幾個單字節(jié)的空操作指令NOP,就可以保護其后面的指令不被拆散而被完整的執(zhí)行。
2軟件陷阱法這種方法的指導(dǎo)思想是指導(dǎo)控制系統(tǒng)中未使用的單元用某一種跳轉(zhuǎn)引導(dǎo)指令填滿,作為軟件“陷阱”,以捕獲“飛掉”的程序,并強行將捕獲的程序引向一個特定的地址,在那時由一段專站處理錯誤的程序進行處理,以恢復(fù)系統(tǒng)的正常運行*為提高以飛程序的捕獲率,通常還要在引導(dǎo)指令前置上幾條空操作作為指令,
3軟件“看門狗”(WatchDog)法WatchDog即定時監(jiān)視器,俗稱“看門
狗",是控制系統(tǒng)普遍采用的一種抗干擾措施。當(dāng)侵入的電磁干擾使系統(tǒng)程序彈飛、進入死循環(huán),或死機時,WatchDog能幫助系統(tǒng)自動恢復(fù)正常運行。WatchDog可以由硬件線路組成,也可以由軟件程序?qū)崿F(xiàn),軟件WatchDog的基本原理是:利用單片機的一個定時器建成定時監(jiān)視器,當(dāng)系統(tǒng)運行正常時,能不斷對監(jiān)視器清零,使其不產(chǎn)生溢出信號。若系統(tǒng)受干擾而失控,監(jiān)視器不能被清零,在達到一定的時間后,監(jiān)視將產(chǎn)生溢出信號’引起系統(tǒng)復(fù)位,或產(chǎn)生中斷使程序轉(zhuǎn)到故障處理程序進行必要的處理,從而自動恢復(fù)正常運行,
4絕對跳轉(zhuǎn)法在子程序和程序塊的連接處填上絕對跳轉(zhuǎn)指令,使任何狀態(tài)轉(zhuǎn)移分支均能回到監(jiān)控液晶程序。
5數(shù)字濾波法對現(xiàn)場信號進行處理,可抑制輸入通道的干擾,數(shù)字濾波對較低頻率的干擾有較強的抑制能力,常用的數(shù)字濾波算法有程序判斷法,中位值濾波,算數(shù)平均濾波,遞推平均濾波,加權(quán)平均濾波“吒一階慣性濾波和復(fù)合濾波等算法。在本系統(tǒng)的設(shè)計中,釆用了遞推平均濾波,遞推平均濾波法是把N個測量數(shù)據(jù)看成一個對付列,隊列的長度固定為N,每進行一次新的測量,把測量結(jié)果放入隊尾,而扔掉原來的隊首的數(shù)據(jù),這樣在對列中始終有N個“最新”的數(shù)據(jù),計算濾波值時只要把對列中的N個數(shù)據(jù)進行算術(shù)平均,就可以算到一個新的平均濾波值,但由于AD7703內(nèi)部自帶數(shù)字濾波器,一般N取得比較小,以提高速度,
6其他編程中注意到的問題
(1)對干擾引起的程序彈飛,如果程序彈飛后落在程序區(qū),才有可能利用指令冗余法來解決問題,如果彈飛后的程序落到了非程序區(qū),就只能用軟件陷井來處理。冗余指令在程序中不宜太多,以免使程序運行速度減慢,一般只在一些對程序流向起關(guān)鍵作用的指令前才加。軟件陷阱多安排在未使用的中斷向量區(qū)、未使用的ROM空白區(qū)、表格區(qū)以及程序中的斷裂點等正常程序執(zhí)行不到的地方,所以不影響程序執(zhí)行速度,在EPROM容量允許的時可多用一些。
(2)如果彈飛的程序落在程序區(qū)后,又未遇到冗余指令,已形成死循環(huán),此時冗余指令和軟件陷阱都無濟于事,系統(tǒng)處于癱瘓狀態(tài)’這時,只有釆用軟件WatchDog方法使系統(tǒng)復(fù)位。但這種方法的缺點是如果失控的程序正好使某些操作數(shù)變形成為修改監(jiān)失時間的指令或禁止了中斷,則軟件WatchDog就失效To因此.軟件WatchDog的可靠性不如硬件高,最好與硬件線路配合使用。
(3)軟件設(shè)計時,應(yīng)把系統(tǒng)正常的開機和采取軟件抗干擾措施而引起的系統(tǒng)復(fù)位區(qū)別開,并作不同的處理。因為正常開機要對RAM進行清零及賦值操作,而其余復(fù)位則不然,否則會造成數(shù)據(jù)丟失。通常的處理方法是在微機內(nèi)部RAM中設(shè)立運行標(biāo)志FLAG-將連續(xù)5個單元設(shè)為AAH,若是正常開機起動,將FLAG全部置為AAH后,執(zhí)行正常啟動程序,若復(fù)位后檢査到FLAG全為AAH則表明是非開機啟動,應(yīng)報警異常處理。
(4)對干擾引起的系統(tǒng)復(fù)位,還必須首先檢査RAM區(qū)內(nèi)有關(guān)數(shù)據(jù)是否遭到破壞,因此,可以在RAM中每隔一定單元置入一些標(biāo)志,這些標(biāo)志在初始化時便設(shè)置好,事故處理程序一開始,便檢査這些標(biāo)志是否正常,如不正常,說明數(shù)據(jù)己被破壞,必須釆取其它方法恢復(fù)后才能正常使用。
本文源于網(wǎng)絡(luò)轉(zhuǎn)載,如有侵權(quán),請聯(lián)系刪除