毕业论文《基于FPGA的音频编解码芯片控制器设计》.docx

上传人:b****5 文档编号:7996961 上传时间:2023-01-27 格式:DOCX 页数:41 大小:764.58KB
下载 相关 举报
毕业论文《基于FPGA的音频编解码芯片控制器设计》.docx_第1页
第1页 / 共41页
毕业论文《基于FPGA的音频编解码芯片控制器设计》.docx_第2页
第2页 / 共41页
毕业论文《基于FPGA的音频编解码芯片控制器设计》.docx_第3页
第3页 / 共41页
毕业论文《基于FPGA的音频编解码芯片控制器设计》.docx_第4页
第4页 / 共41页
毕业论文《基于FPGA的音频编解码芯片控制器设计》.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

毕业论文《基于FPGA的音频编解码芯片控制器设计》.docx

《毕业论文《基于FPGA的音频编解码芯片控制器设计》.docx》由会员分享,可在线阅读,更多相关《毕业论文《基于FPGA的音频编解码芯片控制器设计》.docx(41页珍藏版)》请在冰豆网上搜索。

毕业论文《基于FPGA的音频编解码芯片控制器设计》.docx

毕业论文《基于FPGA的音频编解码芯片控制器设计》

摘要

现如今随着可编程逻辑器件及相关技术的不断发展和完善,其技术在现代电子技术领域表现出的明显技术领先性,具有传统方法无可比拟的优越性。

近几年,嵌入式数字音频产品受到越来越多消费者的青睐。

在MP3、手机等电子产品中,音频处理功能已成为不可或缺的重要组成部分,而高质量的音效是当前发展的重要趋势。

数字语音集成电路与嵌入式微处理器相结合,既实现了系统的小型化、低功耗,又降低了产品开发成本,提高了设计的灵活性,具有体积小、扩展方便等诸多特点,具有广泛的发展前景。

本设计基于SOPC技术,利用VerilogHDL硬件描述语言开发的基于FPGA的音频编解码芯片控制器,以实现对音频编解码芯片WM8731的控制。

并根据VerilogHDL可移植性和不依赖器件的特点。

经过适当的修改,该控制器可以移植到各类FPGA中,以控制兼容I2C和I2S总线的音频编解码芯片。

避免了重复开发,这样既缩短了设计周期又降低了设计成本,可大大提高设计的效率。

系统在功能扩展上具有极大的潜力,有很好的应用前景和科研价值。

 

关键词:

WM8731,FPGA,I2C总线,音频控制器

ThedesignofaudiocodecchipcontrollerbasedbyFPGA

Abstract

Nowadays,withtheprogrammablelogicdevicesandrelatedtechnologiescontinuetodevelopandimproveitstechnologyinthefieldofmodernelectronictechnologywasdemonstratedtechnologyleadership,hasincomparablesuperiorityoftraditionalmethods.Inrecentyears,embeddeddigitalaudioproductsaremoreandmoreconsumersofallages.InMP3,mobilephonesandotherelectronicproducts,audioprocessingfeatureshavebecomeanindispensablepartofthecurrentdevelopmentofhigh-qualityaudioisanimportanttrend.

Digitalvoiceintegratedcircuitsandembeddedmicroprocessors,whichnotonlyrealizedthesystem'ssmallsize,lowpowerconsumption,andreducedproductdevelopmentcostsandimprovedesignflexibility,smallsize,easyexpansion,andmanyotherfeatures,abroadprospectsfordevelopment.

ThedesignisbasedonSOPCtechnology,theuseofVerilogHDLhardwaredescriptionlanguagedevelopedFPGA-basedaudiocodecchipcontroller,toachievetheWM8731audiocodecchipcontrol.VerilogHDLbasedonportabilityanddoesnotrelyonthedevicecharacteristics.Afterappropriatemodifications,thecontrollercanbeportedtoavarietyofFPGA,tocontrolI2CandI2Sbuscompatibleaudiocodecchip.Avoidduplicationofdevelopment,thenitwillshortenthedesigncycleandreducingdesigncost,cangreatlyimprovedesignefficiency.Extensionsonthesystemhasgreatpotential,therearegoodprospects,andscientificvalue.

 

