在許多實際應用DSP系統中,輸入信號既可以是語音信號、調制的電話信號、編碼的數字信號、壓縮后的圖像信號,也可以是各種傳感器輸出的模擬信號,這就需要DSP通過A/D和D/A轉換完成數字信號和模擬信號之間的轉換,從而能使DSP處理模擬信號和將數字信號轉換成易于人機交互的聲、光、電等信號。DES5402PP是一個采用TI公司的TMS320C5402為核心處理器的實驗開發板,它提供的TLC320AC01能很好的完成這一功能。 1 IIR濾波器的MATLAB設計 盡管IIR濾波器的算法比FIR濾波器要復雜,且不是因果穩定的,但IIR濾波器也具有多種優越性,它可充分利用模擬濾波器的設計成果,工作量相對較小;在相同的設計指標下,可以用較低的階數獲得較好的性能;所用的存儲單元少,因此對于硬件來說,在相同時鐘速率和存儲空間下可以提供更好的帶外衰減特性。 設低通IIR切比雪夫濾波器的采樣點為256個,采樣頻率為600Hz,輸入為兩個頻率分別為100Hz和300Hz的正弦信號的合成信號。設定截止頻率為200Hz,可以預料,將保留100Hz的信號,300Hz的信號基本被濾掉。 根據系統的設計流程,先在MATLAB中求得IIR濾波器的系數。主要分為三個步驟:產生本系統的測試信號;調用MATLAB中的濾波器函數,求出濾波器的系數;調用filter函數進行濾波,輸出濾波后的信號。驗證濾波器的性能后,將濾波器的系數通過程序寫成.inc的文件,通過.include語句將其寫入DSP匯編程序中。 2 C5402的緩沖串口(BSP)工作方式 TMS320C5402是TI公司生產的16位定點、速度為100MIPS、RAM為16×16位、ROM為4K×16位、可編程、低功耗和高性能的DSP。它提供的各種類型的串口都可以在全雙工方式下通信,其串口信號與許多符合工業標準的串行設備兼容,可以直接連接。當串口復位時,可通過DSP來關閉或打開串口工作時鐘,并允許串口運行在低功耗模式下。 緩沖串口在BSP在標準串口的基礎上增加一個自動緩沖單元ABU,是一種增強型標準串口。允許8、10、12、16、20、24或32位的數據傳輸。由于ABU是一個附加邏輯電路,它允許串口單元直接將數據讀寫到C5402的內部獨立存儲器,不需要CPU參與,從而使BSP傳輸速度更快。表1給出了BSP發送和接收數據初始化的操作步驟。 表1 BSP的發送和接收初始化步驟 3 AC01的特點 TLC320AC01也是TI公司生產的一款集成有A/D和D/A的芯片,通過串口與DSP或其他設備通信。AC01的最高采樣頻率為25kHz,其數據精度為16位,采用單一5V電源供電。C5402與AC01連接后,可以只使用一個緩沖通道串口來同時實現數據的采集和輸出,從而節省了DSP的硬件開銷。因此,DSP與AC01的連接使用在信號處理中得到了廣泛的應用。 實驗系統DES5402PP使用AC01作為模擬信號接口,有兩個AC01,分別工作于“主”、“從”模式。利用“主AC01”產生合成的輸入信號,“從AC01”將該信號轉換成濾波的數據信號并輸入到DSP芯片。其中,DSP還可以通過讀寫AC01的寄存器,控制AC01的采樣頻率、增益、低通、高通濾波器的截止頻率等參數。AC01的九個控制寄存器如表2。 表2 TLC320AC01的數據存儲器功能 在AC01正常工作前,必須對它進行正確的初始化。初始化的操作主要工作是配置AC01的以上各個數據存儲器。采樣頻率Fs=MCLK/2AB,其中,MCLK為DSP的工作頻率,A,B分別為A,B寄存器的內容。由于實驗設置采樣頻率為600Hz,因此設A,B寄存器的內容分別為5和4。即: 4 C5402和AC01的連接方式 4.1 C5402和AC01的硬件連接 在主/從模式下,DSP可以不通過其他器件而直接與兩個AC01相連。其硬件連接如圖1所示: 圖1 主/從TLC320AC01和TMS320C5402的連接 4.2 C5402和AC01的軟件連接 先在C5402的數據存儲空間寫入256個數據(即三個正弦信號混合而成的測試信號的離散表示),然后通過緩沖串口將數據發送到“主AC01”,利用“主AC01”的D/A通道產生一個模擬信號作為IIR濾波器的輸入信號。由于實驗中DES5402PP的信號輸出通道與輸入通道相連,即“主AC01”的輸出作為“從AC01”的輸入,“從AC01”的DOUT端口與DSP芯片的DR端相連。另外,在串口通訊中,因為數據時鐘和幀同步信號都由AC01產生,所以C5402將使用外部時鐘和幀同步信號。在使用串口前,需要對它進行初始化,包括串口收發中斷設置和串口寄存器的初始化,主要代碼如下: 同時,要修改中斷向量表以便正確響應串口的接收和發送中斷請求,其中發送中斷產生測試信號和完成對AC01的初始化。實際上對信號濾波的實現,就是指從A/D讀到一個數據后調用濾波程序,然后輸出數據到D/A。 5 實驗過程與結果分析 實驗程序主要包括以下幾個步驟: (1),對DSP的寄存器、緩沖串口以及定時器初始化,確保能提供AC01正確的時鐘信號。完成該步驟后,檢測DSP的CLKR和FSR引腳可以看到連續輸出的信號。 (2),同過DSP的緩沖串口對AC01進行初始化,正確設置AC01的采樣率控制寄存器(表2中的R1),設置其采樣頻率。完成該步驟后,檢測AC01的DOUT引腳可以發現有連續輸出的信號。 (3),設置DSP的中斷,從緩沖串口讀取數據。這一步可以通過CCS環境查看讀取的數據是否正確。如果正確,將采樣數據送到濾波程序中,進行濾波處理,得到結果后,直接送到AC01的D/A單元輸出。否則,返回步驟(1)。 濾波前后的波形如圖2和圖3所示?梢钥吹剑绕馂V波前的(a)圖,(b)圖的時域和頻域波形得到明顯改善,300Hz的信號基本被濾除。 (a)濾波前的信號波形&nBSP; (b)濾波后的信號波形 圖2 濾波前后信號的時域波形 (a)濾波前的信號頻率 (b)濾波后的信號頻率 圖3 濾波前后信號的頻域波形 在圖2(b)中,可以看到,只剩下一種頻率的正弦信號。從頻域來看,在圖3(b)中,高頻部分已經基本削弱,同時低頻也有少量損失,只要將濾波器的階數高一些或者截止頻率稍微定低一些,便能更大程度的保留低頻信號、消除高頻信號。 6 結語 在信號與信息的過濾、檢測和預測等處理中,都要使用濾波器,數字濾波器是數字信號處理中使用最廣泛的一種方法。IIR數字濾波器的設計過程中,可以借助模擬濾波器的設計成果或直接采用典型的濾波器類型,減少工作量。而在信號的輸入輸出過程中,往往需要A/D和D/A轉換,TLC320AC01模擬接口電路便可方便的實現這一轉換。此外,DSP芯片本身具有并行的硬件乘法器、流水線結構以及快速片內RAM等資源,容易實現濾波運算,且程序可移植性好,不同性能的濾波器只需要修改濾波器的參數即可。 本文作者創新點:在DES5402PP開發板的基礎上,通過輸入一組兩個不同頻率的正弦混合信號,設計并實現了IIR濾波器。同時介紹串口和TLC320AC01的工作方式,給出了與DSP的連接方法,并通過程序實現。不論處理的是模擬信號還是數字信號,系統都可以通過TLC320AC01在信號形式上進行匹配轉換,完成對信號的濾波處理。由于TLC320AC01最高采樣頻率為25kHz(高于語音采樣頻率8kHz),因此該系統也可用于音頻信號濾波。 |