基于FPGA的音频录放

时间:2022-04-13 08:54:24

基于FPGA的音频录放

摘 要:利用DE2-70多媒体开发板,通过“MIC IN”“LINE IN” “LINE OUT”插接口,进行音频录放。

关键词:FPGA 音频录放

利用Altera公司的DE2-70多媒体开发板和“AUDIO_IF”“SEGS_IF”两个ip模块,通过“MIC IN”“LINE IN”插接口,记录麦克风或者音乐播放器通过线控输入的音频信号,从“LINE OUT”插接口利用耳机收听先前记录的信号。

一、利用Quartus II初建工程时,“Device family”栏里的“family”选择“Cyclone II”;“Available devices”栏里选择“EP2C70F896C6”器件,其它为缺省设置。

二、利用“SOPC Builder”工具初建硬件系统时,“Target HDL”项一般选择“Verilog”。

三、配置硬件。

1.定义时钟(clock):“SOPC Builder”工具页面的“Device Family”是“Cyclone II”, DE270多媒体开发板默认显示的是50MHz,为了程序正常运行,需要把“clk_0”改为“clk_50”。

2.添加片上存储器(On-Chip Memory):“Total Memory Size”设置为80960Bytes,其他为缺省设置。

3.添加Nios II/s处理器(Nios Ⅱ Processor):选择“Nios II/f”,“Reset Vector”和“Exception Vector”都选“On-Chip Memory”,其他缺省设置。

4.添加调试接口(JTAGUART):使用缺省设置。

5.添加两个内部定时器(Interval Timer):使用缺省设置,把“timer_1”改写成“timer_stamp”。

6.添加系统ID(System ID):使用缺省设置,把“sysid_0”改写为“sysid”。

7.添加LED输出连接PIO:“Width”为26位的输出方式,其他使用缺省值,将名称改为“led_pio”。

8.添加按键和栓扣开关输入PIO:

(1)按键开关输入PIO的“Width”为4;“Direction” 为“input only”;“Edge capture register”栏的“Sychronously Capture”选择为“Falling edge”;“Interrupt”栏的“Generate IRQ”选择“Edge”,将名称改为“button_pio”。

(2)栓扣开关(switch)输入PIO的“Width”为18;“Direction”为 input;其他为默认值,将名称改为“switch_pio”。

9.添加PLL:(1)100MHz的C0,用于系统硬件;(2) 100MHz的C1,用于“sdram”;(3)18.518MHz的C2,用于“audio”。这里需要注意:用于“sdram”的c1的“Clock phase shift”设置为“-65ps”。

设置了PLL后,在“SOPC Builder”工具页面的“Clock Settings”栏下:“pll_0_c0”改名为“pll_ c0_cpu”;“pll_0_c1”,改名为“pll_ c1_memory”;“pll_0_c2”,改名字为“pll_ c2_audio”;

10.添加用于SSRAM的Avalon三态桥:使用缺省设置,将名称改为“tri_state_bridge_ssram”。

11.添加SSRAM:“Cypress CY7C1380C SSRAM”使用缺省设置,手动将“ssram_0”和“tri_state_bridge_ssram”连接上。

12.添加用于cfi_FLASH的Avalon三态桥:使用缺省设置,将名称改为“tri_state_bridge_flash”。

13.添加LCD显示驱动(Character LCD):使用缺省设置,将名称改为“lcd”。

14.添加两个“i2c”PIO:(1)“Width”设置成1位输出方式,其他使用缺省设置,将名称改为“i2c_sclk”。(2)“Width”设置成“1”;“Direction”选择为“Bidirectional(tristate) ports”;其他使用缺省设置;将名称改为“i2c_sdat”。

15.添加七段显示驱动(SEG7_IF):使用缺省设置,将名称改为“seg7”。

16.添加音频连接(AUDIO_IF):使用缺省设置,将名称改为“audio”。

四、产生硬件系统“.ptf”文件。

产生“.ptf”文件前需要修改硬件所用时钟“clock”。“pll_0”默认使用“clk_50”,“sdram_0”和“sdram_1”使用“pll_c1_memory”;“audio”使用“pll_c2_audio”;其他硬件都是用“pll_c0_cpu”。

五、软件设计。

1.新建“demo_audio_blank_project_0”工程:“SOPC Builder System PTF File”选择正确路径。

2.准备库文件:把Altera公司为音频录放示例提供的“.c”“.h”文件拷贝到“demo_audio0_blank_project_0”里,根据设置的硬件名称做修改。

3.建立“audio_main.c”源代码:使用Altera公司为音频录放示例提供的源代码,根据设置的硬件名称做修改。

4.基于FPGA的音频录放演示:“MIC”接口处插接麦克风;“LINE IN”接口处插接音乐播放器;“LINE OUT”接口处插接耳机。

(1)栓扣开关“SW0”拨到为“down”位置时,按动按键“KEY3”,可以记录下实验者通过麦克风输入的声音;再次按动按键“KEY3”,结束记录,或者是存储器容量满了,自动结束记录。在录音期间,LCD显示器显示“Recording”。

(2)栓扣开关“SW0”拨到为“up”位置时,按动按键“KEY3”,可以记录下音乐播放器通过“LINE IN”接口输入的声音;再次按动按键“KEY3”,结束记录,或者是存储器容量满了,自动结束记录。在录音期间,LCD显示器显示“Recording”。

[参考文献]

[1]《SOPC实验指导》 清华大学微纳电子所.张春

(作者单位:河南省新乡市农业科学院)

上一篇:基于活化能的煤自然发火期研究 下一篇:哮喘治疗模式的转变