單片機(jī)應(yīng)用系統(tǒng)的抗干擾設(shè)計(jì)
目前單片機(jī)廣泛應(yīng)用在工業(yè)自動(dòng)化、生產(chǎn)過程控制、智能儀器儀表等領(lǐng)域,大大提高了產(chǎn)品的質(zhì)量和生產(chǎn)效率。但是,測(cè)控系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、元器件安裝、加工工藝和外部電磁環(huán)境條件、以及單片機(jī)的軟件設(shè)計(jì)方面等,對(duì)系統(tǒng)的可靠性和安全性構(gòu)成了極大的威脅。許多應(yīng)用系統(tǒng)在進(jìn)行仿真調(diào)試和實(shí)驗(yàn)室內(nèi)的聯(lián)機(jī)測(cè)試運(yùn)行時(shí)都是成功的,然而一旦進(jìn)入現(xiàn)場(chǎng)使用,系統(tǒng)則會(huì)產(chǎn)生預(yù)料以外的誤動(dòng)作或誤顯示,嚴(yán)重時(shí)甚至導(dǎo)致前期研制成果基本失效,浪費(fèi)了寶貴的時(shí)間和人力物力。單片機(jī)測(cè)控系統(tǒng)必須長(zhǎng)期穩(wěn)定、可靠運(yùn)行,否則將導(dǎo)致控制誤差加大、嚴(yán)重時(shí)會(huì)使系統(tǒng)失靈、甚至造成巨大損失。干擾影響應(yīng)用系統(tǒng)可靠、安全運(yùn)行的主要因素來自系統(tǒng)內(nèi)部和外部的各種電磁干擾,以及系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、元器件安裝加工工藝等。這些因素對(duì)單片機(jī)應(yīng)用系統(tǒng)造成的干擾后果主要表現(xiàn)在以下幾個(gè)方面:
1.測(cè)量數(shù)據(jù)誤差加大
干擾侵入單片機(jī)系統(tǒng)測(cè)量單元模擬信號(hào)的輸入通道,疊加在測(cè)量信號(hào)上,會(huì)使數(shù)據(jù)采集誤差加大,什么干擾信號(hào)淹沒檢測(cè)的一些微弱信號(hào),如人體的生物電信號(hào)等。
2.影響單片機(jī)RAM存儲(chǔ)器和EPROM等
在單片機(jī)系統(tǒng)中,程序及表格、數(shù)據(jù)存在程序存儲(chǔ)器EPROM或FLASH中,避免了這些數(shù)據(jù)受干擾破壞。但是,對(duì)于片內(nèi)RAM、擴(kuò)外RAM、E2PROM中的數(shù)據(jù)都有可能受到外界的干擾而發(fā)生變化。
3. 控制系統(tǒng)失靈
單片機(jī)輸出的控制信號(hào)通常依賴于某些條件的狀態(tài)輸入信號(hào)和對(duì)這些信號(hào)的邏輯處理結(jié)果。若這些輸入的狀態(tài)信號(hào)受到干擾,引入虛假狀態(tài)信息,將導(dǎo)致輸出控制誤差加大,甚至造成控制失靈。
4. 程序運(yùn)行失常
外界的干擾有時(shí)導(dǎo)致及其頻繁復(fù)位而影響程序的正常運(yùn)行。若外界干擾導(dǎo)致單片機(jī)程序計(jì)數(shù)器PC值的改變,則破壞了程序的正常運(yùn)行。例如Z80芯片,從一個(gè)字節(jié)到四個(gè)字節(jié)。因此,CPU執(zhí)行的下一條指令的首地址,很可能是某條實(shí)際指令的第2-4字節(jié),而CPU卻將它作為指令的首地址來處理。此時(shí),CPU便執(zhí)行毫無意義的指令。這種情況就是俗稱程序“跑飛”。程序“跑飛”后的去向,一種可能是轉(zhuǎn)入某種無意義的“循環(huán)”中去而出不來;另一種可能是PC值不斷增大,當(dāng)PC值增大至FFFFH值之后,轉(zhuǎn)為執(zhí)行地址從0000H開始的程序,這等于重新啟動(dòng)控制程序,是控制失誤的另一形式。由于受干擾后的PC值是隨機(jī)的,程序?qū)?zhí)行一系列毫無意義的指令,最后進(jìn)入“死循環(huán)”,這將使輸出嚴(yán)重混亂或死機(jī)。
5.不響應(yīng)中斷
當(dāng)CPU在執(zhí)行中斷服務(wù)子程序時(shí),如果是在程序“跑飛”之前,中斷服務(wù)子程序還未執(zhí)行開放中斷的指令,則在程序“跑飛”后,CPU將對(duì)其它中斷不響應(yīng)。同時(shí),凡采用中斷技術(shù)診斷程序故障的手段也將不起作用。中斷程序“跑飛”,必定沒有執(zhí)行最后一條中斷返回指令,優(yōu)先級(jí)低的中斷申請(qǐng)就不會(huì)得到響應(yīng),造成低級(jí)中斷丟失。

編輯:admin 最后修改時(shí)間:2018-05-08