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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 解決單片機EMC問題的8個方法

          解決單片機EMC問題的8個方法

          作者: 時間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
          本文中所提到的對電磁干擾的設(shè)計我們主要從硬件和軟件方面進行設(shè)計處理,下面就是從單片機PCB設(shè)計到軟件處理方面來介紹對電磁兼容性的處理。

          一、影響EMC的因數(shù)

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

          1、電壓:電源電壓越高,意味著電壓振幅越大,發(fā)射就更多,而低電源電壓影響敏感度。

          2、頻率:高頻產(chǎn)生更多的發(fā)射,周期性信號產(chǎn)生更多的發(fā)射。在高頻單片機系統(tǒng)中,當器件開關(guān)時產(chǎn)生電流尖峰信號;在模擬系統(tǒng)中,當負載電流變化時產(chǎn)生電流尖峰信號。

          3、接地:在所有EMC題目中,主要題目是不適當?shù)慕拥匾鸬?。有三種信號接地方法:單點、多點和混合。在頻率低于1MHz時,可采用單點接地方法,但不適宜高頻;在高頻應用中,最好采用多點接地?;旌辖拥厥堑皖l用單點接地,而高頻用多點接地的方法。地線布局是關(guān)鍵,高頻數(shù)字電路和低電平模擬電路的接地電路盡不能混合。

          4、PCB設(shè)計:適當?shù)挠∷㈦娐钒?PCB)布線對防止EMI是至關(guān)重要的。

          5、電源往耦:當器件開關(guān)時,在電源線上會產(chǎn)生瞬態(tài)電流,必須衰減和濾掉這些瞬態(tài)電流。來自高di/dt源的瞬態(tài)電流導致地和線跡“發(fā)射”電壓,高di/dt產(chǎn)生大范圍的高頻電流,激勵部件和線纜輻射。流經(jīng)導線的電流變化和電感會導致壓降,減小電感或電流隨時間的變化可使該壓降最小。

          二、對干擾措施的硬件處理方法

          1、印刷線路板(PCB)的電磁兼容性設(shè)計

          PCB是單片機系統(tǒng)中電路元件和器件的支撐件,它提供電路元件和器件之間的電氣連接。隨著電子技術(shù)的飛速發(fā)展,PCB的密度越來越高。PCB設(shè)計的好壞對單片機系統(tǒng)的電磁兼容性影響很大,實踐證實,即使電路原理圖設(shè)計正確,印刷電路板設(shè)計不當,也會對單片機系統(tǒng)的可靠性產(chǎn)生不利影響。例如,假如印刷電路板的兩條細平行線靠的很近,會形成信號波形的延遲,在傳輸線的終端形成反射噪聲。因此,在設(shè)計印刷電路板的時候,應留意采用正確的方法,遵守PCB設(shè)計的一般原則,并應符合抗干擾的設(shè)計要求。要使電子電路獲得最佳性能,元器件的布局及導線的布設(shè)是很重要的。

          2、輸入/輸出的電磁兼容性設(shè)計

          在單片機系統(tǒng)中輸進/輸出也是干擾源的傳導線,和接收射頻干擾信號的拾檢源,我們設(shè)計時一般要采取有效的措施:

          ①采用必要的共模/差模抑制電路,同時也要采取一定的濾波和防電磁屏蔽措施以減小干擾的進進。

          ②在條件許可的情況下盡可能采取各種隔離措施(如光電隔離或者磁電隔離),從而阻斷干擾的傳播。

          3、單片機復位電路的設(shè)計

          在單片機系統(tǒng)中,看門狗系統(tǒng)對整個單片機的運行起著特別重要的作用,由于所有的干擾源不可能全部被隔離或往除,一旦進進CPU干擾程序的正常運行,那么復位系統(tǒng)結(jié)合軟件處理措施就成了一道有效的糾錯防御的屏障了。常用的復位系統(tǒng)有以下兩種:

          ①外部復位系統(tǒng)。外部“看門狗”電路可以自己設(shè)計也可以用專門的“看門狗”芯片來搭建。然而,他們各有優(yōu)缺點,大部分專用“看門狗”芯片對低頻“喂狗”信號不能響應,而高頻“喂狗”信號都能響應,使其在低頻“喂狗”信號下產(chǎn)生復位動作而在高頻的“喂狗”信號下不產(chǎn)生復位動作,這樣,假如程序系統(tǒng)陷進一個死循環(huán),而該循環(huán)中恰巧有著“喂狗”信號的話,那么該復位電路就無法實現(xiàn)它的應有的功能了。然而,我們自己可以設(shè)計一個具有帶通的“喂狗”電路和其他復位電路構(gòu)成的系統(tǒng)就是一個很有效外部監(jiān)控系統(tǒng)了。

          ②現(xiàn)在越來越多的單片機都帶有自己的片上復位系統(tǒng),這樣用戶就可以很方便的使用其內(nèi)部的復位定時器了,但是,有一些型號的單片機它的復位指令太過于簡單,這樣也會存在象上述死循環(huán)那樣的“喂狗”指令,使其失往監(jiān)控作用。有一些單片機的片上復位指令就做的比較好,一般他們把“喂狗”信號做成固定格式的多條指令依順序來執(zhí)行,假如有一定錯誤則該“喂狗”操縱無效,這樣就大大進步了復位電路的可靠性。

          4、振蕩器

          大部分的單片機都有一個耦合于外部晶體或陶瓷諧振器的振蕩器電路。在PCB上,要求外接是電容、晶體或陶瓷諧振器的引線越短越好。RC振蕩器對干擾信號有潛伏的敏感性,它能產(chǎn)生很短的時鐘周期,因而最好選晶體或陶瓷諧振器。另外,石英晶體的外殼要接地。

          5、防雷擊措施

          室外使用的單片機系統(tǒng)或從室外排擠引進室內(nèi)的電源線、信號線,要考慮系統(tǒng)的防雷擊題目。常用的防雷擊器件有:氣體放電管、TVS等。氣體放電管是當電源的電壓大于某一數(shù)值時,通常為數(shù)十V或數(shù)百V,氣體擊穿放電,將電源線上強沖擊脈沖導進大地。TVS可以看成兩個并聯(lián)且方向相反的齊納二極管,當兩端電壓高于某一值時導通。其特點是可以瞬態(tài)通過數(shù)百乃上千A的電流。

          三、對干擾措施的軟件處理方法

          電磁干擾源所產(chǎn)生的干擾信號在一些特定的情況下(比如在一些電磁環(huán)境比較惡劣的情況下)是無法完全消除的,終極將會進進CPU處理的的核心單元,這樣在一些大規(guī)模集成電路經(jīng)常會受到干擾,導致不能正常工作或在錯誤狀態(tài)下工作。特別是像RAM這種利用雙穩(wěn)態(tài)進行存儲的器件,往往會在強干擾下發(fā)生翻轉(zhuǎn),使原來存儲的“0”變?yōu)?ldquo;1”,或者“1”變?yōu)?ldquo;0”;一些串行傳輸?shù)臅r序及數(shù)據(jù)會因干擾而發(fā)生改變;更嚴重的會破壞一些重要的數(shù)據(jù)參數(shù)等;造成的后果往往是很嚴重的。在這種情況下軟件設(shè)計的好壞直接影響到整個系統(tǒng)的抗干擾能力的高低。

          程序會由于電磁干擾大致會一下幾種情況:

          ①程序跑飛。這種情況是最常見的干擾結(jié)果,一般來說有一個好的復位系統(tǒng)或軟件幀測系統(tǒng)即可,對整個運行系統(tǒng)的不會產(chǎn)生太大的影響。

          ②死循環(huán)或不正常程序代碼運行。當然這種死循環(huán)和不正常程序代碼并非設(shè)計職員有意寫進的,我們知道程序的指令是由字節(jié)組成的,有的是單字節(jié)指令而有的是多字節(jié)指令,當干擾產(chǎn)生后使得PC指針發(fā)生變化,從而使原來的程序代碼發(fā)生了重組產(chǎn)生了不可猜測的可執(zhí)行的程序代碼,那么,這種錯誤是致命的,它會有可能會往修改重要的數(shù)據(jù)參數(shù),有可能產(chǎn)生不可猜測的控制輸出等一系列錯誤狀態(tài)。



          關(guān)鍵詞: 單片機EMC問

          評論


          技術(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); })();