Board logo

标题: 基于fpga的音频采集 [打印本页]

作者: rise_ming    时间: 2012-1-14 00:00     标题: 基于fpga的音频采集

语音信号处理技术的迅猛发展对语音信号的采集提出了越来越高的要求:高动态范围、低功耗、便于携带、能与计算机进行实时高速数据传输。本文针对这种需求提出了一种基于USB 2.0接口的高动态范围(16BitADC,DAC)语音采集卡。USB(Universal Serial Bus)是由Intel,Compaq,Microsoft,IBM,DEC和NEC等七家公司共同制定的一种针对PC的串行接口标准。它的主要特点是:真正实现了即插即用,可随时插拔你的设备,连接简单,传输速度快等很多优点。
      面对市场上高额复杂化的采集系统,本文提出了一种采集语音信号的简易方案。该方案的核心部分采用XILINX公司SPARTAN3系列的FPGA,它的性价比在业界深受好评。同时利用Cypress Semiconductor公司的EZ-USB FX2 CY7C68013芯片,它不仅集成USB2.0的微处理器, USB2.0收发器、SIE(串行接口引擎)、增强的8051微控制器和可编程的外围接口。而且该公司的资料制作很有心意。提供大量的底层驱动接口函数,实用的VC测试模块和方便的程序下载软件,为后面的开发工作带来很多方便。音频AD部分采用TI推出的一款高性能的立体声音频芯片TLV320AIC3,内置耳机输出放大器,支持MIC和LINE IN两种输入方式,且对输入和输出都具有可编程增益调节。这些优秀、高性能的芯片为我们采集系统的搭建提供了坚实的保证。文章从采集卡的原理入手,结合框图介绍此方案的工作原理,实现方法;在系统的程序实现部分,采用模块化的设计,各模块的程序经过编译和仿真,都得出了符合要求的波形。最后将系统组合调试,设计更合理的PC机采集程序,都是本系统的亮点。下面是我的系统框图

      本系统采用FPGA为主控制芯片,分别在FPGA芯片内部实现四大功能模块。1.串并转换模块,它有效的把音频AD进来的串行数据变成16bit的数据流。2.FIFO的控制模块,对于过来的数据,FIFO做出相应的存储,并对内部数据的存储数量进行检测,当达到一定数量的时候,由于USB传输较快,可以瞬时读取FIFO中的大量数据,使其内部不会出现满的状态,这样以来即保证了数据不会丢失,而且可以提高USB芯片的工作效率。3.USB芯片的控制模块,它一方面不断检测USB芯片中FIFO的空满状态。另一方面裁决着何时将整块的读取FPGA中FIFO的数据,保证数据高效、稳定的传到PC上。4.语音芯片的配置模块,采用SPI总线协议对其进行配置,这里采用SPI控制器硬件代码,用普通IO对其时序进行模拟,最后让语音芯片工作在我们预期的模式。其次,简要分析一下语音芯片在整个系统中的作用,它将进来的模拟音频信号,经过内部逻辑进行采样,可以转化为几种常用的语音数据模式。如I2S模式和DSP模式等。这样我们便可以根据其结构特点进行相应的串并转化了。再次,对于USB接口部分,它将与PC和FPGA两部分相连接,PC上的VC程序决定什么时候开始存盘。而FPGA将决定什么时候可以让USB芯片发走数据。不难看出他们都是系统中至关重要的成员。
      总括,首先由MP3等设备作为数据的输入,该数据流进入语音芯片后,由于FPGA的SPI控制部分早已在系统上电的时候对语音芯片配置完毕。即输出相应格式的数据。然后这些数据被FPGA分析处理,最后转换为并行的数据写入设定好的FIFO中,FPGA      根据相应的FIFO状态对USB芯片进行读与禁读的操作。同时在PC的采集软件上点击开始采集,这时候的数据会稳定的、高效的存储在计算机的硬盘中。此时,采集系统已经顺利的完成了它的工作。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0