




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 38 页 共 38 页基于FPGA的音频处理系统毕业论文目录摘要11绪论31.1 课题研究背景31.1.1 课题来源31.1.2 研究目的及意义31.2 国内外的研究现状及发展趋势31.2.1 FPGA的发展历程31.2.2 音频处理技术的发展41.2.3 SOPC的特点及其应用51.3 课题研究的内容72 器件介绍82.1 WM873182.1.1 WM8731概述82.1.2 WM8731控制接口82.1.3 数字音频接口92.2 FPGA芯片介绍123 硬件电路133.1 硬件开发环境133.2 硬件电路设计133.2.1 SOPC系统设计133.2.2 WM8731的外围电路133.2.3 nios_audio模块143.3 顶层例化154 SOPC系统软件程序设计164.1 软件开发环境164.2 人机接口介绍174.3 各功能模块实现方案174.2.1 I2C总线174.2.2 WM8731驱动模块设计184.2.2音频处理软件开发流程204.3 结果展示214.4 本章小结225 总结与展望23致谢24参 考 文 献25附录261绪论1.1 课题研究背景1.1.1 课题来源随着数字记录技术和大规模集成 电路技术的迅速发展,消费类电子产品正以日新月异的新姿展现在当代人的面前,音响类 娱乐产品的多样化、小型化与数字化及品种的琳琅满目丰富了音响产品市场,满足了多层次消费者的不同需要。在这些科技产品的快速发展过程中,数字音频技术在其中扮演着重要的角色。现在音频处理技术的任务越来越复杂,对信号处理的效果要求不断提高,音频处理技术的算法也越来越复杂,要求在几十ms甚至几ms的时间内完成音频信号大量的数据采集、处理、存储、传输,这就对音频处理系统处理器的运算速度提出了更高的要求。1.1.2 研究目的及意义随着消费电子的快速发展,数字音频技术的应用显得越来越重要,对数字音频技术的研究符合市场与科技需求。数字音频处理技术涉及生活的方方面面,包括滤波器技术、数字信号处理、人工智能、模式识别、编码学、等多个学科的知识,是信息化技术类学科当中发展极为迅速的一个方向之一。音频信号处理技术包含的内容非常多,主要有信号存储、语音合成、语音识别、音频压缩、语音理解、音频编码、语音识别、语音增强等多个分支,总而言之,音频信号处理技术包括音频信号的数字化处理、数字化实现、数字化变换、数字化存储、数字化传播、及音频的变换、语音的处理、语音的识别等自然科学多个领域的综合运用。传统的数字滤波器采用乘法和累加结构,需要进行多次的乘法和加法运算。由于乘法器庞大的结构,占用了系统芯片上的大部分面积,消耗了大部分功率,使得音频处理系统在体积和处理速度上存在着不足,所以传统的数字滤波器不能很好的满足家用和便携式音频处理器对体积小、功耗小信号处理速度高的要求。而近些年来使用范围越来越广泛,技术越来越成熟的FPGA器件对于解决对于解决音频信号的高标准、高要求有着其独特的优势。基于FPGA器件的音频信号处理的实现方案,在于对声音信号的收集、处理及应用,工作的重点是在噪声环境中如何能有效地地把需要的语音信号提取出来开,消除或者衰减噪声,这涉及到滤波器的设计,通过数字滤波来处理噪声信号。1.2 国内外的研究现状及发展趋势1.2.1 FPGA的发展历程FPGA是Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA是Ross Freema于1985年发明的,当时第一个FPGA采用2m工艺,包含64个逻辑模块和85000个晶体管,门数量不超过1000个,当时他所创造的 FPGA被认为是一项不切实际的技术,他的同事Bill Carter曾说:“这种理念需要很多晶体管,但那时晶体管是非常珍贵的东西。”所以人们认为Ross的想法过于脱离现实。但是Ross预计:根据摩尔定律(每18个月晶体管密度翻一翻),晶体管肯定会越来越便宜,因此它必将成为未来不可或缺的技术。在短短的几年时间内,正如Ross所预言的,出现了数十亿美元的现场可编程门阵列(FPGA)市场。但可惜的是,他已经无法享受这一派欣欣向荣的景象,Ross Freeman在1989年已经与世长辞了,但是它的发明却持续不断地促进电子行业的进步与发展。一般来说,FPGA内部是由最小的物理逻辑单位LE、布线网络、输入输出模块与片内外设组成的,而最小物理逻辑单元是指用户无法修改的、固定的最小单元,设计者只能将这些单元通过互联线将其连接起来,然后实现特定的功能。一个LE是由触发器、LUT与控制逻辑组成的,从而同样可以实现组合逻辑和时序逻辑。随着FPGA集成度的不断增加,其内部的片内外设也越来越多,可集成SRAM、Flash、AD、RTC等外设,真正用单芯片方案完成系统设计,所以我们所理解的FPGA最底层是一些实实在在的门电路构成的,然后由门电路构成最小的物理逻辑单元,然后再通过布线层将这些最小物理逻辑单元连接成用户需要的特定功能,我们所需要控制的仅仅是布线层之间的互连开关,这也是我们编程的对象,通过这些开关来改变功能。1.2.2 音频处理技术的发展随着消费电子的快速发展,数字音频技术的应用显得越来越重要,对数字音频技术的研究符合市场与科技需求。20世纪50年代开发成功的晶体管,代表着音频放大技术的巨大飞跃。但晶体管技术至少具有两个重大缺陷。尽管晶体管比烤得整个房间发热的电子管更具效率,但只是迅速取代了真空管,实际上基本未触动上游信号源。利用发热更少、效率更高的数字信号处理技术的设计工艺只是刚刚进入包括音频在内的许多市场。第二个问题不太重要,即以几乎无法承受的价格批量生产晶体管,意味着要大幅放宽这些元件的误差标准,从而导致信号失真上升或者音质下降。当时由于使用的是质量相对较低的存储媒体(vinyl和磁带)、传输和接收技术(AM收音机和VHS电视)也不够完美,音质下降的问题显得还不是那么明显和突出,但是现在的情况已全然不同。早在20世纪60年代,集成电路的发展就为显著提高音质提供了一个物美价廉的手段,并有力地促进了电子产品的小型化。模拟放大器是绝对线性的,在模拟放大器中,电源总处于接通状态,耗用大量的电能,因此必须使用大量的散热器件。这样大手大脚地使用电源根本不适合目前电池供电的产品和外形纤巧的消费电子设备。由于所有的音源都是模拟式的,听得见的噪声背景限制了可重复的动态范围。例如,Vinyl源产生劈哩啪啦的各种噪音;音质好一点的磁带源则有嘶嘶声,使系统动态范围至多只有60分贝。随着时代的发展,新型音源出现了,几乎完全进入了数字时代。唱片和磁带开始消失,让位于光盘(CD)。市场希望在更小的器件上存储更多的音乐,这种需求催生出MP3等压缩技术,进而需要数字放大器电路来满足这些新型媒体。数字记录设备和输出生成非常精确的声音。16位数字录音可以精确到6000分之一,而相当于数字分辨率为12-13位的模拟录音精确度只有8,000分之一。早期的数字放大器与模拟音源配合得很好,在某种程度上与数字音源的配合也不错,但最多只能生成分辨率为1213.5位的音频。新型的多媒体产品需要全16位的音频重现,以支持市场所要求环绕声、回响和音乐厅效果等越来越多的空间特点。典型的D类数字放大器,有些具有模拟输入,有些具有数字输出,不能满足上述目标,因为尽管它们成本低和效率高,但缺乏生成精确音频所需的分辨率。而且,这些元件甚至不能满足 CD机、汽车立体声系统、DVD影碟机或MP3播放器等越来越普通的先进设备。利用CD发行数字音频,消除了音频信号格式方面的一个弱点。最终很轻便的手持式设备甚至都可以实现影院级音质。理论上,数字音频信号是没有噪声的,它被作为一系列的“0”和“1”加以处理,没有给可能引起微小失真的噪声留下任何空间。尽管现有的数字化处理技术较以前的技术已有所改善,但它们在音质、封装、性能、价格和核心技术方面还需要进行改进。首先是音质,为了生成精确的音频,除了在音源上进行改进之外,在音频信号传输过程中,对音频信号的优化、处理也是一个重要的研究对象。音频信号处理系统要求,音频信号在通过模/数转换及数/模转换后,要尽可能接近输入的模拟信号,做到尽量可能少的失真,还要把噪声尽可能地过滤到,达到完美的语音音质。数字化信号处理技术能较好地完成此类任务,能很好地完成音频信号合成、编辑、效果处理、存储、传输等工作,但是数字化音频处理技术,也并不是要全部釆用数字信号而忽略模拟信号的处理,而是数字信号处理和模拟信号处理相结合,做到扬长避短,用数字化处理技术来完成传统音频处理无法或难以完成的部分,尽可能实现输出信号完美的音质,做到数字处理与模拟处理的和协统一是信号处理技术唯一目的。实现音频信号的数字化处理一般有两种实现方法:一种是采用专用或通用的信号处理器,通过处理器及一些辅助的结构组建一个独立的系统进行信号的实时处理,系统包括通用(专用)数字信号处理器芯片、接口芯片、存储芯片、信号转换芯片等组成。这种方法常属于专用处理系统,可以开发成为拥有独立系统的产品使用。另一种方法是用电脑作为主处理器,挂接几块数字化信号处理板组成数字化处理系统,主要用于音频识别、音频合成等。1.2.3 SOPC的特点及其应用SOPC即可编程片上系统,它是System-on-a-Programmable-Chip的缩写。顾名思义,可编程片上系统,即是用可编程逻辑技术把整个系统放到一块硅片上。它是一种特殊的嵌入式系统:首先它是片上系统(SOC),其次它是可编程系统。所谓片上系统,即由单个芯片完成整个系统的主要逻辑功能;而可编程的优越性,使其具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。SOPC设计技术基本上涵盖了嵌入式系统设计技术相关的全部内容,这也体现了其巨大的优越性。SOPC技术不仅仅涉及到以处理器和实时多任务操作系统(RTOS)为重点的软件设计技术和以信号完整性分析为基础的高速电路设计技术,它还涉及目前及其热门的软硬件协同设计技术。传统的调试设备,如:逻辑分析仪、数字示波器等等,已很难进行直接测试分析,而由于SOPC的设计是在在可编程逻辑器件中进行的,并且BGA封装已被大量应用在微封装领域中,因此,这对以仿真技术为基础的软硬件协同设计技术提出更高的要求。同时,新的调试技术也不断出现,比如如Xilinx公司的片内逻辑分析仪Chip Scope ILA就是一种价廉物美的片内实时调试工具。SOPC包含了SOC和PLD、FPGA各自的优点,其基本特征,可总结如下:1) 包含至少一个嵌入式处理器内核;2) 具有小容量片内高速RAM资源;3) 可供选择的IP Core资源相当丰富;4) 片上可编程逻辑资源丰富;5) 处理器调试接口以及FPGA编程接口;6) 部分可编程模拟电路可能包含其中;7) 低功耗、单芯片、微封装。基于Nios II的完整SOPC系统是一个既包含软件同时也包含硬件的系统,因此在设计时,可分为硬件部分和软件部分。Nios II的硬件部分设计,其目的是为了定制合适的CPU和外设,这部分需要在SOPC Builder和Quartus II中完成。利用SOPC Builder和Quartus II可以很方便定制Nios II CPU的许多特性或者指令,设计者可使用Quartus II中自带的大量IP核来加快开发速度,提高外设性能,同时也可以应用第三方的IP核来自行定制外设。完成硬件部分的开发后,SOPC Builder可自动生成与自定义CPU和外设地址映射、外设系统、存储器等相应的软件开发包SDK,然后在此基础上,进入软件开发流程。设计者可使用汇编或C、C+等程序设计语言来进行嵌入式设计,编译以及调试。SOPC的应用方向可总结如下:1)基于FPGA中嵌入IP硬核的应用。这种应用是指在FPGA中植入处理器。这种设计可使得SOPC系统中硬件设计软件功能有机结合,高效地完成SOPC系统设计。2)基于FPGA嵌入IP软核的应用。这种应用是指在FPGA中植入软核处理器,通常为NIOS II核。用户可依据设计要求,运用相应的EDA工具,构建处理器及外围设备,使该SOPC系统在软硬件结构设计、占用的资源、功能特点等方面全方位地满足客户系统的设计要求。3)基于HardCopy技术的应用。这种应用是指将成功实现于FPGA器件上的SOPC系统向ASIC转化。把ASIC的市场优势和大容量FPGA的灵活性结合起来,这方面的应用对于有较大批量要求以及对成本极为敏感的电子产品极为有利,避开了直接设计ASIC的困难。1.3 课题研究的内容本课题主要研究基于FPGA的音频处理技术,利用FPGA器件对音频处理芯片WM8731进行相关配置,实现对音频信号的处理。本次设计涉及到的内容有基于NIOS II的SOPC系统构架,音频信号的录放,WM8731芯片的控制,I2C协议,SDRAM的读写。图1、基于FPGA的音频处理系统其主要内容包括对音频编/解码芯片WM8731的I2C总线配置模块的设计方法。将FPGA与数字语音系统的优点相结合,设计出一个高质量、易操作、易于移植的语音录放系统。2 器件介绍2.1 WM87312.1.1 WM8731概述WM8731是一款具有低功耗、高品质的音频编码解码芯片,其自带有耳机驱动,MIC音频接口,专为便携数字音频应用而设计。该器件可以提供CD音质的音频录音和回放,芯片自带集成耳机驱动器的立体声音频编解码器,采样率范围8kHz 96kHz,在一定模式下可直接生成一般MP3的所有采样率(incl. 441.kHz)。不仅如此,该芯片还可满足麦克风直接输入,同时拥有带有侧音混频器的驻极体偏压等优点。该芯片内置耳机输出放大器,支持MIC和LINE IN 两种输入方式,且对输入和输出都具有可编程增益调节,针对音频领域的应用,该芯片高度集成了模拟电路功能。它能为用户提供在单个时钟源下可独立编程ADC和DAC的采样率的独特能力,其中模数转换和数模转换部件高度集成在芯片内部,且其采样频率为8KHZ- 96KHZ可调,可转换的数据位长度为16- 32位可调。WM8731带有一个片上时钟发生器,支持多种时钟模式。通过一个12MHz时钟,该器件可以直接生成44.1kHz、48kHz和96kHz等采样率,以及MP3标准定义的其他采样率,完全不需要一个独立的锁相环或晶振,并支持其他公用的主时钟频率。WM8731内部有11个寄存器。该芯片的初始化和内部功能设置是以控制接口对其内部的这11个寄存器进行相应的配置来实现的。控制器可通过控制接口对WM8731中的寄存器进行编程配置,该控制接口符合的SPI(三线操作)和I2C(双线操作)规范。通过对MODE端口的状态来选择控制接口类型。WM8731支持右对齐、左对齐、I2S以及DSP四种数字音频接口模式,通过数字音频接口读写数据音频信号。图2、WM8731原理图2.1.2 WM8731控制接口WM8731的控制接口有4根引脚,分别为:MODE(控制接口选择线)、CSB(片选或地址选择线)、SDIN(数据输入线)和SCLK(时钟输入线)。它具有2线和3线两种模式。2线为MPU接口,3线为兼容SPI接口。对控制接口的配置选择可通过设置MODE脚的状态完成。选择MODE为0时为2线模式,1时为3线模式。本开发板电路中MODE为0,本设计采用2线模式对WM8731进行控制。RADDR为34H,即WM8731的基址;DATAB15-8为寄存器地址,DATAB7-0为寄存器设置的参数;每传输一个字节都必须跟随一个应答位ACK,应答时钟脉冲由主器件生成。SCLK的最大频率为526KHz。WM8731内部有11个寄存器,该芯片的初始化以及工作时的状态和功能都是通过I2C总线方式对其内部的这11个寄存器进行相应的配置来实现的。表一、WM8731内部寄存器地址及其功能介绍:寄存器地址00H02H04H06H08H0A0C0E10H12H1EH功能Left Line InRight Line InLetfHeadphoneOutRightHeadphoneOutAnalog AudioPathControlDigital AudioPathControlPower Down ControlDigitalAudioInterface FormatSampling ControlActive ControlResetRegister2.1.3 数字音频接口WM8731的数字音频接口有5根引脚,分别为:BCLK(数字音频位时钟)、DACDAT(DAC数字音频数据输入)、DACIRC(DAC采样左/右声道信号)、ADCDAT(ADC数字音频信号输出)、ADCLRC(ADC采样左/右声道信号)。数字音频接口可以工作在主模式和从模式下。地址为00001110(上表中0E)的寄存器的第6位设置数据的主/从模式:“1”为主模式,“0”为从模式。ADCDAT、/DACDAI和ADCLRC/DACLRC与位时钟BCIK同步,在每个BCLK的下降沿进行一次传输。BCLK和ADCLRC/DACLRC在主模式时为输出信号,从模式下为输入信号。DACDAT始终为输入信号,ADCDAT始终为输出信号。输出支持4种音频数据模式:右对齐、左对齐、I2S和DSP模式。地址为00001110(上表中0E)的寄存器的第10位设置该模式:该两位(高位在前)为11时即DSP模式;为10时即I2S模式;01时为左对齐模式;00时为右对齐模式。简言之,要通过I2S模式控制WM8731,应向SDIN接口先发0X34H(WM8731基址,CSB=0时),然后发0X0E 02(0EH为DATAB15-8所指寄存器,02H为该寄存器的配置数据0000 0010)图3、左对齐模式左对齐格式时,MSB在BCLK的第一个上升沿有效,紧接着是一个ADCLRC或DACLRC传输。图4、右对齐模式图5、 I2S模式图6、DSP模式通过对寄存器的不同配置,可以设置传输的数据格式。寄存器配置值如下:寄存器地址00001110的10位设置音频格式:“11”时为DSP格式,“10”为I2S格式,“01”为左对齐格式,“00为右对齐格式。 32位设置字长:“11”时为32位,“10”为24位,“01”为20位,“00为16位。这四种音频格式都是高位(MSB)在前,1632位。但32位数据不支持右对齐模式。图7、从模式连接图8、数字音频从模式时序2.2 FPGA芯片介绍本次课题使用的是基于Altera公司的FPGA芯片cyclone IV EP4C115F29C7,这款芯片功耗低、成本低,有高达114480个Ls,嵌入式存储器容量高达6.3Mb,具有更大的容量和极低的单位逻辑单元成本。360个18*18乘法器,在完成DSP处理上拥有更大优势。而其桥接应用,可实现小于1.5W的总功耗。另外,这款芯片拥有3888kbit的M4K存储块,远远多于同系列芯片的其他芯片,4个通用PLL,20个全局时钟网络,8个用户I/O块,最大用户I/O高达528个也是远远超出同系列的其他芯片。Cyclone IV EP4C115F29C7芯片器件中的单一硬核 IP 模块都集成了 1, 2, 或 4 PCIe (PIPE)。这一硬核 IP 模块是一个完整的 PCIe (PIPE) 协议解决方案,用于实现PHY-MAC 层、数据链路层以及传输层的功能性。PCIe (PIPE) 模块的硬核 IP 支持根端口与端点配置。这个预验证的硬核 IP 模块能够降低风险、缩短设计时间,减少时序收敛及验证时间。用户可以通过 Quartus II 的 PCI Express Compiler 对模块进行配置,在整个过程中有 Quartus II 的 PCI Express Compiler 逐步指导用户完成模块的配置。3 硬件电路3.1 硬件开发环境硬件部分,主要应用Altera公司推出的FPGA/CPLD集成开发环境Quartus II完成SOPC系统的搭建。Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、Verilog HDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/Mega Function宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。3.2 硬件电路设计3.2.1 SOPC系统设计本次课题有NIOS II处理器、FLASH控制器、SDRAM控制器、I2C总线协议、音频处理、键盘输入、数码管显示,LCD控制器等几个重要部分,其中NIOS II处理器、FLASH控制器、SDRAM控制器、I2C总线协议、音频处理、GPIO、LCD控制器等是通过Avalon总线进行FPGA内部的数据交互。NIOS II处理器是SOPC系统的CPU,FLASH控制器、SDRAM控制器分别实现数据和指令的存储。按键key通过FPGA的I/O接口实现声音的录取、播放、大小调节等。图9、SOPC系统框图3.2.2 WM8731的外围电路ED-2开发板上已集成了语音芯片WM8731。并连接标准MIC、Line-in、Line-out接口以连接麦克风和耳机等外部设备。其外围电路如图10所示。图10、WM8731的外围电路3.2.3 nios_audio模块如图11所示为nios_audio模块,该模块基本上可以体现本次设计硬件部分的内容,各个部分共同组成SOPC系统,各个部分分别与相关外围设备连接,通过软件对系统各部分进行相应配置,即可完成对音频信号的处理。该模块可直接作为顶层模块进行例化,本次设计以Verilog语言进行顶层设计。图11、nios_audio模块3.3 顶层例化在SOPC Builder中把系统的外围组件配置完成之后,编辑设计的顶层文件,之后导入引脚配置文件DE2_pin_assignments.csv,最后进行工程编译,编译完成后,芯片资源消耗如图12所示。图12、硬件系统编译结果4 SOPC系统软件程序设计4.1 软件开发环境软件开发使用Nios II IDE,它是基于Eclipse IDE的集成开发环境,它包括GUN开发工具(标准GCC编译器、连接器、汇编器、Makefile工具等),基于GDB的调试器,包括软件仿真和硬件调试,可提供用户一个硬件抽象层HAL,用户能够快速编写与低级硬件细节无关的Nios II程序;支持嵌入式操作系统MicroC/OS和LwTCP/IP,提供抱住用户快速入门的模板,可帮助用户快速掌握该软件开发环境;同时,还满足FLASH下载支持,充分满足用户利用FPGA进行SOPC开发。 SOPC Builder生成系统后,可直接使用Nios II IDE设计C/C+应用程序代码;除了应用代码,用户还可在Nios II IDE 工程中设计和重新使用定制库,大大提高了用户开发的效率。Nios II集成开发环境(IDE)是Nios II系列嵌入式处理器的基本软件开发工具。所有软件开发任务都可以Nios II IDE下完成,包括编辑、编译和调试程序。Nios II IDE提供了一个统一的开发平台,用于所有Nios II处理器系统。仅仅通过一台PC机、一片Altera的FPGA以及一根JTAG下载电缆,软件开发人员就能够往Nios II 处理器系统写入程序以及和Nios II处理器系统进行通讯。系统设计及其编译结果如图13所示。图13、系统设计界面4.2 人机接口介绍人机接口包括按键,数码管,LCD,LED,开关等。其中key2控制声音的播放和停止;key2控制录音开始和暂停。数码管显示录音和播放的持续时间;LCD显示音频处理的状态;LED用于显示信号强度。6个开关的功能:SW0控制音频信号的输入方式,向上表示LINE IN输入,向下表示MIC输入;SW1用于在音频信号输入为MIC输入时,控制BOOST开关,向上表示BOOST ON,向下表示BOOST OFF;SW2控制播放过程中是否进行零交叉检测,向上表示零交叉检测开,向下表示零交叉检测关;SW5/SW4/SW3分别对抽样率进行控制,三者控制方式如下:SW5/SW4/SW3:DOWN/DOWN/DOWN-96K DOWN/DOWN/UP-48K,DOWN/UP/DOWN-44.1K, DOWN/UP/UP-32K,UP/DOWN/DOWN-8K4.3 各功能模块实现方案4.2.1 I2C总线对I2C总线的软件设计流程图如图8所示,通知准备写/读时即发送一字节,值为0x34,前面最重要的7位表示WM8731准备接收,因为总线上可能还有其他设备,最低位清零表示WM8731将要写数据,置1表示将要读出下一地址内容。图14、I2C总线读(左)和写(右)WM8731程序流程图4.2.2 WM8731驱动模块设计音频控制包括声音的录制和播放,同时通过按键对声音大小进行控制,音频模块部分代码的描述如下:bool init_audio(AUDIO_FUNC audio_func) bool bSuccess = TRUE; AUDIO_InterfaceActive(FALSE); if (audio_func = MIC_RECORD) bool bMicBoost; bMicBoost = ui_is_mic_boost(); AUDIO_SetInputSource(SOURCE_MIC); AUDIO_DacEnableSoftMute(TRUE); AUDIO_AdcEnableHighPassFilter(FALSE); AUDIO_MicBoost(bMicBoost); AUDIO_MicMute(FALSE); AUDIO_LineInMute(TRUE); else if (audio_func = LINEIN_RECORD) AUDIO_SetInputSource(SOURCE_LINEIN); AUDIO_DacEnableSoftMute(TRUE); AUDIO_AdcEnableHighPassFilter(FALSE); AUDIO_MicMute(TRUE); AUDIO_LineInMute(FALSE); AUDIO_SetLineInVol(0x17, 0x17); / max 0x1F, min:0; 0x17: 0dB (assume max input is 2.0v rms) else if (audio_func = LINEOUT_PLAY) AUDIO_DacEnableSoftMute(TRUE); AUDIO_MicBoost(FALSE); AUDIO_MicMute(TRUE); AUDIO_LineInMute(FALSE); AUDIO_DacEnableSoftMute(FALSE); /AUDIO_DacDeemphasisControl(DEEMPHASIS_48K); AUDIO_DacEnableZeroCross(ui_is_dac_zero_cross(); AUDIO_SetLineOutVol(LINEOUT_DEFUALT_VOL, LINEOUT_DEFUALT_VOL); / max 7F, min: 30, 0x79: 0 db AUDIO_DacEnableSoftMute(FALSE); if (record_sample_rate = 8000) AUDIO_SetSampleRate(RATE_ADC8K_DAC8K); else if (record_sample_rate = 32000) AUDIO_SetSampleRate(RATE_ADC32K_DAC32K); else if (record_sample_rate = 48000) AUDIO_SetSampleRate(RATE_ADC48K_DAC48K); else if (record_sample_rate = 44100) AUDIO_SetSampleRate(RATE_ADC44K1_DAC44K1); else AUDIO_SetSampleRate(RATE_ADC96K_DAC96K); / AUDIO_InterfaceActive(TRUE); return bSuccess; 4.2.2音频处理软件开发流程如图15所示为音频解码芯片WM8731的音频处理软件开发流程图图15、音频处理流程图4.3 结果展示本次设计的结果如图,图16为MIC接口进行音频输入过程的成果展示,音频信号从MIC端口输入,LCD显示目前状态为MIC录音过程。数码管显示录音时长。图17为音频输出过程,通过耳机可以听到经过处理的音频信号,LCD显示目前状态为播放过程。数码管显示播放时长。图16、MIC接口进行音频输入过程图17、音频输出过程4.4 本章小结本章主要介绍了SOPC系统设计的软件开发环境,软件开发使用Nios II IDE,它是基于Eclipse IDE的集成开发环境。在具体设计方面,本章接收人机接口各部分的功能,从这里可以看出本次设计可以说是考虑得相当全面,当然,需要改进的地方也很多。I2C总线协议的程序设计也是很此课题的重难点之一,在本章也对该总线协议的开发流程做了具体介绍。本次可以设计的另一个重难点是音频编/解码芯片WM8731的驱动设计,本章对其驱动代码做了大致的描述,这部分的模块主要控制WM8731对声音信号进行录制和播放,另外还有在其他模块对于录制和播放过程进行调整、控制、显示,本章没有一一列举。本章的核心重点,是对音频信号的处理,这也是本次设计的目的,经过处理之后的音频信号完全可以达到设计的初衷,也是本次课题的一大亮点。5 总结与展望本课题主要研究基于FPGA的音频处理技术,利用FPGA器件对音频处理芯片WM8731进行相关配置,实现对音频信号的处理。本次设计涉及到的内容有基于NIOS II的SOPC系统构架,音频信号的录放,WM8731芯片的控制,I2C协议,SDRAM的读写。在进行SOPC系统的构架方面,本次设计主要应用Altera公司推出的FPGA/CPLD集成开发环境Quartus II完成。Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、Verilog HDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。而软件部分,软件开发使用Nios II IDE,它是基于Eclipse IDE的集成开发环境,Nios II集成开发环境(IDE)是Nios II系列嵌入式处理器的基本软件开发工具。所有软件开发任务都可以Nios II IDE下完成,包括编辑、编译和调试程序。 SOPC Builder生成系统后,可直接使用Nios II IDE设计C/C+应用程序代码。在音频编解码芯片WM8731的驱动上,根据Verilog HDL可移植性和不依赖器件的特点,经过适当的修正该控制器可以移植到各类FPGA中,以控制兼容I2C和I2S总线的音频编解码芯片。避免了重复开发,这样既缩短了设计周期又降低了设计成本,可大大提高设计的效率。系统在功能扩展上具有极大的潜力,有很好的应用前景和科研价值。由于时间限制和自身所掌握的知识还不够,本次设计还有很多缺点,特别是音频处理方面还不够完善,与当今社会的高技术人员开发出来的技术相比,还有巨大的差距,因此本课题的设计还有的很多地方,需要作进一步改进。致谢首先,我在此我衷心的感谢唐庭龙老师的精心指导,这个课题进行以来,我遇到了很多困难。首先是课题实施方案的确定,在开始的时候就遇到很大问题,由于没有一个很好的方案,在处理这个课题的时候困难重重,最终确定下以给予Nios II的SOPC系统进行音频信号处理后,进过很多努力,大部分的问题都迎刃而解,在这个课题上付出了很多努力,到今天终于将毕业设计完成,一这路走来,成长不少。在这个过程中,在毕业设计期间,唐老师在课题前沿以及研究方向广度和深度的正确把握,使我在完成课题时获益匪浅。唐老师治学严谨,学识渊博,平易近人,在很多方面都给了我很多帮助。唐老师对我的教导使我终身受益,对待工作敬业态度也令人敬佩,对待我的不足也展现了极大的宽容和耐心。本课题的每一步进展都离不开唐老师的悉心指导和亲切关怀,在论文完成之际,在此再次感谢唐老师耐心培养和教导,使我的分析问题和解决问题的能力得以培养和提高。四年大学生涯即将结束,本次课题的完成将是大学生活结束的一个标志,想来不禁感怀,在这个大学四年里,我所经历的每一点进步都离不开我的同学的帮助,老师的教导,学院的关怀,在这之间经历了很多事,收获了很多,学到了很多,充实了很多。这四年里有快乐,有悲伤,看着自己一步步成长,伴随的都是同窗之谊,师生之情。本次课题,在论文选题、收集资料、确定提纲、初稿完成、反复修改,到最后成文,有很多地方获得了同学与老师的帮助,所以在这论文行将结束之际,感谢我的同学,我的朋友,我的老师,我的学校。最后还要深深的感谢我的家人对我的关怀、鼓励和支持。我将以此为激励,继续努力,在将来的学习和生活中争取更大的进步!在本科阶段即将告别之时,我希望借此机会向曾经关心、支持和帮助我的亲人、良师益友再次表示衷心的感谢。参 考 文 献1刘桂华.基于FPGA的现代数字系统设计M.西安电子科技大学出版社,2012,92杨军,丁洪伟.基于FPGA的FFT处理系统的研究与应用M.科学出版社2012,114周润景,苏良碧.基于Quartus 2的FPGA/CPLD数字系统设计实例(第2版)M.电子工业出版社,2013.15郭黎利,李北明,窦峥.扩频通信系统的FPGA设计M.国防工业出版社,2013,2 6罗纳德.贝利,原魁 (译)基于FPGA的嵌入式图像处理系统设计M.电子工业出版社2013,27 杜勇.数字通信同步技术的MATLAB与FPGA实现M.电子工业出版社, 2013,48任文平.EDA技术与FPGA工程实例开发M机械工业出版社,2013,9 9 林英撑.FPGA嵌入式系统设计与开发指南.中国电力出版社2012.610刘波文、张军.FPGA嵌入式项目开发. 北京航空航天大学出版社,2012,511 萨斯(Sass R.).FPGA嵌入式系统设计原理与实践M.清华大学出版社,2012.412杜勇.数字滤波器的MATLAB与FPGA实现M.电子工业出版社,2013,313禇振勇、翁木云、 高楷娟.FPGA设计及应用M.西安电子科学大学出版社,2012.414杨军、张伟平.面向SOPC的FPGA设计与应用M.科学出版社,2012.315Computer Architecture and Security: Fundamentals of Designing Secure Computer Systems Wang, Shuangbao Paul、 Ledley, Robert S. John Wiley & Sons Inc .2013.1116FPGA Imaging Gorgon, Marek Springer-Verlag New York Inc. (2014-03)17Entwurf Eingebetteter Systeme: Vergleich Von Mikroprozessor- Und FPGA-Systemen Gessler, Ralf Springer Vieweg (2014-01) 18Computer Architecture and Security: Fundamentals of Designing Secure Computer Systems Wang, Shuangbao Paul、 Ledley, Robert S. John Wiley & Sons Inc.2013.11附录:源代码mian.c#include my_includes.h#include AUDIO.h#include LCD.h#include LED.h#include SEG7.h#include #ifdef DEBUG_APP #define APP_DEBUG(x) DEBUG(x)#else #define APP_DEBUG(x)#endif/= internal function prototype & data structure definit =#define RECORD_BUTTON 0x08#define PLAY_BUTTON 0x04#define PLAYRING_BUTTON 0x02#define RECORD_BLOCK_SIZE 250 / ADC FIFO: 512 byte#define PLAY_BLOCK_SIZE 250 / DAC FIFO: 512 byte#define MAX_TRY_CNT 1024#define LINEOUT_DEFUALT_VOL 0x79 / 0 dB#define USE_SDRAM_FOR_DATA#ifndef USE_SDRAM_FOR_DATA #define BUF_SAMPLE_NUM (96000*5) / 5 second 96K#endif typedef enum MIC_RECORD, LINEIN_RECORD, LINEOUT_PLAYAUDIO_FUNC;void button_monitor_isr(void* context, alt_u32 id);bool button_monitor_start(volatile alt_u32 *pPressedMask);bool init_audio(AUDIO_FUNC audio_func);void display_time_elapsed(alt_u32 sample_num);/ ui configbool ui_is_mic_boost(void);bool ui_is_mic_record(void);bool ui_is_dac_zero_cross(void);int ui_get_sample_rate(void);/ gloal variableint record_sample_rate
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 饭店抵押合同5篇
- 建设工程项目施工廉政合同4篇
- 婚前房产协议书范文5篇
- 新解读《GB-T 32612-2016纺织品 2-甲氧基乙醇和2-乙氧基乙醇的测定》
- 螺蛳粉运输合同范本
- 整形诊所合作合同范本
- 租赁水果树合同范本
- 建设合同范本哪里
- 玻璃代理销售 合同范本
- 车辆转换合同范本
- 高中物理校本课程生活中的趣味物理校本课程实施方案
- 防火防烟分区检查
- 《小学开学第一课:学生守则、行为规范、班级班规》课件
- 农产品营销的渠道策略讲义
- 工程总承包(EPC)模式市场应用现状
- 幼儿园行政工作保密协议
- 环境监测课件
- 冰雪运动行业营销策略方案
- 建筑垃圾处理及清运方案
- 中职资料:第1讲 社会主义在中国的确立与探索+课件
- 新能源汽车空调检测与维修PPT完整全套教学课件
评论
0/150
提交评论