單片機(jī)系統(tǒng)應(yīng)用中的抗干擾措施
1主要干擾渠道及防護(hù)措施
工業(yè)生產(chǎn)中的干擾一般都以脈沖形式進(jìn)入微機(jī),干擾竄入系統(tǒng)的渠道主要有三條,即供電系統(tǒng);過(guò)程通道;空間磁場(chǎng)。
通常防護(hù)措施如下:
(1)供電系統(tǒng)
在微機(jī)系統(tǒng)中,最嚴(yán)重的干擾來(lái)源為電源的污染。為了防止從電源系統(tǒng)引入的干擾,一是要將微機(jī)的供電與大功率的用電設(shè)備的電源分開,最好單獨(dú)供電;二是在單片機(jī)系統(tǒng)電源變壓器的初級(jí)串接一低通濾波器(如圖1所示),有效阻止高次諧波串入系統(tǒng),改善電源波形,提高單片機(jī)系統(tǒng)的抗干擾能力。
(2)輸入輸出通道
輸入輸出通道是單片機(jī)與傳感器、單片機(jī)與上位機(jī)以及單片機(jī)與執(zhí)行機(jī)構(gòu)之間的信息傳送的路徑。在微機(jī)系統(tǒng)中,傳輸線上的信息多為脈沖波和較弱的測(cè)量信號(hào)電壓,在長(zhǎng)線傳輸時(shí)會(huì)產(chǎn)生衰減、延時(shí)、畸變。信號(hào)隔離是抵抗外界干擾的必要而有效的措施,它隔斷外界的共模電壓和外界串入的電磁干擾,從而保證單片機(jī)的工作環(huán)境,使整個(gè)系統(tǒng)正常運(yùn)行。
(3)屏蔽和接地
用鋼板做機(jī)殼將單片機(jī)系統(tǒng)屏蔽起來(lái),再將外殼接地,防止電磁干擾從空間侵入。
2提高系統(tǒng)的容錯(cuò)能力
為了提高系統(tǒng)的抗干擾能力,一是增強(qiáng)防護(hù)能力,盡量阻止干擾侵入;另一是增強(qiáng)容錯(cuò)能力,及時(shí)發(fā)現(xiàn)侵入的干擾并迅速采取相應(yīng)措施,將影響減到最小。
2.1程序運(yùn)行監(jiān)視系統(tǒng)
程序運(yùn)行監(jiān)視系統(tǒng)又稱“看門狗”,是一種有效的防止微機(jī)系統(tǒng)死機(jī)的電路。部分單片機(jī)(80C552等)片內(nèi)就包括“看門狗”電路;程序運(yùn)行監(jiān)視系統(tǒng)也可用專用硬件電路實(shí)現(xiàn)。一旦“看門狗”電路被啟動(dòng),在規(guī)定的時(shí)間內(nèi)沒(méi)有收到CPU發(fā)出的清零脈沖,“看門狗”電路將向CPU發(fā)出“復(fù)位”脈沖。
2.2硬件標(biāo)志
在很多工業(yè)控制系統(tǒng)中,系統(tǒng)的啟動(dòng)是按一定的順序進(jìn)行的,并且不允許設(shè)備中途重新按這個(gè)順序啟動(dòng)。一旦單片機(jī)系統(tǒng)復(fù)位,必須準(zhǔn)確判斷是否為上電復(fù)位。由于失控的程序常常會(huì)非法寫操作,因而軟件標(biāo)志可靠性較低。在可靠性要求高的場(chǎng)合,通常設(shè)立硬件上電標(biāo)志(圖2所示)。
硬件標(biāo)志電路工作原理為(圖3):當(dāng)微機(jī)系統(tǒng)上電時(shí),復(fù)位脈沖同時(shí)將“D”觸發(fā)器Q端置“1”。初始化程序檢查P4.1位為“1”,則執(zhí)行冷啟動(dòng)程序,并通過(guò)P4.0向D觸發(fā)器發(fā)出時(shí)鐘脈沖,使Q端為“0”,完成硬件標(biāo)記確認(rèn)并建立軟件標(biāo)志。微機(jī)系統(tǒng)投入正常運(yùn)行后,一旦系統(tǒng)再次重新啟動(dòng)(熱啟動(dòng)),此時(shí)有兩種情況:
(1)按下“復(fù)位”鍵引起系統(tǒng)復(fù)位。由于在按下“復(fù)位”鍵的同時(shí),將圖2的D觸發(fā)器Q端置“1”,初始化程序檢查結(jié)果為硬件標(biāo)志無(wú)效而軟件標(biāo)志有效,系統(tǒng)是正常復(fù)位,程序轉(zhuǎn)向熱啟動(dòng)。
(2)由于“看門狗”引起的系統(tǒng)復(fù)位。初始化程序檢查結(jié)果為硬件標(biāo)志有效(圖2的D觸發(fā)器Q端保持為“0”),系統(tǒng)是異常復(fù)位。初始化程序?qū)⑥D(zhuǎn)向異常處理程序。
由此可見,微機(jī)系統(tǒng)能夠準(zhǔn)確的判斷出引起復(fù)位的原因,從而采取相應(yīng)的處理程序,有效地提高了系統(tǒng)的可靠性。
2.3重要數(shù)據(jù)保存器
在工業(yè)控制裝置中,有一些重要的數(shù)據(jù),像從鍵盤輸入的控制目標(biāo)值,P、I、D調(diào)節(jié)參數(shù)以及從上位機(jī)傳送來(lái)的各種指令等,必須妥善保存。由于失控的程序常常非法進(jìn)行寫操作,使RAM區(qū)中重要的信息丟失。當(dāng)微機(jī)系統(tǒng)重新啟動(dòng)后,必須正確恢復(fù)重要參數(shù)。因此,單片機(jī)系統(tǒng)設(shè)計(jì)中加入一片串行E2PROM芯片93C46。每次單片機(jī)系統(tǒng)設(shè)置完成后,程序自動(dòng)將重要參數(shù)寫入93C46。由于93C46具有上電禁寫和軟件禁寫功能,因而數(shù)據(jù)保存可靠。
3軟件抗干擾措施
3.1使用空操作指令
MCS-51指令系統(tǒng)中有部分雙字節(jié)和三字節(jié)指令,當(dāng)程序彈飛落到這些指令的操作數(shù)上時(shí),將把操作數(shù)當(dāng)成指令,產(chǎn)生錯(cuò)誤的結(jié)果。因而,在程序中重要的地方(如跳轉(zhuǎn)、調(diào)子程序)等插入兩條空操作指令,可攔截彈飛的程序并轉(zhuǎn)入正常。
3.2建立軟件陷阱
所謂“軟件陷阱”就是在程序中加入的一組用于攔截彈飛程序的程序段。它強(qiáng)行將程序轉(zhuǎn)向一個(gè)特定的地址,該地址放有出錯(cuò)處理程序。如果將出錯(cuò)處理程序的入口標(biāo)號(hào)命名為“ERR”的話,通常軟件陷阱由以下三句話組成:
一旦彈飛的程序被攔截,立刻轉(zhuǎn)向錯(cuò)誤處理程序。
3.3出錯(cuò)處理程序
錯(cuò)誤處理程序的共同點(diǎn)是先關(guān)閉中斷,防止事態(tài)擴(kuò)大。對(duì)于有“看門狗”電路的系統(tǒng)來(lái)講,等待復(fù)位即可。而軟件復(fù)位和硬件“看門狗”復(fù)位不同。此時(shí)CPU片內(nèi)的寄存器和I/O口狀態(tài)是不定的。所以錯(cuò)誤處理程序在轉(zhuǎn)向程序起點(diǎn)前,要將CPU片內(nèi)的各寄存器、已激活的中斷標(biāo)志和I/O口“軟件”復(fù)位,進(jìn)入初始狀態(tài),再轉(zhuǎn)入程序起點(diǎn)。
3.4其他措施
在用單片機(jī)組成的控制系統(tǒng)中,調(diào)節(jié)量的輸出是不斷變化的。單片機(jī)系統(tǒng)受到干擾而異常復(fù)位后,RAM區(qū)中的標(biāo)志單元、輸出量緩沖單元和I/O口的狀態(tài)都可能改變,不能作為系統(tǒng)復(fù)位后的狀態(tài)恢復(fù)數(shù)據(jù)。這時(shí)可以手動(dòng)給定量作為當(dāng)前控制器輸出量。這些措施可有效的減少單片機(jī)異常復(fù)位后對(duì)整個(gè)系統(tǒng)帶來(lái)的擾動(dòng)。
4結(jié)束語(yǔ)
微機(jī)系統(tǒng)抗干擾設(shè)計(jì)是一項(xiàng)綜合性設(shè)計(jì),采用硬件措施可有效提高微機(jī)控制系統(tǒng)的抗干擾能力,但過(guò)多的硬件本身就降低了系統(tǒng)的可靠性。因而系統(tǒng)的設(shè)計(jì)要“軟”“硬”兼施,提高系統(tǒng)的防護(hù)和容錯(cuò)能力,從而提高單片機(jī)系統(tǒng)的可靠性。
參考文獻(xiàn)
[1]俞忠原,陳一民.工業(yè)過(guò)程控制計(jì)算機(jī)系統(tǒng)[M].北京:北京理工大學(xué)出版社,1995.
[2]張友德.飛利浦80C51系列單片機(jī)原理與應(yīng)用技術(shù)手冊(cè)[M].北京:北京航空航天大學(xué)出版社,1992.