• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 用現場電磁兼容性理論剖析單片機系統設計解析方案

    用現場電磁兼容性理論剖析單片機系統設計解析方案

    作者: 時間:2012-06-19 來源:網絡 收藏

    在軍事、工業、民用產品中的應用越來越廣。它將許多以往用硬件實現的功能由軟件來完成,體積小巧、功能豐富、智能化程序度,但在可靠性方面也面臨許多新問題。用性(EMC)中的某些傳統觀念,會發現許多誤區,并且有些誤區至今還在工程界廣為存在。

    本文引用地址:http://www.czjhyjcfj.com/article/171279.htm

    1 誤區之一:有了看門狗就不會死機

    死機是指CPU的程序指針進入一個死循環,無法執行正常的程序流程。其外在表現常常是:正常功能喪失,按鍵無響應,顯示凝固。死機后,只有復全才能走出死循環,執行正常的程序流程。眾所屬知,克服死機的最有效手段是加看門狗(WatchDog)。

    目前用得最廣泛的看門狗實際上是一個特殊的定時器DogTimer。DogTimer按固定速率計時,計滿預定時間就發出溢出脈沖使單片機復位。如果每次在 DogTimer溢出前強行讓DogTimer清零,就不會發出溢出脈沖。清零脈沖由CPU發出,在單片機程序中每隔一段語句放一個清DogTimer的語句——FeedDog語句,以保證程序正常運行時DogTimer不會溢出。一旦程序進入一個不含FeedDog語句的死循環,DogTimer將溢出,導致單片機復位,跳出這個死循環。本文稱這種看門狗為典型看門狗,典型看門狗已被集成比,如MAX706、MAX791等[1];還有許多單片機本身集成了這種看門狗,如PIC16C57、MC68HC705等,具體電路可參閱這些芯片的技術資料[2]。

    有一個錯誤觀點:加了看門狗,單片機就不會死機。實際上,看門狗有時間會完全失效。當程序進入某個死循環,而這個死循環中又包含FeedDog語句,這時 DogTimer始終不會溢出,單片機始終得不到復位信號,程序也就始終跳不出這個死循環。針對這一弊端,筆者了雙對限看門狗和定時復位看門狗。

    雙時限看門狗有兩個定時器;一個為短定時器,一個為長定時器。短定時器定時為T1,長定時器定時為 T2,0

    這樣,當程序進入某個死循環,如果這個死循環包含短定時器FeedDog語句而不包含長定時器 FeedDog語句,那么長定時順終將溢出,使單片機復位。巧妙安排長定時器FeedDog語句的位置,可保證出現死機的概率根低。在水輪發電機組微機控制裝置中的對比應用證明了這一點[3]。

    目前幾乎所有的看門狗都是依賴于CPU(依賴于CPU FeedDog)。這可以比作:一個保險設備能否起到保險作用還依賴于被它保護的對象的行為。顯然,依賴于CPU的看門狗是不能保證單片機在分之百不死機的。

    在絕對不允許死機的裝置中,筆者了一種完全不依賴于CPU的看門狗——定時復位看門狗。定時復位看門狗的主體也是一個定時器,到預定時間就發出溢出脈沖,此溢出脈沖使單片機強行復位。定時復位看門狗不需要CPU FeedDog。

    簡言之,定時復位看門狗就是定時地讓單片機強行復位。這樣,即使裝置死機,其最大死機時間也不會大于定時器定時時間。顯然,只要硬件完好,這種看門狗百分之百地保證了單片機不會長時間死機。在智能電表(包括IC卡電能表、復費率電能表、多功能電能表 [4])中采用了定時復位看門狗,每1秒讓CPU強行復位,迄今數十萬電表運行了近五年,無一例死機報告。

    必須指出,采用這種看門狗,CPU的編程要適應定時復位的環境,保證定時復位不打斷那些不能打斷的程序,不造成任何誤動作。

    2 誤區之二:加電源濾波器能提高EMC性能

    在單片機中,為了抑制電磁干擾(EMI),常常在交流電源進線與電源變壓器之間加電磁濾波器。常用電源濾波器如圖1。

    圖1都是雙II型LC濾波器,其中C0專用于旁路差模干擾。兩者的不同之處在于:圖1(b)兩個電容接大地。設電感的電阻為R,它們的隔頻特性分別是:

    當R很小時,上述兩個濾波器的諧振頻率分別為:

    電能表相關文章:電能表原理

    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 平昌县| 巴楚县| 当阳市| 寻乌县| 迁西县| 盐池县| 江华| 灵璧县| 凤阳县| 米林县| 太和县| 贡嘎县| 大安市| 贵溪市| 东宁县| 三穗县| 青岛市| 贵溪市| 江源县| 柯坪县| 唐山市| 扎赉特旗| 大化| 湘潭市| 中西区| 平罗县| 本溪市| 荣昌县| 忻城县| 武川县| 通山县| 五家渠市| 涞源县| 凭祥市| 宜黄县| 如皋市| 吉隆县| 铜川市| 乌什县| 胶州市| 班戈县|