新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > TLC320AD50C与DSP接口设计

TLC320AD50C与DSP接口设计

作者:时间:2004-12-06来源:网络收藏

摘 要(数字信号处理器)具有强大的数字信号处理能力,在其应用系统中,大多由ADC和DAC通道来完成对模拟信号的数字化处理。本文介绍了一种集成ADC和DAC于一体的模拟电路与TMS320VC5402定点电路的硬件方法,并结合一个具体的软件实例说明主从模式下软件的实现方法。

关键词:TLC320D50C;;主从模式

引 言

在许多应用系统中,为了应用DSP卓越的数字信号处理能力,我们必须先将模拟信号进行数字化(A/D转换),再对采样数据进行相应的算法处理,最后经过数字信号模拟化(D/A转换)后输出。在这些DSP应用系统中的关键问题是怎样十分容易和高效地实现这些转换,因此必然涉及到电路的。本文介绍一种单片内集成了ADC通道和DAC通道的模拟接口电路(以下简称AD50)与TMS320VC5402缓冲串口的接口的实现方法,然后,基于这种接口电路的硬件设计,通过软件编程实现语音信号的采集与回放。

1 芯片简介

TMS320VC5402是TI公司生产的从属于TMS320C54x系列的一个工作灵活、高速、具有较高性价比、低功耗的16位定点通用DSP芯片。其主要特点包括:采用改进的哈佛结构,1条程序总线(PB),3条数据总线(CB、DB、EB)和4条地址总线(PAB,CAB,DAB,EAB),带有专用硬件逻辑CPU,片内存储器,片内外围专用的指令集,专用的汇编语言工具等。TMS320VC5402含4K字节的片内ROM和16K字节的双存取RAM,1个HPI(Host Port Interface)接口,2个多通道缓冲单口MCBSP(Multi-Channel Buffered Serial Port),单周期指令执行时间10ns,双电源(1.8V和3.3V)供电,带有符合IEEE1149.1标准的JTAG边界扫描仿真逻辑。

AD50是TI公司生产的一个16位、音频范围(采样频率为2K~22.05KHZ)、内含抗混叠滤波器和重构滤波器的模拟接口芯片,它有一个能与许多DSP芯片相连的同步串行通信接口。AD50C片内还包括一个定时器(调整采样率和帧同步延时)和控制器(调整编程放大增益,锁相环PLL,主从模式)。AD50有28脚的塑料SOP封装(带DW后缀)和48脚的塑料扁平封装(带PT后缀),体积较小,适应于便携设备。AD50的工作温度范围是0~70℃,单一5V电源供电或5V和3.3V联合供电,工作时的最大功耗为120 mW。

2 硬件设计

2.1 AD50的内部结构简图

图1最上面第一通道为模拟信号输入监控通道,第二通道为模拟信号转化为数字信号(A/D)通道,第三通道为数字信号转化为模拟信号(D/A)通道,最下面一路是AD50的工作频率和采样频率控制通道。本文所述的输入时钟(MCLK)为8.192MHz,A/D与D/A的采样频率为MCLK/(128*N)Hz(N为AD50C的第4个寄存器4~6位所设)。

2.2 AD50与DSP的引脚连接方式

AD50与TMS320VC5402是以SPI方式连接的。AD50工作在主机模式(M/S=1),提供SCLK(数据移位时钟)和FS(帧同步脉冲)。TMS320VC5402工作于SPI方式的从机模式,BCLKX1和BFSX1为输入引脚,在接数据和发数据时都是利用外界时钟和移位脉冲。

3 软件设计

3.1 软件编制过程

一旦完成了正确的硬件连接,接下来就可以进行软件编程调试了。要完成的工作包括:

(1)TMS320VC5402串口的初始化。首先将DSP串口1复位,再对串口1的16个寄存器进行编程,使DSP串口工作在以下状态:以SPI模式运行,每帧一段,每段一个字,每字16位,采样率发生器由DSP内部产生,帧同步脉冲低电平有效,并且帧同步信号和移位时钟信号由外部产生。DSP给AD50C编程用查询方式,接收A/D转换的D信号和发送D/A转换的D信号用DMA方式。

