單片機應(yīng)用系統(tǒng)的抗干擾技術(shù)
(2)未使用的大片 ROM空間。對于未使用的ROM單元,正常狀態(tài)下為OFFH,程序彈飛到這一區(qū)域后,如果不受新的干擾,將順序執(zhí)行,不再跳轉(zhuǎn)。只要每隔一段區(qū)域設(shè)置一個軟件陷阱,其他單元保持為0FFH不變,就一定能捕捉到彈飛到這里的程序。
(3)程序區(qū)。程序區(qū)由一串串執(zhí)行指令構(gòu)成,當(dāng)程序執(zhí)行到LJMP,SJMP,AJMP,RET等無條件轉(zhuǎn)移類指令時,PC的值應(yīng)發(fā)生正常的跳變,此時程序不可能繼續(xù)往下順序執(zhí)行。若在這些指令后設(shè)置軟件陷阱,就可攔截彈飛到這里的程序,而又不影響正常執(zhí)行的流程。
(4)數(shù)據(jù)表格區(qū)。為了不破壞表格的連續(xù)性,可在數(shù)據(jù)表格區(qū)的尾部設(shè)置軟件陷阱。軟件陷阱安排在正常程序執(zhí)行不到的地方,不影響程序執(zhí)行的效率,在E2PROM容量允許的條件下,多設(shè)置軟件陷阱有利而無害。
.3 睡眠抗干擾
有些單片機具有睡眠狀態(tài),在該狀態(tài)下只有定時/計數(shù)系統(tǒng)和中斷系統(tǒng)處于工作狀態(tài),這時CPU對系統(tǒng)三總線上出現(xiàn)的干擾不會作出任何反應(yīng),從而大大降低系統(tǒng)對干擾的敏感程度。在應(yīng)用系統(tǒng)中,CPU很多情況下是在執(zhí)行一些等待指令和循環(huán)檢查程序。由于這時CPU雖沒有重要工作,卻是清醒的,很容易受干擾??梢宰孋PU在非正常工作時休眠,必要時再由中斷系統(tǒng)來喚醒他,工作完再進入休眠狀態(tài)。采用這種安排,CPU可以有60%以上的時間處于睡眠狀態(tài),從而使CPU受到隨機干擾的威脅大大降低,同時也降低了CPU的功耗。
4看門狗技術(shù)
當(dāng)程序飛到一個臨時構(gòu)成的死循環(huán)中或PC指針落到程序存儲器芯片地址之外,冗余指令和軟件陷阱對此無能為力,這時系統(tǒng)將完全癱瘓。這種情況下,只有復(fù)位。MCS96和8XC552等系列單片機內(nèi)部有一個WDT監(jiān)視定時器,是一個16位的計數(shù)器,輸人為系統(tǒng)時鐘,WDT被啟動后,開始對時鐘計數(shù),計滿溢出時,可使RESET端出現(xiàn)適當(dāng)?shù)膹?fù)位信號,使系統(tǒng)復(fù)位,在正常情況下,為了防止WDT溢出并復(fù)位整個系統(tǒng),可在程序中周期地用指令清WDT,當(dāng)程序受到干擾而沒有正常地定期清WDT時,WDT的溢出就會使系統(tǒng)復(fù)位,從而恢復(fù)運行。
圖1中RST是外部復(fù)位引腳,是WDT啟動引腳,為0時,看門狗啟動而工作,對分頻后的脈沖計數(shù),當(dāng)計滿溢出時,使單片機及外圍電路復(fù)位,編程時,為防止監(jiān)視定時器T3溢出,需要不斷對T3寫入。MCS51單片機內(nèi)部沒有WDT,可以由外電路來實現(xiàn),圖2是用CD4060構(gòu)成的看門狗電路。
4060計數(shù)頻率由RT,CT決定,也可外接石英晶體,設(shè)實際運行的用戶程序所需工作周期為T0;分頻器計滿時間為T,當(dāng)T>T0且系統(tǒng)工作正常時,程序每隔T0對4060清除一次,CD4060無計滿輸出信號,如系統(tǒng)工作不正常,程序不對4060清除。分頻器計滿輸出一脈沖信號而使CPU復(fù)位。
5 結(jié) 語
抗干擾設(shè)計是單片機應(yīng)用系統(tǒng)設(shè)計中不可缺少的重要內(nèi)容。硬件抗干擾是主動的,而軟件抗干擾是被動的。由于干擾環(huán)境多種多樣,在設(shè)計時應(yīng)分析具體情況,選用針對性的抗干擾措施。在工程實踐中,通常幾種抗干擾方法并用,互相補充完善,以確保應(yīng)用系統(tǒng)能正常運行。
評論