学海荡舟手机网

主页 > 实用文摘 > 教育文摘_04 > > 详细内容

TLC320AD50C与DSP接口设计_DSP论文

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

关键词:tlc320d50c;dsp;主从模式

引  言

    在许多应用系统中,为了应用dsp卓越的数字信号处理能力,我们必须先将模拟信号进行数字化(a/d转换),再对采样数据进行相应的算法处理,最后经过数字信号模拟化(d/a转换)后输出。在这些dsp应用系统中的关键问题是怎样十分容易和高效地实现这些转换,因此必然涉及到接口电路的设计。本文介绍一种单片内集成了adc通道和dac通道的模拟接口电路tlc320ad50c(以下简称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)说明下一个要传输的数据字属于二次通信(关于一次通信和二次通信的内容请参阅参考文献)。第二个数据值用来对ad50的4个数据寄存器的某一个进行配置。bits15~11位为0,bits10~8位为所选寄存器地址值,bits7~0位为所选中寄存器的编程值。4个用户可编程寄存器的描述如下:r1中包含模拟输入通道选择,硬件 / 软件编程方式选择;r2进行单机 / 从机工作和电话模式(电话模式内容请参阅参考文献)选择;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,请求第二次交流
 stlm a,43h  ;向tlc320ad50c写数据
aa: stm #0001h,48h 
 ldm 49h,a
 and #0002h,a
 bc aa,aeq  ;数据是否被tlc320ad50c接收
 ld #0180h,a ;给tlc320ad50c的寄存器1编程,使其复位
 stlm a,43h
bb:stm #0001h,48h
 ldm 49h,a
 and #0002h,a
 bc bb,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等电话或语音应用中。