對(duì)電磁干擾的設(shè)計(jì)我們主要從硬件和軟件方面進(jìn)行設(shè)計(jì)處理,下面就是從單片機(jī)的PCB設(shè)計(jì)到軟件處理方面來(lái)介紹對(duì)電磁兼容性的處理。
一、影響EMC的因數(shù)
1.電壓
電源電壓越高,意味著電壓振幅越大,發(fā)射就更多,而低電源電壓影響敏感度。
2.頻率
高頻產(chǎn)生更多的發(fā)射,周期性信號(hào)產(chǎn)生更多的發(fā)射。在高頻單片機(jī)系統(tǒng)中,當(dāng)器件開(kāi)關(guān)時(shí)產(chǎn)生電流尖峰信號(hào);在模擬系統(tǒng)中,當(dāng)負(fù)載電流變化時(shí)產(chǎn)生電流尖峰信號(hào)。
3.接地
在所有EMC題目中,主要題目是不適當(dāng)?shù)慕拥匾鸬?。有三種信號(hào)接地方法:?jiǎn)吸c(diǎn)、多點(diǎn)和混合。在頻率低于1MHz時(shí),可采用單點(diǎn)接地方法,但不適宜高頻;在高頻應(yīng)用中,最好采用多點(diǎn)接地?;旌辖拥厥堑皖l用單點(diǎn)接地,而高頻用多點(diǎn)接地的方法。地線布局是關(guān)鍵,高頻數(shù)字電路和低電平模擬電路的接地電路盡不能混合。
4.PCB設(shè)計(jì)
適當(dāng)?shù)?u>印刷電路板(PCB)布線對(duì)防止EMI是至關(guān)重要的。
5.電源往耦
當(dāng)器件開(kāi)關(guān)時(shí),在電源線上會(huì)產(chǎn)生瞬態(tài)電流,必須衰減和濾掉這些瞬態(tài)電流。來(lái)自高di/dt源的瞬態(tài)電流導(dǎo)致地和線跡“發(fā)射”電壓,高di/dt產(chǎn)生大范圍的高頻電流,激勵(lì)部件和線纜輻射。流經(jīng)導(dǎo)線的電流變化和電感會(huì)導(dǎo)致壓降,減小電感或電流隨時(shí)間的變化可使該壓降最小。
二、對(duì)干擾措施的硬件處理方法
1.印刷線路板(PCB)的電磁兼容性設(shè)計(jì)
PCB是單片機(jī)系統(tǒng)中電路元件和器件的支撐件,它提供電路元件和器件之間的電氣連接。隨著電子技術(shù)的飛速發(fā)展,PCB的密度越來(lái)越高。PCB設(shè)計(jì)的好壞對(duì)單片機(jī)系統(tǒng)的電磁兼容性影響很大,實(shí)踐證實(shí),即使電路原理圖設(shè)計(jì)正確,印刷電路板設(shè)計(jì)不當(dāng),也會(huì)對(duì)單片機(jī)系統(tǒng)的可靠性產(chǎn)生不利影響。例如,假如印刷電路板的兩條細(xì)平行線靠的很近,會(huì)形成信號(hào)波形的延遲,在傳輸線的終端形成反射噪聲。因此,在設(shè)計(jì)印刷電路板的時(shí)候,應(yīng)留意采用正確的方法,遵守PCB設(shè)計(jì)的一般原則,并應(yīng)符合抗干擾的設(shè)計(jì)要求。要使電子電路獲得最佳性能,元器件的布局及導(dǎo)線的布設(shè)是很重要的。
2.輸入/輸出的電磁兼容性設(shè)計(jì)
在單片機(jī)系統(tǒng)中輸進(jìn)/輸出也是干擾源的傳導(dǎo)線,和接收射頻干擾信號(hào)的拾檢源,我們?cè)O(shè)計(jì)時(shí)一般要采取有效的措施:
①采用必要的共模/差模抑制電路,同時(shí)也要采取一定的濾波和防電磁屏蔽措施以減小干擾的進(jìn)進(jìn)。
②在條件許可的情況下盡可能采取各種隔離措施(如光電隔離或者磁電隔離),從而阻斷干擾的傳播。
3.單片機(jī)復(fù)位電路的設(shè)計(jì)
在的單片機(jī)系統(tǒng)中,看門狗系統(tǒng)對(duì)整個(gè)單片機(jī)的運(yùn)行起著特別重要的作用,由于所有的干擾源不可能全部被隔離或往除,一旦進(jìn)進(jìn)CPU干擾程序的正常運(yùn)行,那么復(fù)位系統(tǒng)結(jié)合軟件處理措施就成了一道有效的糾錯(cuò)防御的屏障了。常用的復(fù)位系統(tǒng)有以下兩種:
①外部復(fù)位系統(tǒng)。外部“看門狗”電路可以自己設(shè)計(jì)也可以用專門的“看門狗”芯片來(lái)搭建。然而,他們各有優(yōu)缺點(diǎn),大部分專用“看門狗”芯片對(duì)低頻“喂狗”信號(hào)不能響應(yīng),而高頻“喂狗”信號(hào)都能響應(yīng),使其在低頻“喂狗”信號(hào)下產(chǎn)生復(fù)位動(dòng)作而在高頻的“喂狗”信號(hào)下不產(chǎn)生復(fù)位動(dòng)作,這樣,假如程序系統(tǒng)陷進(jìn)一個(gè)死循環(huán),而該循環(huán)中恰巧有著“喂狗”信號(hào)的話,那么該復(fù)位電路就無(wú)法實(shí)現(xiàn)它的應(yīng)有的功能了。然而,我們自己可以設(shè)計(jì)一個(gè)具有帶通的“喂狗”電路和其他復(fù)位電路構(gòu)成的系統(tǒng)就是一個(gè)很有效外部監(jiān)控系統(tǒng)了。
②現(xiàn)在越來(lái)越多的單片機(jī)都帶有自己的片上復(fù)位系統(tǒng),這樣用戶就可以很方便的使用其內(nèi)部的復(fù)位定時(shí)器了,但是,有一些型號(hào)的單片機(jī)它的復(fù)位指令太過(guò)于簡(jiǎn)單,這樣也會(huì)存在象上述死循環(huán)那樣的“喂狗”指令,使其失往監(jiān)控作用。有一些單片機(jī)的片上復(fù)位指令就做的比較好,一般他們把“喂狗”信號(hào)做成固定格式的多條指令依順序來(lái)執(zhí)行,假如有一定錯(cuò)誤則該“喂狗”操縱無(wú)效,這樣就大大進(jìn)步了復(fù)位電路的可靠性。
4.振蕩器
大部分的單片機(jī)都有一個(gè)耦合于外部晶體或陶瓷諧振器的振蕩器電路。在PCB上,要求外接是電容、晶體或陶瓷諧振器的引線越短越好。RC振蕩器對(duì)干擾信號(hào)有潛伏的敏感性,它能產(chǎn)生很短的時(shí)鐘周期,因而最好選晶體或陶瓷諧振器。另外,石英晶體的外殼要接地。
5.防雷擊措施
室外使用的單片機(jī)系統(tǒng)或從室外排擠引進(jìn)室內(nèi)的電源線、信號(hào)線,要考慮系統(tǒng)的防雷擊題目。常用的防雷擊器件有:氣體放電管、TVS(Transient Voltage Suppression)等。氣體放電管是當(dāng)電源的電壓大于某一數(shù)值時(shí),通常為數(shù)十V或數(shù)百V,氣體擊穿放電,將電源線上強(qiáng)沖擊脈沖導(dǎo)進(jìn)大地。TVS可以看成兩個(gè)并聯(lián)且方向相反的齊納二極管,當(dāng)兩端電壓高于某一值時(shí)導(dǎo)通。其特點(diǎn)是可以瞬態(tài)通過(guò)數(shù)百乃上千A的電流。
三、對(duì)干擾措施的軟件處理方法
電磁干擾源所產(chǎn)生的干擾信號(hào)在一些特定的情況下(比如在一些電磁環(huán)境比較惡劣的情況下)是無(wú)法完全消除的,終極將會(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),使原來(lái)存儲(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ì)一下幾種情況:
①程序跑飛。
這種情況是最常見(jiàn)的干擾結(jié)果,一般來(lái)說(shuō)有一個(gè)好的復(fù)位系統(tǒng)或軟件幀測(cè)系統(tǒng)即可,對(duì)整個(gè)運(yùn)行系統(tǒng)的不會(huì)產(chǎn)生太大的影響。
②死循環(huán)或不正常程序代碼運(yùn)行。
當(dāng)然這種死循環(huán)和不正常程序代碼并非設(shè)計(jì)職員有意寫(xiě)進(jìn)的,我們知道程序的指令是由字節(jié)組成的,有的是單字節(jié)指令而有的是多字節(jié)指令,當(dāng)干擾產(chǎn)生后使得PC指針發(fā)生變化,從而使原來(lái)的程序代碼發(fā)生了重組產(chǎn)生了不可猜測(cè)的可執(zhí)行的程序代碼,那么,這種錯(cuò)誤是致命的,它會(huì)有可能會(huì)往修改重要的數(shù)據(jù)參數(shù),有可能產(chǎn)生不可猜測(cè)的控制輸出等一系列錯(cuò)誤狀態(tài)。
2.對(duì)重要參數(shù)儲(chǔ)存的措施
一般情況下,我們可以采用錯(cuò)誤檢測(cè)與糾正來(lái)有效地減少或避免這種情況的出現(xiàn)。根據(jù)檢錯(cuò)、糾錯(cuò)的原理,主要思想是在數(shù)據(jù)寫(xiě)進(jìn)時(shí),根據(jù)寫(xiě)進(jìn)的數(shù)據(jù)天生一定位數(shù)的校驗(yàn)碼,與相應(yīng)的數(shù)據(jù)一起保存起來(lái);當(dāng)讀出時(shí),同時(shí)也將校驗(yàn)碼讀出,進(jìn)行判決。假如出現(xiàn)一位錯(cuò)誤則自動(dòng)糾正,將正確的數(shù)據(jù)送出,并同時(shí)將改正以后的數(shù)據(jù)回寫(xiě)覆蓋原來(lái)錯(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)。通過(guò)這樣的設(shè)計(jì),能大大進(jìn)步系統(tǒng)的抗干擾能力,從而進(jìn)步系統(tǒng)的可靠性。
檢錯(cuò)與糾錯(cuò)原理:
首先來(lái)看看檢錯(cuò)和糾錯(cuò)的基本原理。進(jìn)行差錯(cuò)控制的基本思想是在信息碼組中以一定規(guī)則加進(jìn)不同方式的冗余碼,以便在信息讀出的時(shí)候依靠多余的監(jiān)視碼或校碼碼來(lái)發(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)的檢測(cè)
在編制程序時(shí)我們最好是寫(xiě)進(jìn)一些檢測(cè)程序來(lái)測(cè)試RAM和FLASH(ROM)的數(shù)據(jù)代碼,看有無(wú)發(fā)生錯(cuò)誤,一旦發(fā)生要立即糾正,糾正不了的要及時(shí)給出錯(cuò)誤指示,以便用戶往處理。
另外,在編制程序時(shí)加進(jìn)程序冗余是不可缺少的。在一定的地方加進(jìn)三條或三條以上NOP指令對(duì)程序的重組有著很有效防止作用。同時(shí),在程序的運(yùn)行狀態(tài)中要引進(jìn)標(biāo)志數(shù)據(jù)和檢測(cè)狀態(tài),從而及時(shí)發(fā)現(xiàn)和糾正錯(cuò)誤產(chǎn)生。