基于CCS和DSK5402板的音頻采集和回放程序設計
TMS320VC5402(以下簡(jiǎn)稱(chēng)C5402)是TI(德州儀器)公司1999年10月推出的性?xún)r(jià)比極高(目前批量?jì)r(jià)格約人民幣40元)的定點(diǎn)數字信號處理器(DSP)。指令執行速率高達100MIPS,已經(jīng)廣泛用于實(shí)時(shí)語(yǔ)音處理、個(gè)人數字助理(PDA)和數字無(wú)線(xiàn)通信等嵌入式系統。TLC320AD50C(簡(jiǎn)稱(chēng)AD50)是TI公司生產(chǎn)的SIGMA-DELTA型單片音頻接口芯片(AIC)。而DSK板是TI公司的一種DSP仿真/開(kāi)發(fā)板,本文著(zhù)重介紹了利用CCS在DSK板上進(jìn)行實(shí)時(shí)語(yǔ)音處理的軟件設計過(guò)程。
本文引用地址:http://dyxdggzs.com/article/188493.htm1.C5402及其多通道緩沖串口
C5402硬件優(yōu)點(diǎn)。改進(jìn)的哈佛結構解決了馮諾伊曼(Von-Neumann)結構中高速數據傳輸時(shí)的傳輸通道上的瓶頸現象;內部多總線(xiàn)結構保證在一個(gè)機器周期內可以多次訪(fǎng)問(wèn)程序空間和數據空間;指令執行時(shí)的多重流水線(xiàn)結構將指令周期降低到了最小值;多處理單元可以在一個(gè)指令周期內同時(shí)進(jìn)行運算,而這種結構恰好滿(mǎn)足了數字信號處理中的一些特殊要求如FIR、IIR、FFT等運算。尤為值得一提的是C5402的軟件特點(diǎn),7種有效靈活的尋址方式,僅為10ns的指令執行周期,還有一些特殊的運算指令更好地滿(mǎn)足了數字信號處理中特有的運算需要。
C5402具有高速的,全雙工串行口,可用來(lái)與系統中的其他C54x器件,編碼解碼器,串行A/D,D/A轉換器以及其他的串行器件直接接口。這兩個(gè)串行口均為多通道緩沖串行口McBSP(Multi-channel Buffered Serial Port)。它支持全雙工通信,雙緩沖數據寄存器,允許連續的數據流??梢耘c工業(yè)標準的編/解碼器,AICs接口。支持多種方式的傳輸接口如T1/E1幀協(xié)議、MVIP幀方式、H.100幀方式、SCSA幀方式、IIS兼容設備等??膳c多達128個(gè)通道進(jìn)行收發(fā)。支持傳輸的數據字長(cháng)可以是8bit,12bit,16bit,20bit,24bit或32bit。內置μ-律和A-律壓擴硬件。
McBSP在結構上可以分為一個(gè)數據通道和一個(gè)控制通道。如圖1所示:
數據通道完成數據的發(fā)送和接收??刂仆ǖ劳瓿傻娜蝿?wù)包括內部時(shí)鐘的產(chǎn)生,幀同步信號產(chǎn)生,對這些信號的控制以及多通道的選擇等??刂仆ǖ肋€負責產(chǎn)生終端信號送往CPU,產(chǎn)生同步事件通知DMA控制器。

圖1 McBSP的結構
象51/96系列單片機一樣,對C5402串行口的操作也是通過(guò)設置各控制寄存器來(lái)進(jìn)行的。這些控制寄存器有串行口控制寄存器SPCR1/2;接收控制寄存器RCR1/2;發(fā)送控制寄存器XCR1/2;多通道寄存器MCR1/2等。需要注意的是,要對某一控制寄存器尋址,只能采用加子地址尋址方式。
2. AD50的一般說(shuō)明
AD50是一款SIGMA-DELTA型單片音頻接口芯片(AIC)。它內部集成了16位的D/A和A/D轉換器,采樣速率最高可達22.05kb/s,其采樣速率可通過(guò)DSP編程來(lái)設置。在DAC之前有一個(gè)插值濾波器以保證輸出信號平滑和ADC之后有一個(gè)抽取濾波器以提高輸入信號的信噪比。
AD50內部有7個(gè)數據和控制寄存器,用于編程控制它們的工作狀態(tài)。
寄存器0:空操作寄存器。
寄存器1: 軟件復位
軟件掉電
選擇16位或15位工作方式
硬件或軟件二次通信請求方式的選擇
寄存器2:使能ALTDATA輸入端
為ADC選擇16/15位方式
寄存器3:選擇FS與FSD之間延遲SCLK的個(gè)數
告訴主機有幾個(gè)從機被聯(lián)上
寄存器4:為輸入和輸出放大器選擇放大器增益
選擇N來(lái)設置采樣頻率,fs=MCLK/(128*N)或MCLK/(512*N)
在MCLK輸入端使能外部時(shí)鐘輸入并旁通內部的PLL
寄存器5,6:保留
AD50與C5402之間的數據傳送采用串行方式,包括兩種傳輸模式:16位和15+1位傳輸模式。15+1位模式時(shí),其中的D0位表示二次通信。它們各自的時(shí)序如下:
注:A,16位或15位工作方式是通過(guò)控制寄存器2來(lái)編程實(shí)現的。
B,M/S用來(lái)表明15位的數據是來(lái)自主機還是從機。
C,最高位MSB(D15)在SCLK第一個(gè)周期的下降沿穩定,最低位(D0,M/S)在SCLK第16個(gè)周期的下降沿穩定。
圖 2 僅有首次通信時(shí)的ADC通道時(shí)序

注:A,二次通信時(shí)的M/S位(DS15)用于表明在設置了讀位后寄存器數據(地址和內容)是來(lái)自主機還是從機。在寄存器讀期間,DS7-DS0位是指定寄存器的內容,在寄存器寫(xiě)期間,DS7-DS0為0。
圖3 有首次通信和二次通信的ADC通道時(shí)序
AD50的數據傳輸模式和采樣速率都可以通過(guò)DSP對其控制寄存器的編程來(lái)實(shí)現,因此,在許多場(chǎng)合下,AD50都作為DSP的AIC來(lái)實(shí)現音頻處理。
評論