巧用單片機(jī)軟件抗系統(tǒng)瞬時(shí)干擾
0、引 言
本文引用地址:http://www.ex-cimer.com/article/171711.htm單片機(jī)具有集成度高、體積小、可靠性強(qiáng)、價(jià)格低、面向控制等特點(diǎn),在工業(yè)控制、智能儀器儀表、智能化設(shè)備和家用電器等領(lǐng)域得到廣泛應(yīng)用。在各種類型的單片機(jī)中,由于8031系列8位單片機(jī)具有品種多樣、易于開發(fā)、控制靈活、使用方便等優(yōu)點(diǎn),因而成為目前國內(nèi)外應(yīng)用最廣的單片機(jī)之一。
由于單片機(jī)是針對(duì)工業(yè)控制以及與控制有關(guān)的數(shù)據(jù)處理而設(shè)計(jì)的,其運(yùn)行可靠性不容置疑,因,在常規(guī)條件下使用時(shí),只要電源濾波完善,不用特別考慮系統(tǒng)的抗干擾問題。若控制對(duì)象為電機(jī)及繼電器等感性負(fù)載時(shí),可采取光電隔離、直流電源隔離和交流噪聲濾波等抗干擾措施,亦能夠保證單片機(jī)正常運(yùn)行。但是,當(dāng)用電環(huán)境較差,控制對(duì)象為開關(guān)型、大電流的感性負(fù)載時(shí),負(fù)載開啟或關(guān)閉到穩(wěn)定狀態(tài)期間將產(chǎn)生很強(qiáng)的瞬時(shí)干擾信號(hào),嚴(yán)重影響單片機(jī)的正常運(yùn)行。此時(shí),采取以上抗干擾措施仍不能解決系統(tǒng)的干擾問題。為此,本人利用8031單片機(jī)(以下所指的單片機(jī)均為8031單片機(jī))的待機(jī)功能實(shí)現(xiàn)軟件抗瞬時(shí)干擾,取得了滿意的系統(tǒng)抗干擾效果。
1、單片機(jī)待機(jī)方式簡述[1]
在單片機(jī)中,專用寄存器PCON.0是待機(jī)方式位IDL。一條把IDL(PCON.0)置1的指令執(zhí)行完后,單片機(jī)就進(jìn)入待機(jī)方式。在這種方式下,提供給CPU的內(nèi)部時(shí)鐘信號(hào)被切斷,但時(shí)鐘信號(hào)仍提供給中斷邏輯、定時(shí)器和串行口。CPU的全部狀態(tài)在待機(jī)期間都被保留起來,它們是:堆棧指針SP、程序計(jì)數(shù)器PC、程序狀態(tài)字PSW、累加器ACC以及所有的工作寄存器。
復(fù)位可終止待機(jī)方式,但單片機(jī)復(fù)位后,其現(xiàn)場將被破壞。終止待機(jī)方式的另一種方法是激活任何一個(gè)被允許的中斷,IDL(PCON.0)將被硬件清除,結(jié)束待機(jī)狀態(tài)。中斷得到響應(yīng),進(jìn)入服務(wù)程序,緊跟RETI之后,下一條要執(zhí)行的指令將是使單片機(jī)進(jìn)入待機(jī)方式的那條指令的后面一條指令。
2、軟件抗瞬間干擾原理
當(dāng)單片機(jī)控制系統(tǒng)中的大電流感性負(fù)載開啟或關(guān)閉到穩(wěn)定狀態(tài)期間產(chǎn)生較強(qiáng)的干擾,使得單片機(jī)
不能正常運(yùn)行時(shí),利用單片機(jī)的定時(shí)和待機(jī)功能,可有效保證單片機(jī)可靠運(yùn)行。
軟件抗瞬時(shí)干擾的工作原理是:當(dāng)單片機(jī)發(fā)出控制負(fù)載開關(guān)動(dòng)作的指令后,立即啟動(dòng)定時(shí)器,打開定時(shí)器中斷(此時(shí)其它中斷應(yīng)處于關(guān)閉狀態(tài)),接著執(zhí)行一條把 IDL(PCON.0)置1的指令,單片機(jī)進(jìn)入待機(jī)狀態(tài)。此時(shí),由于提供給CPU的內(nèi)部時(shí)鐘信號(hào)被切斷,時(shí)鐘信號(hào)只提供給中斷邏輯和定時(shí)器,單片機(jī)在定時(shí)期間處于不工作狀態(tài),負(fù)載開啟或關(guān)閉時(shí)所產(chǎn)生的干擾信號(hào)對(duì)單片機(jī)不起作用。如果定時(shí)時(shí)間足夠長,等到負(fù)載開關(guān)穩(wěn)定無干擾信號(hào)時(shí)定時(shí)中斷被激活,則單片機(jī)進(jìn)入正常工作狀態(tài)。換句話說,有干擾時(shí),單片機(jī)處于待機(jī)狀態(tài);無干擾時(shí),單片機(jī)恢復(fù)正常工作狀態(tài),則完全有可能實(shí)現(xiàn)軟件抗瞬間干擾之目的。
3、定時(shí)時(shí)間設(shè)計(jì)
當(dāng)8031單片機(jī)的定時(shí)器工作在16位定時(shí)方式時(shí),其定時(shí)時(shí)間與定時(shí)初值的計(jì)算公式如下:
式中:T———定時(shí)時(shí)間,單位為s
f———單片機(jī)震蕩頻率,單位為Hz
X———定時(shí)初值
從以上關(guān)系式中可看出,若要增加定時(shí)時(shí)間,則需要減小單片機(jī)的震蕩頻率或定時(shí)初值。由于定時(shí)初值最小值為0,如果需要較長的定時(shí)時(shí)間,只有減小單片機(jī)的震蕩頻率。但是,隨著單片機(jī)震蕩頻率的減小,其運(yùn)行速度必然受到影響,必須予以兼顧。
4、應(yīng)用實(shí)例
我們?cè)谘兄骑w機(jī)發(fā)電機(jī)加載控制系統(tǒng)時(shí),遇到較強(qiáng)的瞬時(shí)干擾,其干擾源主要來自控制加載功率的多個(gè)交流接觸器。在該系統(tǒng)中,交流接觸器的控制電流最大可達(dá) 1000A,最小的亦有10A,其通/斷動(dòng)作時(shí)所產(chǎn)生的干擾非常強(qiáng),采取別的抗干擾措施均不能解決根本問題,而采用軟件抗干擾方法則取得了滿意的結(jié)果。
交流接觸器從通/斷到穩(wěn)定狀態(tài)的時(shí)間不大于0.4s,由于系統(tǒng)對(duì)單片機(jī)運(yùn)行速度無嚴(yán)格要求,為保險(xiǎn)起見,單片機(jī)的震蕩頻率選定為1MHz,若定時(shí)初值為0時(shí),根據(jù)式(1)可算出其定時(shí)時(shí)間接近0.8s,完全可以避開交流接觸器動(dòng)作時(shí)所產(chǎn)生的干擾。
當(dāng)單片機(jī)發(fā)出交流接觸器通/斷指令后,執(zhí)行如下程序,定時(shí)器0開始定時(shí),開定時(shí)器0中斷,單片機(jī)進(jìn)入待機(jī)狀態(tài)(此前應(yīng)關(guān)閉其它中斷)。
MOVTMOD,#01H;定時(shí)器0置工作方式1
MOVTH0,#00H;置定時(shí)時(shí)間
MOVTL0,#00H;
SETBTR0;開定時(shí)器0
SETBET0;開定時(shí)中斷0
ORL87H,#01H;單片機(jī)置待機(jī)狀態(tài)
在以上程序中,87H為專用寄存器PCON的地址碼,PCON.0為待機(jī)方式位。當(dāng)定時(shí)時(shí)間到產(chǎn)生定時(shí)中斷0時(shí),進(jìn)入定時(shí)器0中斷服務(wù)程序。中斷程序結(jié)束時(shí)的RETI指令使得單片機(jī)程序恢復(fù)到原有狀態(tài)繼續(xù)執(zhí)行。在整個(gè)定時(shí)時(shí)間內(nèi),單片機(jī)處于待機(jī)狀態(tài),外部電路所產(chǎn)生的干擾對(duì)單片機(jī)無能為力;當(dāng)定時(shí)時(shí)間結(jié)束,單片機(jī)恢復(fù)到正常運(yùn)行時(shí),外部干擾已不復(fù)存在,從而保證了單片機(jī)控制系統(tǒng)的可靠運(yùn)行。
5、結(jié) 論
根據(jù)以上分析及實(shí)際運(yùn)用表明,利用單片機(jī)的待機(jī)方式實(shí)現(xiàn)軟件抗瞬時(shí)干擾的作用是非常明顯的,其抗干擾效果亦是令人滿意的。但是,此抗干擾方法運(yùn)用起來亦受到一定限制,例如:對(duì)連續(xù)或隨機(jī)干擾就無能為力。因此,當(dāng)系統(tǒng)產(chǎn)生干擾時(shí),要具體分析產(chǎn)生干擾的原因,再?zèng)Q定采取哪些抗干擾措施,方能取得滿意的結(jié)果。如果干擾類型與本文介紹的瞬時(shí)干擾類似,采用軟件抗干擾的方法是切實(shí)可行的。
評(píng)論