單片機應用系統的抗干擾技術
(2)未使用的大片 ROM空間。對于未使用的ROM單元,正常狀態下為OFFH,程序彈飛到這一區域后,如果不受新的干擾,將順序執行,不再跳轉。只要每隔一段區域設置一個軟件陷阱,其他單元保持為0FFH不變,就一定能捕捉到彈飛到這里的程序。
(3)程序區。程序區由一串串執行指令構成,當程序執行到LJMP,SJMP,AJMP,RET等無條件轉移類指令時,PC的值應發生正常的跳變,此時程序不可能繼續往下順序執行。若在這些指令后設置軟件陷阱,就可攔截彈飛到這里的程序,而又不影響正常執行的流程。
(4)數據表格區。為了不破壞表格的連續性,可在數據表格區的尾部設置軟件陷阱。軟件陷阱安排在正常程序執行不到的地方,不影響程序執行的效率,在E2PROM容量允許的條件下,多設置軟件陷阱有利而無害。
.3 睡眠抗干擾
有些單片機具有睡眠狀態,在該狀態下只有定時/計數系統和中斷系統處于工作狀態,這時CPU對系統三總線上出現的干擾不會作出任何反應,從而大大降低系統對干擾的敏感程度。在應用系統中,CPU很多情況下是在執行一些等待指令和循環檢查程序。由于這時CPU雖沒有重要工作,卻是清醒的,很容易受干擾。可以讓CPU在非正常工作時休眠,必要時再由中斷系統來喚醒他,工作完再進入休眠狀態。采用這種安排,CPU可以有60%以上的時間處于睡眠狀態,從而使CPU受到隨機干擾的威脅大大降低,同時也降低了CPU的功耗。
4看門狗技術
當程序飛到一個臨時構成的死循環中或PC指針落到程序存儲器芯片地址之外,冗余指令和軟件陷阱對此無能為力,這時系統將完全癱瘓。這種情況下,只有復位。MCS96和8XC552等系列單片機內部有一個WDT監視定時器,是一個16位的計數器,輸人為系統時鐘,WDT被啟動后,開始對時鐘計數,計滿溢出時,可使RESET端出現適當的復位信號,使系統復位,在正常情況下,為了防止WDT溢出并復位整個系統,可在程序中周期地用指令清WDT,當程序受到干擾而沒有正常地定期清WDT時,WDT的溢出就會使系統復位,從而恢復運行。

圖1中RST是外部復位引腳,是WDT啟動引腳,為0時,看門狗啟動而工作,對分頻后的脈沖計數,當計滿溢出時,使單片機及外圍電路復位,編程時,為防止監視定時器T3溢出,需要不斷對T3寫入。MCS51單片機內部沒有WDT,可以由外電路來實現,圖2是用CD4060構成的看門狗電路。

4060計數頻率由RT,CT決定,也可外接石英晶體,設實際運行的用戶程序所需工作周期為T0;分頻器計滿時間為T,當T>T0且系統工作正常時,程序每隔T0對4060清除一次,CD4060無計滿輸出信號,如系統工作不正常,程序不對4060清除。分頻器計滿輸出一脈沖信號而使CPU復位。
5 結 語
抗干擾設計是單片機應用系統設計中不可缺少的重要內容。硬件抗干擾是主動的,而軟件抗干擾是被動的。由于干擾環境多種多樣,在設計時應分析具體情況,選用針對性的抗干擾措施。在工程實踐中,通常幾種抗干擾方法并用,互相補充完善,以確保應用系統能正常運行。













評論