基于FPGA的语音录制与回放系统
- 格式:doc
- 大小:20.00 KB
- 文档页数:4
基于FPGA的语音录制与回放系统作者:曾繁政,王明娟,曲艺,李立礼来源:《现代电子技术》2010年第16期摘要:系统用FPGA实现了I2C总线控制器,以Altera公司的NiosⅡ嵌入式软处理器为核心,结合高品质数字信号音频编/解码芯片WM8731成功地实现了语音的录制及回放功能,同时利用Matlab 7.0.4软件对所采集的语音数据进行仿真。
系统采用SoPC技术,自行设计采集模块和I2C 协议驱动模块,并通过AWALON总线挂载在Nios软核上实时高速采集与回放。
实践表明,系统具有集成度高,稳定性好,实时性强的特点。
关键词:SoPC; FPGA; I2C总线; WM8731中图分类号:TN495-34文献标识码:A文章编号:1004-373X(2010)16-0066-03Voice Recording and Playback System Based on FPGAZENG Fan-zheng1, WANG Ming-juan2,QU Yi2, LI Li-li1(1.Hezhou University, Hezhou 542800, China;2.Qinzhou University, Qinzhou 535000, China )Abstract:The system achieves the I2C bus controller in the FPGA , the voice recording and playback functions are realized successfully in combination with high-quality digital signal audio encoder/decoder chip WM8731 based on Altera Corporation NiosII embedded soft processor. At the same time, the collected voice data is simulated taking advantage of MATLAB 7.0.4. The system uses SoPC technology to design their own acquisition module and I2C protocol driver module, and carries on real-time and high-speed acquisition and playback through AWALON bus mounted on NIOS soft-core. Practice shows that the system has high integration, good stability and high real-time performance.Keywords:SoPC; FPGA; I2C bus; WM87310 引言随着微电子技术的发展,系统集成向高速、高集成度、低功耗发展已经成为必然,同时SoPC 技术也应用而生。
SoPC将软硬件集成于单个可编程逻辑器件平台,使得系统设计更加简洁灵活。
SoPC综合了SoC,PLD和FPGA的优点,集成了硬核和软核CPU、OSP、存储器、外围I/O 及可编程逻辑,用户可以利用SoPC平台自行设计高速、高性能的CPU和DSP处理器,使得电子系统设计进入一个崭新的模式[1-10]。
该设计运用SoPC技术实现嵌入式数字化语音录制与回放。
其中,介绍了在FPGA上构建WM8731的I2C总线,以及数字化语音在SRAM中的存储, 并利用Matlab 7.0.4软件对所采集的语音数据进行仿真。
SoPC是现在电子技术、电子系统设计的汇聚点和发展方向。
充分体现了其高性能、设计灵活和易用等特点。
1 系统整体方案系统以Altera公司的FPGA 芯片Ⅱ系列)EP2C35F672C6NK为平台,结合音频编/解码芯片WM8731实现语音录制与回放。
该FPGA芯片具有丰富的片内资源,大量的逻辑宏单元和多个硬件乘法器,大量的自定义I/O接口,此外还有4个锁相环,为系统提供实时时钟。
设计中充分利用了FPGA的高速并行和Avalon总线自定义硬件外设的优势,从而构建了一个高集成度、高性能的系统。
语音通过话筒输入,由音频编/解码芯片WM8731以8 kHz的A/D采样率转换成16位PCM 码缓存。
此外,为确保采集的语音数据不丢失,先将语音存储在SRAM中,再作后续处理。
整体系统框架图1所示。
图1 系统总体设计框架1.1 芯片工作原理音频编/解码芯片WM8731上电后必须将工作模式设置在系统要求的状态下,因此上电后需要用编写程序模块对芯片的工作模式进行设置。
该语音编/解码芯片有多种工作模式,A/D变换后,语音的采样频率与采样位宽都需要根据系统的具体要求,合理配置。
语音芯片的配置时序为I2C模式,芯片接口为主模式,即由WM8731提供位时钟,A/D转换和D/A转换的左、右声道控制相位时钟,以及转换后的数据PCM码输送给FPGA处理器。
以下为芯片配置字列表,WM8731内部控制字寄存器有16个,在芯片初始化时,在制作ROM表格中完成。
相应的程序设置如下:SET_LIN_L:LUT_DATASET_LIN_R:LUT_DATASET_HEAD_L:LUT_DATASET_HEAD_R:LUT_DATAA_PATH_CTRL:LUT_DATAD_PATH_CTRL:LUT_DATAPOWER_ON:LUT_DATASET_FORMAT:LUT_DATASAMPLE_CTRL: LUT_DATASET_ACTIVE:LUT_DATA1.2 配置单元模块配置单元模块综合顶层图如图2所示。
从程序编译分析报告(见图3)可以得出,该单元模块消耗了个逻辑单元,它作为语音采集模块的一个子模块。
在配置电路中,模块CLOCK_50将输入的50 MHz系统时钟分频为1 MHz,作为I2C总线模块的工作时钟,CLOCK_50模块中写出的上面程序代码是一个表格,存储了配置的控制字。
I2C总线模块的I2C_SDAT和I2C_SCLK 是数据线和时钟线,DE2板固定分配了专门的I2C数据线和时钟线的引脚线。
图2 配置模块综合顶层图1.3 语音采集模块语音采集单元顶层综合模块如图4所示。
系统通过语音采集模块将语音芯片采集的声音数据串/并转换为16位PCM码,声音数据传送至SRAM存储器内保存,这里设置了4 s录音时间,用户1次输入3个孤立词(如数字),4×8 KB=32 KB,考虑到32 KB的原始数据需要预处理、FIR滤波和归一化。
断点检测,所有处理后的数据仍然存入后续的SRAM地址中。
检测出的孤立词分别存入独立首地址后面。
图3 配置单元模块编译报告图4 语音采集单元顶层综合模块1.4 语音采集实时采样锁相环PLL给予WM8731工作在18.4 MHz时钟频率下,通过I2C总线控制器设置WM8731工作在的采样频率下。
图5为在嵌入式逻辑分析仪(SignalTap Ⅱ Logic Analyzer)下语音采集控制器的采样图。
图5语音采集控制器的采样图图5为实时采集图,测试人现场读入语音数据,模块实时进行语音采集回放。
从图中可见,左对齐语音采集过程一共有19个脉冲,其中前16个脉冲为有效语音数据提取脉冲,后3个脉冲为将来处理扩展预留。
有效语音提取出来之后便存入SRAM中。
该模块通过计数器,从启动录音开始,自动录制4 s的语音信号。
2 语音录制回放仿真经WM8731采集的语音信号转换并存储于SRAM,然后用SRAM中的数据将SRAM的语音数据导出,图6为语音采集模块处理后作者录入的数字符号“1234”效果图。
图6 Matlab软件提取FPGA实时采集效果图图6是通过DE2控制面板软件读取SRAM前数据(地址:0~0x1FFFF)在Matlab软件上画出来的图形,同时为了对比,通过Matlab自带的[y,fs,bits]=wavread(′Blip′,[N1 N2]),进行同样话语的录制,用sound(x,fs,bits)对声音进行回放,仿真结果见图6、图7。
从仿真图可看出,以Matlab平台为标准,FPGA实时采集与现实吻合。
图7 Matlab软件仿真3 结语该系统充分利用了FPGA的高速处理能力,自行设计采集模块和I2C协议驱动模块,并通过AWALON总线挂载在Nios软核上,很好地实现了实时高速采集回放,充分体现了FPGA的优越性能。
同时结合SoPC设计理念,使系统一片式整合。
参考文献[1]赵力.语音信号处理[M].北京:机械工业出版社,2003.[2]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2003.[3]Altera. Nios II processor reference handbook[M]. Taiwan: Altera Corporation, 2006.[4]Altera. Avalon bus specification[M]. Taiwan: Altera Corporation, 2002.[5]方苗,陈泽文,彭橙廉.SoPC设计中的用户自定义逻辑[J].计算机工程,2004,30(17):42-44.[6]Altear. Quartus II version 7.0 handbook[M]. Taiwan: Altera Corporation, 2007.[7]方茁,彭澄廉,陈泽文.基于Nios Ⅱ的SoPC设计[M].计算机工程与设计,2004,25(4):504-507.[8] 赵丽娜,侯义斌,黄樟钦,等.基于FPGA的嵌入式语音识别控制系统[J].小型微型计算机系统,2007(8):1527-1531.[9]贾龙,林岩.基于DSP和FPGA的高速数据采集系统的设计及应用[J].电子测量技术,2007,30(5):95-97,100.[10]王金明.数字系统设计与Verilog HDL[M].北京:电子工业出版社,2009.。