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