基于FPGA的多路音频采集与接口系统设计与实现
蒋小艳
【摘 要】摘 要 在音频数据采集系统中,一般采用专用设计芯片实现,功能单一,且采集能力受限,接口模式固定。本文提出了一种多路音频数据采集和接口功能设计方案,借助FPGA设计技术对并行输入的4路16 k采样、8 bit精度的音频数据进行实时采样、缓冲,并且通过目前应用很广泛的McBSP数据接口输出,最终通过ModelSim软件进行系统仿真,调试并验证了该方案。所设计的系统是基于FPGA架构的模块化设计,具有很好的实时性和稳定性,层次清晰,便于修改和扩展,具有较好的工程应用和参考价值。 【期刊名称】科学技术与工程 【年(卷),期】2012(012)027 【总页数】6
【关键词】关键词 FPGA 多路 音频采集 接口 FIFO McBSP
现场可编程门阵列FPGA(Field Programmable Gate Array)是一种大规模、高速、低功耗、可反复编程的集成电路芯片,是目前中小型系统提高集成度和可靠性的最佳选择之一[1]。FPGA的时钟频率可以达到几百兆赫兹,再加上并行处理的特性,可以达到很高的处理速度,使其非常适合应用于像同步时钟之类对时间精度有较高要求的实时系统。此外,FPGA集成度高,可以将系统中很多外围接口芯片集成到片内,减小了制板面积,有利于降低成本,减少功耗,提高系统的稳定性。同时,很多FPGA芯片支持在系统编程,这给系统开发提供了很大的灵活性,并且使维护和升级更加方便[2]。
本文借助FPGA设计技术,采用ALTERA公司的Quartus II开发软件,设计了
具有多路音频数据采集和接口功能的FPGA系统,能够对并行输入的4路16k采样、8bit精度的音频数据进行实时采样、缓冲,并形成目前应用很广泛的McBSP(Multichannel Buffered Serial Port)数据接口进行输出,最终通过ModelSim软件进行系统仿真,调试并验证了设计,具有较好的工程参考价值。
1 系统设计
本系统的总体设计框图如图1所示。该系统的数字音频数据来自于前级的音频AD(模数转换)环节,通过McBSP接口串行输出的数据送到后级的嵌入式音频处理环节,如ARM或达芬奇等处理器的McBSP输入口,由该部分进行压缩编码或存储等处理[3]。该系统总共包含以下5个部分:
PLL模块:锁相环单元,将外部输入的时钟clki进行倍频,供CLK模块产生各子系统需要的时钟。
CLK模块:时钟单元,对PLL产生的高频时钟进行分频,产生各子系统时钟。 FIFO模块:先进先出存储单元,对输入的音频数据进行缓冲。
McBSP模块:McBSP接口单元,将缓存的音频数据按照McBSP接口的时序进行串行输出。
TOP模块:顶层控制逻辑,产生顶层控制信号,调用和管理上述4个模块的工作。 本系统为4路音频,共32位数据并行输入,其中FIFO模块有两个,分别缓冲输入数据的bit0-15和bit16-31,McBSP模块也有两个分别处理来自两个FIFO的数据,即FIFO0+McBSP0采样CH0、CH1两路音频数据并输出,FIFO1+McBSP1采样CH2、CH3两路音频数据并输出。每组中两路数据可以是无关的单独两路单声道音频,也可以是相关的左右声道(双声道立体声)。 系统中各输入、输出信号的意义如表1所示。
下面详细介绍各模块的设计。 1.1 PLL模块
该模块为锁相环,将输入的16 MHz时钟信号倍频到64 MHz,供CLK模块分频得到各模块需要的时钟信号。此部分直接使用了Quartus II软件提供的IP库,有关IP库的具体生成和使用可参考有关文献[2]。PLL模块的时序仿真为图2所示。 1.2 CLK模块
该模块将PLL产生的64 MHz时钟进行分频,分别产生256 kHz和16 kHz的时钟信号。为什么要生成这两个信号呢?这是根据本系统的设计需求产生的。前文提到,输入的音频信号为四路16 kHz采样、8 bit精度的并行数据,设为CH0-CH34个声道,其中CH0和CH1、CH2和CH3的数据分别组合经过16 bit位宽的FIFO0、FIFO1缓冲,进入McBSP0和McBSP1形成两个串行比特流输出,此过程中需要的时钟信号有:
TOP模块读入音频数据的时钟Rclk,FIFO写时钟wrclk、读时钟rdclk,考虑到与音频信号同步,应与采样率一致为16 kHz。McBSP的输出位时钟clkx,由于是把两个声道的采样点串行输出,因此clkx频率应为16 kHz×16=256 kHz。
另外,McBSP的输出帧同步信号fsx是通过高低电平指示串行数据的所属声道(或相位)的,因此应为256 kHz÷16=16 kHz,且考虑到与串行比特流的位对齐,不能直接使用CLK模块产生的16 kHz时钟,而是通过对clkx分频得到。系统的时钟管理和分配示意图如图3所示。 CLK模块的时序仿真如图4所示。