文章詳情

預(yù)付費三相電度表的抗干擾設(shè)計

日期:2024-09-20 14:57
瀏覽次數(shù):252
摘要:以IC卡預(yù)付費三相電度表為例分析了單片機(jī)的干擾來源及其產(chǎn)生的危害,并詳細(xì)論述了針對各類干擾的解決措施。

抗干擾問題是從事單片機(jī)設(shè)計的工程技術(shù)人員都將碰到一個大難題,單片機(jī)的工作可靠90%取決于抗干擾設(shè)計,不同系統(tǒng)的工作環(huán)境不同,干擾源不同,抗干擾所采取的措施就有所不同。

例如,工業(yè)用電度表的安裝環(huán)境較差,通常的干擾源有:電網(wǎng)電壓的波動,大型用電設(shè)備(如:天車`電爐`大電機(jī)`電焊機(jī)等)的啟停,高壓設(shè)備和電磁開關(guān)的電磁輻射等等。較強(qiáng)的干擾很容易造成IC卡電度表控制系統(tǒng)出現(xiàn)軟件故障,使程序因干擾而脫離正常運行順序或飛出程序可執(zhí)行區(qū)而進(jìn)入死循環(huán)失去控制,如不能快速脫離此狀態(tài),恢復(fù)程序的運行,電度表將無法正常工作。若干擾竄入計量采樣脈沖,將會導(dǎo)致計量失誤,造成單片機(jī)誤動作而失去計量的準(zhǔn)確性。因此必須采取有效措施遏制干擾的竄入,保證電度表可靠地運行。以IC卡預(yù)付費三相電度表為例,闡述針對不同干擾源所采取的抗干擾措施。

電源的抗干擾設(shè)計

 單片機(jī)的電源中存在著交流干擾和直流干擾。在工業(yè)現(xiàn)場中,由于生產(chǎn)負(fù)荷的變化`大型用電設(shè)備的啟停,常常造成電源電壓的波動,有時還會產(chǎn)生50~4000V持續(xù)幾個毫微秒的尖峰脈沖,很容易造成程序失控死機(jī),對此,采用無源四端網(wǎng)絡(luò)的抗尖峰干擾抑制器可以很好地將尖峰干擾抑制掉。對交流電轉(zhuǎn)換成直流電后所竄入的干擾信號,我們采用小型直流開關(guān)電源。直流開關(guān)電源是一種采用脈沖寬度調(diào)制型電源,它省去了傳統(tǒng)的工頻變壓器,具有體積小`重量輕`效率高`電網(wǎng)電壓范圍寬`輸出電壓穩(wěn)定等特點,并對電網(wǎng)上的高頻脈沖干擾有較強(qiáng)的隔離能力,可以抑制直流干擾。

采用開關(guān)電源并不能保證萬無一失,當(dāng)電網(wǎng)電壓波動超過±10%時,開關(guān)電源的輸出也會產(chǎn)生波動。為了防止電網(wǎng)電壓的波動而造成開關(guān)電源電壓的波動,并導(dǎo)致CPU的誤動作和數(shù)據(jù)丟失等問題,采用美國TI公司的電源電壓監(jiān)視器TL7705設(shè)計了電源電壓監(jiān)視電路(如圖1所示)。該電路能隨時監(jiān)測電源電壓的變化,一旦發(fā)現(xiàn)電源故障,能及時可靠地使單片機(jī)復(fù)位,禁止對RAM的操作,避免數(shù)據(jù)破壞。被監(jiān)測的電壓由TL7705SENSE7)腳引入,4.6V~20V,可由RS 來設(shè)定。當(dāng)被監(jiān)測電壓為4.75V時,RS 200Ω左右。CS RS 構(gòu)成RC 延時網(wǎng)絡(luò),延長響應(yīng)時間,以降低噪聲影響和器件靈敏度。綜合以上措施,可以有效地抑制電源干擾的竄入。

