單片機(jī)設(shè)計(jì)過程中如何擺脫電磁干擾?
三、對(duì)干擾措施的軟件處理方法
本文引用地址:http://2s4d.com/article/279902.htm電磁干擾源所產(chǎn)生的干擾信號(hào)在一些特定的情況下(比如在一些電磁環(huán)境比較惡劣的情況下)是無法完全消除的,終極將會(huì)進(jìn)進(jìn)CPU處理的的核心單元,這樣在一些大規(guī)模集成電路經(jīng)常會(huì)受到干擾,導(dǎo)致不能正常工作或在錯(cuò)誤狀態(tài)下工作。特別是像RAM這種利用雙穩(wěn)態(tài)進(jìn)行存儲(chǔ)的器件,往往會(huì)在強(qiáng)干擾下發(fā)生翻轉(zhuǎn),使原來存儲(chǔ)的“0”變?yōu)?ldquo;1”,或者“1”變?yōu)?/p>
“0”;一些串行傳輸?shù)臅r(shí)序及數(shù)據(jù)會(huì)因干擾而發(fā)生改變;更嚴(yán)重的會(huì)破壞一些重要的數(shù)據(jù)參數(shù)等;造成的后果往往是很嚴(yán)重的。在這種情況下軟件設(shè)計(jì)的好壞直接影響到整個(gè)系統(tǒng)的抗干擾能力的高低。
1.程序會(huì)由于電磁干擾大致會(huì)一下幾種情況:
?、俪绦蚺茱w。
這種情況是最常見的干擾結(jié)果,一般來說有一個(gè)好的復(fù)位系統(tǒng)或軟件幀測系統(tǒng)即可,對(duì)整個(gè)運(yùn)行系統(tǒng)的不會(huì)產(chǎn)生太大的影響。
②死循環(huán)或不正常程序代碼運(yùn)行。
當(dāng)然這種死循環(huán)和不正常程序代碼并非設(shè)計(jì)職員有意寫進(jìn)的,我們知道程序的指令是由字節(jié)組成的,有的是單字節(jié)指令而有的是多字節(jié)指令,當(dāng)干擾產(chǎn)生后使得PC指針發(fā)生變化,從而使原來的程序代碼發(fā)生了重組產(chǎn)生了不可猜測的可執(zhí)行的程序代碼,那么,這種錯(cuò)誤是致命的,它會(huì)有可能會(huì)往修改重要的數(shù)據(jù)參數(shù),有可能產(chǎn)生不可猜測的控制輸出等一系列錯(cuò)誤狀態(tài)。
2.對(duì)重要參數(shù)儲(chǔ)存的措施
一般情況下,我們可以采用錯(cuò)誤檢測與糾正來有效地減少或避免這種情況的出現(xiàn)。根據(jù)檢錯(cuò)、糾錯(cuò)的原理,主要思想是在數(shù)據(jù)寫進(jìn)時(shí),根據(jù)寫進(jìn)的數(shù)據(jù)天生一定位數(shù)的校驗(yàn)碼,與相應(yīng)的數(shù)據(jù)一起保存起來;當(dāng)讀出時(shí),同時(shí)也將校驗(yàn)碼讀出,進(jìn)行判決。假如出現(xiàn)一位錯(cuò)誤則自動(dòng)糾正,將正確的數(shù)據(jù)送出,并同時(shí)將改正以后的數(shù)據(jù)回寫覆蓋原來錯(cuò)誤的數(shù)據(jù);假如出現(xiàn)兩位錯(cuò)誤則產(chǎn)生中斷報(bào)告,通知CPU進(jìn)行異常處理。所有這一切動(dòng)作都是靠軟件設(shè)計(jì)自動(dòng)完成的,具有實(shí)時(shí)性和自動(dòng)完成的特點(diǎn)。通過這樣的設(shè)計(jì),能大大進(jìn)步系統(tǒng)的抗干擾能力,從而進(jìn)步系統(tǒng)的可靠性。
檢錯(cuò)與糾錯(cuò)原理:
首先來看看檢錯(cuò)和糾錯(cuò)的基本原理。進(jìn)行差錯(cuò)控制的基本思想是在信息碼組中以一定規(guī)則加進(jìn)不同方式的冗余碼,以便在信息讀出的時(shí)候依靠多余的監(jiān)視碼或校碼碼來發(fā)現(xiàn)或自動(dòng)糾正錯(cuò)誤。
針對(duì)誤碼發(fā)生的特點(diǎn),即錯(cuò)誤發(fā)生的隨機(jī)性和小概任性,它幾乎總是隨機(jī)地影響某個(gè)字節(jié)中的某一位(bit),因此,假如能夠設(shè)計(jì)自動(dòng)糾正一位錯(cuò)誤,而檢查兩位錯(cuò)誤的編碼方式。就可以大大進(jìn)步系統(tǒng)的可靠性。
3.對(duì)RAM和FLASH(ROM)的檢測
在編制程序時(shí)我們最好是寫進(jìn)一些檢測程序來測試RAM和FLASH(ROM)的數(shù)據(jù)代碼,看有無發(fā)生錯(cuò)誤,一旦發(fā)生要立即糾正,糾正不了的要及時(shí)給出錯(cuò)誤指示,以便用戶往處理。
另外,在編制程序時(shí)加進(jìn)程序冗余是不可缺少的。在一定的地方加進(jìn)三條或三條以上NOP指令對(duì)程序的重組有著很有效防止作用。同時(shí),在程序的運(yùn)行狀態(tài)中要引進(jìn)標(biāo)志數(shù)據(jù)和檢測狀態(tài),從而及時(shí)發(fā)現(xiàn)和糾正錯(cuò)誤產(chǎn)生。
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
評(píng)論