Keywords:

WM8731,FPGA,I2CBus,Audiocontroller

1绪论

1.1研究的背景及意义

FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速烧录下载至FPGA上进行测试,是现代IC设计验证的技术主流。

这些可编辑元件可以被用来实现一些基本的逻辑门电路或者更复杂一些的组合功能比如解码器或数学方程式。

在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。

系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。

一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。

可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。

现如今随着FPGA技术的飞速发展,几十万门乃至几百万门的可变成逻辑阵列使用起来越来越普遍。

其技术在现代电子技术领域表现出的明显技术领先性,具有传统方法无可比拟的优越性。

再者近几年,嵌入式数字音频产品受到越来越多消费者的青睐。

在MP3、手机等消费类电子产品中,人们对于这些个人终端的要求早已不限于单纯通话和简单的文字处理,音频处理功能已成为不可或缺的重要组成部分,而高质量的音效是当前发展的重要趋势。

相对于模拟语音系统而言,数字化语音系统抗干扰能力强,数据传输可靠,开发周期较短,调试容易,便于计算机存储和处理。

而专用的语音芯片是数字化语音系统的核心。

正是基于上述优点,数字语音集成电路与嵌入式微处理器相结合,这样既实现了系统的小型化、低功耗,又降低了产品开发成本,提高了设计的灵活性,具有体积小、扩展方便等诸多特点,具有广泛的发展前景,如电脑语音钟、语音型数字万用表、手机话费查询系统、排队机、监控系统语音报警以及公共汽车报站器等。

1.2本设计的主要目的

本设计是针对音频编解码芯片WM8731,基于FPGA器件利用VerilogHDL硬件描述语言实现对该芯片的控制,设计出基于FPGA的音频编解码芯片控制器。

该控制器只要进行适当的修正,更改寄存器的地址和数据,就可实现控制电路的移植。

其主要内容包括对音频编/解码芯片WM8731的I2C总线配置模块的设计方法、I2S总线数据传输的实现等。

将FPGA与数字语音系统的优点相结合,设计出一个高质量、易操作、易于移植的语音录放系统。

2器件介绍

本设计主要用到了WolfsonMicroelectronics公司生产的一款低功耗高品质双声道数字信号编/解码芯片WM8731,以及控制该语音芯片工作的FPGA器件EP2C35F672C6。

2.1语音编/解码芯片WM8731

WM8731是一款低功耗的高品质双声道数字信号编/解码芯片,其高性能耳机驱动器、低功耗设计、可控采样频率、可选择的滤波器使得M8731芯片广泛使用于便携式MP3、CD播放器。

其结构框图如图2.1所示。

图2.1WM8731结构框图

该芯片内置耳机输出放大器,支持MIC和LINEIN两种输入方式,且对输入和输出都具有可编程增益调节,针对音频领域的应用,该芯片高度集成了模拟电路功能。

它能为用户提供在单个时钟源下可独立编程ADC和DAC的采样率的独特能力,其中模数转换和数模转换部件高度集成在芯片内部,且其采样频率为8KHZ-96KHZ可调,可转换的数据位长度为16-32位可调。

WM8731带有一个片上时钟发生器,支持多种时钟模式。

通过一个12MHz时钟,该器件可以直接生成44.1kHz、48kHz和96kHz等采样率,以及MP3标准定义的其他采样率,完全不需要一个独立的锁相环或晶振,并支持其他公用的主时钟频率。

WM8731内部有11个寄存器。

该芯片的初始化和内部功能设置是以控制接口对其内部的这11个寄存器进行相应的配置来实现的。

控制器可通过控制接口对WM8731中的寄存器进行编程配置,该控制接口符合的SPI(三线操作)和I2C(双线操作)规范。

通过对MODE端口的状态来选择控制接口类型。

WM8731支持右对齐、左对齐、I2S以及DSP四种数字音频接口模式,通过数字音频接口读写数据音频信号。

