米秀杰 隋秀梅 趙麗

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