DSP和音频AD/DA的硬件设计
扫描二维码
随时随地手机看文章
ad50和dsp的硬件连接有多种方法,但使用最多的是dsp的缓冲串口和ad50连接方法。这种连接方法可使一个缓冲串口与多个ad50芯片连接(一个缓冲串口最多与3个ad50芯片连接)。 dsp为主设备、ad50为从设备的连接方法如图1所示。图中ad50的时钟信号由c5409的定时器0的输出提供,时钟频率可以通过修改定时器0的设置而改变。ad50的fc引脚连接到c5409的xf(通用i/o引脚),用于控制第二次串行通信。ad50的din(数据输人引脚)和d0ut(数据输出引脚)分别接c5409缓冲串口0的dx0和dr0引脚。ad50的sclk(移位时钟输出)连接c5409的clkr0(缓冲串口0的接收时钟引脚),帧同步信号fs连接c5409缓冲串口0的frx0。 图1 ad50和一个dsp的连接 dsp带两个ad50,其中一个ad50为主设备,一个ad50为从设备的连接方法如图2所示。 图2 两个ad50和dsp的连接 dsp一般不能同时连接两个都是从设备的ad50芯片,但如果使用了pld(逻辑器件)就可以实现连接两个从设备的ad50,具体的连接方法如图3所示。 图3 两个从ad50和dsp的连接 语音数据传输到dsp的mcbsp。mcbsp和cpu的通信有3种方式。 (1)每收到或发送一个单元,置标志位,cpu轮询此标志位。 (2)每收到或发送一个单元,给cpu发送中断。 (3)通过dma收到或发送完一组单元,再给cpu中断。 采用dma的方式,即串口每发送或接受到一个单元,都会自动触发dma将其搬送到一个内部的缓冲区(buffer),等buffer满了再通过中断方式告诉cpu处理。这时dma最好采用自动缓冲(abu,auto buffering)模式,在这种模式下,dma会在两个buffer(其实是一个大buffer的前一半和后一半)之间自动切换,每个buffer满了(接收)或空了(发送)都会给cpu发出中断,在cpu处理这个buffer的时候,dma会自动去操作另一个buffer。采用这种方式可以有效防止buffer中的数据在串口速率较高时被新数据冲掉的问题。 在dma的中断服务程序中为了可靠可以把这个buffer的数据再拷贝到另一个待处理的空间,即两级buffer,然后置标志位,cpu在主程序中查询标志位然后作出相应的处理。dma操作的buffer可以通过寄存器配置,buffer的大小和起始位置应设置正确。在指定buffer的起始位置时应该注意,起始位置应该为大于buffer大小的下一个2的整数幂的倍数。例如,在8kb、16bit采样的情况下,以20ms数据为buffer大小,那么一次处理的数据是8000×32×0,02=5120bit-320word。所以,dma的buffer应为640word(两个320word buffer)大小,而buffer的起始地址应该为1024=210>640的整数倍,如0x7000,0x7400…… 欢迎转载,信息来源维库电子市场网()