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