1干擾對(duì)單片機(jī)應(yīng)用系統(tǒng)的影響
1.1測(cè)量數(shù)據(jù)誤差加大
干擾侵入單片機(jī)系統(tǒng)測(cè)量單元模擬信號(hào)的輸入通道,疊加在測(cè)量信號(hào)上,會(huì)使數(shù)據(jù)采集誤差加大。特別是檢測(cè)一些微弱信號(hào),干擾信號(hào)甚至淹沒(méi)測(cè)量信號(hào)。
1.2控制系統(tǒng)失靈
單片機(jī)輸出的控制信號(hào)通常依賴于某些條件的狀態(tài)輸入信號(hào)和對(duì)這些信號(hào)的邏輯處理結(jié)果。若這些輸入的狀態(tài)信號(hào)受到干擾,引入虛假狀態(tài)信息,將導(dǎo)致輸出控制誤差加大,甚至控制失靈。
1.3影響單片機(jī)RAM存儲(chǔ)器和E2PROM等
在單片機(jī)系統(tǒng)中,程序及表格、數(shù)據(jù)存在程序存儲(chǔ)器EPROM或FLASH中,避免了這些數(shù)據(jù)受干擾破壞。但是,對(duì)于片內(nèi)RAM、外擴(kuò)RAM、E2PROM中的數(shù)據(jù)都有可能受到外界干擾而變化。
1.4程序運(yùn)行失常
外界的干擾有時(shí)導(dǎo)致機(jī)器頻繁復(fù)位而影響程序的正常運(yùn)行。若外界干擾導(dǎo)致單片機(jī)程序計(jì)數(shù)器PC值的改變,則破壞了程序的正常運(yùn)行。由于受干擾后的PC值是隨機(jī)的,程序?qū)?zhí)行一系列毫無(wú)意義的指令,最后進(jìn)入“死循環(huán)”,這將使輸出嚴(yán)重混亂或死機(jī)。
2如何提高我們?cè)O(shè)備的抗干擾能力
2.1解決來(lái)自電源端的干擾
單片機(jī)系統(tǒng)中的各個(gè)單元都需要使用直流電源,而直流電源一般是市電電網(wǎng)的交流電經(jīng)過(guò)變壓、整流、濾波、穩(wěn)壓后產(chǎn)生的,因此電網(wǎng)上的各種干擾便會(huì)引入系統(tǒng)。除此之外,由于交流電源共用,各電子設(shè)備之間通過(guò)電源也會(huì)產(chǎn)生相互干擾,因此抑制電源干擾尤其重要。電源干擾主要有以下幾類:
2.1.1電源線中的高頻干擾(傳導(dǎo)騷擾)
供電電力線相當(dāng)于一個(gè)接受天線,能把雷電、電弧、廣播電臺(tái)等輻射的高頻干擾信號(hào)通過(guò)電源變壓器初級(jí)耦合到次級(jí),形成對(duì)單片機(jī)系統(tǒng)的干擾;解決這種干擾,一般通過(guò)接口防護(hù);在接口增加濾波器、或者使用隔離電源模塊解決。
2.1.2感性負(fù)載產(chǎn)生的瞬變?cè)胍簦‥FT)
切斷大容量感性負(fù)載時(shí),能產(chǎn)生很大的電流和電壓變化率,從而形成瞬變?cè)胍舾蓴_,成為電磁干擾的主要形式;解決這種干擾,一般通過(guò)屏蔽線與雙膠線,或在電源接口、信號(hào)接口進(jìn)行濾波處理。這二種方法都需要在系統(tǒng)接地良好的情況下進(jìn)行,濾波器、接口濾波電路都必須良好的接地,這樣才能有效的將干擾泄放。
2.2模擬信號(hào)采樣抗干擾技術(shù)
單片機(jī)應(yīng)用系統(tǒng)中通常要對(duì)一個(gè)或多個(gè)模擬信號(hào)進(jìn)行采樣,并將其通過(guò)A/D轉(zhuǎn)換成數(shù)字信號(hào)進(jìn)行處理。為了提高測(cè)量精度和穩(wěn)定性,不僅要保證傳感器本身的轉(zhuǎn)換精度、傳感器供電電源的穩(wěn)定、測(cè)量放大器的穩(wěn)定、A/D轉(zhuǎn)換基準(zhǔn)電壓的穩(wěn)定,而且要防止外部電磁感應(yīng)噪聲的影響,如果處理不當(dāng),微弱的有用信號(hào)可能完全被無(wú)用的噪音信號(hào)淹沒(méi)。在實(shí)際工作中,可以采用具有差動(dòng)輸入的測(cè)量放大器,采用屏蔽雙膠線傳輸測(cè)量信號(hào),或?qū)㈦妷盒盘?hào)改變?yōu)殡娏餍盘?hào),以及采用阻容濾波等技術(shù)。
2.3數(shù)字信號(hào)傳輸通道的抗干擾技術(shù)
數(shù)字輸出信號(hào)可作為系統(tǒng)被控設(shè)備的驅(qū)動(dòng)信號(hào)(如繼電器等),數(shù)字輸入信號(hào)可作為設(shè)備的響應(yīng)回答和指令信號(hào)(如行程開(kāi)關(guān)、啟動(dòng)按鈕等)。數(shù)字信號(hào)接口部分是外界干擾進(jìn)入單片機(jī)系統(tǒng)的主要通道之一。在工程設(shè)計(jì)中,對(duì)數(shù)字信號(hào)的輸入/輸出過(guò)程采取的抗干擾措施有:傳輸線的屏蔽技術(shù),如采用屏蔽線、雙膠線等;采用信號(hào)隔離措施;合理接地,由于數(shù)字信號(hào)在電平轉(zhuǎn)換過(guò)程中形成公共阻抗干擾,選擇合適的接地點(diǎn)可以有效抑制地線噪聲。
2.4硬件監(jiān)控電路
在單片機(jī)系統(tǒng)中,為了保證系統(tǒng)可靠、穩(wěn)定地運(yùn)行,增強(qiáng)抗干擾能力,需要配置硬件監(jiān)控電路,硬件監(jiān)控電路從功能上包括以下幾個(gè)方面:
(1)上電復(fù)位:保證系統(tǒng)加電時(shí)能正確地啟動(dòng);
(2)掉電復(fù)位:當(dāng)電源失效或電壓降到某一電壓值以下時(shí),產(chǎn)生復(fù)位信號(hào)對(duì)系統(tǒng)進(jìn)行復(fù)位;
(3)電源監(jiān)測(cè):供電電壓出現(xiàn)異常時(shí),給出報(bào)警指示信號(hào)或中斷請(qǐng)求信號(hào);
(4)硬件看門(mén)狗:當(dāng)處理器遇到干擾或程序運(yùn)行混亂產(chǎn)生“死鎖”時(shí),對(duì)系統(tǒng)進(jìn)行復(fù)位。
2.5PCB電路合理布線
PCB板設(shè)計(jì)的好壞對(duì)抗干擾能力影響很大。因此,在進(jìn)行PCB設(shè)計(jì)時(shí),必須遵守PCB設(shè)計(jì)的一般原則,并應(yīng)符合抗干擾設(shè)計(jì)的要求。下面著重說(shuō)明兩點(diǎn):
2.5.1關(guān)鍵器件放置
在器件布置方面與其它邏輯電路一樣,應(yīng)把相互有關(guān)的器件盡量放得靠近些,這樣可以獲得較好的抗噪聲效果。時(shí)鐘發(fā)生器、晶振和CPU的時(shí)鐘輸入端都易產(chǎn)生噪聲,要相互靠近些;CPU復(fù)位電路、硬件看門(mén)狗電路要盡量靠近CPU相應(yīng)引腳;易產(chǎn)生噪聲的器件、大電流電路等應(yīng)盡量遠(yuǎn)離邏輯電路。
2.5.2D/A、A/D轉(zhuǎn)換電路地線的正確連接
D/A、A/D芯片及采樣芯片均提供了數(shù)字地和模擬地,分別有相應(yīng)的管腳。在線路設(shè)計(jì)中,必須將所有器件的數(shù)字地和模擬地分別相連,但數(shù)字地與模擬地僅在一點(diǎn)上相連。另外,也可以采用屏蔽保護(hù),屏蔽可用來(lái)隔離空間輻射。對(duì)噪聲特別大的部件(如變頻電源、開(kāi)關(guān)電源)可以用金屬盒罩起來(lái)以減少噪聲源對(duì)單片機(jī)的干擾,對(duì)容易受干擾的部分,可以增加屏蔽罩并接地,使干擾信號(hào)被短路接地。
2.6軟件抗干擾原理及方法
盡管我們采取了硬件抗干擾措施,但由于干擾信號(hào)產(chǎn)生的原因錯(cuò)綜復(fù)雜,且具有很大的隨機(jī)性,很難保證系統(tǒng)完全不受干擾。因此,往往在硬件抗干擾措施的基礎(chǔ)上,采取軟件抗干擾技術(shù)加以補(bǔ)充,作為硬件措施的輔助手段。軟件抗干擾方法具有簡(jiǎn)單、靈活方便、耗費(fèi)低等特點(diǎn),在系統(tǒng)中被廣泛應(yīng)用。
2.6.1數(shù)字濾波方法
數(shù)字濾波是在對(duì)模擬信號(hào)多次采樣的基礎(chǔ)上,通過(guò)軟件算法提取最逼近真值數(shù)據(jù)的過(guò)程。數(shù)字濾波的的算法靈活,可選擇權(quán)限參數(shù),其效果往往是硬件濾波電路無(wú)法達(dá)到的。
2.6.2輸入信號(hào)重復(fù)檢測(cè)方法
輸入信號(hào)的干擾是疊加在有效電平信號(hào)上的一系列離散尖脈沖,作用時(shí)間很短。當(dāng)控制系統(tǒng)存在輸入干擾,又不能用硬件加以有效抑制時(shí),可用軟件重復(fù)檢測(cè)的方法,達(dá)到“去偽存真”的目的,直到連續(xù)兩次或連續(xù)兩次以上的采集結(jié)果完全一致時(shí)方為有效。若信號(hào)總是變化不定,在達(dá)到最高次數(shù)限額時(shí),則可給出報(bào)警信號(hào)。對(duì)于來(lái)自各類開(kāi)關(guān)型傳感器的信號(hào),如限位開(kāi)關(guān)、行程開(kāi)關(guān)、操作按鈕等,都可采用這種輸入方式。如果在連續(xù)采集數(shù)據(jù)之間插入延時(shí),則能夠?qū)Ω遁^寬的干擾。
2.6.3輸出端口數(shù)據(jù)刷新方法
開(kāi)關(guān)量輸出軟件抗干擾設(shè)計(jì),主要是采取重復(fù)輸出的方法,這是一種提高輸出接口抗干擾性能的有效措施。對(duì)于那些用鎖存器輸出的控制信號(hào),這些措施很有必要。在盡可能短的周期內(nèi),將數(shù)據(jù)重復(fù)輸出,受干擾影響的設(shè)備在還沒(méi)有來(lái)得及響應(yīng)時(shí),正確的信息又到來(lái),這樣就可以及時(shí)防止誤動(dòng)作的產(chǎn)生。在程序結(jié)構(gòu)的安排上,可為輸出數(shù)據(jù)建立一個(gè)數(shù)據(jù)緩沖區(qū),在程序的周期性循環(huán)體內(nèi)將數(shù)據(jù)輸出。對(duì)于增量控制型設(shè)備不能這樣重復(fù)送數(shù),只有通過(guò)檢測(cè)通道,從設(shè)備的反饋信息中判斷數(shù)據(jù)傳輸?shù)恼_與否。在執(zhí)行重復(fù)輸出功能時(shí),對(duì)于可編程接口芯片,工作方式控制字與輸出狀態(tài)字一并重復(fù)設(shè)置,使輸出模塊可靠地工作。
2.6.4軟件攔截技術(shù)
當(dāng)竄入單片機(jī)系統(tǒng)的干擾作用在CPU部位時(shí),后果更加嚴(yán)重,將使系統(tǒng)失靈。最典型的故障是破壞程序計(jì)數(shù)器PC的狀態(tài),導(dǎo)致程序從一個(gè)區(qū)域跳轉(zhuǎn)到另一個(gè)區(qū)域,或者程序在地址空間內(nèi)“亂飛”,或者陷入“死循環(huán)”。使用軟件攔截技術(shù)可以攔截“亂飛”的程序或者使程序擺脫“死循環(huán)”,并將運(yùn)行程序納入正軌,轉(zhuǎn)到指定的程序入口。
2.6.5“軟件看門(mén)狗”技術(shù)
PC受到干擾而失控,引起程序“亂飛”,也可能使程序陷入“死循環(huán)”。當(dāng)軟件攔截技術(shù)不能使失控的程序擺脫“死循環(huán)”的困境時(shí),通常采用程序監(jiān)視技術(shù)WDTTIMER(WDT),又稱“看門(mén)狗”技術(shù),使程序脫離“死循環(huán)”。WDT是一種軟、硬件結(jié)合的抗程序跑飛措施,其硬件主體是一個(gè)用于產(chǎn)生定時(shí)T的計(jì)數(shù)器或單穩(wěn),該計(jì)數(shù)器或單穩(wěn)基本獨(dú)立運(yùn)行,其定時(shí)輸出端接至CPU的復(fù)位線,而其定時(shí)清零則由CPU控制。在正常情況下,程序啟動(dòng)WDT后,CPU周期性的將WDT清零,這樣WDT的定時(shí)溢出就不會(huì)發(fā)生,如同睡眠一般不起任何作用。在受到干擾的異常情況下,CPU時(shí)序邏輯被破壞,程序執(zhí)行混亂,不可能周期性的將WDT清零,這樣當(dāng)WDT的定時(shí)溢出時(shí),其輸出使系統(tǒng)復(fù)位,避免CPU因一時(shí)干擾而陷入癱瘓的狀態(tài)。
結(jié)語(yǔ)
隨著單片機(jī)系統(tǒng)的廣泛應(yīng)用和技術(shù)的進(jìn)步,電磁干擾問(wèn)題越來(lái)越突出,推廣現(xiàn)有的、成熟的抗干擾技術(shù),研究抗干擾的新技術(shù)、新方向是單片機(jī)應(yīng)用技術(shù)的當(dāng)務(wù)之急。在單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)及應(yīng)用中,只要充分考慮設(shè)備的電磁兼容性,并通過(guò)各種技術(shù)措施來(lái)消除干擾,就可以大大提高設(shè)備的穩(wěn)定性和可靠性。
相關(guān)閱讀:
名家解析,單片機(jī)、ARM、FPGA的特點(diǎn)及區(qū)別要領(lǐng)
深度解析:高頻逆變電源中的單片機(jī)“三步曲”
集眾多工程師之精華——單片機(jī)的群英薈萃