單片機全稱是單片微型計算機,又稱微控制器,是一種集成電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計時器等功能集成到一塊硅片上構成的一個小而完善的微型計算機系統,以其小巧且較高的性價比在工業控制領域有著廣泛的應用。
1 單片機干擾的形成和分類
1.1 電源開關的通斷、電機和大的用電設備的啟停會引起供電電網發生波動,使電網出現尖峰脈沖干擾,會使同一供電網的單片機控制系統無法正常運行。這可歸結為供電系統干擾。
1.2 控制系統的數據輸入輸出通道也是干擾源進入的途徑,而各種信號線和控制線彼此間也會產生電磁干擾,使系統程序產生錯誤。此類干擾是過程通道干擾。
1.3 還有就是空間干擾,來自太陽及其他天體輻射電磁波,大功率的廣播電視設備和周圍其它電氣設備發出的電磁干擾。
2 單片機硬件及軟件的抗干擾措施
2.1 硬件抗干擾
2.1.1 設計抗干擾的電源。多數單片機對電源噪聲有很靈敏的反應,通過設備電源線進入系統內部的干擾會對微機產生很大影響。電源的共用在電源各個電子設備之間也會產生相互干擾。因此,單片機輸入電源要與強電設備動力電源分開;在共用的電源上使用隔離變壓器,可以阻止由電網產生的干擾;也可以給單片機電源添加穩壓器或濾波電路,防止過壓或欠壓出現帶來電源噪聲的干擾;對供電系統有較高要求的還可以使用不間斷電源。
2.1.2 在集成電路的地線端和電源端設計去耦電路,去耦電容在電路布線時盡量接近電路的電源輸入端。這樣既可以減弱集成電路通電時產生的能量,也可以消除電路產生的高頻噪聲。
2.1.3 采用靜電屏蔽技術。使用低電阻材料制成屏蔽體,將要分隔的部分包圍。而靜電屏蔽就是在電容耦合通路上加入接地的金屬導體,使其干擾電源為零,隔斷干擾電場的耦合通道。
2.1.4 對干擾進行隔離。在設計電路時盡可能地使信號線與功率線遠離,用繼電器來完成電氣方面信號的接收與發送,通過光電耦合器對信號輸入輸出通道和中央處理單元進行有效隔離。在發光二極管的作用下,系統的輸入信號轉變為光信號,然后在光敏三極管下轉換為電信號,這樣對通道干擾能起到有效的抑制作用,還能有效地對火地和信號地進行隔離。
2.1.5 電路板布線和布局是否合理對系統的可靠性有很大影響。布線時,盡量將模擬地與信號地分開,并且兩者單點接地;盡可能加粗地線;布局時強、弱電分開;采樣電路部分進行電路板大面積覆銅,通信及信號連接線采用屏蔽線等。合理的布線和合理的布局可以使單片機抗干擾能力大大提高。
2.2 軟件抗干擾
在保證硬件抗干擾做好后,軟件抗干擾也是重要的一環。軟件抗干擾主要作用:一是對模擬輸入信號夾帶的噪聲進行消除;二是當程序出現運行錯誤時如何重新正常工作。
2.2.1 指令冗余。在CPU進行取指令時,是先提取操作碼再對操作數進行提取,一旦系統受到干擾出錯時,程序就會以非正常的方式運行,通常稱為“亂飛”。而糾正亂飛的情況就是指令冗余。指令冗余是指及時在程序的關鍵地方進行人為的單字節插入,或者重新寫入單字節。目前都是在三字節及雙字節后面給予超過兩字節的NOP指令。執行此操作后,再次遇到程序亂飛在操作數的情況時,由于有NOP指令的存在,將不會對后面的指令進行任何操作,這樣就使程序重新步入正軌。
對系統流向起重要作用的指令如RET、JC、LCALL等,可以在這些指令之前插入兩條NOP指令,可把亂飛程序納入正軌,確保這些重要指令的正確執行。指令冗余只能使CPU不再將操作數當作操作碼錯誤地執行,卻不能主動把程序錯誤執行方向扭轉過來。
2.2.2 攔截技術。該技術就是將亂飛的程序引入到指定的地方,然后再對程序進行糾錯處理,一般使用軟件陷阱實現對亂飛的程序進行攔截。首先設計合理的陷阱,而后將其放在合適的地方。
2.2.3 看門狗技術。就是watching dog,一旦亂飛的程序出現死循環,看門狗技術就會使其跳出其中。通過對程序循環運行時間的檢測,可以自動判斷系統是否出現死循環,而進行相應的處理。看門狗技術不但可通過硬件實現,也可通過軟件實現。在如今的工業領域,干擾一旦破壞中斷方式的控制字,中斷被強制關閉,硬件上的watching dog電路就會失效,此時軟件上的watching dog電路就會成為硬件看門狗的替身,及時解決此類問題。
3 根據單片機自身特點采取的抗干擾措施
3.1 降低外時鐘頻率
外時鐘屬于高頻噪聲源,不僅會對自身應用系統產生干擾,還會對外界引起干擾,所以使用低頻率單片機是降低系統噪音的有效方法。
3.2 選擇低噪聲的芯片
許多芯片在設計時將電源和地的引出放在對稱的兩邊,使電源噪聲影響到整個芯片。改進后的芯片是把地和電源放在相鄰的引腳上,這樣可以降低經過芯片的電流,也容易在PCB板上安排外部的去耦電路。
3.3 時鐘對電路檢測及低電壓復位
對系統時鐘進行監測,一旦發現系統時鐘停振就會通過產生復位信號對時鐘進行恢復,這是提高單片機系統穩定的有效辦法之一。在系統中使用RC濾波和施密特電路可以消除正弦波上毛刺對時鐘信號的干擾。
干擾的產生和傳遞是很復雜的,為保證系統可靠穩定地運行,還要有個良好的外部環境。