程 輝,王 勤
(成都大學(xué) 電子信息與電氣工程學(xué)院,四川 成都 610106)
濾波器是很多電子電路中必不可少的組成部分,其作用是允許特定頻段信號(hào)通過(guò)且將其余頻段信號(hào)加以抑制或使其急劇衰減,廣泛應(yīng)用于信息處理、數(shù)據(jù)傳輸及抑制干擾等方面[1-2].由于傳統(tǒng)濾波器在設(shè)計(jì)完成后的中心頻率及電壓增益等參數(shù)不能改變,傳統(tǒng)濾波器只能處理一定頻率范圍內(nèi)的信號(hào),若處理此頻率范圍外的信號(hào),則需要額外增加濾波電路,這將使電路變得復(fù)雜,且增加了電路的不確定性和成本.又因?yàn)閭鹘y(tǒng)濾波器電壓增益較低不可調(diào),對(duì)弱信號(hào)響應(yīng)較差,所以使用范圍受到較大的限制.近年來(lái),研究機(jī)構(gòu)開(kāi)發(fā)了各種功能的濾波器[3-6],但多數(shù)濾波器存在精度不高、通用性差、功能較少且性價(jià)比低等問(wèn)題.對(duì)此,本研究根據(jù)開(kāi)關(guān)電容技術(shù)設(shè)計(jì)了一種多功能濾波器.該種濾波器由STM32整體控制,具有較高的電壓增益且增益步進(jìn)可調(diào),并可設(shè)置低通、高通、帶通及陷波等多種濾波功能,且截止頻率、中心頻率及陷波頻率等均步進(jìn)可調(diào),滿足了較寬頻率信號(hào)范圍內(nèi)對(duì)弱信號(hào)的多種濾波需求.本研究設(shè)計(jì)的多功能濾波器系統(tǒng)整體誤差較小,可應(yīng)用于多種濾波電路中.
本濾波器系統(tǒng)主要由鍵盤(pán)顯示模塊、控制模塊、放大模塊與濾波模塊等組成,如圖1所示.鍵盤(pán)顯示模塊為人機(jī)交互部分.根據(jù)需求,設(shè)置放大模塊對(duì)各輸入信號(hào)的電壓增益與濾波模塊中各濾波參數(shù).在控制模塊作用下,放大模塊產(chǎn)生對(duì)應(yīng)增益,濾波模塊則產(chǎn)生相應(yīng)的濾波功能.輸入信號(hào)經(jīng)放大模塊放大后得到所需幅度的信號(hào),再經(jīng)濾波模塊處理后獲得最終輸出信號(hào).系統(tǒng)整個(gè)工作過(guò)程中,均可隨時(shí)根據(jù)需求調(diào)整放大增益、濾波器類(lèi)型及參數(shù).
圖1 系統(tǒng)結(jié)構(gòu)圖
本研究使用STM32F103VE作為控制模塊的核心來(lái)控制整個(gè)系統(tǒng)的運(yùn)行.STM32F103VE是意法半導(dǎo)體生產(chǎn)的32-bit高性能微控制器,采用ARM Cortex-M3內(nèi)核,CPU最高速度達(dá)72 MHz,可完成單周期乘法和硬件除法,具有較快的運(yùn)算速度、較強(qiáng)的處理能力及較低的功耗,廣泛滿足工業(yè)、醫(yī)療和消費(fèi)類(lèi)市場(chǎng)的各種應(yīng)用需求[7-9].
放大模塊由放大器AD8429和數(shù)字電位器AD5272組成.AD8429是ADI公司生產(chǎn)的高速儀表放大器,其最高帶寬可達(dá)15 MHz,只需一個(gè)外部電阻便可將增益設(shè)置為1~10 000,具有低功耗、極低噪聲、超低偏置電流及寬電源電壓的特性,廣泛適用于信號(hào)調(diào)理和數(shù)據(jù)采集應(yīng)用場(chǎng)合[10].AD5272是ADI公司生產(chǎn)的單通道數(shù)字電位器,具有低電阻容差誤差及低溫度系數(shù)特性,可應(yīng)用于運(yùn)算放大器可變?cè)鲆婵刂?、可編程電源及傳感器校?zhǔn)等領(lǐng)域[11].
本研究中,放大模塊由3級(jí)結(jié)構(gòu)與功能均相同的放大電路組成.每級(jí)放大電路包括1片AD8429和1片AD5272,可實(shí)現(xiàn)0~20 dB電壓增益.整體可實(shí)現(xiàn)0~60 dB增益,以1 dB為步進(jìn)調(diào)節(jié).放大模塊電路如圖2所示.
圖2 放大模塊電路圖
對(duì)于每級(jí)放大電路,AD8429均采用+15 V單電源供電,1腳負(fù)極輸入端V-IN和6腳參考電壓輸入端VREF采取接地處理.輸入與輸出之間的關(guān)系如式(1)所示.
VOUT=G×V+IN
(1)
式(1)中,G為電壓增益.同時(shí),為減少高頻干擾及有效濾除高頻干擾信號(hào),AD8429輸入端增加低通R-C濾波網(wǎng)絡(luò).圖2第1級(jí)放大電路中,R1、R2、C2、C3與C4即為R-C濾波網(wǎng)絡(luò).
AD8429的2腳和3腳之間需接1個(gè)電阻作為增益調(diào)節(jié)電阻,改變其電阻值RG便可改變電壓增益.增益值G與增益調(diào)節(jié)電阻值RG的關(guān)系如式(2)所示.
G=20lg((6/RG)+1)
(2)
式中,RG的單位為kΩ.當(dāng)所接增益調(diào)節(jié)電阻引腳斷開(kāi)時(shí),增益值G=0,即信號(hào)無(wú)放大.
為減小增益誤差與增益漂移,增益調(diào)節(jié)電阻需選用高精度且低溫度系數(shù)的電阻,同時(shí)需避免產(chǎn)生與增益調(diào)節(jié)電阻串聯(lián)的高寄生電阻.AD5272輸出電阻容差誤差最低為±1%,在可變電阻器模式下溫度系數(shù)達(dá)到5 ppm/℃,滿足對(duì)增益調(diào)節(jié)電阻的要求.
AD5272游標(biāo)W端和A端之間的電阻為標(biāo)稱(chēng)電阻,其電阻值RWA可設(shè)置為20 kΩ、50 kΩ和100 kΩ,并具有1 024個(gè)可供W端訪問(wèn)的觸點(diǎn),設(shè)置內(nèi)部RDAC寄存器中的數(shù)值為1 024個(gè)游標(biāo)位置,從而輸出1 024個(gè)電阻.當(dāng)將RWA設(shè)置為50 kΩ時(shí),帶寬可達(dá)120 kHz,此時(shí)AD5272的W端和A端之間數(shù)字編程輸出電阻如式(3)所示.
RWA(D)=(D/1024)×50
(3)
式中,D為RDAC寄存器中數(shù)值,其范圍為0~1 023之間的整數(shù),確定D值便可得到AD5272輸出電阻RWA(D),即AD8429實(shí)際增益調(diào)節(jié)電阻值.由式(3)可知,輸出電阻RWA(D)最小值為48.8 Ω.當(dāng)改變RDAC寄存器的數(shù)值,輸出電阻RWA(D)將從最小48.8 Ω改變,因此,AD5272實(shí)際輸出值與式(2)得到的理論RG值存在一定偏差,故實(shí)際增益值存在一定誤差.由式(2)、式(3)可得到理論增益值與AD5272實(shí)際輸出值的關(guān)系如表1所示.
表1 理論增益值與AD5272輸出電阻關(guān)系表
系統(tǒng)工作時(shí),鍵盤(pán)顯示模塊先設(shè)定增益值.控制模塊STM32F103VE根據(jù)設(shè)定的增益值,控制每級(jí)AD5272輸出相應(yīng)電阻值.輸入信號(hào)由第1級(jí)放大電路AD8429的4腳輸入,經(jīng)第2、3級(jí)放大電路放大后,從第3級(jí)放大電路AD8429的7腳輸出.
濾波模塊由有源濾波器MAX262和模擬開(kāi)關(guān)ADG704、ADG849構(gòu)成,用于將前級(jí)放大電路輸出信號(hào)經(jīng)濾波后輸出.MAX262是雙二階通用開(kāi)關(guān)電容有源濾波器,其內(nèi)部含有2個(gè)相同的二階濾波單元.每個(gè)濾波單元通過(guò)編程來(lái)設(shè)置中心頻率或截止頻率、品質(zhì)因數(shù)和工作方式,可構(gòu)成低通、高通、帶通及陷波等多種濾波器,其中,2個(gè)濾波單元可單獨(dú)作為2個(gè)二階濾波器使用,也可將其級(jí)聯(lián)成1個(gè)四階濾波器使用[12-14].ADG704是單通道4選1模擬開(kāi)關(guān),其導(dǎo)通電阻僅為2.5 Ω,具有低功耗、高開(kāi)關(guān)速度及低導(dǎo)通電阻的特性.ADG849為單通道2選1模擬開(kāi)關(guān),其導(dǎo)通電阻僅為0.5 Ω,可承載高達(dá)600 mA電流,具有超低導(dǎo)通電阻、極低開(kāi)關(guān)失真及高載流能力的特性.
有源濾波器MAX262中,2個(gè)二階濾波單元均有4種工作方式,且對(duì)應(yīng)5種不同濾波功能,使用時(shí)要用到中心頻率或截止頻率f0、外部時(shí)鐘頻率fclk、Q值和工作方式等4個(gè)參數(shù).對(duì)于方式1、3和4,f0和fclk的關(guān)系如式(4)所示.
fclk/f0=40.84+1.57NF
(4)
式中,NF為頻率控制字,由MAX262內(nèi)部程序存儲(chǔ)單元中F5~F0此6位二進(jìn)制碼組成,共可構(gòu)成0~63之間的64個(gè)十進(jìn)制整數(shù),故f0可通過(guò)固定NF并調(diào)節(jié)fclk靈活變化.根據(jù)需求確定f0后,由式(4)即可得到fclk值.
在方式1、3和4下,濾波器的Q值由式(5)求得.
Q=64/(128-NQ)
(5)
式中,NQ為品質(zhì)因數(shù)控制字,由MAX262內(nèi)部程序存儲(chǔ)單元中Q6~Q0此7位二進(jìn)制碼確定,可實(shí)現(xiàn)128種品質(zhì)因數(shù).根據(jù)需求確定Q值后,由式(5)得到NQ值.
當(dāng)工作方式、NF、fclk、NQ確定后,STM32F103VE便可將相應(yīng)參數(shù)輸入到MAX262,從而產(chǎn)生對(duì)應(yīng)功能的濾波器.
濾波模塊電路如圖3所示.數(shù)據(jù)在STM32F103VE控制下經(jīng)74HC374鎖存器后輸入到MAX262,可消除邏輯輸入躍變導(dǎo)致的濾波器輸出噪聲干擾.MAX262中CLKA與CLKB為fclk時(shí)鐘輸入端,分別為濾波器A和濾波器B提供時(shí)鐘信號(hào)fclkA與fclkB,控制開(kāi)關(guān)電容濾波器的采樣率.A3、A2、A1、A0為地址輸入端,通過(guò)輸入不同的地址數(shù)據(jù)來(lái)選定濾波器方式、頻率控制字NF及品質(zhì)因數(shù)控制字NQ等設(shè)置的存儲(chǔ)單元.D1、D0為數(shù)據(jù)輸入端,當(dāng)相應(yīng)存儲(chǔ)單元被選定后,在D1、D0端輸入相應(yīng)數(shù)據(jù),從而確定濾波器工作方式、f0及Q值.由圖3可知,2片ADG704與1片ADG849用于選擇輸出濾波信號(hào)類(lèi)型與濾波器階數(shù),并在下方ADG704的D端口輸出最終濾波后的信號(hào).
圖3 濾波模塊電路圖
系統(tǒng)工作時(shí),鍵盤(pán)顯示模塊設(shè)定濾波器類(lèi)型、階數(shù)、f0及Q值等參數(shù),控制模塊中STM32F103VE將參數(shù)寫(xiě)入MAX262內(nèi)部存儲(chǔ)單元,設(shè)定濾波器參數(shù),通過(guò)控制CLKA、CLKB端輸入fclk頻率及ADG704、ADG849的通斷,在輸出端可分別得到所需低通、高通、帶通及陷波濾波后的信號(hào).
系統(tǒng)軟件流程如圖4所示.系統(tǒng)初始化后,首先進(jìn)入增益設(shè)置,根據(jù)顯示提示,使用鍵盤(pán)設(shè)置輸入信號(hào)增益值.控制模塊根據(jù)該增益值控制放大模塊產(chǎn)生相應(yīng)增益.增益設(shè)置完成后,進(jìn)入濾波設(shè)置部分,依次設(shè)置濾波器類(lèi)型、階數(shù)、f0及Q值等參數(shù).控制模塊根據(jù)設(shè)置控制濾波模塊生成相應(yīng)功能的濾波器.最后,通過(guò)控制模擬開(kāi)關(guān)通斷輸出濾波后的信號(hào).
圖4 系統(tǒng)軟件流程圖
因系統(tǒng)放大增益為0~60 dB,故3級(jí)放大電路中每級(jí)放大增益范圍均為0~20 dB.放大模塊軟件流程圖如圖5所示.在鍵盤(pán)顯示模塊設(shè)置增益G值后,若0 dB 圖5 放大模塊軟件流程圖 若20 dB 若40 dB 若設(shè)置增益值G>60,則顯示增益超出范圍,此時(shí)需要重新輸入增益進(jìn)行測(cè)試. 濾波模塊要實(shí)現(xiàn)低通、高通、帶通及陷波等濾波功能,其軟件流程圖如圖6所示.在鍵盤(pán)顯示模塊分別設(shè)置濾波器類(lèi)型、階數(shù)、f0A、QA、f0B、QB等參數(shù).若濾波器類(lèi)型設(shè)置為陷波濾波器時(shí),其階數(shù)固定為二階,則只需輸入陷波頻率fN與Q. 圖6 濾波模塊軟件流程圖 當(dāng)濾波器類(lèi)型設(shè)置為低通、高通或帶通濾波器時(shí),則在MAX262內(nèi)部具有相同的配置方式.如果設(shè)置為二階濾波,則MAX262只有濾波器A工作,需先將濾波器A設(shè)置為方式3,此時(shí)STM32F103VE先后由PB0~PB3輸出0000、PB4~PB5輸出10,便可將MAX262的濾波器A設(shè)置為方式3.完成方式的設(shè)置后,需進(jìn)一步設(shè)置fclkA、NFA、NQA等.時(shí)鐘fclkA由STM32F103VE的定時(shí)器T3產(chǎn)生,由于在方式3下fclk、f0可取最大值分別為4 MHz、100 kHz,為使f0在可調(diào)節(jié)范圍盡可能較大且最終濾波輸出誤差較小,使NFA為25,則由式(4)可知,當(dāng)fclkA為最大值4 MHz時(shí),f0A可取到最大值50 kHz.當(dāng)NFA確定后,由設(shè)置f0A值便可得到fclkA,改變T3設(shè)定值即可實(shí)現(xiàn)f0A在1 Hz~50 kHz內(nèi)變化.設(shè)置NFA時(shí),只需由STM32F103VE的PB0~PB5將MAX262內(nèi)部F5A~F0A單元設(shè)置為011001.設(shè)置NQA時(shí),根據(jù)輸入QA值,由式(5)可得到NQA,由PB0~PB5腳將MAX262內(nèi)部Q6A~Q0A單元設(shè)置為NQA所對(duì)應(yīng)二進(jìn)制數(shù)值.當(dāng)MAX262內(nèi)部配置完成后,STM32F103VE通過(guò)PC6~PC0控制ADG704與ADG849的通斷,即可實(shí)現(xiàn)二階輸出低通、高通或帶通濾波后的信號(hào).此時(shí),當(dāng)PC6~PC0分別輸出1001110、1001101、1001111時(shí),便可得到二階低通、高通、帶通濾波后的信號(hào). 如果設(shè)置為四階濾波,需同時(shí)配置濾波器A、B.濾波器B工作方式、fclkB、NFB、NQB與濾波器A配置方法相同,其中,工作方式配置為方式3,fclkB由STM32F103VE的定時(shí)器T8產(chǎn)生,NFB通過(guò)將F5B~F0B設(shè)置為011001來(lái)實(shí)現(xiàn),NQB通過(guò)將相應(yīng)的二進(jìn)制數(shù)設(shè)置到Q6B~Q0B來(lái)實(shí)現(xiàn).配置完成后,STM32F103VE的PC6~PC0分別輸出1100110、1100101、1110111,即可得到四階低通、高通、帶通濾波后的信號(hào). 當(dāng)設(shè)置為陷波濾波器時(shí),由于只有二階,故只需設(shè)置濾波器A,其中工作方式需配置為方式1,此時(shí)STM32F103VE先后由PB0~PB3輸出0000、PB4~PB5輸出00,便能將濾波器A設(shè)置為方式1.參數(shù)fclk、NF、NQ配置方法與二階低通濾波器的fclkA、NFA、NQA相同,其中fN最大值為50 kHz.配置完成后,STM32F103VE通過(guò)PC6~PC0輸出1001101控制ADG704與ADG849的通斷,便得到二階陷波濾波后的信號(hào). 為了測(cè)試放大模塊增益,在放大模塊輸入端接電壓、頻率分別為10 mV、20 kHz的正弦信號(hào).鍵盤(pán)顯示模塊在設(shè)置增益值時(shí)為突出增益特性,在0~20 dB內(nèi)以1 dB步進(jìn),在20~40 dB內(nèi)以3 dB步進(jìn),在40~60 dB內(nèi)以5 dB步進(jìn),共設(shè)置31組數(shù)據(jù).在放大模塊輸出端接數(shù)字示波器,觀察放大后的信號(hào),最終得到設(shè)置增益、實(shí)際增益、增益誤差數(shù)據(jù)如表2所示. 表2 放大功能測(cè)試數(shù)據(jù)表 從表2可知,1~6 dB內(nèi)增益誤差小于1%且無(wú)較大變化;7 dB處誤差有較大幅度增加;8~10 dB、11~20 dB內(nèi)誤差均有明顯增加;當(dāng)增益大于20 dB后,除個(gè)別增益點(diǎn)外,誤差在2.5%左右浮動(dòng),整體放大模塊誤差小于3%,輸出信號(hào)無(wú)明顯失真.產(chǎn)生上述誤差的主要原因是AD5272輸出電阻不是線性連續(xù)變化且電阻容差不同.由于AD5272為數(shù)字電位器,內(nèi)部RDAC寄存器中控制輸出電阻數(shù)值的代碼范圍為0x000~0x3FF,又因其最小輸出電阻為48.8 Ω,故改變RDAC寄存器中代碼會(huì)引起輸出電阻非連續(xù)變化,從而產(chǎn)生誤差.當(dāng)激活1%電阻容差性能之后,RDAC寄存器中只有代碼為0x078~0x3FF范圍內(nèi)輸出的電阻誤差才為1%,對(duì)應(yīng)表2中1~6 dB增益;代碼為0x055~0x077、0x032~0x054范圍內(nèi)輸出的電阻誤差分別為2%、3%,分別對(duì)應(yīng)7 dB、8~10 dB增益;其他代碼輸出的電阻誤差大于3%,對(duì)應(yīng)11~20 dB增益. 本研究在進(jìn)行濾波功能測(cè)試時(shí)輸入了不同頻率信號(hào),以分別測(cè)試各種濾波功能.測(cè)試低通、高通或帶通濾波功能時(shí),使用信號(hào)發(fā)生器在系統(tǒng)輸入端輸入幅度為10 mV、頻率在1~50 kHz范圍內(nèi)且以5 kHz為步進(jìn)增加的正弦信號(hào),并在輸出端接數(shù)字示波器.使用鍵盤(pán)顯示模塊將系統(tǒng)增益設(shè)置為40 dB,濾波部分設(shè)置為四階低通、高通或帶通濾波,使f0為輸入信號(hào)頻率,Q值為1,分別計(jì)算并設(shè)置f0A、f0B、QA、QB.對(duì)于低通或高通濾波,輸出信號(hào)電壓在-3 dB處時(shí),所對(duì)應(yīng)的輸入信號(hào)頻率即為截止頻率.對(duì)于帶通濾波,輸出信號(hào)電壓在最大值處時(shí),所對(duì)應(yīng)的輸入信號(hào)頻率即為中心頻率.測(cè)試陷波濾波功能時(shí),輸入信號(hào)與放大器增益不變,濾波部分設(shè)置為陷波濾波,將fN設(shè)置為輸入信號(hào)頻率,Q值為1.當(dāng)輸出電壓在最小值處時(shí),所對(duì)應(yīng)的輸入信號(hào)頻率即為陷波頻率.各濾波輸出信號(hào)在10 kΩ負(fù)載上測(cè)試所得的數(shù)據(jù)如表3所示. 表3 濾波功能測(cè)試數(shù)據(jù)表 從表3可知,在50 kHz范圍內(nèi)濾波器f0、fN實(shí)際測(cè)試數(shù)據(jù)與設(shè)置數(shù)據(jù)存在一定誤差,整體誤差小于3%.產(chǎn)生誤差的原因主要是由低fclk/f0比值和低Q值引起的.由于fclk/f0比值和Q值分別為80和1,若將fclk/f0比值和Q值以低值設(shè)置時(shí),Q和f0之間的相互作用會(huì)導(dǎo)致濾波器產(chǎn)生誤差.此外,STM32F103VE輸出fclk有一定的偏差,也會(huì)導(dǎo)致濾波器f0、fN產(chǎn)生誤差. 本研究以STM32F103VE、AD8429和MAX262為核心,設(shè)計(jì)了一種多功能濾波器,可實(shí)現(xiàn)二階或四階低通、高通、帶通及陷波濾波.對(duì)輸入信號(hào)在0~60 dB范圍內(nèi)且以1 dB為步進(jìn)放大,增益誤差小于3%.在10 kΩ負(fù)載上截止頻率、中心頻率及陷波頻率步進(jìn)可調(diào),最大可達(dá)50 kHz,頻率誤差均小于3%.本研究設(shè)計(jì)的多功能濾波器操作方便,功能較強(qiáng),可適用于多種濾波測(cè)試場(chǎng)合.3.2 濾波模塊軟件設(shè)計(jì)
4 系統(tǒng)測(cè)試
4.1 放大功能測(cè)試
4.2 濾波功能測(cè)試
5 結(jié) 語(yǔ)