由于具有上述优点,使得WM8731是一款非常理想的音频模拟I/O器件,可以很好地应用在各种数字音频领域。

2.2FPGA器件EP2C35F672C6

本设计用到的是Altera公司的FPGA器件EP2C35F672C6,该器件隶属于CycloneII系列,它采用了TSMC验证的90nm低K介电质工艺制造的成本优化架构,具有更大的容量和极低的单位逻辑单元成本。

从结构上看,该器件具有多达150个嵌入18×18乘法器,适合于实现低成本数字信号处理(DSP)应用;它包含每块具有4608bit的M4K存储块,提供高达1.1Mbit的片内存储器,支持多种配置;它能以688Mbps的速率同DDR、DDRII和SDRSDRAM器件及QDRIISRAM器件相连接,并支持多种单端和差分I/O标准;支持NiosII系列嵌入式处理器,具有低成本和完整的软件开发工具。

Altera也为CylconeII器件客户提供了40多个可定制IP核,Altera和AlteraMegafunction伙伴计划(AMPPSM)合作者提供的不同的IP核是专为CycloneII架构优化的,包括:

NiosII嵌入式处理器;DDRSDRAM控制器;FFT/IFFT;PCI编译器;FIR编译器;NCO编译器;POS-PHY编译器;ReedSolomon编译器;Viterbi编译器等等。

3协议介绍

本设计主要涉及I2C总线和I2S总线两种总线协议。

I2C总线主要运用在控制接口,FPGA器件通过该接口对语音编/解码芯片WM8731控制字的写入。

而I2S总线则是用在音频数据接口,主要负责FPGA器件与语音编/解码芯片的音频数据传输。

3.1I2C总线

I2C(Inter-IntegratedCircuit,内部集成电路)总线是Philips公司开发的芯片间串行通讯总线,它利用SDI(串行数据线)和SCLK(串行时钟线)两根信号线将外围通讯模块连接起来,进行数据传输。

它具有冲突侦测和仲裁能力,可防止两个或两个以上主机同时控制总线时数据被破坏。

I2C总线以其接口简单、总线通讯模块可裁剪等特点获得了广泛的应用。

I2C总线控制器是处理器与I2C器件之间的接口,它要完成接收处理器的控制信号、命令和数据,还需发送I2C器件的数据和状态响应到处理器,实现处理器与I2C器件之间的通信。

随着可编程器件的飞速发展,用FPGA器件实现I2C总线控制器接口,可以带来很多方面的便利:

不但能够增加系统的扩展能力,而且控制方式极其灵活。

3.1.1I2C总线的数据的有效性

SCLK为高电平期间,SDI线上的数据需保持不变,在器件之间传递数据。

SCLK为低电平时,数据线上的数据发生跳变,改变为下一位数据的状态。

3.1.2I2C总线的数据格式及时序

一个标准的I2C总线通信数据由开始信号、从机地址信号、传输的数据和终止信号4部分组成。

在I2C总线协议的技术规范中,规定每次发送到I2C总线SDI上的数据必须是一个字节,每次传输可以发送的字节数量是不受限制的。

传输的数据字节按照由高位到低位的顺序发送,每发送一个字节后必须跟一个响应位(应答信号),即发送器每发送完一个字节,将数据线SDI拉高,由主控制器产生第9个脉冲,接收器将SDI拉低,以此作为接收器对发送器的应答。

发送器在第9个脉冲探测SDI为低,表明接收器已成功接收到发送器发送的一个字节,可以继续进行后面的通信。

该过程如图3.1所示。

图3.1I2C总线的数据时序

3.1.3I2C总线的寻址方式

在起始条件产生后,主机向总线发送一个从机地址,第一个字节的头7位(D7-D1)为从机地址,最低位(D0)R/W决定数据的传输方向。

最低位R/W若为‘0’,表示向从机填写数据;为‘1’,表示从从机读取数据。

当发送一个地址后,连接到总线的每个设备都会将头7位同设备自身地址进行比较,若相同,则该设备为被主控设备寻址,并发送应答信号,根据R/W位决定读写工作方式。

