|
DSP軟件方面的電磁干擾主要表現(xiàn)在以下幾個方面:(1)不正確的算法產(chǎn)生錯誤的結(jié)果,最主要的原因是由于計算機處理器中的程序指數(shù)運算是近似計算,產(chǎn)生的結(jié)果有時有較大的誤差,容易產(chǎn)生誤動作;(2)由于計算機的精度不高,而加減法運算時要對階,大數(shù)“吃掉”了小數(shù),產(chǎn)生了誤差積累,導(dǎo)致下溢的出現(xiàn),也是噪聲的來源之一;(3)由于硬件方面的干擾引起的計算機出現(xiàn)的諸如:程序計數(shù)器PC值變化、數(shù)據(jù)采集誤差增大、控制狀態(tài)失靈、RAM數(shù)據(jù)受干擾發(fā)生變化以及系統(tǒng)出現(xiàn)“死鎖”等現(xiàn)象。
1. 采用攔截失控程序的方法
(1)在程序設(shè)計時應(yīng)多采用單字節(jié)指令,并在關(guān)鍵處插入一些空操作指令,或?qū)⒂行巫止?jié)指令重復(fù)幾次,這樣可保護其后的指令不被拆散,使程序運行走上正軌;(2)加入軟件陷阱:當(dāng)PC值失控使程序失控后,CPU進入非程序區(qū),這時可用一條引導(dǎo)指令,強迫程序進入初始入口狀態(tài),進入程序區(qū),可每隔一段設(shè)置一個陷阱;(3)軟件復(fù)位:當(dāng)程序“走飛”時,運行監(jiān)視系統(tǒng),使系統(tǒng)自動復(fù)位而重新初始化。
2. 設(shè)立標(biāo)志判斷
定義某單元為標(biāo)志,在模塊主程序中把該單元的值設(shè)為某個特征值,然后在主程序的最后判斷該單元的值是否不變,若不同了則說明有誤,程序就轉(zhuǎn)入錯誤處理子程序。
3. 增加數(shù)據(jù)安全備份
重要的數(shù)據(jù)用兩個以上的存儲區(qū)存放,還可以用大容量的外部RAM,將數(shù)據(jù)作備份。永久性數(shù)據(jù)制成表格固化在EPROM中,這樣既能防止數(shù)據(jù)和表格遭破壞,又能保證程序邏輯混亂時不將數(shù)據(jù)當(dāng)指令去運行。
|
|