新聞中心

軟件抗干擾筆記

作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
軟件抗干擾技術(shù)是指當(dāng)系統(tǒng)受干擾后,使系統(tǒng)恢復(fù)正常運(yùn)行或輸入信號(hào)受干擾后去偽存真的一種輔助方法。

輸入輸出軟件抗干擾措施

本文引用地址:http://butianyuan.cn/article/201611/322014.htm

1、開關(guān)量(數(shù)字量)信號(hào)輸入抗干擾措施

軟件冗余技術(shù)

1、數(shù)據(jù)冗余

數(shù)據(jù)冗余就是將要保護(hù)的原始數(shù)據(jù)在另外兩個(gè)區(qū)域同時(shí)存放,建立兩個(gè)備份,當(dāng)原始數(shù)據(jù)塊被破壞時(shí),用備份數(shù)據(jù)塊去修復(fù)。備份數(shù)據(jù)的存放地址應(yīng)遠(yuǎn)離原始的存放地址以免被同時(shí)破壞。數(shù)據(jù)區(qū)也不要靠近棧區(qū),以防止萬一堆棧溢出而沖掉數(shù)據(jù)。

2、指令冗余

當(dāng)CPU受到干擾后,往往將一些操作數(shù)當(dāng)作指令碼來執(zhí)行,引起程序混亂。當(dāng)程序彈飛到某一單字節(jié)指令上時(shí),便自動(dòng)納入正軌。當(dāng)彈飛到某一雙字節(jié)指令上時(shí),有可能落到其操作數(shù)上,從而繼續(xù)出錯(cuò)。當(dāng)程序彈飛到三字節(jié)指令上時(shí),因它有兩個(gè)操作數(shù),繼續(xù)出錯(cuò)的機(jī)會(huì)更大,因此,我們應(yīng)多采用單字節(jié)指令,并在關(guān)鍵的地方人為地插入一些單字節(jié)指令(NOP)或?qū)⒂行巫止?jié)指令重復(fù)書寫,這便是指令冗余。

程序運(yùn)行失常的軟件抗干擾

1、設(shè)置軟件陷阱

當(dāng)干擾導(dǎo)致程序計(jì)數(shù)器PC值混亂時(shí),可能造成CPU離開正確的指令順序而跑飛到非程序區(qū)去執(zhí)行一些無意義地址中的內(nèi)容,或進(jìn)入數(shù)據(jù)區(qū),把數(shù)據(jù)當(dāng)作操作碼來執(zhí)行,使整個(gè)工作紊亂,系統(tǒng)失控。針對(duì)這種情況,可以在非程序區(qū)設(shè)置陷阱,一旦程序飛到非程序區(qū),很快進(jìn)入陷阱,然后強(qiáng)迫程序由陷阱進(jìn)入初始狀態(tài)。

所謂軟件陷阱,就是一條引導(dǎo)指令,強(qiáng)行將捕獲的程序引向一個(gè)指定的地址,在那里有一段專門對(duì)程序出錯(cuò)處理的程序。軟件陷阱安排在以下4種地方:(1)未使用的中斷向量區(qū);2)未使用的大片ROM空間;3)表格;4)程序區(qū)。

2、設(shè)置監(jiān)視跟蹤定時(shí)器

也稱為看門狗定時(shí)器(Watchdog),可以使陷入“死機(jī)”的系統(tǒng)產(chǎn)生復(fù)位,重新啟動(dòng)程序運(yùn)行。在程序運(yùn)行的每個(gè)循環(huán)周期內(nèi),對(duì)定時(shí)器重新初始化。如果程序運(yùn)行失常,跑飛或進(jìn)入局部死循環(huán),不能按正常循環(huán)路線運(yùn)行,則看門狗定時(shí)器得不到及時(shí)的初始化而使定時(shí)時(shí)間到,引起復(fù)位。



關(guān)鍵詞: 軟件抗干擾輔助方

評(píng)論


技術(shù)專區(qū)

關(guān)閉