??? 摘? 要: 用單片機(jī)對可編程濾波器芯片MAX262進(jìn)行程序控制,可以同時(shí)對兩路輸入信號進(jìn)行二階低通、高通,、帶通,、帶阻以及全通濾波處理,濾波器的中心頻率在15kHz~50kHz頻率范圍內(nèi)實(shí)現(xiàn)64級程控調(diào)節(jié),其Q值在0.5~64范圍實(shí)現(xiàn)128級程控調(diào)節(jié)。?
??? 關(guān)鍵詞: MAX262? 單片機(jī)? 濾波器
?
??? 在工業(yè)自動(dòng)化的許多領(lǐng)域都要使用濾波器,。一般有源濾波器均由運(yùn)算放大器和RC元件組成,對元器件的參數(shù)精度要求比較高,設(shè)計(jì)和調(diào)試都比較麻煩,。美信公司(MAXIM)生產(chǎn)的可編程濾波器芯片MAX262可以通過編程對各種低頻信號實(shí)現(xiàn)低通、高通,、帶通,、帶阻以及全通濾波處理,而且濾波的特性參數(shù)如中心頻率、品質(zhì)因數(shù)等也可以通過編程進(jìn)行設(shè)置,。?
??? 有源濾波器一般通過改變RC網(wǎng)絡(luò)的參數(shù)來改變頻率特性,采用運(yùn)算放大器和可切換元件參數(shù)的RC網(wǎng)絡(luò),可以用同一電路組成各種頻率特性的濾波器,。美信公司的可編程濾波器芯片采用編程數(shù)據(jù)來完成RC網(wǎng)絡(luò)的切換。?
1 MAX262芯片介紹?
??? (1)內(nèi)部結(jié)構(gòu)?
??? MAX262主要由放大器,、積分器,、電容切換網(wǎng)絡(luò)(SCN)和工作模式選擇器組成。積分器,、電容切換網(wǎng)絡(luò)(SCN)和工作模式選擇器分別由編程數(shù)據(jù)M0M1,F0~F5和Q0~Q6控制,。MAX262內(nèi)部有兩個(gè)二階濾波器,濾波器A和B可以單獨(dú)使用,也可級聯(lián)成四階濾波器使用。芯片的使用非常靈活,但它們均受同一組編程數(shù)據(jù)的控制,。?
??? MAX262芯片的工作頻率為1Hz~140kHz,。當(dāng)時(shí)鐘頻率為4MHz,工作模式選擇為模式3時(shí),芯片可以對140kHz的輸入信號進(jìn)行濾波處理,。其它工作模式的最高工作頻率為100kHz。濾波器A和B可以采用內(nèi)部時(shí)鐘,也可以采用外部時(shí)鐘,。外部時(shí)鐘分別從芯片的引腳CLKA,、CLKB引入,對外部時(shí)鐘無占空比要求。如果要對更低頻率的信號進(jìn)行濾波處理,可采用MAX260芯片,它的工作頻率為0.01Hz~7.5kHz,。輸入的低頻信號可以直接送到MAX260芯片的輸入端(即INA或INB引腳),輸入信號的幅度范圍為0V~+5V。?
??? (2)編程參數(shù)?
??? MAX262芯片有三個(gè)編程參數(shù):中心頻率f0,、Q值和工作模式,。?
??? 中心頻率由編程數(shù)據(jù)F0~F5控制,共64個(gè)不同的二進(jìn)制數(shù)據(jù),每個(gè)數(shù)據(jù)對應(yīng)一個(gè)時(shí)鐘頻率fCLK與中心頻率f0的比值fCLK/f0。在文獻(xiàn)[1]的表2中給出了MAX262芯片的fCLK/f0與編程數(shù)據(jù)F0~F5的對應(yīng)關(guān)系,。在系統(tǒng)實(shí)現(xiàn)時(shí),可以采用查表的方法獲得編程數(shù)據(jù),。本文采用計(jì)算的方法來形成編程數(shù)據(jù)F0~F5。?
??? Q值由編程數(shù)據(jù)Q0~Q7控制,共128個(gè)不同的二進(jìn)制數(shù)據(jù),每個(gè)數(shù)據(jù)對應(yīng)一個(gè)不同的Q值,最小的Q值為0.5,最大的Q值為64(如果芯片工作在模式2則可達(dá)90.5),。在文獻(xiàn)[1]的表3中給出了編程數(shù)據(jù)Q0~Q7與Q值的對應(yīng)關(guān)系,。?
??? 工作模式由編程數(shù)據(jù)M0M1控制,分別對應(yīng)工作模式1、2,、3和4,。模式1可以實(shí)現(xiàn)低通、帶通和帶阻濾波;模式2基本與模式1相同,只是該模式可以獲得最高的Q值;模式3是唯一可以實(shí)現(xiàn)高通濾波的模式;而只有模式4才能實(shí)現(xiàn)全通濾波,它和模式3也可以實(shí)現(xiàn)低通和帶通濾波,。?
??? 編程參數(shù)f0,、Q值和工作模式確定以后,只要將相應(yīng)的編程數(shù)據(jù)裝入MAX262芯片內(nèi)部的寄存器,濾波器的類型和頻率特性也就確定了。?
2 單片機(jī)硬件設(shè)計(jì)
??? MAX262芯片的編程輸入總線比較簡單,它包括2條數(shù)據(jù)線D0D1,4條地址線A0~A3,另外還有一條寫允許控制線,。單片機(jī)采用內(nèi)部有4KB程序存儲(chǔ)器的89C51,。它與MAX262芯片構(gòu)成的雙路程序控制濾波器系統(tǒng)硬件配置原理框圖如圖1所示。?
?
?
??? 本系統(tǒng)采用6264芯片擴(kuò)展數(shù)據(jù)存儲(chǔ)器,。由于74LS138譯碼器使用89C51 P2口的高三位進(jìn)行地址譯碼,則6264的地址范圍為0000H~1FFFH,。?
??? 74LS138譯碼器的輸出Y2作為 8279芯片的片選信號,其地址范圍為4000H~5FFFH。經(jīng)74LS373鎖存后的地址線A0送到8279的A0地址輸入端,所以選擇5FFFH作為8279的命令口地址,5FFEH作為8279的數(shù)據(jù)口地址,。89C51的晶振選用12MHz,其ALE信號經(jīng)4分頻后,得到頻率為500kHz的信號送到8279的CLK輸入端作為時(shí)鐘信號,。8279采用中斷方式,占用89C51的外中斷0。8279采用8個(gè)七段LED顯示器,其鍵盤按鍵如下:10個(gè)數(shù)字鍵0~9,1個(gè)小數(shù)點(diǎn)鍵,5個(gè)功能鍵(即用于選擇濾波器的類型,低通,、帶通,、高通、全通和帶阻濾波),1個(gè)回車鍵,共17個(gè)按鍵,。?
??? 89C51的控制信號和74LS138譯碼器的Y1輸出信號相與后送到MAX262的寫允許控制端,則MAX262的地址范圍為2000H~3FFFH,。MAX262的地址線AX(即A0~A3)和數(shù)據(jù)線DX(即D0D1)連接到89C51的P0口低六位,即A0~A3、D0D1分別連接到P0.0~P0.5,。89C51的ALE信號送到MAX262的CLKA和CLKB引腳作為時(shí)鐘信號,即MAX262的外部時(shí)鐘頻率為2MHz,所以程控濾波器能處理的輸入信號頻率范圍為15kHz~50kHz,通過改變編程數(shù)據(jù)F0~F5實(shí)現(xiàn)64級中心頻率調(diào)節(jié),。?
??? 本系統(tǒng)選用模式1實(shí)現(xiàn)低通,、帶通和帶阻濾波,模式3實(shí)現(xiàn)高通濾波,模式4實(shí)現(xiàn)全通濾波。其中,濾波器A和B的高通,、帶阻和全通濾波輸出端分別共用MAX262的HPA,、HPB引腳。需要處理的低頻輸入信號分別由MAX262的INA和INB引腳輸入,濾波器A和濾波器B的三個(gè)輸出端分別連接到模擬開關(guān)4052的輸入端,然后由4052的輸出端輸出濾波處理后的信號,即圖1中的OUTA和OUTB兩路輸出信號,。4052的地址A1,、A0由89C51的P1.1、P1.0控制,實(shí)現(xiàn)對濾波器類型的選擇,。?
3 系統(tǒng)軟件實(shí)現(xiàn)方法?
??? (1)編程數(shù)據(jù)獲得方法?
??? MAX262的地址A0~A3與數(shù)據(jù)D0D1的關(guān)系見表1,。由表1可見每個(gè)濾波器的工作模式、中心頻率,、Q值所需編程數(shù)據(jù)均需要分8次寫入MAX262的內(nèi)部寄存器才能完成設(shè)置,。?
?
?
??? 通過文獻(xiàn)[1]給出的fCLK/f0與F0~F5的關(guān)系表格,得到本文根據(jù)fCLK/f0計(jì)算編程數(shù)據(jù)F0~F5的公式,即fCLK/f0與F0~F5的關(guān)系為:?
??? fCLK/f0=40.84+1.57N1?????????????????????????????? (1)?
??? 或,N1=(fCLK/f0-40.84)/1.57????????????????????(2)?
其中,N1為二進(jìn)制數(shù)據(jù)F0~F5對應(yīng)的十進(jìn)制整數(shù),范圍為0~63共64級。?
??? 同樣,對應(yīng)濾波器的Q值也不采用查表的方法,而是通過計(jì)算來獲得Q值的編程數(shù)據(jù)Q0~Q7,。Q值與Q0~Q7的關(guān)系為: ?
????Q=64/(128-N2)???????????????????????????????? (3)?
或,?N2=64(2-1/Q)????????????????????????????????? (4)?
??? 其中,N2為二進(jìn)制數(shù)據(jù)Q0~Q6對應(yīng)的十進(jìn)制整數(shù),范圍為0~127共128級,。?
??? (2)系統(tǒng)程序流程?
??? 本系統(tǒng)的單片機(jī)主程序框圖見圖2。首先進(jìn)行初始化,包括對8279的初始化,然后從片內(nèi)RAM中讀取新設(shè)置標(biāo)志位進(jìn)行判斷,。如果不是則給MAX262芯片送入濾波器所需的初始工作參數(shù);是新設(shè)置則根據(jù)鍵中斷服務(wù)程序獲得的鍵值進(jìn)行處理,。?
?
?
??? 進(jìn)行新設(shè)置時(shí),首先根據(jù)輸入的鍵值完成對濾波器的選擇,包括濾波器A和B的設(shè)置選擇以及相應(yīng)濾波器的類型選擇;然后根據(jù)式(4),由輸入的Q值計(jì)算N2并轉(zhuǎn)換為二進(jìn)制編程數(shù)據(jù)Q0~Q6送片內(nèi)RAM;同時(shí)根據(jù)式(2),由輸入的中心頻率f0值計(jì)算N1并轉(zhuǎn)換為二進(jìn)制編程數(shù)據(jù)F0~F5送片內(nèi)RAM。在獲得MAX262的工作參數(shù)后,根據(jù)表1將這些參數(shù)轉(zhuǎn)換為8字節(jié)的編程數(shù)據(jù),由89C51的P0口送到MAX262,。?
??? 設(shè)置完成后,MAX262就按照當(dāng)前所要求的中心頻率和Q值對輸入信號進(jìn)行濾波處理,。?
??? 最后調(diào)用顯示子程序,在LED數(shù)碼管上顯示當(dāng)前濾波器的工作參數(shù),即中心頻率和Q值。?
??? 本文采用單片機(jī)89C51來完成對可編程濾波器MAX262的控制,很好地實(shí)現(xiàn)了有源濾波器的設(shè)計(jì)工作,。而且這種程控濾波器具有使用靈活,、調(diào)試容易的特點(diǎn),一片MAX262就能完成對兩路輸入信號進(jìn)行二階濾波的處理。 ?
??? 如果需要四階濾波可以很容易通過濾波器A和B的級聯(lián)來實(shí)現(xiàn),。另外還可以通過對89C51的ALE信號進(jìn)行倍頻和分頻實(shí)現(xiàn)MAX262的所有工作頻率范圍,。?
參考文獻(xiàn)?
1 鐘福元.可編程濾波器的原理及應(yīng)用.實(shí)用電子文摘,1994;(3)?
2 陳光東,趙性初.單片微型計(jì)算機(jī)原理與接口技術(shù).武漢:華中理工大學(xué)出版社,1993?
3 鐘福元.采用PC機(jī)鍵盤控制的程控“變聲器”.實(shí)用電子文摘,1994;(3)