用現場(chǎng)電磁兼容性理論剖析單片機系統設計解析方案
單片機系統在軍事、工業(yè)、民用產(chǎn)品中的應用越來(lái)越廣。它將許多以往用硬件實(shí)現的功能由軟件來(lái)完成,體積小巧、功能豐富、智能化程序度,但在可靠性方面也面臨許多新問(wèn)題。用現場(chǎng)電磁兼容性(EMC)理論剖析單片機系統設計中的某些傳統觀(guān)念,會(huì )發(fā)現許多誤區,并且有些誤區至今還在工程界廣為存在。
本文引用地址:http://dyxdggzs.com/article/171279.htm1 誤區之一:有了看門(mén)狗就不會(huì )死機
死機是指CPU的程序指針進(jìn)入一個(gè)死循環(huán),無(wú)法執行正常的程序流程。其外在表現常常是:正常功能喪失,按鍵無(wú)響應,顯示凝固。單片機死機后,只有復全才能走出死循環(huán),執行正常的程序流程。眾所屬知,克服死機的最有效手段是加看門(mén)狗(WatchDog)。
目前用得最廣泛的看門(mén)狗實(shí)際上是一個(gè)特殊的定時(shí)器DogTimer。DogTimer按固定速率計時(shí),計滿(mǎn)預定時(shí)間就發(fā)出溢出脈沖使單片機復位。如果每次在 DogTimer溢出前強行讓DogTimer清零,就不會(huì )發(fā)出溢出脈沖。清零脈沖由CPU發(fā)出,在單片機程序中每隔一段語(yǔ)句放一個(gè)清DogTimer的語(yǔ)句——FeedDog語(yǔ)句,以保證程序正常運行時(shí)DogTimer不會(huì )溢出。一旦程序進(jìn)入一個(gè)不含FeedDog語(yǔ)句的死循環(huán),DogTimer將溢出,導致單片機復位,跳出這個(gè)死循環(huán)。本文稱(chēng)這種看門(mén)狗為典型看門(mén)狗,典型看門(mén)狗已被集成比,如MAX706、MAX791等[1];還有許多單片機本身集成了這種看門(mén)狗,如PIC16C57、MC68HC705等,具體電路可參閱這些芯片的技術(shù)資料[2]。
有一個(gè)錯誤觀(guān)點(diǎn):加了看門(mén)狗,單片機就不會(huì )死機。實(shí)際上,看門(mén)狗有時(shí)間會(huì )完全失效。當程序進(jìn)入某個(gè)死循環(huán),而這個(gè)死循環(huán)中又包含FeedDog語(yǔ)句,這時(shí) DogTimer始終不會(huì )溢出,單片機始終得不到復位信號,程序也就始終跳不出這個(gè)死循環(huán)。針對這一弊端,筆者設計了雙對限看門(mén)狗和定時(shí)復位看門(mén)狗。
雙時(shí)限看門(mén)狗有兩個(gè)定時(shí)器;一個(gè)為短定時(shí)器,一個(gè)為長(cháng)定時(shí)器。短定時(shí)器定時(shí)為T(mén)1,長(cháng)定時(shí)器定時(shí)為 T2,0
這樣,當程序進(jìn)入某個(gè)死循環(huán),如果這個(gè)死循環(huán)包含短定時(shí)器FeedDog語(yǔ)句而不包含長(cháng)定時(shí)器 FeedDog語(yǔ)句,那么長(cháng)定時(shí)順終將溢出,使單片機復位。巧妙安排長(cháng)定時(shí)器FeedDog語(yǔ)句的位置,可保證出現死機的概率根低。在水輪發(fā)電機組微機控制裝置中的對比應用證明了這一點(diǎn)[3]。
目前幾乎所有的看門(mén)狗都是依賴(lài)于CPU(依賴(lài)于CPU FeedDog)。這可以比作:一個(gè)保險設備能否起到保險作用還依賴(lài)于被它保護的對象的行為。顯然,依賴(lài)于CPU的看門(mén)狗是不能保證單片機在分之百不死機的。
在絕對不允許死機的裝置中,筆者設計了一種完全不依賴(lài)于CPU的看門(mén)狗——定時(shí)復位看門(mén)狗。定時(shí)復位看門(mén)狗的主體也是一個(gè)定時(shí)器,到預定時(shí)間就發(fā)出溢出脈沖,此溢出脈沖使單片機強行復位。定時(shí)復位看門(mén)狗不需要CPU FeedDog。
簡(jiǎn)言之,定時(shí)復位看門(mén)狗就是定時(shí)地讓單片機強行復位。這樣,即使裝置死機,其最大死機時(shí)間也不會(huì )大于定時(shí)器定時(shí)時(shí)間。顯然,只要硬件完好,這種看門(mén)狗百分之百地保證了單片機不會(huì )長(cháng)時(shí)間死機。在智能電表(包括IC卡電能表、復費率電能表、多功能電能表 [4])中采用了定時(shí)復位看門(mén)狗,每1秒讓CPU強行復位,迄今數十萬(wàn)電表運行了近五年,無(wú)一例死機報告。
必須指出,采用這種看門(mén)狗,CPU的編程要適應定時(shí)復位的環(huán)境,保證定時(shí)復位不打斷那些不能打斷的程序,不造成任何誤動(dòng)作。
2 誤區之二:加電源濾波器能提高EMC性能
在單片機系統中,為了抑制電磁干擾(EMI),常常在交流電源進(jìn)線(xiàn)與電源變壓器之間加電磁濾波器。常用電源濾波器如圖1。
圖1都是雙II型LC濾波器,其中C0專(zhuān)用于旁路差模干擾。兩者的不同之處在于:圖1(b)兩個(gè)電容接大地。設電感的電阻為R,它們的隔頻特性分別是:
當R很小時(shí),上述兩個(gè)濾波器的諧振頻率分別為:
評論