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