計量采樣脈沖的抗干擾設(shè)計

 計量采樣脈沖輸出接到單片機(jī)的中斷引腳,MCS-51單片機(jī)的中斷觸發(fā)方式有電平觸發(fā)和邊沿觸發(fā)兩種方式。IC卡預(yù)付費三相電度表的采樣脈沖在工業(yè)現(xiàn)場工作時有尖峰干擾,很容易造成計量失誤,為此我們采用了邊沿觸發(fā)中斷與查詢電平相結(jié)合的方式,即在硬件上設(shè)計成中斷引腳與某一1/0引腳相連(如圖1所示),將中斷設(shè)置為邊沿觸發(fā)方式,當(dāng)CPU響應(yīng)中斷后,在中斷處理程序的開始,經(jīng)延時適當(dāng)?shù)臅r間(大于干擾脈沖寬度而小于*小的計量脈沖寬度)查詢此1/0腳電平是否符合要求,這種措施能有效地去除尖峰脈沖對計量采樣脈沖的干擾。

程序失控的處理

 單片機(jī)竄入強(qiáng)干擾后,程序計數(shù)器PC的數(shù)值可能會改變,破壞程序的正常運行,造成一些誤動作,甚至導(dǎo)致程序死循環(huán),從而引起嚴(yán)重的后果。在IC卡預(yù)付費三相電度表中采取了如下幾個措施來解決程序失控的問題。

1 WATCHDOG監(jiān)控程序的運行

 通常的硬件WATCHDOG在系統(tǒng)受到干擾而不能正常運行時,只發(fā)出一個復(fù)位脈沖,如果遇到長時間連續(xù)的干擾,這種WATCHDOG電路就束手無策。我們采用74LS123制作了一個WATCHDOG電路,在程序正常運行時,CPU通過一根1/0接口線定時防問該電路,使其不能發(fā)出復(fù)位脈沖。若系統(tǒng)受到連續(xù)干擾時,此電路會不斷產(chǎn)生復(fù)位信號,直到系統(tǒng)正常工作時為止,因而能抵抗長時間的連續(xù)干擾。CPU訪問該電路的程序如下:

CLR P1.3

NOP

NOP

SETB P1.3

設(shè)置軟件陷阱

 當(dāng)程序失控而彈飛時,我們在彈飛區(qū)域(一般為轉(zhuǎn)移指令后,如:LCALL RET RETI JC JNC等,未使用的中斷向量區(qū),未使用的大片ROM空間等)設(shè)置軟件陷阱,即設(shè)計一段專門處理程序執(zhí)行時出錯的程序,以保證彈飛的程序能迅速納入正確控制軌道。軟件陷阱及出錯處理程序如下:

NOP NOP LJMP ERR ERRCLR EA;關(guān)中斷

MOV DPTR,#ERRI;準(zhǔn)備返回地址

PUSH DPL PUSH DPH

RETI;****中斷激活標(biāo)志 ERRICLR A;準(zhǔn)備復(fù)位地址

PUSH ACC PUSH ACC;壓入復(fù)位地址 RETI;**低級中斷激活標(biāo)志

系統(tǒng)復(fù)位的處理

 在單片機(jī)實時控制系統(tǒng)中,大多數(shù)系統(tǒng)有它自己特定的運行要求。一旦系統(tǒng)復(fù)位后,就不允許改變以前的狀態(tài)而重新開始運行,但可以采取下述措施:

定時(如:每一個循環(huán)周期)將運行過程中的重要數(shù)據(jù)寫入RAM中保護(hù)起來;

 對外設(shè)的動作控制,設(shè)立動作標(biāo)志,并將該標(biāo)志與重要數(shù)據(jù)一并寫入PAM中保護(hù)起來;

 硬件上設(shè)計一掉電保護(hù)電路。系統(tǒng)復(fù)位后,用備用電池給RAM供電,使重要數(shù)據(jù)不被破壞;

 復(fù)位重新啟動時,將重要數(shù)據(jù)和動作標(biāo)志從PAM中讀出,再據(jù)此做出判斷,發(fā)出動作指令。這樣就保證了狀態(tài)的連續(xù)性,而不至造成控制現(xiàn)場的混亂。