基于單片機測控系統(tǒng)中的抗干擾技術(shù)
7 軟件抗干擾措施
a) 數(shù)字濾波技術(shù)
通常使用的方法有:算術(shù)平均法、中值法、抑制脈沖算術(shù)平均法、一階慣性濾波法、程序判斷濾波法和遞推平均濾波法等。
b) 軟件冗余
對于條件控制系統(tǒng),對控制條件的一次采樣、處理控制輸出改為多采樣、處理控制輸出??捎行У叵既桓蓴_。
c) 設(shè)置軟件陷阱
當(dāng)由于干擾使操作系統(tǒng)失控而進入非程序區(qū)時,用引導(dǎo)指令強行將捕獲到的亂飛程序引向復(fù)位入口地址,在此處將程序轉(zhuǎn)向?qū)iT對程序出錯進行處理的程序,使程序納入正軌。
d) 重要指令冗余
對程序流向起決定作用的指令(如RET、RETI、LCALL、JZ、JC、JNC等)和某些對系統(tǒng)工作狀態(tài)起重要作用的指令(如SETB、EA等)的后面,可重復(fù)寫上這些指令,以確保這些指令的正確執(zhí)行。
e) “看門狗”技術(shù)
PC受到干擾而失控,引起程序亂飛,也可能使程序進入“死循環(huán)”。指令冗余技術(shù)、軟件陷阱技術(shù)不能使失控的程序擺脫“死循環(huán)”的困境,通常采用程序監(jiān)視技術(shù),又稱“看門狗”技術(shù)(Watchdog),“看門狗”技術(shù)就是不斷監(jiān)視程序循環(huán)運行時間,若發(fā)現(xiàn)時間超過已知的循環(huán)設(shè)定時間,則認為系統(tǒng)陷入了“死循環(huán)”,然后強迫程序返回到0000H入口,在0000H處安排一段出錯處理程序,使系統(tǒng)運行納入正軌。在設(shè)計看門狗時可設(shè)計兩個定時器,一個為短定時器,一個為長定時器,并各自獨立,短定時器像典型看門狗一樣工作,它保證一般情況下看門狗有快的反映速度,長定時器的定時大于CPU執(zhí)行一個主循環(huán)程序的時間,用來防止看門狗失效。
f) 數(shù)據(jù)的保護與恢復(fù)技術(shù)
在編寫程序的過程中,對于由指令改變結(jié)果性質(zhì)的數(shù)據(jù),可以考慮在每次改變后都盡可能地保護起來,以便必要時恢復(fù)。有時計算機在強制復(fù)位后,I/O端口和特殊寄存器SFR中的內(nèi)容都將變成芯片出廠時的設(shè)定值,這很有可能引起系統(tǒng)的運行混亂。因此單片機在重新啟動后,應(yīng)當(dāng)首先執(zhí)行數(shù)據(jù)恢復(fù)程序,把控制端口等重要寄存器被保護的內(nèi)容恢復(fù)還原。
g) NOP的使用
在雙字節(jié)和3字節(jié)指令之后插入兩個單字節(jié)NOP指令,這可保證指令不被拆散。因為“亂飛”的程序即使落到操作數(shù)上,由于兩個空操作指令NOP的存在,不會將其后的指令當(dāng)操作數(shù)執(zhí)行,從而使程序納入正軌。
評論