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