單片機(jī)系統(tǒng)中的抗干擾技術(shù)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引 言
近年來(lái),微機(jī)測(cè)控系統(tǒng),特別是單片機(jī)在工業(yè)自動(dòng)化生產(chǎn)過(guò)程控制、智能化儀器儀表等領(lǐng)域的應(yīng)用越來(lái)越深入和廣泛,有效地提高了生產(chǎn)效率,大大提高了控制質(zhì)量與經(jīng)濟(jì)效益。但是,測(cè)控系統(tǒng)的工作環(huán)境往往是比較惡劣和復(fù)雜的,其應(yīng)用的可靠性、安全性就成為一個(gè)非常突出的問(wèn)題。許多應(yīng)用系統(tǒng)在進(jìn)行仿真調(diào)試和實(shí)驗(yàn)室內(nèi)的聯(lián)機(jī)試運(yùn)行時(shí)都是成功的,然而一進(jìn)入現(xiàn)場(chǎng)使用,系統(tǒng)則會(huì)產(chǎn)生預(yù)料之外的誤動(dòng)作或誤顯示,嚴(yán)重時(shí)導(dǎo)致系統(tǒng)失靈,甚至導(dǎo)致巨大的損失。
影響測(cè)控系統(tǒng)可靠、安全運(yùn)行的主要因素是來(lái)自系統(tǒng)內(nèi)部和外部的各種電氣干擾,以及系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、元器件選擇、安裝、制造工藝和外部環(huán)境條件等。
系統(tǒng)自身及應(yīng)用環(huán)境產(chǎn)生的各種電磁噪聲仍是普遍的干擾因素,產(chǎn)生的原因主要有:放電噪聲、高頻振蕩噪聲、浪涌噪聲。干擾源產(chǎn)生的干擾是通過(guò)耦合通道對(duì)微機(jī)測(cè)控系統(tǒng)發(fā)生電磁干擾作用,噪聲的傳遞幾乎都是通過(guò)導(dǎo)線(xiàn)或者通過(guò)空間和大地傳遞的。
2 干擾的主要耦合方式
(1)直接耦合方式
電導(dǎo)性耦合最普遍的方式是干擾信號(hào)經(jīng)過(guò)導(dǎo)線(xiàn)直接傳導(dǎo)到被擾電路中而造成對(duì)電路的干擾。在微機(jī)測(cè)控系統(tǒng)中,干擾噪聲經(jīng)過(guò)電源線(xiàn)耦合進(jìn)入計(jì)算機(jī)線(xiàn)路是最常見(jiàn)的直接耦合現(xiàn)象。
(2)公共阻抗耦合方式
當(dāng)一個(gè)電源電路對(duì)幾個(gè)電路供電時(shí),如果電源不是內(nèi)阻抗為零的理想電壓源,則其內(nèi)阻抗就成為接受供電的幾個(gè)電路的公共阻抗,只要其中某一個(gè)電路的電流發(fā)生變化,便會(huì)使其他電路的供電電壓發(fā)生變化,形成公共阻抗耦合。
(3)電容耦合方式
這是指電位變化在干擾源與干擾對(duì)象之間引起的靜電感應(yīng),又稱(chēng)靜電耦合或電場(chǎng)耦合。
(4)電磁感應(yīng)耦合方式
在任何載流導(dǎo)體周?chē)臻g中都會(huì)產(chǎn)生磁場(chǎng),若磁場(chǎng)是交變的,則對(duì)周?chē)]合電路產(chǎn)生感應(yīng)電勢(shì),在設(shè)備內(nèi)部,線(xiàn)圈或變壓器的漏磁是一個(gè)很大的干擾,設(shè)備外部,當(dāng)2根導(dǎo)線(xiàn)在很長(zhǎng)的一段區(qū)間架設(shè)時(shí),也會(huì)產(chǎn)生干擾。
(5)輻射耦合方式
當(dāng)高頻電流流經(jīng)導(dǎo)體時(shí),在該導(dǎo)體周?chē)惝a(chǎn)生電力線(xiàn)和磁力線(xiàn),并發(fā)生高頻變化,從而形成一種在空間傳播的電磁波,處于電磁波中的導(dǎo)體便會(huì)感應(yīng)出相應(yīng)頻率的電動(dòng)勢(shì)。電磁場(chǎng)輻射干擾是一種無(wú)規(guī)則的干擾,這種干擾很容易通過(guò)電源線(xiàn)傳到系統(tǒng)中去,此外,波,稱(chēng)為天線(xiàn)效應(yīng)。
(6)漏電耦合方式
漏電耦合是電阻性耦合方式,當(dāng)相鄰的元件和導(dǎo)線(xiàn)間的絕緣電阻降低時(shí),有些電信號(hào)便通過(guò)這個(gè)降低了的絕緣電阻耦合到邏輯元件的輸入端而形成干擾。
3 單片機(jī)系統(tǒng)中的主要抗干擾手段
干擾的抑制方法,一般分為硬件抗干擾和軟件抗干擾。筆者在開(kāi)發(fā)研制自動(dòng)化儀表和智能測(cè)控系統(tǒng)實(shí)踐中,針對(duì)單片機(jī)系統(tǒng)的干擾及其抑制方法進(jìn)行了分析、研究,并在實(shí)際運(yùn)用中收到了良好的效果。
3.1 硬件抗干擾
為便于理解,干擾的來(lái)源可籠統(tǒng)地概括為:電源干擾、口線(xiàn)干擾和空間干擾。其相應(yīng)的抗干擾措施分別為:
(1)電源隔離
單片機(jī)工作電路的電源要采取獨(dú)立的供電回路,其電源變壓器同其他大功率電路的電源變壓器要分別使用。單片機(jī)電源電路的地線(xiàn)與其他大功率電路的地線(xiàn)不相連接。在兩電路的電氣連接處,可使用光電耦合器、光可控硅等器件加以隔離。
(2)口線(xiàn)隔離
單片機(jī)的輸入、輸出口線(xiàn),特別是參與控制大功率電路的口線(xiàn),在其與外電路的電氣連接處都要通過(guò)光電耦合器進(jìn)行隔離。
隔離電路如圖1所示,電平轉(zhuǎn)換電路如圖2所示。
(3)空間隔離
單片機(jī)控制回路與其他大功率回路之間能夠分開(kāi)放置的,盡量不要放置在同一空間中,如果二者必須在同一空間中的,要盡量加大二者的電氣距離,盡可能減小空間的電磁感應(yīng)耦合和輻射耦合,或者將單片機(jī)控制電路放在由金屬網(wǎng)或金屬盒構(gòu)成的屏蔽體內(nèi)。 此外,還有其他一些輔助性抗干擾措施,如:晶振的外殼接地、中央處理器的電源端及各口線(xiàn)附近對(duì)地加去耦電容等。
3.2 軟件抗干擾方法
除了硬件抗干擾途徑外,采用相應(yīng)的軟件抑制及補(bǔ)償措施,也可以起到有效的抗干擾作用。
(1)單片機(jī)各部分對(duì)干擾信號(hào)的反應(yīng)
①中央處理器CPU
CPU屬于高速數(shù)字器件,易受干擾的有運(yùn)算器、控制器和控制寄存器。當(dāng)電磁干擾信號(hào)竄入時(shí),CPU將錯(cuò)誤地執(zhí)行指令,引起誤動(dòng)作或者錯(cuò)誤的結(jié)果;控制寄存器中的信息如果被噪聲修改,將導(dǎo)致初始化錯(cuò)誤、尋址失敗乃至系統(tǒng)癱瘓。試驗(yàn)表明,干擾信號(hào)大多數(shù)由總線(xiàn)導(dǎo)入CPU內(nèi);其中與外界聯(lián)系最頻繁、因而最容易受干擾的是程序指針PC,這種干擾往往引發(fā)致命錯(cuò)誤,屬于重點(diǎn)防范和重點(diǎn)糾錯(cuò)的對(duì)象。
②特殊功能寄存器SFR
SFR包括各種 I/O端口的寄存器、各種片內(nèi)部件的工作方式寄存器,以及堆棧指針、數(shù)據(jù)指針等等,其特點(diǎn)是傳遞數(shù)據(jù)的速度高,能夠與CPU的運(yùn)行密切配合。如果某個(gè) SFR被干擾信號(hào)改寫(xiě),則意味著運(yùn)行的結(jié)果異常,輕者改變單片機(jī)內(nèi)各部件的操作控制,重則導(dǎo)致整個(gè)系統(tǒng)的輸出紊亂,引發(fā)故障或安全事故。因此,對(duì)于與程序有關(guān)的內(nèi)容必須提供及時(shí)有效的保護(hù)。
(2)軟件補(bǔ)償措施
對(duì)于已經(jīng)侵入微處理機(jī)的噪聲,必須采取能夠維持系統(tǒng)功能的對(duì)應(yīng)措施,以免出現(xiàn)意外停機(jī)或意外啟動(dòng),甚至引起意外事故。對(duì)CPU的誤動(dòng)作和各種存儲(chǔ)器內(nèi)容的誤修改,在應(yīng)用軟件中插入相應(yīng)的程序模塊,進(jìn)行主動(dòng)補(bǔ)償是一種簡(jiǎn)便而可靠的方法。
①主動(dòng)初始化
這里的“初始化”泛指在各段程序中,對(duì)單片機(jī)及片外擴(kuò)展器件的各種功能、端口或者方式、狀態(tài)等采取的永久性的或者臨時(shí)的設(shè)置。我們不僅要保證上電或復(fù)位后軟件能夠正確的實(shí)現(xiàn)各種級(jí)別的初始化,而且在程序中每次使用某種功能前,都要再一次對(duì)相應(yīng)的控制寄存器設(shè)定動(dòng)作模式。實(shí)踐證明,這一措施可以大大提高系統(tǒng)對(duì)于入侵干擾的自恢復(fù)性能。
②重復(fù)執(zhí)行
程序指令在執(zhí)行的過(guò)程中或者保持之后,都有可能被噪聲修改,而導(dǎo)致控制失效乃至引發(fā)事故,為此應(yīng)當(dāng)盡量增加重要指令的執(zhí)行次數(shù)以糾正干擾造成的錯(cuò)誤。對(duì)于頻率較低的傳感器數(shù)據(jù),建議在有效時(shí)間內(nèi)多次采集并比較;對(duì)于控制外部設(shè)備的指令,則需要多次重復(fù)執(zhí)行以確保有關(guān)信號(hào)的可靠性。為達(dá)此目的,可把重要的指令設(shè)計(jì)成定時(shí)掃描模塊,使其在整個(gè)程序的循環(huán)運(yùn)行過(guò)程中反復(fù)執(zhí)行。如此,即使干擾信號(hào)改寫(xiě)了指令內(nèi)容,也能在受控設(shè)備的反應(yīng)時(shí)間內(nèi)自動(dòng)恢復(fù)正常。
③重要數(shù)據(jù)的保護(hù)和恢復(fù)
編寫(xiě)專(zhuān)門(mén)的數(shù)據(jù)保護(hù)子程序,是提高工控微機(jī)系統(tǒng)可靠性的有效途徑。在編寫(xiě)程序的過(guò)程中,對(duì)于由指令改變結(jié)果性質(zhì)的數(shù)據(jù),可以考慮在每次改變后都盡可能地保護(hù)起來(lái),以便在需要時(shí)能夠恢復(fù)正確值。若數(shù)據(jù)的保護(hù)量較大,建議擴(kuò)展非易失性的SRAM作為片外數(shù)據(jù)存儲(chǔ)器,這種新型芯片具有很高的抗干擾性能,其缺點(diǎn)是目前的價(jià)位較高。
(3)片內(nèi)WDT控制
“看門(mén)狗”(WDT)已經(jīng)成為工控微機(jī)必不可少的成員之一,他可以防止程序“跑飛”或者出現(xiàn)“死循環(huán)”。有的單片機(jī)如PIC系列單片機(jī)片內(nèi)就帶有 WDT監(jiān)視定時(shí)器,通過(guò)軟件,定時(shí)清WDT監(jiān)視定時(shí)器的值,當(dāng)出現(xiàn)“死循環(huán)”或程序“跑飛”現(xiàn)象時(shí),WDT監(jiān)視定時(shí)器內(nèi)的值計(jì)滿(mǎn)溢出,從而強(qiáng)迫程序復(fù)位,從頭開(kāi)始。不帶片內(nèi)WDT監(jiān)視定時(shí)器的單片機(jī),也可以利用微處理機(jī)內(nèi)部閑置的定時(shí)/計(jì)數(shù)器,配合以適當(dāng)?shù)某绦蚓涂梢苑奖愕貥?gòu)成WDT。
參考文獻(xiàn)
[1] 何立民.單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)[M].北京:北京航空航天大學(xué)出版社,2000.
[2] 楊華舒,褚福濤.單片計(jì)算機(jī)系統(tǒng)抗干擾的軟件途徑[J].電子技術(shù)應(yīng)用,2001(3):20-22.