一、引言 近一、二十年來,單片機(jī)以其體積小、價(jià)格低、功能強(qiáng)的優(yōu)點(diǎn)而廣泛應(yīng)用于各種測(cè)控系統(tǒng)中。但是單片機(jī)系統(tǒng)的輸入信號(hào)總是存在著不同形式和程度的噪聲和干擾,這給準(zhǔn)確測(cè)控帶來了一定的難度。采用濾波電路是削弱和消除這些干擾信號(hào)的方法之一。對(duì)于大多數(shù)高頻干擾信號(hào),硬件濾波的方法能起到很好的作用。但對(duì)于一些特殊的干擾信號(hào),采用硬件電路濾波則效果不大。其中有一類干擾具有以下形式:干擾的幅值與實(shí)際采樣信號(hào)的幅值相差不大,甚至大于采樣信號(hào)的幅值;干擾只出現(xiàn)在實(shí)際信號(hào)工作之前或之后,在系統(tǒng)真正工作時(shí)并不與采樣信號(hào)產(chǎn)生疊加;干擾的作用時(shí)間比系統(tǒng)實(shí)際所需信號(hào)的作用時(shí)間小得多(至少相差一個(gè)數(shù)量級(jí))。此類干擾不同于一般的高頻干擾,利用硬件方法難以消除。針對(duì)這種干擾,我們?cè)谠O(shè)計(jì)生鐵團(tuán)礦壓力實(shí)驗(yàn)儀中采用了一種軟件方法,來消除它的影響。這種方法借助單片機(jī)中的定時(shí)/計(jì)數(shù)器,對(duì)采集到信號(hào)的作用時(shí)間進(jìn)行計(jì)量、比較,利用干擾信號(hào)和實(shí)際信號(hào)作用時(shí)間相差特別大的特征,來區(qū)分干擾信號(hào)和實(shí)際信號(hào)。下面是這種方法的原理和程序編制及其在智能壓力實(shí)驗(yàn)儀上的實(shí)際應(yīng)用。 二、原理 在金屬抗拉、抗壓強(qiáng)度和生鐵團(tuán)礦破碎壓力測(cè)量等實(shí)驗(yàn)中,要求實(shí)驗(yàn)儀器能準(zhǔn)確測(cè)量出被采樣信號(hào)的最大值。由于單片機(jī)價(jià)格低廉,動(dòng)作可靠,因此這些實(shí)驗(yàn)儀器常選用單片機(jī)進(jìn)行控制。在理想無干擾的狀態(tài)下,實(shí)驗(yàn)過程中這些被采樣信號(hào)的時(shí)域曲線有一個(gè)共同的特點(diǎn):在到達(dá)最大值之前,曲線呈單調(diào)遞增趨勢(shì),而在最大值之后,信號(hào)呈現(xiàn)單調(diào)遞減趨勢(shì),且遞減速率比上升速率大得多。例如,在理想狀態(tài)下45鋼抗拉強(qiáng)度實(shí)驗(yàn)中,試棒所受拉力的時(shí)域曲線如圖1所示。但是,在這些實(shí)驗(yàn)中,不可避免地會(huì)存在各種形式的干擾。45#鋼在有瞬時(shí)干擾情況下拉力時(shí)域曲線如圖2所示。干擾的存在給這些實(shí)驗(yàn)儀器的研制帶來了很大的技術(shù)困難。 根據(jù)金屬抗拉、抗壓強(qiáng)度和生鐵團(tuán)礦破碎壓力在測(cè)試過程中時(shí)域曲線變化特征,利用89C51單片機(jī)中的定時(shí)/計(jì)數(shù)器,結(jié)合相應(yīng)的的軟件處理,可消除采樣過程中的瞬時(shí)干擾,準(zhǔn)確測(cè)量出金屬的抗拉、抗壓強(qiáng)度和生鐵團(tuán)礦破碎時(shí)的壓力最大值。 圖1 45#鋼無干擾狀態(tài)拉力時(shí)域曲線 圖2 45#鋼在瞬時(shí)干擾下的拉力時(shí)域曲線 在89C51單片機(jī)中有兩個(gè)可編程的定時(shí)/計(jì)數(shù)器—定時(shí)/計(jì)數(shù)器0與定時(shí)/計(jì)數(shù)器1(8032/8052還有定時(shí)/計(jì)數(shù)器2),可由程序選擇作為定時(shí)器用或作為計(jì)數(shù)器用,定時(shí)時(shí)間或計(jì)數(shù)值由程序設(shè)定。定時(shí)/計(jì)數(shù)器的核心是一個(gè)十六位的加法計(jì)數(shù)器,當(dāng)作定時(shí)器用時(shí),加法計(jì)數(shù)器對(duì)內(nèi)部機(jī)器周期脈沖計(jì)數(shù)。在定時(shí)器的工作過程中,加法計(jì)數(shù)器的內(nèi)容是可讀回CPU的。借助單片機(jī)中定時(shí)/計(jì)數(shù)器的這些特點(diǎn)來編制消除瞬時(shí)干擾的程序。 軟件具體編制方法如下:把定時(shí)/計(jì)數(shù)器選作定時(shí)器用,設(shè)置好工作方式,在程序運(yùn)行過程中不產(chǎn)生中段請(qǐng)求信號(hào),選擇內(nèi)存中的某一單元(例如R0),在其中設(shè)一初始值(如果初始值大于255,則需要兩個(gè)內(nèi)存單元),使得此初始值對(duì)應(yīng)的機(jī)器周期的時(shí)間比干擾信號(hào)的作用時(shí)間長(zhǎng),而比實(shí)際所需采樣信號(hào)的作用時(shí)間短(由于干擾信號(hào)與實(shí)際所需信號(hào)作用時(shí)間存在很大的差異,做到這一點(diǎn)并不困難)。由CPU對(duì)A/D輸入信號(hào)進(jìn)行處理,當(dāng)檢測(cè)到被采樣信號(hào)有上升趨勢(shì)時(shí)啟動(dòng)定時(shí)器,并將定時(shí)器的初值設(shè)為0,在被采樣信號(hào)到達(dá)最大值時(shí),讀回定時(shí)器中十六位計(jì)數(shù)器的值,以之與R0初始值比較。若比初始值小,說明采集到的是干擾信號(hào)的幅值,應(yīng)該舍去,并給計(jì)數(shù)器清零,重新返回采樣;若比初始值大,則可確定此時(shí)采集到的為所需的測(cè)量值,可以存儲(chǔ)起來或者通過顯示、打印輸出。 由于十六位計(jì)數(shù)器最多只能計(jì)時(shí)216個(gè)機(jī)器周期,如果系統(tǒng)晶振為12MHz,則其最長(zhǎng)計(jì)時(shí)時(shí)間為66.5毫秒,對(duì)于作用時(shí)間比較長(zhǎng)的采樣系統(tǒng)就顯得不夠。由于實(shí)際信號(hào)作用時(shí)間長(zhǎng),當(dāng)采樣到最大值時(shí)加法計(jì)數(shù)器可能早已溢出,此時(shí)我們就不能確定計(jì)數(shù)器里的值與R0中所設(shè)初始值的大小了。為了解決這個(gè)問題,可對(duì)上述程序做些修改,具體如下:將定時(shí)器設(shè)為中斷工作方式,定時(shí)初值為0,R0中設(shè)初始值A(chǔ),在檢測(cè)干擾信號(hào)時(shí),由于干擾信號(hào)作用時(shí)間短,檢測(cè)到干擾信號(hào)幅值時(shí)計(jì)數(shù)器中的值小于R0中的初始值A(chǔ);而在檢測(cè)實(shí)際作用信號(hào)時(shí),定時(shí)器會(huì)產(chǎn)生溢出。定時(shí)器溢出時(shí)向CPU發(fā)出中斷請(qǐng)求。在中斷程序中給定時(shí)器設(shè)立另一初值B,使B>A,中斷返回后計(jì)數(shù)器從B開始計(jì)數(shù),當(dāng)測(cè)試到被測(cè)信號(hào)的最大值時(shí),加法計(jì)數(shù)器中的值一定比初始值A(chǔ)大。因此我們就可以通過比較加法計(jì)數(shù)器中的值和R0中的初始值A(chǔ)來區(qū)分干擾信號(hào)和實(shí)際測(cè)量信號(hào)。 三、應(yīng)用實(shí)例 下面介紹這種設(shè)計(jì)思想在生鐵團(tuán)礦壓力實(shí)驗(yàn)儀中的應(yīng)用。 在高爐煉鐵中,鐵礦粉不能直接加入爐內(nèi)冶煉,而應(yīng)先制成球團(tuán),稱為生鐵團(tuán)礦。為了保證生鐵團(tuán)礦在運(yùn)輸和裝爐過程中不至碎裂,必須測(cè)出其抗壓強(qiáng)度。團(tuán)礦壓力實(shí)驗(yàn)儀要求能準(zhǔn)確地測(cè)出生鐵團(tuán)礦的破碎壓力值,并顯示和打印出來。筆者設(shè)計(jì)的生鐵團(tuán)礦壓力實(shí)驗(yàn)儀中單片機(jī)采樣和控制系統(tǒng)框圖如圖3所示,該實(shí)驗(yàn)儀的工作過程如下:團(tuán)礦放置在生鐵團(tuán)礦壓力實(shí)驗(yàn)儀的托盤上,電機(jī)正轉(zhuǎn),托盤上升,球團(tuán)礦與傳感器接觸并受壓,傳感器壓力信號(hào)通過A/D轉(zhuǎn)換后輸入單片機(jī),由單片機(jī)通過計(jì)算求出最大值。得到最大值后立即停止電機(jī)運(yùn)轉(zhuǎn),顯示、打印破碎壓力值。然后電機(jī)反轉(zhuǎn),托盤下降,進(jìn)行下一次實(shí)驗(yàn)。 圖3 壓力實(shí)驗(yàn)儀單片機(jī)系統(tǒng)框圖 在球團(tuán)礦壓力實(shí)驗(yàn)儀中,存在著電機(jī)頻繁地啟動(dòng)與停止,在電機(jī)啟動(dòng)與停止的瞬時(shí),由于電路中存在能量的突變,產(chǎn)生了嚴(yán)重的電磁干擾,給采樣信號(hào)造成很大的影響,從而引起電機(jī)的誤動(dòng)作。但干擾作用時(shí)間很短,一般為十幾微秒到幾十微秒,而球團(tuán)礦從受壓到破碎這一過程一般在10~50ms。此干擾不易為一般的RC濾波器所濾除。筆者使用上述軟件方法,基本上使此干擾得到控制。軟件的程序流程圖如圖4。 圖4 生鐵團(tuán)礦壓力實(shí)驗(yàn)儀單片機(jī)控制程序流程圖 對(duì)于采樣信號(hào)作用時(shí)間長(zhǎng)的系統(tǒng),則需要采用定時(shí)器的中斷工作方式。主程序的流程圖與圖4很類似,二者只是在定時(shí)器的初始化設(shè)置上有些不同。中斷程序的流程圖如圖5所示。 圖5 中斷程序流程圖 四、結(jié)語 本文介紹了一種軟件消除瞬時(shí)干擾的的方法。利用瞬時(shí)干擾比實(shí)際信號(hào)工作時(shí)間相差很大這個(gè)特點(diǎn),借助單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器,通過編程來實(shí)現(xiàn)消除瞬時(shí)干擾的目的,思路新穎。利用這種方法,既避免了普通消除干擾方法中繁雜的硬件電路設(shè)計(jì),又充分利用了單片機(jī)的內(nèi)部資源。通過實(shí)踐應(yīng)用發(fā)現(xiàn),此方法使瞬時(shí)干擾得到了很好的控制。 |