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

    EEPW首頁 > 嵌入式系統 > 設計應用 > 提高單片機抗干擾的設計

    提高單片機抗干擾的設計

    作者: 時間:2013-01-23 來源:網絡 收藏
      做過產品的朋友都有體會,一個設計看似簡單,硬件設計和代碼編寫很快就搞定,但在調試過程中卻或多或少的意外,這些都是能力不夠的體現。

      下面討論一下如何讓你的設計避免走彎路:

      體現在2個方面,一是硬件設計上,二是軟件編寫上。

      這里重點提醒:在MCU設計中主要設計是在硬件上,軟件為輔。因為MCU的計算能力有限,所以要在硬件上花大工夫。

      干擾的途徑:

      1:干擾MCU的主要路徑是通過I/O口,一是影響了MCU的數據采集,二是影響內部其它寄存器。

      解決方法:后面討論。

      2:電源干擾:MCU雖然適應電壓較寬(3-5。5V),但對于電源的波動卻很敏感,比如說MCU可以在3V電壓下穩定工作,但卻不能在電壓在3V-5。5V波動的情況下穩定工作。

      解決方法:用電源穩壓塊,做好電源的濾波等工作,提示:一定要在電源旁路并上0。1UF的瓷片電容來濾除高頻干擾,因為電解電容對超過幾十KHZ的高頻干擾不起作用。

      3:上下電干擾:但每個MCU系統在上電時候都要經過這樣一個過程,所以要尤其注意。

      MCU雖然可以在3V電壓下穩定工作,但并不是說它不能在3V以下的電壓下工作,當然在如此低的電壓下MCU是超不穩定狀態的。在系統加電時候,系統電源電壓是從0V上升到額定電壓的,比如當電壓到2V時候,MCU開始工作了,但這時是超不穩定的工作,極容易跑飛。

      解決方法:1讓MCU在電源穩定后才開始工作。PIC在片內集成了POR(內部上電延時復位),這功能一定要在配置位中打開。

      外部上電延時復位電路。有多種形式,低成本的就是在復位腳接個阻容電路。高成本的是用專用芯片。這方面的資料特多,到處都可以查找。

      最難排除的就是上面第一種干擾,并且隨時可以發生,的強度也不盡相同。

      但它們也有相同點:干擾信號也遵循歐姆定律,干擾信號偶合路徑無非是電磁干擾,一是電火花,二是磁場。

      其中干擾最厲害的是電火花干擾,其次是磁場干擾。電火花干擾表現場合主要是附近有大功率開關、繼電器、接觸器、有刷電機等。磁場干擾表現場合主要是附近有大功率的交流電機、變壓器等。

      解決方法:第一點:也是最經典的,就是在PCB步線和元件位置安排上下工夫,這中間學問很多,說幾天都說不完^^。

      二:綜合考慮各I/O口的輸入阻抗,采集速率等因素設計I/O口的外圍電路。

      一般決定一個I/O口的輸入阻抗有3種情況:

      A:I/O口有上拉電阻,上拉電阻值就是I/O口的輸入阻抗。

      一般大家都用4K-20K電阻做上拉,(PIC的B口內部上拉電阻約20K)。

      由于干擾信號也遵循歐姆定律,所以在越存在干擾的場合,選擇上拉電阻就要越小,因為干擾信號在電阻上產生的電壓就越小。

      由于上拉電阻越小就越耗電,所以在家用設計上,上拉電阻一般都是10-20K,而在強干擾場合上拉電阻甚至可以低到1K。

      (如果在強干擾場合要拋棄B口上拉功能,一定要用外部上拉。)

      B:I/O口與其它數字電路輸出腳相連,此時I/O口輸入阻抗就是數字電路輸出口的阻抗,一般是幾十到幾百歐。

      可以看出用數字電路做中介可以把阻抗減低到最理想,在許多工業控制板上可以看見大量的數字電路就是為了保證性能和保護MCU的。

      C:I/O口并聯了小電容。

      由于電容是通交流阻直流的,并且干擾信號是瞬間產生,瞬間熄滅的,所以電容可以把干擾信號濾除。但不好的是造成I/O口收集信號的速率下降,比如在串口上并電容是絕不可取的,因為電容會把數字信號當干擾信號濾掉。

      對于一些檢測開關、干簧管、霍爾元件之類的是可以并電容的,因為這些開關量的變化是不可能有很高的速率的,并一個小電容對信號的采集是沒任何影響的。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 包头市| 金门县| 美姑县| 平罗县| 新兴县| 永丰县| 西昌市| 柳河县| 和田县| 久治县| 朔州市| 崇阳县| 郓城县| 岳池县| 海南省| 大庆市| 浦东新区| 阳春市| 东海县| 柘城县| 蓬莱市| 双流县| 日喀则市| 景宁| 延寿县| 永定县| 东至县| 阿荣旗| 富民县| 武穴市| 平阴县| 邵东县| 石城县| 凤翔县| 梅河口市| 临桂县| 隆化县| 巴林左旗| 常熟市| 五原县| 民和|