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