軟件抗干擾技術是指當系統受干擾后,使系統恢復正常運行或輸入信號受干擾后去偽存真的一種輔助方法。
輸入輸出軟件抗干擾措施
1、開關量(數字量)信號輸入抗干擾措施
軟件冗余技術
1、數據冗余
數據冗余就是將要保護的原始數據在另外兩個區域同時存放,建立兩個備份,當原始數據塊被破壞時,用備份數據塊去修復。備份數據的存放地址應遠離原始的存放地址以免被同時破壞。數據區也不要靠近棧區,以防止萬一堆棧溢出而沖掉數據。
2、指令冗余
當CPU受到干擾后,往往將一些操作數當作指令碼來執行,引起程序混亂。當程序彈飛到某一單字節指令上時,便自動納入正軌。當彈飛到某一雙字節指令上時,有可能落到其操作數上,從而繼續出錯。當程序彈飛到三字節指令上時,因它有兩個操作數,繼續出錯的機會更大,因此,我們應多采用單字節指令,并在關鍵的地方人為地插入一些單字節指令(NOP)或將有效單字節指令重復書寫,這便是指令冗余。
程序運行失常的軟件抗干擾
1、設置軟件陷阱
當干擾導致程序計數器PC值混亂時,可能造成CPU離開正確的指令順序而跑飛到非程序區去執行一些無意義地址中的內容,或進入數據區,把數據當作操作碼來執行,使整個工作紊亂,系統失控。針對這種情況,可以在非程序區設置陷阱,一旦程序飛到非程序區,很快進入陷阱,然后強迫程序由陷阱進入初始狀態。
所謂軟件陷阱,就是一條引導指令,強行將捕獲的程序引向一個指定的地址,在那里有一段專門對程序出錯處理的程序。軟件陷阱安排在以下4種地方:(1)未使用的中斷向量區;2)未使用的大片ROM空間;3)表格;4)程序區。
2、設置監視跟蹤定時器
也稱為看門狗定時器(Watchdog),可以使陷入“死機”的系統產生復位,重新啟動程序運行。在程序運行的每個循環周期內,對定時器重新初始化。如果程序運行失常,跑飛或進入局部死循環,不能按正常循環路線運行,則看門狗定時器得不到及時的初始化而使定時時間到,引起復位。
|