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