0 引言
在許多實際應(yīng)用DSP系統(tǒng)中,輸入信號既可以是語音信號、調(diào)制的電話信號、編碼的數(shù)字信號、壓縮后的圖像信號,也可以是各種傳感器輸出的模擬信號,這就需要DSP通過A/D和D/A轉(zhuǎn)換完成數(shù)字信號和模擬信號之間的轉(zhuǎn)換,從而能使DSP處理模擬信號和將數(shù)字信號轉(zhuǎn)換成易于人機交互的聲、光、電等信號。DES5402PP是一個采用TI公司的TMS320C5402為核心處理器的實驗開發(fā)板,它提供的TLC320AC01能很好的完成這一功能。
1 IIR濾波器的MATLAB設(shè)計
盡管IIR濾波器的算法比FIR濾波器要復(fù)雜,且不是因果穩(wěn)定的,但IIR濾波器也具有多種優(yōu)越性,它可充分利用模擬濾波器的設(shè)計成果,工作量相對較?。辉谙嗤脑O(shè)計指標下,可以用較低的階數(shù)獲得較好的性能;所用的存儲單元少,因此對于硬件來說,在相同時鐘速率和存儲空間下可以提供更好的帶外衰減特[1]。
設(shè)低通IIR切比雪夫濾波器的采樣點為256個,采樣頻率為600Hz,輸入為兩個頻率分別為100Hz和300Hz的正弦信號的合成信號。設(shè)定截止頻率為200Hz,可以預(yù)料,將保留100Hz的信號,300Hz的信號基本被濾掉。
根據(jù)系統(tǒng)的設(shè)計流程,先在MATLAB中求得IIR濾波器的系數(shù)。主要分為三個步驟:產(chǎn)生本系統(tǒng)的測試信號;調(diào)用MATLAB中的濾波器函數(shù),求出濾波器的系數(shù);調(diào)用filter函數(shù)進行濾波,輸出濾波后的信號。驗證濾波器的性能后,將濾波器的系數(shù)通過程序?qū)懗?inc的文件,通過.include語句將其寫入DSP匯編程序中。
2 C5402的緩沖串口(BSP)工作方式
TMS320C5402是TI公司生產(chǎn)的16位定點、速度為100MIPS、RAM為16×16位、ROM為4K×16位、可編程、低功耗和高性能的DSP。它提供的各種類型的串口都可以在全雙工方式下通信,其串口信號與許多符合工業(yè)標準的串行設(shè)備兼容,可以直接連接。當串口復(fù)位時,可通過DSP來關(guān)閉或打開串口工作時鐘,并允許串口運行在低功耗模式下[2]。
緩沖串口在BSP在標準串口的基礎(chǔ)上增加一個自動緩沖單元ABU,是一種增強型標準串口。允許8、10、12、16、20、24或32位的數(shù)據(jù)傳輸。由于ABU是一個附加邏輯電路,它允許串口單元直接將數(shù)據(jù)讀寫到C5402的內(nèi)部獨立存儲器,不需要CPU參與,從而使BSP傳輸速度更快。表1給出了BSP發(fā)送和接收數(shù)據(jù)初始化的操作步驟。
表1 BSP的發(fā)送和接收初始化步驟
3 AC01的特點[3][4]
TLC320AC01也是TI公司生產(chǎn)的一款集成有A/D和D/A的芯片,通過串口與DSP或其他設(shè)備通信。AC01的最高采樣頻率為25kHz,其數(shù)據(jù)精度為16位,采用單一5V電源供電。C5402與AC01連接后,可以只使用一個緩沖通道串口來同時實現(xiàn)數(shù)據(jù)的采集和輸出,從而節(jié)省了DSP的硬件開銷。因此,DSP與AC01的連接使用在信號處理中得到了廣泛的應(yīng)用。
實驗系統(tǒng)DES5402PP使用AC01作為模擬信號接口,有兩個AC01,分別工作于“主”、“從”模式。利用“主AC01”產(chǎn)生合成的輸入信號,“從AC01”將該信號轉(zhuǎn)換成濾波的數(shù)據(jù)信號并輸入到DSP芯片。其中,DSP還可以通過讀寫AC01的寄存器,控制AC01的采樣頻率、增益、低通、高通濾波器的截止頻率等參數(shù)。AC01的九個控制寄存器如表2。
表2 TLC320AC01的數(shù)據(jù)存儲器功能
在AC01正常工作前,必須對它進行正確的初始化。初始化的操作主要工作是配置AC01的以上各個數(shù)據(jù)存儲器。采樣頻率Fs=MCLK/2AB,其中,MCLK為DSP的工作頻率,A,B分別為A,B寄存器的內(nèi)容。由于實驗設(shè)置采樣頻率為600Hz,因此設(shè)A,B寄存器的內(nèi)容分別為5和4。即:
[img=258,80]http://cms.cn50hz.com/files/RemoteFiles/20090204/859116003.jpg[/img]
[align=left]
4 C5402和AC01的連接方式
4.1 C5402和AC01的硬件連接
[/align]
圖1 主/從TLC320AC01和TMS320C5402的連接
4.2 C5402和AC01的軟件連接
先在C5402的數(shù)據(jù)存儲空間寫入256個數(shù)據(jù)(即三個正弦信號混合而成的測試信號的離散表示),然后通過緩沖串口將數(shù)據(jù)發(fā)送到“主AC01”,利用“主AC01”的D/A通道產(chǎn)生一個模擬信號作為IIR濾波器的輸入信號。由于實驗中DES5402PP的信號輸出通道與輸入通道相連,即“主AC01”的輸出作為“從AC01”的輸入,“從AC01”的DOUT端口與DSP芯片的DR端相連。另外,在串口通訊中,因為數(shù)據(jù)時鐘和幀同步信號都由AC01產(chǎn)生,所以C5402將使用外部時鐘和幀同步信號。在使用串口前,需要對它進行初始化,包括串口收發(fā)中斷設(shè)置和串口寄存器的初始化,主要代碼如下:
同時,要修改中斷向量表以便正確響應(yīng)串口的接收和發(fā)送中斷請求,其中發(fā)送中斷產(chǎn)生測試信號和完成對AC01的初始化。實際上對信號濾波的實現(xiàn),就是指從A/D讀到一個數(shù)據(jù)后調(diào)用濾波程序,然后輸出數(shù)據(jù)到D/A。
5 實驗過程與結(jié)果分析
實驗程序主要包括以下幾個步驟:
?。?),對DSP的寄存器、緩沖串口以及定時器初始化,確保能提供AC01正確的時鐘信號。完成該步驟后,檢測DSP的CLKR和FSR引腳可以看到連續(xù)輸出的信號。
?。?),同過DSP的緩沖串口對AC01進行初始化,正確設(shè)置AC01的采樣率控制寄存器(表2中的R1),設(shè)置其采樣頻率。完成該步驟后,檢測AC01的DOUT引腳可以發(fā)現(xiàn)有連續(xù)輸出的信號。
?。?),設(shè)置DSP的中斷,從緩沖串口讀取數(shù)據(jù)。這一步可以通過CCS環(huán)境查看讀取的數(shù)據(jù)是否正確。如果正確,將采樣數(shù)據(jù)送到濾波程序中,進行濾波處理,得到結(jié)果后,直接送到AC01的D/A單元輸出。否則,返回步驟(1)。
濾波前后的波形如圖2和圖3所示。可以看到,比起濾波前的(a)圖,(b)圖的時域和頻域波形得到明顯改善,300Hz的信號基本被濾除。
圖2 濾波前后信號的時域波形
圖3 濾波前后信號的頻域波形
在圖2(b)中,可以看到,只剩下一種頻率的正弦信號。從頻域來看,在圖3(b)中,高頻部分已經(jīng)基本削弱,同時低頻也有少量損失,只要將濾波器的階數(shù)高一些或者截止頻率稍微定低一些,便能更大程度的保留低頻信號、消除高頻信號。
6 結(jié)語
在信號與信息的過濾、檢測和預(yù)測等處理中,都要使用濾波器,數(shù)字濾波器是數(shù)字信號處理中使用最廣泛的一種方法。IIR數(shù)字濾波器的設(shè)計過程中,可以借助模擬濾波器的設(shè)計成果或直接采用典型的濾波器類型,減少工作量。而在信號的輸入輸出過程中,往往需要A/D和D/A轉(zhuǎn)換,TLC320AC01模擬接口電路便可方便的實現(xiàn)這一轉(zhuǎn)換。此外,DSP芯片本身具有并行的硬件乘法器、流水線結(jié)構(gòu)以及快速片內(nèi)RAM等資源,容易實現(xiàn)濾波運算,且程序可移植性好,不同性能的濾波器只需要修改濾波器的參數(shù)即可。
本文作者創(chuàng)新點:在DES5402PP開發(fā)板的基礎(chǔ)上,通過輸入一組兩個不同頻率的正弦混合信號,設(shè)計并實現(xiàn)了IIR濾波器。同時介紹串口和TLC320AC01的工作方式,給出了與DSP的連接方法,并通過程序?qū)崿F(xiàn)。不論處理的是模擬信號還是數(shù)字信號,系統(tǒng)都可以通過TLC320AC01在信號形式上進行匹配轉(zhuǎn)換,完成對信號的濾波處理。由于TLC320AC01最高采樣頻率為25kHz(高于語音采樣頻率8kHz),因此該系統(tǒng)也可用于音頻信號濾波。
參考文獻:
[1]齊海兵,平冠軍,陶文超.無限沖激響應(yīng)濾波器的設(shè)計與實現(xiàn)[J].微計算機信息,2006,10-2:84-85.
[2]汪安民,陳明欣,朱明.TMS320C54xxDSP實用技術(shù)[M].北京:清華大學出版社,2007:48-204.
[3] Texas Instrument. TLC320AC01C Data Manual.
[4] Texas Instrument. InteRFacing TMS320C54x DSPs to TLC320AC01/02 Analog Interface circuits.