摘要:用電磁兼容性理論剖析了單片機系統(tǒng)設計中的某些傳統(tǒng)觀念,指出其過時和失誤之處,給出了根據(jù)電磁兼容性理論設計單片機系統(tǒng)的新理念,還給出了雙時限看門狗、定時復位看門狗、抗快速脈沖群濾波器、電磁兼容PCB等新的設計方法。 關(guān)鍵詞:單片機 電磁兼容性(EMC) 電磁干擾(EMI) 看門狗(WatchDog) 單片機系統(tǒng)在軍事、工業(yè)、民用產(chǎn)品中的應用越來越廣。它將許多以往用硬件實現(xiàn)的功能由軟件來完成,體積小巧、功能豐富、智能化程序度,但在可靠性方面也面臨許多新問題。用現(xiàn)場電磁兼容性(EMC)理論剖析單片機系統(tǒng)設計中的某些傳統(tǒng)觀念,會發(fā)現(xiàn)許多誤區(qū),并且有些誤區(qū)至今還在工程界廣為存在。 1 誤區(qū)之一:有了看門狗就不會死機 死機是指CPU的程序指針進入一個死循環(huán),無法執(zhí)行正常的程序流程。其外在表現(xiàn)常常是:正常功能喪失,按鍵無響應,顯示凝固。單片機死機后,只有復全才能走出死循環(huán),執(zhí)行正常的程序流程。眾所屬知,克服死機的最有效手段是加看門狗(WatchDog)。 目前用得最廣泛的看門狗實際上是一個特殊的定時器DogTimer。DogTimer按固定速率計時,計滿預定時間就發(fā)出溢出脈沖使單片機復位。如果每次在DogTimer溢出前強行讓DogTimer清零,就不會發(fā)出溢出脈沖。清零脈沖由CPU發(fā)出,在單片機程序中每隔一段語句放一個清DogTimer的語句——FeedDog語句,以保證程序正常運行時DogTimer不會溢出。一旦程序進入一個不含F(xiàn)eedDog語句的死循環(huán),DogTimer將溢出,導致單片機復位,跳出這個死循環(huán)。本文稱這種看門狗為典型看門狗,典型看門狗已被集成比,如MAX706、MAX791等[1];還有許多單片機本身集成了這種看門狗,如PIC16C57、MC68HC705等,具體電路可參閱這些芯片的技術(shù)資料[2]。 雙時限看門狗有兩個定時器;一個為短定時器,一個為長定時器。短定時器定時為T1,長定時器定時為T2,0<T1<<T2;長、短公平時器的FeedDog是各自獨立的。短定時器象典型看門狗那樣工作,它保證一般情況下看門狗有快的反應速度;長度時器的定時T2大于CPU執(zhí)行一個主循環(huán)程序的時間,并且每一個主循環(huán)才FeedDog一次,用來防止看門狗失效。 這樣,當程序進入某個死循環(huán),如果這個死循環(huán)包含短定時器FeedDog語句而不包含長定時器FeedDog語句,那么長定時順終將溢出,使單片機復位。巧妙安排長定時器FeedDog語句的位置,可保證出現(xiàn)死機的概率根低。在水輪發(fā)電機組微機控制裝置中的對比應用證明了這一點[3]。 目前幾乎所有的看門狗都是依賴于CPU(依賴于CPU FeedDog)。這可以比作:一個保險設備能否起到保險作用還依賴于被它保護的對象的行為。顯然,依賴于CPU的看門狗是不能保證單片機在分之百不死機的。 在絕對不允許死機的裝置中,筆者設計了一種完全不依賴于CPU的看門狗——定時復位看門狗。定時復位看門狗的主體也是一個定時器,到預定時間就發(fā)出溢出脈沖,此溢出脈沖使單片機強行復位。定時復位看門狗不需要CPU FeedDog。 簡言之,定時復位看門狗就是定時地讓單片機強行復位。這樣,即使裝置死機,其最大死機時間也不會大于定時器定時時間。顯然,只要硬件完好,這種看門狗百分之百地保證了單片機不會長時間死機。在智能電表(包括IC卡電能表、復費率電能表、多功能電能表[4])中采用了定時復位看門狗,每1秒讓CPU強行復位,迄今數(shù)十萬電表運行了近五年,無一例死機報告。 必須指出,采用這種看門狗,CPU的編程要適應定時復位的環(huán)境,保證定時復位不打斷那些不能打斷的程序,不造成任何誤動作。 2 誤區(qū)之二:加電源濾波器能提高EMC性能 在單片機系統(tǒng)中,為了抑制電磁干擾(EMI),常常在交流電源進線與電源變壓器之間加電磁濾波器。常用電源濾波器如圖1。 圖1都是雙II型LC濾波器,其中C0專用于旁路差模干擾。兩者的不同之處在于:圖1(b)兩個電容接大地。設電感的電阻為R,它們的隔頻特性分別是: 當R很小時,上述兩個濾波器的諧振頻率分別為: 可見,它們的幅頻特性相似,諧振頻率不同。從濾波效果來看,兩者對于降低來自交流電的差模干擾效果差不多,但是后者對于降低共模干擾效果更好。不過同,對于采用浮地方式的裝置,由于電容不可能直正接到大地,所以只能用者。 設計濾波器時必須注意讓諧振頻率遠小于干擾頻率,處理不好不僅不能衰減干擾,反而放大干擾。以圖1(a)的雙II型濾波器為例,如果取L=1mh,R=1Ω,C=0.47μF(這是許多資料推薦的參數(shù)),可計算出f0=5.2kHz。而EMC測試中的快速脈沖群頻率是5.0kHz(2kV)或2.5kHz(4kV);5.0kHz剛好諧振,2.5kHz也不會被衰減,如圖2虛線的示??梢姡皇撬械碾娫礊V波器都能提高EMC性能。工程中,許多裝置盡管采用了成本不菲的濾波器,但EMC測試仍難過程,原因大多在此。 實際上,如果取L=30mh,R=5Ω,C=0.47μF,可計算出f0=0.95kHz,5.0kHz脈沖群幅值減為3.73%,2.5kHz脈沖群幅值衰減為16.78%。這時,電源濾波器確實提高了系統(tǒng)的EMC性能。圖2實線是相慶的幅頻特性。 3 誤區(qū)之三:光偶器件隔離干擾很徹底 光偶器件是最常用的隔離干擾器件。例如現(xiàn)場的開關(guān)量引到測控裝置后都要加光隔,以切斷來自現(xiàn)場的傳導干擾;RS485通訊口經(jīng)光隔再與外部通訊線連接,防止來自外部通訊線的傳導干擾。 有不少人認為:光偶器件隔離干擾很徹底,用了光偶隔離干擾就過不去了。其實,光電隔離并非萬全之策。 首先,光偶器件本身只能隔離傳導干擾,它隔離不斷幅射、感應干擾。幅射來自空間,感應來自相鄰的導體。最常見的敗筆是:設計PCB時將光偶器件的輸入和輸出電路布在了一起,這時干擾從光偶器件是過不去了,但卻很容易輸入電路感應到輸出電路。 其次,光偶器件隔離傳導干擾的能力也只有1kV左右,1kV以上的干擾或浪涌一般是力所不的及的。比如EMC的快速脈沖群測試,施加的干擾信號幅值是2kV、4kV、8kV,光偶器件是無法隔離的。 提起PCB布線,許多工程技術(shù)人員都知道一個傳統(tǒng)的經(jīng)驗:正面橫向走線、反面縱向走線,橫平豎直,既美觀又短捷;還有個傳統(tǒng)經(jīng)驗是:只要空間允許,走線越粗越好??梢悦鞔_地說,這些經(jīng)驗在注重EMC的今天已經(jīng)過時。 要使單片機系統(tǒng)有良好的EMC性能,PCB設計十分關(guān)鍵。一個具有良好的EMC性能的PCB,必須按高頻電路來設計——這是反傳統(tǒng)的。單片機系統(tǒng)按高頻電路來設計PCB的理由在于:盡管單片機系統(tǒng)大部分電路的工作頻率并不高,但是EMI的頻率是高的,EMC測試的模擬干擾頻率也是高的[5]。要有效抑制EMI,順利通過EMC測試,PCB的設計必須考慮高頻電路的特點。PCB按高頻電路設計的要點是: (1)要有良好的地線層。良好的地線層處處等電位,不會產(chǎn)生共模電阻偶合,也不會經(jīng)地線形成環(huán)流產(chǎn)生天線效應;良好的地線層能使EMI以最短的路徑進入地線而消失。建立良好的地線層最好的方法是采用多層板,一層專門用作線地層;如果只能用雙面板,應當盡量從正面走線,反面用作地線層,不得已才從反面過線。 (2)保持足夠的距離。對于可能出現(xiàn)有害耦合或幅射的兩根線或兩組或要保持足夠的距離,如濾波器的輸入與輸出、光偶的輸入與輸出、交流電源線與弱信號線等。 (3)長線加低通濾波器。走線盡量短捷,不得已走的長線應當在合理的位置插入C、RC或LC低通濾波器。 (4)除了地線,能用細線的不要用粗線。因為PCB上的每一根走線既是有用信號的載體,又是接收幅射干擾的干線,走線越長、越粗,天線效應越強。 5 誤區(qū)之五:IC芯片的封裝形式不影響性能 眾所周知,IC芯片的封裝貼片式和雙列直插式之分。一般認為:貼片式和雙列直插式的區(qū)別主要是體積不同和焊接方法不同,對系統(tǒng)性能影響不大。其實不然。 前面說到,PCB上每一根走線都存在天線效應?,F(xiàn)在要說,PCB上的每一個元件也存在天線效應,元件的導電部分越大,天線效應越強。所以,同一型號芯片,封裝尺寸小的比封裝尺寸大的天線效應弱。這就解釋了許多工程師已經(jīng)注意到的一個現(xiàn)象:同一裝置,采用貼片元件比采用雙列直插元件更易通過EMC測試。 此外,天線效應還跟每個芯片的工作電流環(huán)路有關(guān)。要削弱天線效應,除了減小封裝尺寸,還應盡量減小工作電流環(huán)路尺寸、降低工作頻率和di/dt。留意最新型號的IC芯片(尤其是單片)的管腳布局會發(fā)現(xiàn):它們大多拋棄了傳統(tǒng)方式——左下角為GND右上角為VCC,而將VCC和GND安排在相鄰位置,就是為了減小工作電流環(huán)路尺寸。 實際上,不僅是IC芯片,電阻、電容封裝也與EMC有關(guān)。用0805封裝比1206封裝有更好的EMC性能,用0603封裝又比0805封裝有更好的EMC性能。目前國際上流行的是0603封裝。 |
|