基于FPGA和DSP的音频采集卡的实现

[10-10 20:36:41]   来源:http://www.88dzw.com  电子制作   阅读:8599

文章摘要:2 FPGA的功能模块设计FPGA的设计采用模块化的设计思想。主要模块按功能划分如图2所示。SRAM控制器采用了乒乓机制,一片处于读数据的状态,另一片处于写数据的状态,每15秒钟在PC104主机的控制下切换一次。这种操作方式时序设计简洁可靠,易于做到音频数据连续操作。收到PC104主机发出的切换命令后,待两片SRAM都处于空闲的时候,完成两片SRAM的读写切换。切换的同时,SRAM的读写的地址都会复位,而且会保存刚才15秒内的数据量信息,保证每个15秒读和写都是从零地址开始的,同时也方便读取数据。切换成功后,给出数据就绪的信号,指示主机可以读取数据。PC104接口模块负责采集卡与上位机的通讯和

基于FPGA和DSP的音频采集卡的实现,标签:电子小制作,http://www.88dzw.com

2 FPGA的功能模块设计

FPGA的设计采用模块化的设计思想。主要模块按功能划分如图2所示。SRAM控制器采用了乒乓机制,一片处于读数据的状态,另一片处于写数据的状态,每15秒钟在PC104主机的控制下切换一次。这种操作方式时序设计简洁可靠,易于做到音频数据连续操作。收到PC104主机发出的切换命令后,待两片SRAM都处于空闲的时候,完成两片SRAM的读写切换。切换的同时,SRAM的读写的地址都会复位,而且会保存刚才15秒内的数据量信息,保证每个15秒读和写都是从零地址开始的,同时也方便读取数据。切换成功后,给出数据就绪的信号,指示主机可以读取数据。PC104接口模块负责采集卡与上位机的通讯和数据传输。

完成两片SRAM的读写切换。切换的同时,SRAM的读写的地址都会复位,而且会保存刚才15内的数据量信息,保证每个15秒读和写都是从零地址开始的,同时也方便读取数据。切换成功后,给出数据就绪的信号,指示主机可以读取数据。PC104接口模块负责采集卡与上位机的通讯和数据传输。

图2

3 DSP硬件和软件设计

3.1 DSP的硬件设计

DSP采用McBSP与音频CODEC通信,系统框图(双路音频接收框图)如图3所示,McBSP依靠三个信号实现接收数据:数据线DR、帧同步线FSR和移位时钟线CLKR。DR引脚完成从音频CODEC中接收音频数据,由CLKR、FSR实现时钟和帧同步的控制。接收数据时,来自DR引脚的数据在FSR和CLKR作用下,从数据寄存器DRR中读出数据。CLKR、FSR既可以由内部采样率发生器产生,也可以由外部设备驱动。该音频系统中,CLKR、FSR信号均来自于FPGA。

为了减轻CPU负担,音频数据的传递采用了DMA机制。 TMS320VC5416有6个可独立编程的DMA通道,每个DMA通道受各自的5个16位寄存器控制:源地址寄存器DMSRC、目的地址寄存器DMDST、单元计数寄存器DMCTR、同步事件和帧计数寄存器DMSFC、发送模式控制寄存器DMMCR。

通过设置DMA1通道与McBSP1通道结合来读取PCM3008转换完的数据为例:选择McBSP1通道的接收寄存器DRR11(41h)为DMA传送数据的首地址,并选择源地址工作在访问后不调整方式,选择DMA通道同步事件McBSP1接收事件为DMA同步事件,来实现DMA和McBSP的结合。PCM3008转换完的数据按McBSP1的设置被送到TMS320VC5416内部接收寄存器DRR11中,再由DMA将DRR11中的数读到指定数据存储区来完成数据采集。DMA在传送外部来的数据时不会影响CPU的正常运行,当DMA采集完一组规定个数的数据后产生一个DMA中断事件中断CPU,来通知CPU对其进行相应的处理,此时DMA可以按照设定继续采集下一组数据,实现了数据采集与CPU处理的并行操作。

图3

3.2 软件设计流程

程序流程如图4所示,系统上电后首先初始化CPU,McBSP,DMA寄存器,然后打开中断,当所有DMA的传输完成后,给出一个状态标志,通知CPU音频数据准备好,CPU将原始的音频数据集中在一个缓存中并开始调用音频处理算法依次处理每路音频数据,并将处理后的音频数据通过总线发送出去。然后继续等待处理下一帧音频数据,周而复始。

              

图4

3.3 音频压缩算法

由于该系统音频所要求的信号频率的范围是150hz-6000hz,因此必须采用一种宽频音频算法,我们设计了一种宽带语音编码。码率24kbps~64Kbps可变。其主要参数如表1:表1  音频编码的主要参数

上一页  [1] [2] [3]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作