3.2I2S总线

I2S(Inter—ICSound)总线是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传输,广泛应用于各种多媒体系统。

它采用了沿独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免了因时差诱发的失真,为用户节省了购买抵抗音频抖动的专业设备的费用。

3.1.1I2S总线的数据格式及时序

I2S总线一般具有5根信号线,如图3.2所示,包括位时钟频率(BCLK)、DAC采样率时钟(DACLRC)、ADC采样率时钟(ADCLRC)、串行数据输入(DACDAT)和串行数据输出(ADCDAT)。

其中DACLC、ADCLC和BCLK时钟信号在主模式下由编解码芯片提供,而在从模式下由FPGA或DSP提供。

图3.2I2S总线的数据时序

I2S格式的信号无论有多少位有效数据,数据的最高位总是出现在LRC变化(也就是一帧开始)后的第2个位时钟频率(BCLK)脉冲处。

这就使得接收端与发送端的有效位数可以不同。

如果接收端能够处理的有效位数少于发送端,可以放弃数据帧中多余的低位数据;如果接收端能够处理的有效位数多于发送端,可以自行补足剩余的位。

这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。

3.1.2I2S总线的数据采样率

I2S总线的数据采样率可以通过主设备的时钟频率(MCLK)以及采样频率类型(256fs或384fs)来选择。

其计算公式为:

数据采样率=MCLK/采样频率类型。

例如主设备的时钟频率为18.432MHz,若选择采样频率类型为384fs,则MCLK经过384分频,即得到I2S总线的数据采样率为48KHz。

而位时钟频率(BCLK)的计算公式为:

位时钟频率=数据采样率×数据位×2。

则上例中令数据位为17,则位时钟频率为1.632MHz。

4硬件设计

4.1硬件方框图

硬件方框图如图4.1所示。

图4.1硬件方框图

其中FPGA器件处于中心地位,FPGA器件主要通过I2C总线给语音芯片WM8731经行控制字配置。

初始化完成后,音频数据从MIC或LineIn输入,经过A/D转换后,成为串行的数字信号并由I2S总线传入FPGA器件。

经过串并变换等处理之后,再经过D/A转换由LineOut输出。

4.2ED-2开发板

本设计主要用到了Altera公司推出的ED-2开发板,该开发板是以FPGA器件EP2C35F672C6为核心,板上含有Flash、SRAM等存储器,标准MIC、Line-in、Line-out接口,Video-in和VGA等音频视频接口,以及各种输入输出设备。

利用该开发板能方便设计开发,以利于后续的功能扩展。

4.3语音芯片WM8731外围电路

ED-2开发板上已集成了语音芯片WM8731。

并连接标准MIC、Line-in、Line-out接口以连接麦克风和耳机等外部设备。

其电路图如图4.2所示。

 

图4.2WM8731外围电路

5硬件模块设计与实现

5.1开发环境

在硬件模块设计部分,主要是利用Altera公司推出的FPGA/CPLD集成开发环境QuartusII,并使用硬件描述语言VerilogHDL对FPGA器件的编程设计,以控制WM8731高品质语音芯片正常工作,达到预期的功能。

5.1.1QuartusII

QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

提供了完善的用户图形界面设计方式。

具有运行速度快,界面统一,功能集中,易学易用等特点。

QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。

5.1.2VerilogHDL

VerilogHDL是一种硬件描述语言,是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。

VerilogHDL由GatewayDesignAutomation公司开发,是目前世界上最流行的硬件描述语言之一。

5.2硬件模块设计框图

硬件模块设计框图,如图5.1所示。

图5.1硬件模块设计框图

硬件模块的设计大致包含顶层控制器模块、时钟分频模块、I2C控制字配置模块、I2C时序接口模块、I2S时序接口及音频数据处理模块、I2S串行数据转并行数据模块等6个模块。

5.3功能模块的实现

5.3.1顶层控制器模块

此模块主要实现的功能是对上述其余5个模块的配置以及连线。

