綜述單片機(jī)應(yīng)用系統(tǒng)的抗干擾設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 概述
在進(jìn)行單片機(jī)應(yīng)用產(chǎn)品的開發(fā)過程中,我們經(jīng)常會碰到一個(gè)很棘手的問題,即在實(shí)驗(yàn)室環(huán)境下系統(tǒng)運(yùn)行很正常,但小批量生產(chǎn)并安裝在工作現(xiàn)場后,卻出現(xiàn)一些不太規(guī)律、不太正常的現(xiàn)象。究其原因主要是系統(tǒng)的抗干擾設(shè)計(jì)不全面,導(dǎo)致應(yīng)用系統(tǒng)的工作不可靠。本文主要分析單片機(jī)應(yīng)用系統(tǒng)出錯(cuò)的起因,并結(jié)合自己的工作經(jīng)驗(yàn),探討一些解決的辦法。
2 單片機(jī)應(yīng)用系統(tǒng)出錯(cuò)的主要現(xiàn)象和原因
2.1 單片機(jī)應(yīng)用系統(tǒng)出錯(cuò)的主要現(xiàn)象和內(nèi)因
大量的電源和磁場干擾,會造成以下各種系統(tǒng)內(nèi)部出錯(cuò)。表1列出了單片機(jī)應(yīng)用系統(tǒng)出 錯(cuò)的主要現(xiàn)象和內(nèi)部原因。
2.2 單片機(jī)應(yīng)用系統(tǒng)出錯(cuò)的外部原因
從設(shè)計(jì)和制造的角度來看,造成應(yīng)用系統(tǒng)容易受干擾的主要原因是:
(1)系統(tǒng)電源的抗干擾能力差或功率不足;
(2)程序沒有采取抗干擾措施或措施不力;
(3)器件間驅(qū)動(dòng)功率不足,處在較臨界狀態(tài);
(4)遠(yuǎn)距離數(shù)據(jù)傳輸?shù)碾娫?、電壓偏低?br />
(5)沒有采取屏蔽保護(hù);
(6)元件質(zhì)量低。
針對以上出現(xiàn)的問題,我們分別從硬件和軟件兩個(gè)方面來探討一些提高單片機(jī)應(yīng)用系統(tǒng) 抗干擾能力的方法。
3 單片機(jī)應(yīng)用系統(tǒng)的硬件抗干擾設(shè)計(jì)
3.1 選擇時(shí)鐘頻率低的單片機(jī)
外時(shí)鐘是高頻的噪聲源,除能引起對本應(yīng)用系統(tǒng)的干擾之外,還可能產(chǎn)生對外界的干擾,使電磁兼容檢測不能達(dá)標(biāo)。在對系統(tǒng)可靠性要求很高的應(yīng)用系統(tǒng)中,選用頻率低的單片機(jī)是降低系統(tǒng)噪聲的原則之一。以8051單片機(jī)為例,最短指令周期1μs時(shí),外時(shí)鐘是12MHz。而同樣速度的Motorola單片機(jī)系統(tǒng)時(shí)鐘只需4MHz,更適合用于工控系統(tǒng)。
3.2 電源
(1)若系統(tǒng)空間允許的話,可使用現(xiàn)成的微電腦開關(guān)電源,它有4組輸出,分別為+5V(18 A~25A)、-5V(0.5A)、+12V(6A~10A)、-12V(0.5A)。如果一個(gè)功率不夠,可用多個(gè)分塊供電,主機(jī)最好單獨(dú)使用一個(gè)。電源的功率充足,就能減少電源本身所產(chǎn)生的紋波及諧波干 擾。這是解決電源干擾和電源功率不足的最好方法;
(2)采用開關(guān)電源設(shè)計(jì);
(3)主機(jī)部分采用單獨(dú)的穩(wěn)壓電路,一片7805穩(wěn)壓塊,加上較好的濾波電路;外圍電路 采用另外的電源供電。
3.3 提高輸出信號的電源或電壓
如果輸入、輸出連接線路超過80cm,最好提高傳送的電壓或電流,以減少信號的衰減和 受干擾而造成的信號失真。簡單的方法可在傳送端加一個(gè)1488,將電平提高到12V;接收端加一個(gè)1489,將電平回復(fù)到5V。
3.4 輸入、輸出隔離
輸入、輸出信號可加光電耦合器隔離,防止 外圍器件動(dòng)作時(shí)產(chǎn)生的回流沖擊系統(tǒng)電路。
3.5 注意器件的驅(qū)動(dòng)能力
一般1個(gè)TTL可推動(dòng)8個(gè)TTL或10多個(gè)CMOS,而一個(gè)CMOS可推動(dòng)1~2個(gè)TTL或20多個(gè)CMOS。如果輸出負(fù)載過重,會降低輸出電平,使電平處于或低于被驅(qū)動(dòng)器件的輸入門檻電平(TTL:高為2.4V,低為0.4V;CMOS;高為4.5V,低為1.4V),從而造成系統(tǒng)不穩(wěn)定。
3.6 采取屏蔽保護(hù)
屏蔽可用來隔離空間輻射。對噪聲特別大的部件(如開關(guān)電源),用金屬盒罩起來,可減 少噪聲源對單片機(jī)的干擾。對容易受干擾的部分,可加設(shè)屏蔽金屬罩并接地,使干擾磁信號 被短路接地。
3.7 注意印制電路板的布線與工藝
印制電路板的設(shè)計(jì)對單片機(jī)系統(tǒng)能否抗干擾非常重要。要本著盡量控制噪聲源,盡量減 小噪聲的傳播與耦合,盡量減小噪聲的吸收這三大原則設(shè)計(jì)印制電路板和布線。
(1)印制電路板要合理分區(qū)。單片機(jī)應(yīng)用系統(tǒng)通常可分三區(qū),即模擬電路區(qū)(怕干擾)、 數(shù)字電路區(qū)(既怕干擾、又產(chǎn)生干擾)、功率驅(qū)動(dòng)區(qū)(干擾源)。
(2)印制電路板要按單點(diǎn)接電源、單點(diǎn)接地的原則送電。三個(gè)區(qū)域的電源線、地線由該 點(diǎn)分三路引出。噪聲元件與非噪聲元件要離得遠(yuǎn)一些。
(3)時(shí)鐘振蕩電路、特殊高速邏輯電路部分用地線圈起來,讓周圍電場趨近于零。
(4)使用滿足系統(tǒng)要求的最低頻率的時(shí)鐘,時(shí)鐘產(chǎn)生器要盡量靠近用到該時(shí)鐘的器件。 石英晶體振蕩器外殼要接地,時(shí)鐘線盡量短,且在石英晶體振蕩器下面要加大接地的面積而 不應(yīng)該走其它信號線。
(5)I/O驅(qū)動(dòng)器件、功率放大器件盡量靠近印制板的邊、靠近引出接插件。
(6)在單面板、雙面板設(shè)計(jì)中,地線、電源線要盡量粗。信號線的過孔要盡量少。
(7)四層板比雙面板噪聲低20dB,六層板比四層板噪聲低10dB。經(jīng)濟(jì)條件允許時(shí)盡量用 多層板。
(8)使用45°的折線布線,不要使用90°折線,以減小高頻信號的發(fā)射。
(9)重要的信號線盡量短并要盡量粗,并在兩側(cè)加上保護(hù)地。將信號通過扁平電纜引出 時(shí),要使用地線-信號-地線……的結(jié)構(gòu)。
(10)時(shí)鐘線垂直于I/O線比平行于I/O線干擾小,時(shí)鐘線要遠(yuǎn)離I/O線。
(11)對A/D類器件,數(shù)字部分與模擬部分寧可繞一下也不要交叉。噪聲敏感線不要與高 速線、大電流線平行。
(12)每個(gè)IC元件要加一個(gè)去耦電容,布線時(shí)去耦電容要真正接在芯片的電源、地上。要 選高頻特性好的獨(dú)石電容或瓷片電容作去耦電容。去耦電容焊在印制電路板上時(shí),引腳要盡 量短。
(13)從高噪聲區(qū)來的信號要加濾波。繼電器線圈處要加放電二極管。可以用串一個(gè)電阻 的辦法來軟化I/O線的跳變沿或提供一定的阻尼。
(14)閑置不用的門電路輸入端不要懸空。閑置不用的運(yùn)算放大器正輸入端接地,負(fù)輸入 端接輸出。單片機(jī)不用的I/O口定義成輸出。單片機(jī)上有一個(gè)以上電源、地端的,每端都要 接上,不要懸空。
(15)盡量不要使用IC插座,把IC直接焊在印制板上,IC插座有較大的分布電容。
3.8 選擇良好的元件
現(xiàn)在市場上出售的元件,很多是可用但性能不佳,甚至有些是器件廠經(jīng)測試認(rèn)為不合格 的產(chǎn)品。這些元件極易受干擾,只能在很好的環(huán)境(指電源穩(wěn)定、沒有磁干擾)下工作。因此 在選購元件時(shí),特別是單片機(jī)、晶振、RAM等,最好選購一級品。
4 單片機(jī)應(yīng)用系統(tǒng)的軟件抗干擾設(shè)計(jì)
單片機(jī)應(yīng)用系統(tǒng)的抗干擾不可能完全依靠硬件解決,軟件抗干擾設(shè)計(jì)也是防止和消除整 個(gè)應(yīng)用系統(tǒng)故障的重要途徑。
4.1 控制狀態(tài)失常的軟件對策
(1)軟件冗余。對于條件控制系統(tǒng),對控制條件的一次采樣、處理控制輸出改為循環(huán)地 采樣、處理控制輸出。這種方法對于慣性較大的控制系統(tǒng)具有良好的抗干擾作用。
(2)設(shè)置當(dāng)前輸出狀態(tài)寄存單元,當(dāng)干擾侵入輸出通道造成輸出狀態(tài)破壞時(shí),系統(tǒng)能及 時(shí)查詢寄存單元的輸出狀態(tài)信息,及時(shí)糾正輸出狀態(tài)。
(3)設(shè)自檢程序。在單片機(jī)內(nèi)的特定部位或某些內(nèi)存單元設(shè)狀態(tài)標(biāo)志,在開機(jī)后,運(yùn)行 中不斷循環(huán)測試,以保證系統(tǒng)中信息存儲、運(yùn)輸、運(yùn)算的高可靠性。
4.2 程序運(yùn)行失常的軟件對策
(1)設(shè)置程序監(jiān)視跟蹤定時(shí)器。目前,大多數(shù)單片機(jī)片內(nèi)都集成有程序監(jiān)視跟蹤定時(shí)器 。監(jiān)視跟蹤定時(shí)器主要用來跟蹤程序的運(yùn)行。當(dāng)程序運(yùn)行出現(xiàn)故障時(shí),計(jì)數(shù)器溢出,系統(tǒng)復(fù) 位,重新運(yùn)行系統(tǒng)程序。利用它可有效地實(shí)現(xiàn)程序防飛功能。
(2)設(shè)置程序指針陷阱。在每個(gè)子程序后面或程序段后,插入5條指令NOP、NOP、NOP、N OP、LJMP MAIN(其中MAIN是初始化程序開始地址),在片的空白處(特別是后面的空白處), 每32個(gè)字節(jié)放指令LJMP MAIN。設(shè)置了指針陷阱后,一旦單片機(jī)受干擾,使程序指針混亂, 執(zhí)行了一段程序后,就會落入陷阱中,執(zhí)行LJMP MAIN指令,回復(fù)到初始化程序開始處,從 而避免死機(jī)。
4.3 數(shù)據(jù)采集誤差的軟件對策
用軟件濾波算法,可濾掉大部分由輸入信號干擾而引起的輸出控制錯(cuò)誤。最常用的方法 有算術(shù)平均值法、比較舍取法、中值法、一階遞推數(shù)字濾波法。具體選取何種方法,必須根 據(jù)信號的變化規(guī)律選擇。
5 結(jié)束語
筆者從硬件、軟件兩個(gè)方面探討了一些提高抗干擾能力的方法,這些方法有效可行,筆 者在很多系統(tǒng)設(shè)計(jì)采用,受到了良好的效果,基本解決了令人頭痛的干擾問題。■
參考文獻(xiàn):
[1]邵貝貝.單片機(jī)的可靠性技術(shù)及其發(fā)展[J].電子產(chǎn)品世界.1999,(8).
[2]何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京航空航天大學(xué)出版社.1999 .7.