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