图5.2所示为该模块的设计结果。

 

图5.2顶层控制器模块

其VerilogHDL描述的设计关键代码如下:

moduleAUD_TOP(clock_50m,sclk,sdat,dacclk,dacdat,bclk,adcdat,adcclk,rst_n,key1,key2,led1,led2,led,MCLK,sw1,sw2,LED);//端口定义

…………

assignled=rst_n;//复位按钮连接一个LED灯,显示按钮状态

assignMCLK=c0;//18.432MHz主时钟输入

set_wm8731(.clock_50m(clock_50m),//I2C控制字配置模块端口连接

.i2c_sclk(sclk),.i2c_sdat(sdat),.reset_n(rst_n),.key1(key1),

.key2(key2),.led1(led1),.led2(led2),.sw1(sw1),.sw2(sw2));

I2S_com(.clock_ref(c0),//I2S时序接口及音频数据处理模块端口连接

.dacclk(dacclk),.bclk(bclk),.dacdat(dacdat),.reset_n(rst_n),

.adcclk(adcclk),.adcdat(adcdat),.data(data));

clkdivz(.inclk0(clock_50m),.c0(c0));//时钟分频模块端口连接

endmodule

5.3.2时钟分频模块

由于要使WM8731工作,必须给其提供一个主时钟频率。

此主时钟频率依照该芯片工作的不同模式有12.288MHz、18.432MHz、11.2896MHz以及16.9344MHz这4中频率可选。

在本设计中,选择WM8731工作在普通模式(Normalmode)下,并选择18.432MHz为其主时钟频率。

该频率可以通过XTI和XTO端口,由晶振提供。

但本设计利用FPGA自带的锁相环(PLL)和全局时钟网络,将DE2开发板上自带的50MHz晶振分频得到。

因此本模块主要运用QuartusII环境下的MegaWizard定制功能自动生成的。

但由于50MHz不能精确地分频到18.432MHz,所以采用了一个能分到一个最接近的频率,即18.421053MHz。

如图5.3所示,该模块以50MHz的时钟为输入,输出18.432MHz分别连接到MCLK以及I2S时序接口及音频数据处理模块的时钟输入。

图5.3时钟分频模块

该模块VerilogHDL描述的设计关键代码如下:

moduleclkdivz(//端口定义

inclk0,//50MHz时钟输入

c0);//18.432MHz时钟输出

…………

altpllaltpll_component(.inclk(sub_wire3),//调用altpllIP核

.clk(sub_wire0),

…………

.vcounderrange());

defparam

altpll_component.clk0_divide_by=3125,

altpll_component.clk0_duty_cycle=50,

altpll_component.clk0_multiply_by=1152,

altpll_component.clk0_phase_shift="0",

altpll_pensate_clock="CLK0",

altpll_component.inclk0_input_frequency=20000,

altpll_component.intended_device_family="CycloneII",

…………

endmodule

5.3.3I2C时序接口模块

该模块主要实现对I2C时序的模拟,控制SCLK(数据时钟)和SDAT(数据线)将存放在i2c_data中的24位控制字串行发送给WM8731,该模块例化于I2C控制字配置模块之中,以实现对该芯片的控制字写入。

如图5.4所示,在此模块中i2c_data为24位控制字写入;reset_n为复位输入;clock_i2c为I2C接口传输时钟;start为传输开始标志输入;ack为I2C时序中3位应答位进行或操作合并为一个应答位的输出;tr_end为传输结束信号输出;i2c_sclk为I2C接口数据时钟输出;i2c_sdat为I2C接口串行数据输出。

图5.4I2C时序接口模块

I2C时序接口模块时序仿真,如图5.5所示。

此处以i2c_data中24位数据为011100111000010011000111为例,当start信号拉低后,i2c_sclk开始传输串行数据时钟。

这里I2C时序采用33个I2C时钟周期进行,其中4-11位、13-20位、22-29位传送数据,12、21、30为应答位。

传输状态时,数据高位在前低位在后,24位数据每8位为一字节,每发送1个字节的数据,就应返回一个应答

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1