濾波和抗干擾是任何智能儀器系統(tǒng)都必須考慮的問題,在傳統(tǒng)的應(yīng)用系統(tǒng)中,濾波部分往往要占用較多的軟件資源和硬件資源;而復(fù)雜可編程邏輯器件(CPLD)的出現(xiàn),很好地解決了這一個問題。采用CPLD 實現(xiàn)濾波是一種高效可靠的方法,本文介紹了利用MAX+PLUS Ⅱ?qū)PLD編程來實現(xiàn)對傳感器和按鍵信號濾波和抗干擾。
1.濾波和抗干擾概述
在單片機應(yīng)用系統(tǒng)輸入信號中,常含有種種噪聲和干擾,它們來自被測信號源、傳感器、外界干擾源等。為了提高測量和控制精度,必須消除信號中的噪聲和干擾。噪聲有兩大類:一類為周期性的;另一類為不規(guī)則的。前者的典型代表為50Hz的工頻干擾,一般采用硬件濾波,使用積分時間等于20ms的整數(shù)倍的雙積分A/D轉(zhuǎn)換器,可有效地消除其對信號的影響。后者為隨機信號,它不是周期信號,可用數(shù)字濾波方法予以消弱或濾除。
所謂數(shù)字濾波,就是通過一定的計算或判斷程序來減少干擾信號在有用信號中的比重,故實際上它是一種軟件濾波。硬件濾波具有效率高的優(yōu)點,但要增加系統(tǒng)的投資和設(shè)備的體積,當(dāng)干擾的性質(zhì)改變時我們往往不得不重新搭接電路;軟件濾波是用程序?qū)崿F(xiàn)的,不需要增加設(shè)備,故投資少、可靠性高、穩(wěn)定性好,并且可以對頻率很低的信號實行濾波,隨著干擾的性質(zhì)改變只需修改軟件即可,具有靈活、方便、功能強的優(yōu)點,但要占用系統(tǒng)資源、降低系統(tǒng)的工作效率。一個傳統(tǒng)的實際系統(tǒng),往往采用軟件和硬件相結(jié)合的濾波方法,這種結(jié)合是在兩者的優(yōu)缺點之間尋找一個平衡點。
2.采用CPLD設(shè)計
2.1 傳感器信號濾波
由于要對傳感器信號進行數(shù)字濾波,CPLD要引入時鐘信號。因而對CPLD定義一輸入端clki,作為數(shù)字濾波器的計數(shù)脈沖輸入端。clki由單片機定時器1定時產(chǎn)生500Hz脈沖。以一路為例,泵沖信號濾波部分如圖1所示。
圖1 泵沖信號濾波部分
oo0為經(jīng)電平轉(zhuǎn)換后接近開關(guān)輸出的信號。當(dāng)oo0為低電平時,說明泵1未動作,封鎖三端與門,時鐘信號clki無法通過,計數(shù)器bcn3n不計數(shù)。同理,當(dāng)aa4為高電平時,亦封鎖三端與門(至于aa4如何變化及作用下文有介紹)。故當(dāng)oo0為高、aa4為低時,clki接通計數(shù)器CLK端。當(dāng)oo0和clr端任意一個為低時,計數(shù)器清零。計數(shù)器bcn3n由MAX+PLUSII的文本編輯器編輯,其文本如下:
其輸出aa[4..0]等于計數(shù)器當(dāng)前的計數(shù)值。aa4就是aa[4..0]的最高位當(dāng)計數(shù)值達到10H(十六進制)時,即aa4為高電平時,三端與門封鎖,計數(shù)器保持10H不變,除非有清零信號。其波形如圖2所示。
圖2 泵沖信號濾波部分波形圖
由波形可知,oo0為高,計數(shù)器開始計數(shù)。對于小的脈沖,計數(shù)器的最高位即aa4為低,認(rèn)為是干擾信號;只有當(dāng)aa4為"1"時才認(rèn)為oo0的脈沖信號有效,并通過aa4將時鐘脈沖阻斷,使計數(shù)器值不再增加。這樣做是為了防止由于oo0的脈沖不定寬,使aa4的電平不定,后面無法進行處理。還應(yīng)注意的是,把oo0引入了清零信號。當(dāng)信號有較多毛刺時,若oo0為低時不清零則使計數(shù)器不斷累加,積累到一定程度,使aa4為1,系統(tǒng)將認(rèn)為有一有效脈沖信號,產(chǎn)生誤動作。
2.2中斷申請信號產(chǎn)生
中斷申請信號由圖3電路生成。
圖3 中斷申請信號生成電路
圖中四個計數(shù)器的最高位接四端或門,只要有一路信號為高,或門輸出就為高,并經(jīng)過非門,輸出低電平,接于D觸發(fā)器的時鐘端。D觸發(fā)器的D端始終為高電平。D觸發(fā)器為上升沿觸發(fā)器,若輸入D為1,在時鐘脈沖的上升沿,把"1"送入觸發(fā)器,使Q="1"。只有在CLRN端的clr信號有效時,D觸發(fā)器清零,Q="0"。其波形如圖4所示。
圖4 中斷申請信號生成電路波形圖
只要有一路信號為高,D觸發(fā)器時鐘端為低。當(dāng)所有4路都為低時,時鐘端由低變高,在上升沿,Q變?yōu)?quot;1",發(fā)出中斷請求信號。
如果多路脈沖信號有重疊,例如有兩路信號發(fā)生重疊,而中斷信號只有在四路都為低時才會產(chǎn)生,因此需要對信號進行鎖存。本設(shè)計采用D觸發(fā)器來實現(xiàn)鎖存,電路如圖5所示。
圖5 鎖存電路
當(dāng)aa4為由低變高時,a4變?yōu)楦唠娖?。由clr信號清零。
2.3按鍵消抖及數(shù)據(jù)輸出
按鍵的消抖也通過計數(shù)器來實現(xiàn),電路原理圖如圖6所示。
圖6 消抖電路
按鍵未按下時為電平,封鎖時鐘信號。按鍵按下時,計數(shù)器開始計數(shù)。當(dāng)計數(shù)器輸出最高位為"1"時,亦封鎖時鐘信號,防止按鍵時間不定使需要的k14信號不定。當(dāng)按鍵信號為高電平時,對計數(shù)器清零,防止計數(shù)器累加干擾信號而造成誤動作。波形如圖7所示。
圖7 按鍵消抖波形圖
泵沖和按鍵經(jīng)處理后的信號a4、b4、c4、d4、k04、k14、k24、k34,經(jīng)74373掛于數(shù)據(jù)總線,如圖8所示。74373使能信號由圖9電路產(chǎn)生。
圖8 掛數(shù)據(jù)總線電路
圖9 74373使能信號產(chǎn)生電路
它采用文本編輯,具體如下:
若單片機發(fā)出讀81XXH地址中數(shù)的信號,則選通此373,讀出其數(shù)。
小結(jié)
以上就是CPLD實現(xiàn)數(shù)字濾波及抗干擾的設(shè)計介紹了。采用CPLD可將軟硬件濾波的優(yōu)點兼而有之,同時將它們的缺點摒棄,從而達到揚長去短的目的;而且用CPLD實現(xiàn)濾波只占用較少的資源,故可用其實現(xiàn)其它數(shù)字電路,同時實現(xiàn)濾波。目前該設(shè)計已在產(chǎn)品開發(fā)中成功應(yīng)用,效果良好。
電話:18923864027(同微信)
QQ:709211280
〈烜芯微/XXW〉專業(yè)制造二極管,三極管,MOS管,橋堆等,20年,工廠直銷省20%,上萬家電路電器生產(chǎn)企業(yè)選用,專業(yè)的工程師幫您穩(wěn)定好每一批產(chǎn)品,如果您有遇到什么需要幫助解決的,可以直接聯(lián)系下方的聯(lián)系號碼或加QQ/微信,由我們的銷售經(jīng)理給您精準(zhǔn)的報價以及產(chǎn)品介紹