(2)AD50初始化。该初始化操作过程包括通过TMS320VC5402的同步串口发送两串16位数字信息到AD50。第一串为0000 0000 0000 0001B,最低有效位(bits0)说明下一个要传输的数据字属于二次通信(关于一次通信和二次通信的内容请参阅参考文献[3])。第二个数据值用来对AD50的4个数据寄存器的某一个进行配置。Bits15~11位为0,Bits10~8位为所选寄存器地址值,Bits7~0位为所选中寄存器的编程值。4个用户可编程寄存器的描述如下:R1中包含模拟输入通道选择,硬件 / 软件编程方式选择;R2进行单机 / 从机工作和电话模式(电话模式内容请参阅参考文献[3])选择;R3控制带从机个数选择;R4用来设置模拟信号可编程放大增益和A/D、D/A转换频率。其它两个寄存器R5、R6是厂家留着测试用的,用户不可以对其编程。我们在以下例程中对4个可编程寄存器编程,使AD50C工作在以下状态:选择INP/INM为工作模拟输入,15+1位ADC和15+1位DAC模式,不带从机,采样频率为10.67KHz,模拟信号输入和输出放大增益均为0dB。

(3)用户代码的编写。完成音频信号采集与回放代码的编制。本设计给AD50编程用查询方式,接收A/D转换的D信号和发送D/A转换的D信号用DMA方式。

3.2 软件具体实现

(1) 程序流程图:

(2)部分关键代码:
Ⅰ, TMS320VC5402中断及串口初始化
……
stm#0002h,48h
stm#0040h,49h; 设置DSP串口1工作在每帧一个字,每个字16位模式
……
stm#0006h,48h
stm#0100h,49h; 设置CLKGDV=0,使串口1工作在最大频率
stm#0007h,48h
stm#0a000h,49h;设置CLKSM=1,采样率发生器时钟由DSP内部产生
stm#000eh,48h
stm#0008h,49h;设置FSXP=1,使帧同步脉冲低电平有效
stm#0080h,imr ;DMA一通道中断使能
rsbx intm;开放所有可屏蔽中断
……
Ⅱ, AD50初始化
ld#0001h,a;D0=1,请求第二次交流
stlma,43h;向写数据
aa:stm#0001h,48h
ldm49h,a
and#0002h,a
bcaa,aeq;数据是否被TLC320AD50C接收
ld#0180h,a;给TLC320AD50C的寄存器1编程,使其复位
stlma,43h
bb:stm#0001h,48h
ldm49h,a
and#0002h,a
bcbb,aeq;编程数据是否被TLC320AD50C接收
……
stm#0100h,a;TLC320AD50C脱离复位并且设置寄存器1,使INP,INM为输入
……
stm#0200h,a;设置TLC320AD50C寄存器2,使电话模式无效
……
stm#0460h,a;设置TLC320AD50C寄存器4,使采样频率为10.667KHz
……
stm#0300h,a;设置TLC320AD50C寄存器3,使带0个从机
……
Ⅲ, DMA1通道初始化
stm#05h,55h;选择DMA1通道
stm#0041h,56h;设置串口1接收端为DMA事件的源地址
stm#027fh,56h;设置DMA事件的目的地址
stm#3000h,56h;设置直接传送数据个数
stm#5000h,56h;设置串口1同步模式,一帧接收一个字
stm#404dh,56h;设置DMA为多帧模式,源地址不调整目的地址按57h的值调整
stm#20h,55h
stm#0001h,57h;设置目的地址为自动加1调整
stm#0282h,54h;设置通道1为高优先级并使能通道1
……

4 实验结果

下面图中图4和图6分别为TLC320AD50C与TMS320VC5402组成的数据采集系统对同一个实验对象的语音信号“您好”和“啊”的采集结果,图5和图7分别为WINDOWS 98附件中的录音机所录下的语音信号“您好”和“啊”用MATLAB仿真后的图形结果。

下面图8为AD50采样信号“啊”音的FFT Magnitude, 图9为WINDOWS 98附件中的录音机录制信号“啊”音的FFT Magnitude。

5 结束语

本文以TMS320VC5402与TLC320AD50C为例,详细介绍了AD50与DSP串口通信的硬件接口及软件实现。从实验结果我们可以发现TLC320AD50C可以对语音信号进行无失真采样,完全能满足后续语音信号处理的要求,并且与DSP接口简单,高性能,低功耗,已成为当前语音处理的主流产品。广泛适用于音频处理,语音增强,语音安全,回声抵消,VoIP等电话或语音应用中。



评论


相关推荐

技术专区

关闭