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