基于DES5402PP的IIR濾波器設(shè)計與實現(xiàn)
關(guān)鍵詞:TMS320C5402;TLC320AC01;IIR濾波器;CCS
Abstract: This article lists the theory of IIR filter and how to design it. It analyzed how the Serial Interface of TMS320C5402 work and the specialty of TLC320AC01. Then list a link between C5402 and AC01, so that the system can both process digital signals and analog signals. In the end, it provides the material way of system design and implement IIR filter base on CCS and DES5402PP board.
Key Words: TMS320C5402; TLC320AC01; IIR Filter; CCS
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)定的,但I(xiàn)IR濾波器也具有多種優(yōu)越性,它可充分利用模擬濾波器的設(shè)計成果,工作量相對較??;在相同的設(shè)計指標(biāo)下,可以用較低的階數(shù)獲得較好的性能;所用的存儲單元少,因此對于硬件來說,在相同時鐘速率和存儲空間下可以提供更好的帶外衰減特性[1]。http://www.51kaifa.com
設(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ù)進(jìn)行濾波,輸出濾波后的信號。驗證濾波器的性能后,將濾波器的系數(shù)通過程序?qū)懗?inc的文件,通過.include語句將其寫入DSP匯編程序中。
2 C5402的緩沖串口(BSP)工作方式
TMS320C5402是TI公司生產(chǎn)的16位定點、速度為100MIPS、RAM為1616位、ROM為4K16位、可編程、低功耗和高性能的DSP。它提供的各種類型的串口都可以在全雙工方式下通信,其串口信號與許多符合工業(yè)標(biāo)準(zhǔn)的串行設(shè)備兼容,可以直接連接。當(dāng)串口復(fù)位時,可通過DSP來關(guān)閉或打開串口工作時鐘,并允許串口運行在低功耗模式下[2]。
緩沖串口在BSP在標(biāo)準(zhǔn)串口的基礎(chǔ)上增加一個自動緩沖單元ABU,是一種增強型標(biāo)準(zhǔn)串口。允許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ā)送和接收初始化步驟
發(fā)送操作 | 接收操作 |
(1)寫0008h到SPC,復(fù)位和初始化BSP | (1)寫0000h到SPC,復(fù)位和初始化BSP |
(2)寫0020h到IFR,清除未使用的BSP中斷 | (2)寫0010h到IFR,清除未使用的BSP中斷 |
(3)用0020h與IMR進(jìn)行或運算以激活BSP中斷 | (3)用0010h與IMR進(jìn)行或運算以激活BSP中斷 |
(4)如果可能,清ST1的INTM位恢復(fù)全局中斷 | (4)如果可能,清ST1的INTM位恢復(fù)全局中斷 |
(5)寫1400h到BSPCE,初始化ABU發(fā)送 | (5)寫0A000h到BSPCE,初始化ABU傳輸 |
(6)寫緩沖啟動地址到AXR | (6)寫緩沖啟動地址到ARR |
(7)寫緩沖區(qū)大小到BKX | (7)寫緩沖區(qū)大小到BKR |
(8)寫0048h到SPC,啟動BSP運行 | (8)寫0088h到SPC,啟動BSP |
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ù)存儲器功能
R0 | 一般為0 | R3 | 相移控制 | R6 | 控制操作模式 |
R1 | 采樣頻率 | R4 | 模擬輸入輸出的增益控制 | R7 | 控制從模式的串行通信 |
R2 | 低通濾波器的截止頻率 | R5 | 使能高通濾波器 | R8 | 控制生成的幀同步脈沖數(shù) |
在AC01正常工作前,必須對它進(jìn)行正確的初始化。初始化的操作主要工作是配置AC01的以上各個數(shù)據(jù)存儲器。采樣頻率Fs=MCLK/2AB,其中,MCLK為DSP的工作頻率,A,B分別為A,B寄存器的內(nèi)容。由于實驗設(shè)置采樣頻率為600Hz,因此設(shè)A,B寄存器的內(nèi)容分別為5和4。即:
LD #00105h,a;送05h到AC01的數(shù)據(jù)寄存器1
IDLE 1
LD #00204h,a;送04h到AC01的數(shù)據(jù)寄存器2
IDLE 1
4 C5402和AC01的連接方式
4.1 C5402和AC01的硬件連接
在主/從模式下,DSP可以不通過其他器件而直接與兩個AC01相連。其硬件連接如圖1所示:
圖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將使用外部時鐘和幀同步信號。在使用串口前,需要對它進(jìn)行初始化,包括串口收發(fā)中斷設(shè)置和串口寄存器的初始化,主要代碼如下:
STM #0,spsa() ;spsa()為串口0的子地址寄存器
STM #2000h,spcr10;
……
STM #0C1h
LD #603h,a ;開始串口發(fā)送
……
LDM drr10,a ;將串口要輸入到數(shù)據(jù)寄存器的內(nèi)容轉(zhuǎn)送到累加器A
CALL filter ;調(diào)用濾波子程序
……
STH a,dxr10 ;數(shù)據(jù)送到AC01的D/A,轉(zhuǎn)換成模擬信號輸出
同時,要修改中斷向量表以便正確響應(yīng)串口的接收和發(fā)送中斷請求,其中發(fā)送中斷產(chǎn)生測試信號和完成對AC01的初始化。實際上對信號濾波的實現(xiàn),就是指從A/D讀到一個數(shù)據(jù)后調(diào)用濾波程序,然后輸出數(shù)據(jù)到D/A。
5 實驗過程與結(jié)果分析
實驗程序主要包括以下幾個步驟:
(1),對DSP的寄存器、緩沖串口以及定時器初始化,確保能提供AC01正確的時鐘信號。完成該步驟后,檢測DSP的CLKR和FSR引腳可以看到連續(xù)輸出的信號。
(2),同過DSP的緩沖串口對AC01進(jìn)行初始化,正確設(shè)置AC01的采樣率控制寄存器(表2中的R1),設(shè)置其采樣頻率。完成該步驟后,檢測AC01的DOUT引腳可以發(fā)現(xiàn)有連續(xù)輸出的信號。
(3),設(shè)置DSP的中斷,從緩沖串口讀取數(shù)據(jù)。這一步可以通過CCS環(huán)境查看讀取的數(shù)據(jù)是否正確。如果正確,將采樣數(shù)據(jù)送到濾波程序中,進(jìn)行濾波處理,得到結(jié)果后,直接送到AC01的D/A單元輸出。否則,返回步驟(1)。
濾波前后的波形如圖2和圖3所示??梢钥吹?,比起濾波前的(a)圖,(b)圖的時域和頻域波形得到明顯改善,300Hz的信號基本被濾除。
(a)濾波前的信號波形 (b)濾波后的信號波形
圖2 濾波前后信號的時域波形
(a)濾波前的信號頻率 (b)濾波后的信號頻率
圖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在信號形式上進(jìn)行匹配轉(zhuǎn)換,完成對信號的濾波處理。由于TLC320AC01最高采樣頻率為25kHz(高于語音采樣頻率8kHz),因此該系統(tǒng)也可用于音頻信號濾波。
參考文獻(xiàn):
[1]齊海兵,平冠軍,陶文超.無限沖激響應(yīng)濾波器的設(shè)計與實現(xiàn)[J].微計算機信息,2006,10-2:84-85.
[2]汪安民,陳明欣,朱明.TMS320C54xxDSP實用技術(shù)[M].北京:清華大學(xué)出版社,2007:48-204.
[3] Texas Instrument. TLC320AC01C Data Manual.
[4] Texas Instrument. Interfacing TMS320C54x DSPs to TLC320AC01/02 Analog Interface circuits.
評論