基于CCS和DSK5402板的音频采集和回放程序设计
TMS320VC5402(以下简称C5402)是TI(德州仪器)公司1999年10月推出的性价比极高(目前批量价格约人民币40元)的定点数字信号处理器(DSP)。指令执行速率高达100MIPS,已经广泛用于实时语音处理、个人数字助理(PDA)和数字无线通信等嵌入式系统。TLC320AD50C(简称AD50)是TI公司生产的SIGMA-DELTA型单片音频接口芯片(AIC)。而DSK板是TI公司的一种DSP仿真/开发板,本文着重介绍了利用CCS在DSK板上进行实时语音处理的软件设计过程。
1.C5402及其多通道缓冲串口
C5402硬件优点。改进的哈佛结构解决了冯诺伊曼(Von-Neumann)结构中高速数据传输时的传输通道上的瓶颈现象;内部多总线结构保证在一个机器周期内可以多次访问程序空间和数据空间;指令执行时的多重流水线结构将指令周期降低到了最小值;多处理单元可以在一个指令周期内同时进行运算,而这种结构恰好满足了数字信号处理中的一些特殊要求如FIR、IIR、FFT等运算。尤为值得一提的是C5402的软件特点,7种有效灵活的寻址方式,仅为10ns的指令执行周期,还有一些特殊的运算指令更好地满足了数字信号处理中特有的运算需要。
C5402具有高速的,全双工串行口,可用来与系统中的其他C54x器件,编码解码器,串行A/D,D/A转换器以及其他的串行器件直接接口。这两个串行口均为多通道缓冲串行口McBSP(Multi-channel Buffered Serial Port)。它支持全双工通信,双缓冲数据寄存器,允许连续的数据流。可以与工业标准的编/解码器,AICs接口。支持多种方式的传输接口如T1/E1帧协议、MVIP帧方式、H.100帧方式、SCSA帧方式、IIS兼容设备等。可与多达128个通道进行收发。支持传输的数据字长可以是8bit,12bit,16bit,20bit,24bit或32bit。内置μ-律和A-律压扩硬件。
McBSP在结构上可以分为一个数据通道和一个控制通道。如图1所示:
数据通道完成数据的发送和接收。控制通道完成的任务包括内部时钟的产生,帧同步信号产生,对这些信号的控制以及多通道的选择等。控制通道还负责产生终端信号送往CPU,产生同步事件通知DMA控制器。
图1 McBSP的结构
象51/96系列单片机一样,对C5402串行口的操作也是通过设置各控制寄存器来进行的。这些控制寄存器有串行口控制寄存器SPCR1/2;接收控制寄存器RCR1/2;发送控制寄存器XCR1/2;多通道寄存器MCR1/2等。需要注意的是,要对某一控制寄存器寻址,只能采用加子地址寻址方式。
2. AD50的一般说明
AD50是一款SIGMA-DELTA型单片音频接口芯片(AIC)。它内部集成了16位的D/A和A/D转换器,采样速率最高可达22.05kb/s,其采样速率可通过DSP编程来设置。在DAC之前有一个插值滤波器以保证输出信号平滑和ADC之后有一个抽取滤波器以提高输入信号的信噪比。
AD50内部有7个数据和控制寄存器,用于编程控制它们的工作状态。
寄存器0:空操作寄存器。
寄存器1: 软件复位
软件掉电
选择16位或15位工作方式
硬件或软件二次通信请求方式的选择
寄存器2:使能ALTDATA输入端
为ADC选择16/15位方式
寄存器3:选择FS与FSD之间延迟SCLK的个数
告诉主机有几个从机被联上
寄存器4:为输入和输出放大器选择放大器增益
选择N来设置采样频率,fs=MCLK/(128*N)或MCLK/(512*N)
在MCLK输入端使能外部时钟输入并旁通内部的PLL
寄存器5,6:保留
AD50与C5402之间的数据传送采用串行方式,包括两种传输模式:16位和15+1位传输模式。15+1位模式时,其中的D0位表示二次通信。它们各自的时序如下:
注:A,16位或15位工作方式是通过控制寄存器2来编程实现的。
B,M/S用来表明15位的数据是来自主机还是从机。
C,最高位MSB(D15)在SCLK第一个周期的下降沿稳定,最低位(D0,M/S)在SCLK第16个周期的下降沿稳定。
图 2 仅有首次通信时的ADC通道时序
注:A,二次通信时的M/S位(DS15)用于表明在设置了读位后寄存器数据(地址和内容)是来自主机还是从机。在寄存器读期间,DS7-DS0位是指定寄存器的内容,在寄存器写期间,DS7-DS0为0。
图3 有首次通信和二次通信的ADC通道时序
AD50的数据传输模式和采样速率都可以通过DSP对其控制寄存器的编程来实现,因此,在许多场合下,AD50都作为DSP的AIC来实现音频处理。
3.CCS和DSK
CCS(Code Composer Studio)为TI公司的DSP集成开发环境。它提供了环境配置、源文件编辑、程序调试、跟踪和分析等工具,可以帮助用户在一个软件环境下完成编辑、编译链接、调试和数据分析等工作。与TI提供的早期软件开发工具相比,利用CCS能够加快软件开发进程,提高工作效率。
CCS一般工作在两种模式
- MS320VC5402 HPI接口与PCI总线接口设计(10-25)
- TMS320VC5402 DSP与串行AD73360 A/D转换器的接口设计(08-12)
- 详细阐述UCD3xxx 系列数字电源控制器烧写常用的两种十六进制文件格式:X0和Intel Hex(07-28)
- 一种基于CCSDS AOS的虚拟信道动态调度方案(07-31)
- 基于CCS的DSP片外Flash直接烧写设计(09-10)
- 12位串行A/D转换器MAX187的应用(10-06)