單片機應用系統的抗干擾解決方案
1. 引言
本文引用地址:http://m.butianyuan.cn/article/171781.htm單片機應用系統的抗干擾設計是系統設計的重要內容之一,抗干擾性能的好壞將決定系統能否在復雜的電磁環(huán)境下穩(wěn)定可靠地工作,從而決定了系統的實際使用價值。特別是在各種實時控制的遠距離系統中,由于現場環(huán)境惡劣,干擾因素較多,系統不可避免地要受到其他電磁設備的干擾,若僅按常規(guī)設計就很難保證系統的正常運行。因此,抗干擾問題是設計者必須充分考慮和解決的,下面從硬件和軟件兩個方面談談抗干擾設計。
2. 硬件抗干擾設計
2.1 供電系統
為了防止從電源系統引入干擾,首先采用交流穩(wěn)壓器保證供電系統的穩(wěn)定性,防止電源的過壓和欠壓。其次,電源濾波和退耦是抑制電源干擾的主要方式,可將電源變壓器的初級隔離起來,使混入初級的噪聲干擾不致進入次級;使用隔離變壓器濾掉高頻噪聲,低通濾波器濾掉工頻干擾。
當系統中使用繼電器、磁帶等電感設備時,數據采集的供電電路應與繼電器的供電電路分開,以避免在供電線路之間的干擾,即如圖1所示。
對單片機系統的主機部分使用單獨的穩(wěn)壓電路,必要時輸入、輸出供電分別采用DC-DC模塊,避免各個部分之間的干擾。
2.2 印制電路板
① 注意合理布置印制電路板上的器件,遵循器件之間電氣干擾小和易于散熱的原則。
② 電路板要合理劃分,模擬電路區(qū)、數字電路區(qū)、功率驅動區(qū)等要盡量分開,地線不能相混,要分別和電源端的地線相連。
③ 布線時盡量不要構成環(huán)路,特別避免沿印制電路板周圍做成環(huán)路,不要出現長段的窄線并行,旁路電容的引線不能很長;單元電路的輸出和輸入應當用地線隔開;電源線和地線的走向盡量和數據傳輸的方向一致,并加寬寬度提高電路板的抗干擾能力。
④ 原則上每個IC都要加去耦電容,并靠近IC的電源腳和接地腳。
2.3 輸入輸出干擾的抑制
輸入輸出信號加上光電耦合器隔離,可以將主機部分和前向、后向通道及其他部分切斷電路的聯系,有效地防止干擾進入主機系統。
在單片機實時系統信號的長線傳輸過程中,要注意使用雙絞線,提高系統的抗噪聲能力。同時對傳輸線要進行阻抗匹配,可以在傳輸線的始端串聯電阻、末端并聯電阻,以實現匹配,提高系統的抗干擾能力。
3. 軟件抗干擾設計
為了提高測控系統的可靠性,僅靠硬件抗干擾措施是不夠的,還需采用適當的軟件抗干擾技術,軟件抗干擾技術是當輸入信號受干擾后去偽求真或系統受干擾后使系統恢復正常運行的一種輔助方法。對抑制輸入信號的干擾主要采用數字濾波技術,通過軟件去除噪聲對數據采集結果的影響。系統受干擾后會使得程序失控,失控原因大都可以歸結為程序計數器PC的內容發(fā)生變化,引起程序跑飛或陷入死循環(huán),CPU執(zhí)行了一系列錯誤的指令從而導致系統失控,,可以采用軟件冗余、軟件陷阱和看門狗技術等使程序納入正規(guī)。
3.1 軟件冗余技術
MCS-51所有指令都不超過三個字節(jié),且多為單字節(jié)指令,指令由操作碼和操作數組成,操作碼指明CPU完成什么樣的操作,單字節(jié)指令僅有操作碼,隱含操作數。CPU受到干擾后,PC內容發(fā)生變化,當程序彈飛到某一單字節(jié)指令時,便自動納入正規(guī)。當跑飛到某一雙字節(jié)或三字節(jié)指令時,若恰恰在取指令時刻落到其操作數上,CPU就將操作數當作操作碼來執(zhí)行,引起程序混亂。因此軟件設計應多采用單字節(jié)指令,并在關鍵的地方人為的插入一些單字節(jié)指令NOP,或將有效的單字節(jié)指令重寫,這稱作指令冗余。在實際軟件設計中,往往在雙字節(jié)和三字節(jié)指令之后插入兩個NOP指令,可以保證程序跑飛后其后面的指令不會拆散,后面的程序可以正常運行。在那些對程序流向起決定作用的指令,如RET、RETI、ACALL、LJMP、JZ、JNC等之前也插入2條NOP指令,可保證跑飛的程序迅速進入正確的控制軌道。
評論