版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
“單片機(jī)與控制技術(shù)”
多媒體課程課件
武漢工程大學(xué)電氣信息學(xué)院自動(dòng)化研究所楊寧教授主
編第10章微機(jī)控制系統(tǒng)的抗干擾技術(shù)微機(jī)控制系統(tǒng)大多用于工業(yè)現(xiàn)場(chǎng),條件復(fù)雜惡劣,干擾頻繁。干擾嚴(yán)重影響控制系統(tǒng)的可靠性和穩(wěn)定性。環(huán)境的特殊,要求微機(jī)控制系統(tǒng)必須有極高的抗干擾能力。所謂干擾,就是有用信號(hào)以外的噪聲或造成微機(jī)系統(tǒng)的設(shè)備不能正常工作的破壞因素。干擾的產(chǎn)生往往是多種因素決定,干擾的抑制是一個(gè)復(fù)雜的理論和技術(shù)問(wèn)題,實(shí)踐性較強(qiáng)。為此,必須分析干擾的來(lái)源,研究對(duì)于不同的干擾源采用不同的有效抑制或消除干擾的措施,重視接地布線和供電方面的抗干擾技術(shù),重視CPU可靠運(yùn)行的抗干擾技術(shù)和應(yīng)用軟件中對(duì)數(shù)字信號(hào)的數(shù)據(jù)處理技術(shù)。本章要介紹這些方面的一些問(wèn)題。10.1干擾的來(lái)源及分類
10.1.1干擾的來(lái)源微機(jī)控制系統(tǒng)運(yùn)行環(huán)境的各種干擾主要表現(xiàn)在以下幾個(gè)方面:
1.惡劣的供電條
2.嚴(yán)重的噪聲環(huán)境此外,還有來(lái)自空間的干擾,如太陽(yáng)及其它天體輻射的電磁波,廣播電臺(tái)或通訊發(fā)射臺(tái)發(fā)出的電磁波,周圍電氣設(shè)備如電機(jī)、變壓器、中頻爐、可控硅逆變電源等發(fā)出的電干擾和磁干擾,氣象條件、空中雷電、甚至地磁場(chǎng)的變化也會(huì)引起干擾。這些空間輻射干擾有時(shí)會(huì)使微機(jī)不能正常工作。圖10.1.1形象地表示了微機(jī)控制系統(tǒng)的噪聲環(huán)境。3.其它工業(yè)環(huán)境的溫度、濕度、灰塵、腐蝕性氣體及其它損害,均會(huì)影響微機(jī)控制系統(tǒng)的可靠性。圖10.1.1微機(jī)控制系統(tǒng)的干擾來(lái)源
10.1.2干擾的分類按干擾的作用形式分類,干擾一般有串模干擾和共模干擾兩種。1.串模干擾串模干擾又稱差模干擾,它是串聯(lián)于信號(hào)回路之中的干擾,如圖10.1.2所示。圖中Us為信號(hào)電壓,Un為串模干擾電壓。Un即可來(lái)自干擾源,也可由信號(hào)源本身產(chǎn)生。在圖10.1.3中,如果鄰近的導(dǎo)線(干擾線)中有交變電流Ia流過(guò),由不得產(chǎn)生的電磁干擾信號(hào)就會(huì)通過(guò)分布電容C1和C2的耦合,引入放大器的輸入端。產(chǎn)生串模干擾的原因有分布電容的靜電耦合、長(zhǎng)線傳輸?shù)幕ジ?、空間電磁場(chǎng)引起的磁場(chǎng)耦合以及50Hz的工頻干擾等。2.共模干擾共模干擾是指放大器或模數(shù)轉(zhuǎn)換電路的兩個(gè)輸入端上共有的干擾電壓。圖10.1.2串模干擾示意圖
圖10.1.3通過(guò)分布電容引入串模干擾圖10.1.4是模干擾引入的示意圖。在微機(jī)控制系統(tǒng)中,被測(cè)信號(hào)有單端對(duì)地輸入和雙端不對(duì)地輸入兩種方式。對(duì)于存在共模式干擾的場(chǎng)合,盡量不采用單端對(duì)地輸入方式,因?yàn)榇藭r(shí)的共模干擾電壓將串聯(lián)疊加,全部變?yōu)榇8蓴_電壓。10.2硬件方面對(duì)幾種主要干擾的抑制方法10.2.1電源噪聲的抑制實(shí)踐說(shuō)明,電源的干擾是微機(jī)控制系統(tǒng)的主要干擾,抑制這種干擾的主要措施有以下幾個(gè)方面。1.電源變壓器的屏蔽對(duì)電源變壓器設(shè)置合理的屏蔽(靜電屏蔽和電磁屏蔽)是一種十分有效而簡(jiǎn)單的抗干擾措施。在微機(jī)控制和數(shù)據(jù)采集系統(tǒng)中,常將電源變壓器的原副邊分別加以屏蔽,如圖10.2.1所示。屏蔽通常與鐵芯同時(shí)接地。在要求更高的場(chǎng)合,可采用層間也加屏蔽的結(jié)構(gòu),如圖10.2.2所示。圖10.2.1電源變壓器的屏蔽
圖10.2.2電源變壓器的多層屏蔽
2.交流穩(wěn)壓器交流穩(wěn)壓器主要用于克服電網(wǎng)電壓波動(dòng)對(duì)系統(tǒng)的影響;同時(shí),由于交流穩(wěn)壓器中有電磁線圈,對(duì)干擾也有一定的抑制作用。傳統(tǒng)的交流穩(wěn)壓器只能對(duì)付電源的慢慢變化,目前已有很多種能對(duì)付電源瞬間變化的凈化技術(shù)產(chǎn)品,較好地解決了問(wèn)題。
3.隔離變壓器高頻噪聲通過(guò)變壓器主要不是靠初次、級(jí)線圈的互感耦合,而是靠初、次級(jí)間寄生電容耦合的,因此,應(yīng)采用隔離變壓器或超隔離變壓器,以提高抗共模干擾的能力。4.低通濾波器采用低通濾波器(如圖10.2.3所示)能抑制電網(wǎng)侵入的外部高頻干擾。低通濾波器可讓50Hz的工頻信號(hào)無(wú)衰減地通過(guò),而濾去高于50Hz的高次諧波。直流側(cè)可采用圖10.2.4所示雙T濾波器,以消除50Hz工頻干擾。其優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單,對(duì)固定頻率的干擾濾波效果好??蓪㈦娙軨固定,調(diào)節(jié)電阻,在輸入50Hz信號(hào)的條件下,使Uo=0來(lái)確定電路參數(shù)。圖10.2.350Hz低通濾波器圖10.2.4直流側(cè)用雙T濾波器
5.采用分散獨(dú)立功能塊供電在每個(gè)系統(tǒng)功能模塊上用三端穩(wěn)壓集成塊(如7805、7905抗干擾微機(jī)電源的供電配置如圖10.2.5所示的結(jié)構(gòu)。、7812、7912等)組成穩(wěn)壓電源。每個(gè)功能塊單獨(dú)對(duì)電壓過(guò)載進(jìn)行保護(hù),不會(huì)因某塊穩(wěn)壓電源故障而使整個(gè)系統(tǒng)破壞,而且也減少了公共阻抗的相互耦合,大大提高供電的可靠性,也有利于電源散熱。圖10.2.5微機(jī)系統(tǒng)的抗干擾供電配置
6.選用成型設(shè)備可根據(jù)需要直接采用目前市場(chǎng)已大量上市的高抗干擾的開關(guān)穩(wěn)壓電源、干擾抑制器和超大型隔離變壓器穩(wěn)壓電源、各類型不間斷電源UPS等。這類產(chǎn)品價(jià)格不高,即省事、又可靠。UPS要注意后備式和在線式的選用。對(duì)供電質(zhì)量要求較高的系統(tǒng),采用在線式UPS。在線式UPS在電網(wǎng)正常電壓時(shí),將交流輸入經(jīng)變壓、整流、濾波后,變成所需要的直流電壓送逆變器,經(jīng)逆變器變換和交流濾波,變成所需頻率和電壓的交流電壓供給負(fù)載。逆變器具有穩(wěn)壓和穩(wěn)頻雙重功能,提高了供電質(zhì)量。當(dāng)交流輸入停電時(shí),由蓄電池組向逆變器供電,保證交流電不中斷。10.2.2過(guò)程通道干擾的抑制過(guò)程通道是輸入接口、輸出接口與主機(jī)或主機(jī)相互之間進(jìn)行信息傳輸?shù)穆窂?,在過(guò)程通道中長(zhǎng)線傳輸?shù)母蓴_是主要因素。隨著系統(tǒng)主振頻率越來(lái)越高,微機(jī)系統(tǒng)過(guò)程通道的長(zhǎng)線傳輸越來(lái)越不可避免,防止干擾的問(wèn)題也就顯得越來(lái)越重要。干擾的來(lái)源是多方面的,對(duì)于共模、串模和長(zhǎng)線傳輸三類干擾,有不同的抑制方法。共模干擾的抑制方法主要有三種:變壓器隔離、光電隔離和浮地屏蔽;串模干擾的抑制方法主要也有三種:用雙絞線作信號(hào)引線、濾波、信號(hào)的差動(dòng)式收發(fā);長(zhǎng)線傳輸干擾的抑制主要是消除線路中的波發(fā)射;采用阻抗匹配的方法。
1.變壓器隔離利用變壓器把模擬電路與數(shù)字電路隔離開來(lái),也就是把模擬地與數(shù)字地?cái)嚅_,以使共模干擾電壓不能成回路,從而抑制了共模干擾。另外,隔離前和隔離后分別采用兩組相互獨(dú)立的電源,切斷兩部分的地線聯(lián)系。如圖10.2.6所示,被測(cè)信號(hào)Ui經(jīng)放大后,首先通過(guò)調(diào)制器變換成交流信號(hào),經(jīng)隔離變壓器B傳輸?shù)礁边叄缓罄媒庹{(diào)器再將它變換成直流信號(hào)U2,再對(duì)U2進(jìn)行A/D變換。圖10.2.6變壓器隔離
2.光電隔離光電耦合器件已在3.1節(jié)介紹,由其構(gòu)成的電路可有效地抑制干擾信號(hào)。此外,光電耦合器提供了較好的帶寬,較低的輸入失調(diào)漂移和增益溫度系數(shù),因此能較好地滿足工業(yè)過(guò)程控制信號(hào)傳輸?shù)囊蟆9怆姼綦x電器如圖10.2.7所示。模式擬信號(hào)Us經(jīng)放大后,再利用光電耦合器的線性區(qū),直接對(duì)模擬信號(hào)進(jìn)行光電耦合傳送。由于光電耦合器的線性區(qū)一般只在某一范圍內(nèi),因此,應(yīng)保證被傳信號(hào)的變化范圍始終在線性區(qū)內(nèi)。為了保證線性耦合,即要嚴(yán)格挑選光電耦合器件,又要采取相應(yīng)的非線性校正措施,否則將產(chǎn)生較大誤差。另外,光電隔離前后兩部分電路應(yīng)分別采用兩組獨(dú)立的電源。與變壓器隔離裝置相比,光電隔離器的成本低,體積小,電路容易實(shí)現(xiàn)。圖10.2.7光電隔離電路
3.浮地屏蔽在強(qiáng)干擾環(huán)境下,為了保證微機(jī)系統(tǒng)有較高的可靠性,要采用光電耦合器將微機(jī)部分與其它所有外接通道實(shí)行浮地屏蔽的處理方法,圖10.2.8不僅是隔離電路,也是一個(gè)浮地屏蔽的實(shí)例。A/D轉(zhuǎn)換后的并行輸出口、D/A的并行數(shù)據(jù)輸入口以及地址與控制線均采用光電隔離,而光電耦合器的輸入、輸出回路的電源分別供電。這樣,完全切斷了系統(tǒng)主機(jī)部分與外界的一切電的傳輸聯(lián)系。在傳輸線較長(zhǎng),現(xiàn)場(chǎng)干擾十分強(qiáng)烈時(shí),為了提高整個(gè)系統(tǒng)的可靠邊性,可用光電耦合器將長(zhǎng)線完全“浮置”起來(lái),如圖10.2.9所示。長(zhǎng)線的“浮置”去掉了長(zhǎng)線兩端的公共地線,不但有效地消除各邏輯電路的電流流經(jīng)公共地線時(shí)所產(chǎn)生的噪聲電壓相互干擾,而且也有效地解決了長(zhǎng)線驅(qū)動(dòng)和阻抗匹配等問(wèn)題,同時(shí)也可以防止受控設(shè)備短路時(shí)保護(hù)系統(tǒng)不受損壞。圖10.2.8光電耦合基本配置圖10.2.9傳輸長(zhǎng)線的光耦浮置處理
4.雙絞線傳輸串模干擾與信號(hào)串聯(lián),多來(lái)于空間電磁干擾,可從干擾信號(hào)性質(zhì)和來(lái)源入手,區(qū)分不同情況采取措施。采用雙絞線傳輸?shù)哪康氖菧p少電磁感應(yīng),并且使各個(gè)小環(huán)路的感應(yīng)電勢(shì)互相反向抵消。為清除產(chǎn)生串模式干擾來(lái)源,測(cè)量?jī)x表應(yīng)有良好電磁屏蔽和接地,選用帶有屏蔽層雙絞線或同軸電纜傳輸。與同軸電纜相比,雙絞線雖然頻帶較差,但波阻抗高,抗共模噪聲能力強(qiáng)。
5.濾波采用濾波抑制串模干擾是一種常用的方法。根據(jù)串模干擾頻率與被測(cè)信號(hào)頻率的分布情況,決定選用低通、高通、帶通等傳遞特性的濾波器。如圖10.2.10所示,或采用有源低通濾波器,如圖10.2.11所示。
6.信號(hào)的差動(dòng)式發(fā)收由于長(zhǎng)距離信號(hào)傳輸中存在共模干擾,干擾可以是直流電壓,也可以是交流電壓,其幅值可達(dá)幾伏甚至更高,這取決于現(xiàn)場(chǎng)環(huán)境條件和微機(jī)等設(shè)備接地情況。圖10.2.10無(wú)源阻容低通濾波器
圖10.2.11有源低通濾波器
10.2.3空間干擾和電感性干擾的抑制
1.空間干擾空間干擾主要指磁場(chǎng)在線路、導(dǎo)線、殼體上的輻射、吸收和調(diào)制。在現(xiàn)場(chǎng)解決空間干擾時(shí),首先要正確判斷是否是空間干擾,可以用圖10.2.12所示的方法進(jìn)行實(shí)驗(yàn),即在系統(tǒng)供電電源入口處接入WRY型微機(jī)干擾抑制器或大型磁飽和穩(wěn)壓器,觀察干擾現(xiàn)象是否繼續(xù)存在,如干擾現(xiàn)象繼續(xù)存在則可認(rèn)為是空間干擾。2.電感性負(fù)載干擾實(shí)踐表明,在上節(jié)介紹的干擾源中,電感性負(fù)載切投所產(chǎn)生的干擾是微機(jī)控制系統(tǒng)最常見、最嚴(yán)重、最難克服的干擾之一。抑制電感性負(fù)載切投干擾的措施有如下兩種:一是采用阻容(RC)網(wǎng)絡(luò)。對(duì)電感性負(fù)載切投所產(chǎn)生干擾的抑制,可采用在負(fù)載兩端并聯(lián)RC網(wǎng)絡(luò)的方法,其目的是降低干擾幅值,減小干擾頻率,較好抑制干擾。如圖10.2.13。所示,雖然在負(fù)載L1、L2兩側(cè)并接電容C0可降低干擾的頻率和幅值,但當(dāng)S閉合時(shí),由于電容C0兩端電壓不能突變,因而致使開關(guān)觸點(diǎn)上瞬間流過(guò)一很大電流,加速了觸點(diǎn)燒蝕??尚械姆椒ㄊ窃谪?fù)載側(cè)并接一個(gè)RC串聯(lián)網(wǎng)絡(luò),這樣不但可以減小干擾的幅值和頻率,而且可以限制觸點(diǎn)上的電流。圖10.2.13抑制干擾的RC網(wǎng)絡(luò)其次是采用壓敏電阻。壓敏電阻是一種對(duì)電壓敏感的非線性電阻器件,其特性跟雙向穩(wěn)壓管一樣,是一種無(wú)極性的非線性對(duì)稱的抑制電感性負(fù)載反電勢(shì)干擾和保護(hù)觸頭的器件,既適用于直流電路,也適用于于交流電路;既可接在觸點(diǎn)上,又可接在線圈(包括變壓器線圈)上。與RC網(wǎng)絡(luò)相比,其參數(shù)選擇較容易,且不會(huì)由于電容的充放電而損傷觸點(diǎn)。壓敏電阻還具有溫度系數(shù)小、體積小、重量輕、價(jià)格便宜、使用方便等優(yōu)點(diǎn)。壓敏電阻的選取使用方法可參閱產(chǎn)品說(shuō)明書或有關(guān)資料。10.2.4接地技術(shù)
廣義的接地包含兩方面的意思,即接實(shí)地和接虛地。接實(shí)地指的是與大地連接;接虛地指的是電位基準(zhǔn)點(diǎn)連接;如果地電位的基準(zhǔn)點(diǎn)自行浮置或浮空(即與大地電氣絕緣),則稱為浮地連接。在微機(jī)控制系統(tǒng)中,大致有以下幾種地線:模擬地、數(shù)字地、信號(hào)地、系統(tǒng)地、交流地和保護(hù)地。模擬地作為傳感器、變送器、放大器、A/D和D/A轉(zhuǎn)換器中模擬電路的零電位。模擬信號(hào)有精度要求,有時(shí)信號(hào)比較小,而且與生產(chǎn)現(xiàn)場(chǎng)連接。有時(shí)為區(qū)別遠(yuǎn)距離傳感器的弱信號(hào)地與主機(jī)的模擬地關(guān)系,把傳感器的地叫信號(hào)地。數(shù)字地作為微機(jī)各種數(shù)字電路的零電位,應(yīng)該與模擬地分開,避免模擬信號(hào)受數(shù)字脈沖的干擾。系統(tǒng)地是上述幾種地的最終回流點(diǎn),直接與大地相連作為基準(zhǔn)零電位。保護(hù)地也叫安全地,目的是使設(shè)備機(jī)殼與大地等電位,以避免機(jī)殼帶電影響人身及設(shè)備安全。
1.一點(diǎn)接地與多點(diǎn)接地的應(yīng)用原則一般情況,低頻(1MHz以下)電路應(yīng)一點(diǎn)接地,高頻(10MHz以上)電路應(yīng)多點(diǎn)就近接地。低頻電路布線和元件間電感較小,而接地電路若形成環(huán)路,對(duì)干擾的影響卻很大,所以應(yīng)一點(diǎn)接地。對(duì)于高頻電路,地線上有電感,增加了地線阻抗,同時(shí)各地線之間又產(chǎn)生了電感耦合。當(dāng)頻率甚高時(shí),特別是當(dāng)?shù)鼐€長(zhǎng)度等于1/4波長(zhǎng)的奇數(shù)倍時(shí),地線阻抗就會(huì)變得很高,這時(shí)地線變成了天線,可以向外輻射噪聲信號(hào)。微機(jī)控制系統(tǒng)的工作頻率較低,對(duì)它起作用的干擾頻率也大都在1MHz以下,故宜采用多點(diǎn)接地。在1~10MHz之間,如用一點(diǎn)接地,其地線長(zhǎng)度不得超過(guò)波長(zhǎng)的1/20,否則應(yīng)采用多點(diǎn)接地。一點(diǎn)接地方式有串聯(lián)一點(diǎn)接地和并聯(lián)一點(diǎn)接地。(1)串聯(lián)一點(diǎn)接地串聯(lián)一點(diǎn)接地法如圖10.2.14所示。圖中X、Y、Z三個(gè)電路和電源的接地點(diǎn)用某種型號(hào)的導(dǎo)線(設(shè)導(dǎo)線電阻為3.2mΩ)依次等長(zhǎng)連接在一個(gè)公共地端,這種接法引線少,簡(jiǎn)單易行。但由于三個(gè)支路“共享”了地線壓降,所以每個(gè)支路與地之間存在著不同的電位差。為了改善這種情況,各支路地線應(yīng)盡可能縮短,線徑加粗,電壓較低的支路應(yīng)安排在距電源最近處。圖10.2.14串聯(lián)一點(diǎn)接地法及電位情況并聯(lián)一點(diǎn)接地法如圖10.2.15所示。從每一部分電路到供電電源的低端分開走線,導(dǎo)線電阻與線長(zhǎng)成正比。這樣,X電路地電位可忽略不計(jì),Z電路地電位減少了90%,Y電路的對(duì)地電位變化不大。各支路電流在導(dǎo)線上所產(chǎn)生的壓降互不影響,不會(huì)形成干擾,這是并聯(lián)一點(diǎn)接地的突出優(yōu)點(diǎn),缺點(diǎn)是實(shí)現(xiàn)比較麻煩。為改善圖10.2.15中Z電路對(duì)地的電位差,信號(hào)返回線可用更粗導(dǎo)線。如條件允許,可用分開的電源,如圖10.2.16所示。由上述可知,串聯(lián)一點(diǎn)接地法并不是真正的一點(diǎn)接地,并聯(lián)一點(diǎn)接地抗干擾性能好,實(shí)踐中應(yīng)盡量采用并聯(lián)一點(diǎn)接地。圖10.2.15并聯(lián)一點(diǎn)接地法及電位情況
圖10.2.16電路Z分開供電示意圖
(3)數(shù)字地和模擬地?cái)?shù)字地有較大噪聲而且電平的跳躍會(huì)造成很大的電流尖峰,所有的模擬公共地線應(yīng)該與數(shù)字公共地線分開走線,然后只是在一點(diǎn)匯在一起。特別是在ADC和DAC電路中,尤其要注意地線的正確連接,否則轉(zhuǎn)換將不準(zhǔn)確,且干擾嚴(yán)重。因此ADC、DAC和采樣保持芯片都提供了獨(dú)立的模擬地和數(shù)字地,它們分別有相應(yīng)的管腳,必須將所有器件的模擬地和數(shù)字地分別相連,模擬地與數(shù)字地僅在一點(diǎn)上相連接,除此連接點(diǎn)外,在芯片和其它電路中切不可再有公共點(diǎn),如圖10.2.17所示。
圖10.2.17正確的地線連接
2.輸入部分的接地(1)輸入屏蔽線接地由一點(diǎn)接地信號(hào)為1MHz以下與多點(diǎn)接地的應(yīng)用原則來(lái)確定輸入信號(hào)屏蔽線是一點(diǎn)接地還是兩點(diǎn)接地,具體電路如圖10.2.18所示。(a)屏蔽線終端一點(diǎn)接地(b)屏蔽線始端一點(diǎn)接地(c)屏蔽線雙端接地圖10.2.18屏蔽線接地
(2)屏蔽罩接地
微機(jī)控制系統(tǒng)中的放大器通常采用屏蔽罩,而信號(hào)的傳送往往要用屏蔽線。對(duì)于屏蔽線的兩種單端接地情況要注意:信號(hào)源浮地屏蔽線在接收端接地應(yīng)與屏蔽罩互聯(lián);屏蔽線在信號(hào)源端接地,接收端的放大器應(yīng)浮地。這樣分別情況接地是為了避免流過(guò)屏蔽線的電流,通過(guò)屏蔽線與信號(hào)線間的電容產(chǎn)生對(duì)信號(hào)的干擾。一般輸入信號(hào)較小,而模擬信號(hào)又容易受干擾。因此,要格外重視屏蔽罩的接地。3.主機(jī)部分的接地工業(yè)現(xiàn)場(chǎng)主機(jī)部分接地有時(shí)是出于人身或設(shè)備安全方面的考慮,但更主要的是為了防止干擾,提高可靠性。下面介紹幾種主機(jī)接地方式。
(1)主機(jī)外殼接地、機(jī)芯浮空為提高微機(jī)的抗干擾能力,將主機(jī)外殼作為屏蔽罩接地,而把機(jī)內(nèi)器件架與外殼絕緣,絕緣電阻大于50MΩ,即機(jī)內(nèi)信號(hào)地浮空,如圖10.2.19a)所示。這種方法抗干擾能力強(qiáng),而且安全可靠,但要注意一旦絕緣電阻降低將會(huì)引入干擾。
(2)全機(jī)一點(diǎn)接地主機(jī)機(jī)芯與外部設(shè)備地相聯(lián)后,采用一點(diǎn)接地,如圖10.2.19b)所示。為避免多點(diǎn)接地,各機(jī)座用絕緣板墊起來(lái)。這種接地也具有較好的抗干擾能力。但要注意接地電阻越小越好。(3)多機(jī)系統(tǒng)的接地在微機(jī)網(wǎng)絡(luò)系統(tǒng)中,多臺(tái)機(jī)器之間相互通訊,資源共享。如果接地不合理,將使整個(gè)網(wǎng)絡(luò)系統(tǒng)無(wú)法正常工作。遠(yuǎn)距離的幾臺(tái)微機(jī)安裝在同一機(jī)房?jī)?nèi),可采用圖10.2.3b)那樣的多機(jī)一點(diǎn)接地方法。對(duì)遠(yuǎn)距離的網(wǎng)絡(luò),多臺(tái)微機(jī)之間的數(shù)據(jù)通訊,通過(guò)隔離的辦法把地分開。6.2.5布線的抗干擾技術(shù)在微機(jī)系統(tǒng)中,正確的布線方法也是重要抗干擾措施,一般布線原則如下:1從交流供電電源到微機(jī)系統(tǒng)電源(1)微機(jī)控制系統(tǒng)電源與交流供電電源之間距離宜遠(yuǎn),引線盡量短、粗、直。(2)從微機(jī)控制系統(tǒng)電源到交流供電電源端線路上開關(guān)觸點(diǎn)應(yīng)盡量減小,觸點(diǎn)接觸力求可靠。
2微機(jī)系統(tǒng)電源的輸入輸出走線盡量選用電流一去一回的兩根扭絞線供電,扭絞螺距最好小于3cm。如果導(dǎo)線粗無(wú)法扭絞時(shí),應(yīng)將線距縮到最短。從交流供電電源到微機(jī)系統(tǒng)電源的布線原則也適用于這一段。外部輸入信號(hào)的緩沖器和隔離器的配線,燈泡、繼電器等感性負(fù)載的驅(qū)動(dòng)線等必須使用雙絞線。下述部分應(yīng)分開配線,線間盡量拉開一定距離。(1)交流線:從噪聲濾波器輸出到供電電源的交流線已經(jīng)過(guò)濾波處理,故這一段交流線不允許與其它交流線一起布線。(2)直流穩(wěn)壓電源線:如果直流穩(wěn)壓電源線使用帶屏蔽的電纜時(shí),供數(shù)字電路及模擬電路用的電源線可以看作與下面(3)相同的部分進(jìn)行布線。(3)數(shù)字信號(hào)線和模擬信號(hào)線。(4)燈泡、繼電器等到感性負(fù)載的驅(qū)動(dòng)線和非穩(wěn)壓的直流線。3從微機(jī)電源到箱架電路板的布線為盡量減少阻抗,應(yīng)該用粗導(dǎo)線或匯流排配線,匯流排之前配以短距離的雙絞線。如遇到遠(yuǎn)距離輸出時(shí),應(yīng)從箱架最近處,如在匯流排處輸出,如圖10.2.20所示。過(guò)渡線的接入方法當(dāng)兩個(gè)負(fù)載之間傳送信號(hào)時(shí),要接入過(guò)渡線,過(guò)渡線原則上應(yīng)避免從模擬電路過(guò)渡,由過(guò)渡線實(shí)現(xiàn)電路的共地。數(shù)字電路的過(guò)渡如圖10.2.21所示。圖中(a)、(b)都是正確的過(guò)渡線連接方法,但當(dāng)負(fù)載(A)、(B)之間有信號(hào)傳送時(shí),大多以(b)方式為好。前兩節(jié)主要介紹硬件的抗干擾技術(shù),在后兩節(jié)中介紹軟件抗干擾技術(shù)。
圖10.2.20微機(jī)電源到箱架電路板的配線圖10.2.21過(guò)渡線的正確法
6.3CPU抗干擾技術(shù)當(dāng)干擾可能通過(guò)三總線作用進(jìn)入CPU本身時(shí),CPU將不能按正常狀態(tài)執(zhí)行程序,從而引起混亂。為盡可能無(wú)擾動(dòng)地恢復(fù)系統(tǒng)正常狀態(tài),常采取以下措施。6.3.1人工復(fù)位對(duì)于失控的CPU,最簡(jiǎn)單的方法是使其復(fù)位,程序從0000H地址開始執(zhí)行。為此只要在8051系列單片機(jī)的REST端加上一個(gè)高電平信號(hào),并持續(xù)兩個(gè)機(jī)器周期以上即可。RESET端接有一個(gè)上電復(fù)位電路,它由一個(gè)小電解電容和一個(gè)接地電阻組成,人工復(fù)位電路另外采用一個(gè)按鈕來(lái)給RESET端加上高電平信號(hào)。圖10.3.1為放電型人工復(fù)位電路,上電時(shí)C通過(guò)R充電,維持一段足夠的高電平時(shí)間就完成了上電復(fù)位功能。C充電結(jié)束后,RESET端為低電平,CPU正常工作。需要人工復(fù)位時(shí),按下按鈕K,C通過(guò)K和R1放電,RESET端電位上升到高電平,實(shí)現(xiàn)人工復(fù)位。K松開后,C重新充電,充電結(jié)束后,CPU重新工作。R1是限流電阻,阻值不要過(guò)大,否則不能實(shí)現(xiàn)人工復(fù)位。一般R1=1K,R2=10K,C=10μF。圖10.3.1放電型人工復(fù)位
人工復(fù)位雖然可以強(qiáng)迫CPU走上正軌,而且電路簡(jiǎn)單,但最大的缺點(diǎn)是不及時(shí),往往系統(tǒng)已經(jīng)癱瘓,人們?cè)跓o(wú)可奈何的情況下才按下復(fù)位按鈕。如果軟件上上沒(méi)有特別的措施,人工復(fù)位和上電復(fù)位具有同等到作用,系統(tǒng)一切從頭開始,已經(jīng)完成的工作量全部作廢,這在控制系統(tǒng)中是不允許的。因此,人工復(fù)位主要用于非控制系統(tǒng),如各類智能測(cè)試儀器。如果CPU在受到干擾后能自動(dòng)采取補(bǔ)救措施,再自動(dòng)復(fù)位,這才能為各類控制系統(tǒng)所接受。10.3.2掉電保護(hù)電網(wǎng)瞬間斷電或電壓突然下降,將使微機(jī)系統(tǒng)陷入混亂狀態(tài);當(dāng)電網(wǎng)電壓恢復(fù)正常后,微機(jī)系統(tǒng)難以恢復(fù)正常狀態(tài),對(duì)這一類事故的有效方法就是采用掉電表保護(hù),掉電保護(hù)由硬件電路檢測(cè)到,加到單片機(jī)的外部中斷輸入端。軟件中將掉電中斷規(guī)定為高級(jí)中斷,使系統(tǒng)能夠及時(shí)對(duì)掉電作出反應(yīng)。在掉電中斷子程序中,首先進(jìn)行現(xiàn)場(chǎng)保護(hù),把當(dāng)時(shí)的重要狀態(tài)參數(shù),中間結(jié)果一一從片外RAM中調(diào)入單片機(jī)的RAM中,某些片內(nèi)專用寄存器的內(nèi)容也轉(zhuǎn)移到片內(nèi)通用RAM中。其次是對(duì)有關(guān)設(shè)備作出妥善處理,如關(guān)閉各輸入輸出口,使外設(shè)處于某一個(gè)非工作狀態(tài)等。最后必須在片內(nèi)RAM的某一個(gè)或兩個(gè)單元作上特定標(biāo)記,例如存入0AAH或55H之類的代碼,作為掉電標(biāo)記。這些應(yīng)急措施全部實(shí)施完畢后,即可進(jìn)入掉電保護(hù)工作狀態(tài)。為保證掉電子程序能順利執(zhí)行,掉電檢測(cè)電路必須在電壓下降到CPU最低工作電壓之前就提出中斷申請(qǐng),提前時(shí)間為幾百微秒到數(shù)毫秒。掉電后,外圍電路失電,但CPU不能失電,以保持RAM中內(nèi)容不變,故CPU應(yīng)有一套備用電源。另外,CPU應(yīng)采用CMOS型80C31芯片,執(zhí)行一條ORLP
CON,#2的指令后即可進(jìn)入掉電工作狀態(tài)。當(dāng)電源恢復(fù)正常時(shí),CPU重新復(fù)位,復(fù)位后應(yīng)首先檢查是否有掉電標(biāo)記,如果沒(méi)有,按一般開機(jī)程序執(zhí)行(系統(tǒng)初始化等)。如果有掉電標(biāo)記,則說(shuō)明本次復(fù)位為掉電保護(hù)之后的復(fù)位,不應(yīng)將系統(tǒng)初始化,而應(yīng)按掉電中斷子程序相反的方式恢復(fù)現(xiàn)場(chǎng),以一種合理的安全方式使系統(tǒng)繼續(xù)工作。為實(shí)現(xiàn)以上功能,必須有一套功能完備的硬件掉電檢測(cè)電路和CPU電源切換電路,如圖10.3.2所示。利用R3和Dw在運(yùn)放的負(fù)輸入端建立一個(gè)參考電壓信號(hào)(約2.5~3.5V),再由R1和R2的分壓,在運(yùn)放的正輸入端建立電源檢測(cè)信號(hào),調(diào)整R1和R2的比值,使Vcc高于4.8V時(shí)運(yùn)放輸出為高電平,當(dāng)Vcc低于4.8V時(shí),運(yùn)放輸出低電平信號(hào),觸發(fā)80C31的外部中斷。CPU進(jìn)入掉電保護(hù)后耗電極微,Vcc繼續(xù)下降后,CPU通過(guò)D2從備用電池E中得到工作電壓(2.3~2.5V),維持片內(nèi)RAM中數(shù)據(jù)不丟失。如果電容C選用自身漏電極微的大容量電解電容(1000μF以上),二極管D1選用硅二極管,在不要備用電源E(當(dāng)然也不要二極管D2)的情況下,RAM中的信息可以保持24小時(shí)以上,這對(duì)于天天都開機(jī)的系統(tǒng)來(lái)說(shuō)是完全足夠的。圖10.3.2掉電檢測(cè)和備用電源10.3.3睡眠抗干擾CMOS型80C31通過(guò)執(zhí)行ORLPCON,#1還可以進(jìn)入睡眠狀態(tài),只有定時(shí)/計(jì)數(shù)系統(tǒng)和中斷系統(tǒng)處于工作狀態(tài)。這時(shí)CPU對(duì)系統(tǒng)三總線上出現(xiàn)的干擾不會(huì)作出什么反應(yīng),從而大大降低了系統(tǒng)對(duì)干擾的敏感程度。仔細(xì)分析系統(tǒng)軟件后可以發(fā)現(xiàn),CPU并不是一直忙于工作,有很多情況下是在執(zhí)行一些踏步等待指令和循環(huán)檢查程序,由于這時(shí)CPU雖未干什么主要工作,但卻是很容易受干擾。我們讓CPU在沒(méi)有工作時(shí)就睡覺(jué),有工作時(shí)再由中斷系統(tǒng)來(lái)喚醒它,干完后又接著睡覺(jué)。采用這種安排之后,大多數(shù)CPU可以有50%~95%的時(shí)間用于睡覺(jué),從而使CPU受到隨機(jī)干擾的威脅就大大降低,對(duì)于低功耗系統(tǒng),CPU的功耗也有所下降。在一些大功率微機(jī)控制系統(tǒng)中,大電流和高電壓設(shè)備的投入和切除都是由軟件指令來(lái)完成的.這些指令執(zhí)行之后,必然引起強(qiáng)烈的干擾,這些干擾不能算隨機(jī)干擾,它們與軟件完全相關(guān).如果CPU在作好各種準(zhǔn)備工作之后,進(jìn)行可能引起強(qiáng)烈干擾的I/O操作之后,立即進(jìn)入睡眠狀態(tài),也就不會(huì)受到干擾了。等到下一次醒來(lái)時(shí),干擾的高峰也基本消失了。按這種思想設(shè)計(jì)的軟件有如下特點(diǎn):主程序在完成各種自檢、初始化工作后,用下述兩條指令取代踏步指令:LOOP:ORLPCON,#1LJMPLOOP10.3.4指令冗余當(dāng)CPU受到干擾后,往往將一些操作數(shù)當(dāng)作指令碼來(lái)執(zhí)行,引起程序混亂,這時(shí)首先要盡快將程序納入正軌(執(zhí)行有用程序)。MCS-51指令系統(tǒng)中所有的指令都不超過(guò)3個(gè)字節(jié),而且有很多單字節(jié)指令。在雙字節(jié)指令和三字節(jié)指令之后插入兩條NOP后,可保護(hù)其后的指令不被拆散?;蛘哒f(shuō),某指令前如果插入兩條NOP指令,則這條指令就不會(huì)被前面沖下來(lái)的失控程序拆散,并將被完整執(zhí)行,從而使程序走上正軌。但不能在程序中加入太多的冗余指令,以免明顯降低程序正常運(yùn)行的效率。因此,常在一些對(duì)程序流向起決定作用的指令之前插入兩條NOP指令,以保證彈飛的程序迅速納入正軌。此類指令有:RET、RETI、ACALL、LCALL、SJMP、AJMP、LJMP、JZ、JNZ、JC、JNC、JB、JNB、JBC、CJNE、DJNZ等。10.3.5軟件陷阱指令冗余使彈飛的程序安定下來(lái)是有條件的,首先彈飛的程序必須落到程序區(qū),其次必須執(zhí)行到冗余指令。當(dāng)彈飛的程序落到非程序區(qū)(如EPROM中未使用的空間、程序中的數(shù)據(jù)表格區(qū))時(shí),前一個(gè)條件即不滿足。當(dāng)彈飛的程序在沒(méi)有碰到冗余指令之前,已經(jīng)自動(dòng)形成一個(gè)死循環(huán),這時(shí)第二個(gè)條件也不滿足,對(duì)付前一種情況采取的措施就是設(shè)置軟件陷阱,對(duì)于后一種情況采取的措施就是建立程序運(yùn)行監(jiān)視系統(tǒng)(WATCHDOG)。所謂軟件陷阱,就是一條引導(dǎo)指令,強(qiáng)行將捕獲的程序引向一個(gè)指定的地址,在那里有一段專門對(duì)程序出錯(cuò)進(jìn)行處理的程序。如果把該程序的入口標(biāo)號(hào)稱為ERR的話,軟件陷阱即為一條LJMPERR指令,為加強(qiáng)其捕捉效果,一般還在它前面加兩條NOP指令,因此,真正的軟件陷阱由三條指令構(gòu)成:
NOPNOPLJMPERR軟件陷阱安排在下列四種地方:(1)未使用的中斷向量區(qū)。有的編程人員將未使用的中斷向量區(qū)(0003H~002FH)用于編程,以節(jié)約ROM空間,這是不可取的。現(xiàn)在EPROM的容量越來(lái)越大,價(jià)格也不貴,節(jié)約幾十個(gè)字節(jié)的ROM空間已毫無(wú)意義。當(dāng)干擾使未使用的中斷開放,并激活這些中斷時(shí),就會(huì)進(jìn)一步引起混亂。如果在這些地方布上陷阱,就能及時(shí)捕捉到錯(cuò)誤中斷。例如:系統(tǒng)共使用了三個(gè)中斷:INT0、T0、T1,它們的中斷子程序分別為PGINT0、PGT0、PGT1,可按如下方式來(lái)設(shè)置中斷向量區(qū):ORG0000HLJMPMAIN;引向主程序入口LJMPPGINT0;INT0中斷正常入口NOP;冗余指令NOP;LJMPERR;陷阱LJMPPGT0;T0中斷正常入口NOP;冗余指令NOP;LJMP
ERR;陷阱
`
LJMPPGT1;未使用INT1,設(shè)陷阱NOP;冗余指令NOPLJMPERR:陷阱LJMPPGT1;T1中斷正常入口NOP;冗余指令NOP;LJMPERR;陷阱LJMPERR;未使用串行口中斷,設(shè)陷阱NOP;冗余指令NOPLJMPERR;陷阱LJMPERR;未使用T2中斷(8052)NOP;冗余指令NOP從0030H開始再編寫正式程序,先編主程序還是先編中斷服務(wù)程序都是可以的。(2)未使用的大片未編程的ROM空間,一般都是2764或27128,很少有將其全部用完的。對(duì)于剩余的大片未編程的ROM空間,一般均維持原狀0FFH,這對(duì)于8051指令系統(tǒng)來(lái)講,是一條單字節(jié)指令(MOVR7,A),程序彈飛到這一區(qū)域后將順流而下,不再跳躍(除非受到新的干擾)。只要每隔一段設(shè)置一個(gè)陷阱,就一定能捕捉到彈飛的程序。有的編程者用力020000(即LJMPSTART)來(lái)填充ROM的未使用空間,以為兩個(gè)00H既是地址,可設(shè)置陷阱,又是NOP指令,起到雙重作用,實(shí)際上是不妥的。程序出錯(cuò)后直接從頭開始執(zhí)行將有可能發(fā)生一系列的麻煩事情。軟件陷阱一定要指向出錯(cuò)處理過(guò)程ERR??梢詫RR安排在0030H開始的地方,程序不管怎樣修改,編譯后ERR的地址總是固定的(因?yàn)樗懊娴闹袛嘞蛄繀^(qū)是固定的)。這樣就可以用0000020030五個(gè)字節(jié)作為陷阱來(lái)填充ROM中的未使用空間,或者每隔一段設(shè)置一個(gè)陷阱(020030),其它單元保持0FFH不變。(3)表格。有兩類表格,一類是數(shù)表格,供MOVCA,@A+PC指令或MOVCA,@A+DPTR指令使用,其內(nèi)容完全不是指令。另一類是散轉(zhuǎn)表格,供JMP@A+DPTR指令使用,其內(nèi)容為一系列的三字節(jié)指令LJMP或兩字節(jié)指令A(yù)JMP。由于表格內(nèi)容和檢索值有一一對(duì)應(yīng)關(guān)系,在表格中間安排陷阱將會(huì)破壞其連續(xù)性和對(duì)應(yīng)關(guān)系,只能在表格的最后安排五字節(jié)陷阱:NOPNOPLJMP
ERR。由于表格區(qū)一般較長(zhǎng),安排在最后的陷阱不能保證一定接到飛來(lái)的程序,只有別處陷阱或冗余指令來(lái)收服了。(4)程序區(qū)。程序區(qū)是一連串執(zhí)行指令構(gòu)成的,不能在這些指令串中間任意安排陷阱,否則正常執(zhí)行的程序也被抓走。但是,在這些指令串之間常有一些斷裂點(diǎn),正常執(zhí)行的程序到此便不會(huì)繼續(xù)往下執(zhí)行了,這類指令有LJMP、SJMP、AJMP、RET、RETI。這時(shí)PC的值應(yīng)發(fā)生正常跳變。如果還要順次往下執(zhí)行,必然就出錯(cuò)了。當(dāng)然,彈飛的程序剛好落到斷裂點(diǎn)的操作數(shù)上或落到前面指令的操作數(shù)上(又沒(méi)有在這條指令之前使用冗余指令),則程序就會(huì)正常執(zhí)行的程序流程。例如:在一個(gè)根據(jù)累加器A中內(nèi)容的正、負(fù)、零情況進(jìn)行三分支的程序中,軟件陷阱的安置方式如下:JNZXYZ·;零處理··
AJMPABC;斷裂點(diǎn)NOP;陷阱NOPLJMPERRXYZ:JB
ACC7,UVW··;正處理·AJMP
ABC;斷裂點(diǎn)NOP;陷阱NOPLJMPERRUVW:·;負(fù)處理··ABC:MOVA,R2;取結(jié)果RET;斷裂點(diǎn)NOP;陷阱NOP;LJMPERR6.程序運(yùn)行監(jiān)視系統(tǒng)(WATCHDOG)前已述及,當(dāng)程序彈飛到一個(gè)臨時(shí)構(gòu)成的死循環(huán)時(shí),冗余指令和軟件陷阱也無(wú)能為力了,這時(shí)系統(tǒng)完全癱瘓。如果操作者在場(chǎng),可以按下人工復(fù)位按鈕,強(qiáng)制系統(tǒng)復(fù)位,擺脫死循環(huán)。但操作者不能一直監(jiān)視著系統(tǒng),即使在監(jiān)視著系統(tǒng),也往往是在引起不良后果之后才能進(jìn)行人工復(fù)位。為讓微機(jī)自己來(lái)監(jiān)視系統(tǒng)運(yùn)行情況,特為系統(tǒng)裝加“程序運(yùn)行監(jiān)視系統(tǒng)”。國(guó)外把“程序運(yùn)行監(jiān)視系統(tǒng)”稱為WATCHDOG(看門狗),它有如下特性:(1)本身能獨(dú)立工作,基本上不依賴CPU。(2)CPU在一個(gè)固定的時(shí)間間隔中和監(jiān)視系統(tǒng)打一次交道,以表明系統(tǒng)“目前尚正?!?。(3)當(dāng)CPU掉入死循環(huán)后,能及時(shí)發(fā)覺(jué)并使系統(tǒng)復(fù)位。在8096系列單片機(jī)和增強(qiáng)型8051系列單片中,已將該系統(tǒng)做入芯片里,使用起來(lái)很方便。而在普通型8051系列單片機(jī)系統(tǒng)中,必須由用戶自己建立。如果要達(dá)到WATCHDOG的真正目標(biāo),該系統(tǒng)必須包括一定的硬件部分,它完全獨(dú)立于CPU之外。如果為了簡(jiǎn)化硬件電路,也可以采用純軟件的WATCHDOG系統(tǒng)。當(dāng)硬件電路設(shè)計(jì)時(shí)未考慮到采用WATCHDOG,則軟件WATCHDOG是一個(gè)比較好的補(bǔ)救措施,只是其可靠性稍差一些。WATCHDOG的硬件部分為一獨(dú)立于CPU之外的部件,可用單穩(wěn)電路構(gòu)成,也可用自帶脈沖源的計(jì)數(shù)器構(gòu)成。CPU正常工作時(shí),每隔一段時(shí)間就輸出一個(gè)脈沖,將單穩(wěn)系統(tǒng)觸發(fā)到暫穩(wěn)態(tài),暫穩(wěn)態(tài)的持續(xù)時(shí)間設(shè)計(jì)得比CPU的觸發(fā)周期長(zhǎng),因而單穩(wěn)態(tài)系統(tǒng)就不能回到穩(wěn)態(tài)。當(dāng)CPU陷入死循環(huán)后,再也不能觸發(fā)單穩(wěn)系統(tǒng)了,單穩(wěn)系統(tǒng)便可以順利返回穩(wěn)態(tài),利用它返回穩(wěn)態(tài)時(shí)輸出的信號(hào)作為復(fù)位信號(hào),便可使CPU退出死循環(huán)。圖10.3.3為用計(jì)數(shù)器構(gòu)成的WATCHDOG電路。圖10.3.3計(jì)數(shù)器WATCHIDOG電路將555接成一個(gè)多諧振蕩器,周期為T0,將74LS93接成十六進(jìn)制計(jì)數(shù)器,當(dāng)數(shù)到第八個(gè)脈沖時(shí)QD端變?yōu)楦唠娖?。單片機(jī)用一條輸出端口(例如P17)輸出清零脈沖,只要每次清零脈沖的時(shí)間間隔短于8個(gè)脈沖周期,計(jì)數(shù)器就總是計(jì)不到8,QD端保持低電平。當(dāng)CPU受干擾而掉入死循環(huán)時(shí),就不能送出復(fù)位脈沖了,計(jì)數(shù)器很快數(shù)到8,QD端立即變?yōu)楦唠娖?,?jīng)過(guò)微分電路C2、R3輸出一個(gè)正脈沖,使CPU復(fù)位。在這里,CPU的復(fù)位信號(hào)有三個(gè):上電復(fù)位(C1、R1),人工復(fù)位(Ka、R2、R1)和WATCHDOG復(fù)位(C2、R3),通過(guò)或門綜合后加到RESET端。C2、R3的時(shí)間常數(shù)不必太大,有數(shù)百微秒便可,因?yàn)檫@時(shí)CPU的振蕩器已經(jīng)在工作。74KLS93的清零信號(hào)為高電平,為防止CPU掉入死循環(huán)前將P17變?yōu)楦唠娖蕉筗ATCHDOG失效,在P17和計(jì)數(shù)器的清零端之間加一個(gè)微分隔離電路。CPU在平時(shí)保持P17為低電平,每間隔一段時(shí)間(不超過(guò)8個(gè)T0),從P17輸出一個(gè)正脈沖,經(jīng)微分后使計(jì)數(shù)器清零。這個(gè)微分電路的時(shí)間常數(shù)可選數(shù)秒級(jí)。脈沖源555的振蕩周期T0大小可由系統(tǒng)軟件的循環(huán)周期來(lái)決定。如果系統(tǒng)有一自始至終都工作的軟件時(shí)鐘系統(tǒng),可將復(fù)零操作放在時(shí)鐘中斷里完成,這時(shí)555的振蕩周期T0必須大于1/8系統(tǒng)時(shí)鐘中斷周期,通常取1/4~1/2時(shí)鐘中斷周期。如果系統(tǒng)沒(méi)有固定的定時(shí)中斷,可將復(fù)零操作放在監(jiān)控循環(huán)中執(zhí)行。如果程序中有查詢等待指令(在某些用握手方式跟外設(shè)打交道的程序中常出現(xiàn))時(shí)特別注意,如用P11查詢:WAIT:JBP11,WAIT這時(shí),有可能外設(shè)要持續(xù)一段較長(zhǎng)時(shí)間才能準(zhǔn)備好,這段時(shí)間如果大于WATCHDOG允許時(shí)間,系統(tǒng)將被復(fù)位。為此,改成如下結(jié)構(gòu)便可:WAIT:SETBP17;復(fù)位WATCHDOGNOPNOPCLRP17;允許WATCHDOG開始工作NOPNOPJBP17WAIT;查詢等待上面介紹的WATCHDOG電路是計(jì)數(shù)器型的,如果要用單穩(wěn)態(tài)電路構(gòu)成,電路必須仔細(xì)推敲,有很多單穩(wěn)電路是不能靠連續(xù)觸發(fā)來(lái)長(zhǎng)期維持穩(wěn)態(tài)的,使用中應(yīng)注意。有時(shí)為了簡(jiǎn)化硬件電路,也可以建立一個(gè)軟件的WATCHDOG系統(tǒng)。當(dāng)系統(tǒng)掉進(jìn)死循環(huán)后,只有比這個(gè)死循環(huán)更高級(jí)的中斷子程序才能有對(duì)CPU的控制權(quán)。為此可用一個(gè)定時(shí)器來(lái)做WATCHDOG,將它的溢出中斷設(shè)定為高級(jí)中斷(掉電中斷選用INT0時(shí),也可設(shè)為高級(jí)中斷,并享有比定時(shí)中斷優(yōu)先的地位)。系統(tǒng)中的其它中斷均設(shè)為低級(jí)中斷。例如用T0作WATCHDOG,定時(shí)約為16ms,可以在初始化時(shí)這樣建立WATCHDOG:MOVTMOD,#01H;設(shè)置T0為16位定時(shí)器SETBET0;允許T0中斷SETBPT0;設(shè)置T0為高級(jí)中斷MOVTL0,#0C0HMOVTH0,#0E0H;定時(shí)約16ms(6MHz晶振)SETBTR0;啟動(dòng)T0SETBEA;開中斷以上初始化過(guò)程可和其它資源初始化一并進(jìn)行。如T1也作為16位定時(shí)器,則可以用MOVTMOD,#11H來(lái)代替MOVTMOD,#01H。WATCHDOG啟動(dòng)以后,系統(tǒng)工作程序必須經(jīng)常對(duì)它發(fā)信號(hào),每?jī)纱沃g的間隔不得大于16ms(例如每10ms發(fā)一次)。執(zhí)行一條MOVTH0,#0E0H指令即可。如果用MOVTH0,#0來(lái)工作,它將保持131ms(而不是要求的16ms)。這條指令的安放原則和硬件WATCHDOG相同。當(dāng)程序掉入死循環(huán)后,16ms之內(nèi)即可引起一次T0溢出,產(chǎn)生高級(jí)中斷,從而退出死循環(huán)。T0中斷可直接轉(zhuǎn)向出錯(cuò)處理程序,在中斷向量區(qū)安放一條LJMPERR即可。由出錯(cuò)處理程序來(lái)完成各種善后工作,并用軟件方使系統(tǒng)復(fù)位。軟件WATCGDOG需要系統(tǒng)讓出一個(gè)定時(shí)器資源,這在某些系統(tǒng)中是很難辦到的,如果還想采取軟件WATCHDOG,可以讓T0作兼職WATCHDOG,由于T0中斷子程序分擔(dān)部分工作程序。如果在執(zhí)行這段工作程序中掉進(jìn)死循環(huán),WATCHDOG系統(tǒng)當(dāng)然也同時(shí)癱瘓了,因此,這部分兼職工作程序的執(zhí)行時(shí)間應(yīng)盡可能短些。專職WATCHDOG在正常情況下是不發(fā)生溢出中斷的,而兼職WATCHDOG在正常情況下必定發(fā)生溢出中斷,因?yàn)樗€有兼職的工作要完成。這時(shí)可以另外用一個(gè)單元作為計(jì)數(shù)器,統(tǒng)計(jì)T0中斷的次數(shù)。當(dāng)T0中斷次數(shù)達(dá)到某個(gè)規(guī)定值時(shí)(例如5次),即作出錯(cuò)處理,這時(shí)在主程序和其它低級(jí)中斷子程序中均插入若干條使計(jì)數(shù)器清零的指令,系統(tǒng)正常運(yùn)行時(shí),該計(jì)數(shù)器的值不斷被清零,是增加不到滿值的,故不會(huì)引起出錯(cuò)處理。當(dāng)系統(tǒng)掉進(jìn)死循環(huán)后,T0中斷使程序退出死循環(huán),將計(jì)數(shù)器加一,然后返回到死循環(huán)中繼續(xù)死循環(huán),然后中斷,如此下去,直到計(jì)數(shù)器加到指定值便作出錯(cuò)處理。兼職WATCHDOG中斷子程序結(jié)構(gòu)如圖10.3.4所示。設(shè)計(jì)單元為39H,時(shí)鐘6MHz,T0定時(shí)為5ms。工作方式1,最大允許死循環(huán)時(shí)間為25ms(5次),中斷子程序如下:WATCHDOG:PUSHACC;保護(hù)現(xiàn)場(chǎng)
PUSHPSWMOVTL0,#3CH;置初值
MOVTH0,#0F6HINC39H;計(jì)數(shù)器加一
MOVA,39HADDA,#0FBH;是否達(dá)到5次
JNCWATCHLJMP
ERR;出錯(cuò)處理WATCH:…;執(zhí)行兼職程序POPPSW;恢復(fù)現(xiàn)場(chǎng)POPACCRETI;中斷返回如果失控程序執(zhí)行了修改T0功能的指令(這些指令由操作數(shù)變形后形成),如CLRTR0、CLRET0、CLRPT0、CLREA,軟件WATCHDOG便失效了。這就是軟件WATCHDOG的弱點(diǎn),雖然這種情況發(fā)生的概率極小,但在要求較高的系統(tǒng)中,人們還是愿意采用硬件WATCHDOG系統(tǒng),或采用帶有硬件WATCHDOG的單片機(jī)。10.4數(shù)字信號(hào)的軟件抗干擾措施上節(jié)所述抗干擾措施是針對(duì)CPU本身的,還未涉及到輸入、輸出通道。如果干擾只作用在系統(tǒng)的I/O通道上,CPU工作正常,可用如下方法來(lái)使干擾對(duì)數(shù)字信號(hào)的輸入、輸出影響減小或消失。
10.4.1數(shù)字信號(hào)的輸入方法干擾信號(hào)多呈毛刺狀,作用時(shí)間短,利用這一特點(diǎn),在采集某一數(shù)字信號(hào)時(shí),可多次重復(fù)采集,直到連續(xù)兩次或兩次以上采集結(jié)果完全一致方為有效。若多次采集后,信號(hào)總是變化不定,可停止采集,給出報(bào)警信號(hào)。若數(shù)字信號(hào)為開關(guān)量,如限位開關(guān)和操作按鈕等,對(duì)這些信號(hào)的采集不能用多次平均方法,必須絕對(duì)一致才行。典型的程序流程如圖10.4.1所示。圖10.4.1數(shù)字信號(hào)采集流程圖程序清單如下:DIGIN:MOVR2,#0H;初始化空信號(hào)
MOVR7,#0AH;最多采集10次
MOVR6,#0H;相同次數(shù)初始化
DIGIN0:ACALLINPUT;采集一次數(shù)字信號(hào)
XCHA,R2;保存本次采集結(jié)果
XRLA,R2;與上次比較JNZDIGIN1;相同否?INCR6;相同次數(shù)加一CJNER6,#3,DIGIN2;連續(xù)三次相同否?MOVA,R2;采集有效,取結(jié)果SETBF0;設(shè)定成功標(biāo)志RET;返回DIGIN1:MOVR6,#0;與上次不同,計(jì)數(shù)器清零DIGIN2:DJNZR7,DIGIN0;限定總次數(shù)到否?
CLRF0;次數(shù)已到,宣告失敗
RET;返回程序中ACALLINPUT是調(diào)用一個(gè)采集數(shù)字信號(hào)的過(guò)程,采集的結(jié)果為8位數(shù)字信號(hào),并保存在累加器A中,如果這個(gè)采集過(guò)程很簡(jiǎn)單,應(yīng)該直接將過(guò)程替代ACALLINPUT,例如各數(shù)字信號(hào)直接連在P1口上,便可用一條指令MOVA,P1來(lái)取代ACALLINPUT。如果采集過(guò)程較復(fù)雜,可另編一個(gè)INPUT子程序。但要注意,該子程序中不要再使用R2、R6、R7,或換工作寄存器區(qū)再使用這三個(gè)寄存器,否則出錯(cuò)。如果數(shù)字超過(guò)8位,可按8位一組進(jìn)行分組處理,也可定義多字節(jié)信息暫存區(qū),按類似方法處理。在滿足實(shí)時(shí)性要求的前提下,如果在各次采集數(shù)字信號(hào)之間延時(shí)處理一下,效果就會(huì)好一些,就能對(duì)抗較寬的干擾。延時(shí)時(shí)間在10~100μS左右。對(duì)于每次采集的最高次數(shù)限額和連續(xù)相同次數(shù)均可按實(shí)際情況適當(dāng)調(diào)整。10.4.2數(shù)字信號(hào)的輸出方法單片機(jī)的輸出中,有很多是數(shù)字信號(hào),例如顯示裝置、打印裝置、通訊、各種報(bào)警裝置、步進(jìn)電機(jī)的控制信號(hào)、各種電磁裝置(電磁鐵、電磁離合器、中間繼電器等)的驅(qū)動(dòng)信號(hào)。即使是模擬輸出信號(hào),也是以數(shù)字信號(hào)形式給出,再經(jīng)D/A轉(zhuǎn)換后才形成的。單片機(jī)給出正確的數(shù)據(jù)輸出后,外部干擾有可能使輸出裝置得到錯(cuò)誤的數(shù)據(jù)。這種錯(cuò)誤的輸出結(jié)果有時(shí)會(huì)造成重大惡果,但措施得力,也是可以補(bǔ)救的。輸出裝置與CPU的距離越遠(yuǎn)(例如超過(guò)10米),聯(lián)線就越長(zhǎng),受干擾的機(jī)會(huì)就越多。輸出設(shè)備是電位控制型還是同步鎖存型,對(duì)干擾的敏感性相差較大。前者有良好的抗“毛刺”能力,后者不耐干擾,當(dāng)鎖存線上出現(xiàn)干擾時(shí),它就會(huì)盲目鎖存當(dāng)前的數(shù)據(jù),而不管這時(shí)數(shù)據(jù)是否有效。輸出設(shè)備的慣性(響應(yīng)速度)與干擾的承受能力也有很大關(guān)系。慣性小的輸出設(shè)備(如通訊口、顯示設(shè)備等)耐受干擾能力就差一些。不同的輸出裝置對(duì)干擾的耐受能力不同,抗干擾措施也就不同,其措施如下:(1)各類輸出數(shù)據(jù)鎖存器盡可能和CPU安裝在同一電路板上,使傳輸線上傳送的都是已鎖存好的電位控制信號(hào)。(2)對(duì)于重要的輸出設(shè)備,最好建立檢測(cè)通道,CPU可以通過(guò)檢測(cè)通道來(lái)檢查輸出的結(jié)果是否正確。(3)軟件上重復(fù)輸出同一數(shù)據(jù)。只要有可能,其重復(fù)周期應(yīng)盡可能短些。有關(guān)輸出芯片的狀態(tài)在執(zhí)行輸出功能時(shí)也一并重復(fù)設(shè)置。例如8155芯片和8255芯片常用來(lái)擴(kuò)展輸入輸出功能,很多外設(shè)均通過(guò)它們來(lái)獲得單片機(jī)的控制信息。這類芯片均應(yīng)編程,以明確各端口的職能。由于干擾的作用,有可能在無(wú)形中將芯片的編程方式改變。為了確保輸出功能正確實(shí)現(xiàn),輸出功能模塊在執(zhí)行具體的數(shù)據(jù)輸出之前,應(yīng)該先執(zhí)行芯片的編程指令,再輸出有關(guān)數(shù)據(jù)。這樣做也將對(duì)芯片端口重新定義,使輸入模塊得以正確執(zhí)行。對(duì)于以D/A轉(zhuǎn)換方式實(shí)現(xiàn)的模擬輸出,因本質(zhì)上仍為數(shù)字量,同樣可以通過(guò)重復(fù)輸出的方式來(lái)提高模擬輸出通道的抗干擾性能。在不影響反應(yīng)速度的前提下,在模擬輸出端接一適當(dāng)?shù)腞C濾波電路(起到增加慣性的效果),配合重復(fù)輸出措施便能基本上消除模擬輸出通道上的干擾毛刺。
10.4.3數(shù)字濾波模擬信號(hào)都必須經(jīng)過(guò)A/D轉(zhuǎn)換后才能為單片機(jī)接收。若干擾作用于模擬信號(hào),使A/D轉(zhuǎn)換結(jié)果偏離真實(shí)值。僅采樣一次,是無(wú)法確定該結(jié)果是否可信,必須多次采樣,得到一個(gè)A/D轉(zhuǎn)換的系列數(shù)據(jù),通過(guò)某種處理后,才能得到一個(gè)可信度較高的結(jié)果。這種從系列數(shù)據(jù)中求取真值的軟件算法,通常稱為數(shù)字濾波算法。它的不足之處是占用CPU機(jī)時(shí)。干擾信號(hào)分周期性和隨機(jī)性兩種,采用積分時(shí)間為20ms整數(shù)倍的雙積分型A/D變換方式能有效地抑制50Hz工頻干擾。對(duì)于非周期性的隨機(jī)干擾,常采用數(shù)字濾波算法來(lái)抑制。它與模擬濾波器相比具有以下優(yōu)點(diǎn):(1)數(shù)字濾波是用程序?qū)崿F(xiàn)的,不需要增加任何硬設(shè)備,也不存在阻抗匹配問(wèn)題,可以多個(gè)通道共用。不但可以節(jié)約投資,還可以提高可靠性、穩(wěn)定性。(2)可以對(duì)頻率很低的信號(hào)實(shí)現(xiàn)濾波,而模擬濾波電路由于受電容容量影響,頻率不能太低。(3)靈活性好??梢杂貌煌臑V波程序?qū)崿F(xiàn)不同的濾波方法。
1程序判斷濾波采樣的信號(hào),如因常受到隨機(jī)干擾的傳感器不穩(wěn)定而引起嚴(yán)重失真時(shí),可以采用程序判斷濾波。方法是:根據(jù)經(jīng)驗(yàn)確定兩次采樣允許的最大偏差ΔY,若兩次采樣信號(hào)的差值大于ΔY,表明輸入的是干擾信號(hào),應(yīng)該去掉,用上次采樣值作為本次采樣值。若小于、等于ΔY,表明沒(méi)有受到干擾,本次采樣值
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 借他人錢財(cái)合同范例
- 農(nóng)村老人買房合同范例
- 公共廁所裝修合同范例
- 2024乙方甲方城鄉(xiāng)規(guī)劃設(shè)計(jì)咨詢合同
- 2024年廣告保密協(xié)議:專業(yè)定制版
- 3D打印項(xiàng)目招標(biāo)公司上墻規(guī)范
- 博物館停車場(chǎng)管理規(guī)定
- 制造業(yè)生產(chǎn)通訊協(xié)議
- 水利工程電子招投標(biāo)實(shí)施辦法
- 商業(yè)綜合體電氣設(shè)備招投標(biāo)文件
- 搏擊基礎(chǔ)理論知識(shí)單選題100道及答案解析
- 廣東省廣州市2024-2025學(xué)年九年級(jí)上學(xué)期期中英語(yǔ)試題(無(wú)答案)
- 2024-2025學(xué)年人教版物理八年級(jí)上冊(cè) 期中考試物理試卷
- 期中模擬練習(xí)(1-4單元)(試題)2024-2025學(xué)年二年級(jí)上冊(cè)數(shù)學(xué)蘇教版
- DZ∕T 0265-2014 遙感影像地圖制作規(guī)范(1:50000、1:250000)(正式版)
- 中華民族發(fā)展史智慧樹知到期末考試答案2024年
- MOOC 3D工程圖學(xué)-華中科技大學(xué) 中國(guó)大學(xué)慕課答案
- 亞馬遜品牌授權(quán)書(英文模板)
- 生管SWOT分析
- 門座式起重機(jī)檢驗(yàn)規(guī)程
- 微型消防站備案表.doc
評(píng)論
0/150
提交評(píng)論