<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          軟件抗干擾筆記

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

          輸入輸出軟件抗干擾措施

          本文引用地址:http://www.ex-cimer.com/article/201611/322014.htm

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

          軟件冗余技術(shù)

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

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

          2、指令冗余

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

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

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

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

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

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

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



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

          評論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();