ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:91.93KB ,
资源ID:9071933      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9071933.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MP3硬件课程报告ISEBASYS2VHDLVGA.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MP3硬件课程报告ISEBASYS2VHDLVGA.docx

1、MP3硬件课程报告ISEBASYS2VHDLVGA华中科技大学电信系硬件课程设计总结报告项目名称:基于FPGA的预置乐曲播放器设计院系:华中科技大学电信系 指导老师: 时间:2013年7月 摘要:本次课程设计的项目名称是基于FPGA的预置乐曲播放器,本项目可以提升学习者的动手能力和对可编程硬件和硬件描述语言的了解及使用,难度适中,设计者可以根据自己的能力与时间,资源等设计出不同功能的作品,。我们组实现的功能是预置乐曲的播放,附加有电子琴演奏。本次设计是在BASYS2实验开发板上实现,使用xinlinx14.1软件,基本功能是利用VHDL硬件描述言语设计数控分频器电路,利用数控分频原理设计音乐硬

2、件播放数字电路,将音乐数据存放在程序中,利用时钟驱动音符输出,通过集成运放调节音量,达到了乐曲播放的效果,并通过VGA接口接到显示器上,通过显示器显示出正在播放音符,另附加一个娱乐功能,即在手动模式下可以通过键盘敲击产生音符,实现一个简单的电子琴功能。程序中预置了2首歌曲,存放的音符数据易修改,只要修改程序中所放的的音符数据,将其转换为其他乐曲的音符数据,就可以实现不同乐曲的播放,并可以实现更多首乐曲的播放。关键字:FPGA;xilinx;VHDL;预置音符;音乐播放;电子琴;显示屏显示目录一、绪论1.1研究背景-1.2基本技术简介-1.2.1可编程逻辑器件FPGA-1.2.2硬件描述语言VH

3、DL-1.2.3开发软件xilinx ise-二、需求分析和研究思路2.1需求分析-2.2研究思路-三、系统设计3.1系统原理-3.1.1音调控制-3.1.2音长控制-3.1.3乐谱发生器-3.1.4音量控制-3.1.5 播放模式控制-3.1.6 播放时间显示-3.1.7 暂停及重新播放控制-3.1.8 快进及回放控制-3.1.9 快速及慢放控制-3.1.10 VGA显示乐谱彩条-3.1.11 键盘接口-3.2系统结构-3.2.1各功能模块概述-3.2.2系统整体原理框图-四、详细的程序实现和仿真分析4.1时钟分频模块-4.2乐谱码发生模块-4.3乐谱码查表模块-4.4数控分频模块-4.5音量

4、放大模块-4.6 VGA显示模块-4.7 键盘接口模块-4.6顶层模块-五、结论六、个人感想一、绪论1.1研究背景 生活缺少不了音乐,音乐在人类正常生活中占据着很大的部分,特别是在现在生活压力越来越大的时候,人们的日常生活更需要音乐来缓解压力和表达感情,音乐在精神层面的作用是巨大的,那么如何让人们可以方便快捷的享受到优质的音乐服务就成为一件很重要的事情。在电子技术的飞速发展的今天,电子产品的种类越来越多,功能越来越强大,体积越来越小,功耗越来越低。随着经济的快速发展,人们对生活质量的要求也越来越高,在越来越高效率的生活条件下,人们需要来音乐来释放压力,而体型庞大的随身听已经满足不了人们的需求。

5、在此背景下,MP3应运而生。MP3播放器,顾名思义也就是可播放MP3格式的音乐播放工具。MP3发展到今天,其功能越来越多,外观越来越精致,受到了广大消费者的喜爱。但是传统的Flash存储器的成本居高不下,设计者创意受限,造成MP3播放器卖价不菲但功能单一,而利用FPGA实现的MP3播放器可以用尽可能低的成本提供尽可能多的附加性能。 可编程逻辑器件和EDA技术的发展也为本次课程设计提供了一定的研究背景。EDA技术,即电子设计自动化,是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目

6、标芯片的适配编译、逻辑映射和编程下载等工作。这样,将原来的“电路设计+硬件搭试+调试焊接”转化为“功能设计+软件模拟+仿真下载”,在芯片的设计中完成对电路板的设计,减少了电路板连线,提高了系统集成度,降低了可能的干扰,增加了系统的可靠性和稳定性,提高了设计的灵活性和效率,大大提升了技术指标。1.2基本技术简介1.2.1可编程逻辑器件FPGA FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原

7、有可编程器件门电路数有限的缺点。 FPGA 在结构上主要分为三个部分,即可编程逻辑单元,可编程输入/输出单元和可编程连线三个部分。它采用专用的集成电路,用户不需要投片生产就可以得到合用的芯片。FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一,功耗低,是小批量系统提高系统集成度、可靠性的最佳选择之一。 本次课程设计使用的是BASYS2开发板,是一个基于xinlinx Spartan-3E 可编程逻辑器件和Atmel AT90USB2 USB 控制器的电路设计和实现的平台,USB电缆提供电源和编程接口,所以他没有其他的电源供应器和编程电缆。BASYS2开发板向用户提供完整的,

8、准备使用的,硬件适合托管范围的,基本的逻辑器件复杂控制器的电路,开发板上包括I/O设备和所必须的FPGA支持电路,不需要任何其他组件就可以实现无数的电路设计。1.2.2硬件描述语言VHDL VHDL语言是一种超高速集成电路硬件描述语言,是用于电路设计的高级语言,事实上已成为通用的硬件描述语言。VHDL主要用于描述数字系统的结构、行为、功能和接口,他的语言形式十分类似于一般的计算机高级语言。他的程序特点是将一个设计实体分成外部和内部,外部又称可视部分,或者端口,同理,内部又称不可视部分,涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接

9、调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。 与其他硬件描述语言相比,VHDL语言具有很多优势。VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。他支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。由于VHDL语言易读和结构化,所以易于修改设计,在硬件电路的设计过程中主要的设计文件使用VHDL来编写源代码。VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系

10、统的功能可行性,随时可对设计进行仿真模拟。VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。 本次课程设计用的就是VHDL语言编写程序,实现整体模块中的各种功能。1.2.3开发软件xilinx Xilinx(赛灵思)公司是全球领先的可编程逻辑完整解决方案的供应商。Xilinx

11、研发、制造并销售范围广泛的高级集成电路、软件设计工具以及作为预定义系统级功能的IP(Intellectual Property)核。客户使用Xilinx及其合作伙伴的自动化软件工具和IP核对器件进行编程,从而完成特定的逻辑操作。目前Xilinx满足了全世界对 FPGA产品一半以上的需求。Xilinx产品线还包括复杂可编程逻辑器件(CPLD)。Xilinx产品已经被广泛应用于从无线电话基站到DVD播放机的数字电子应用技术中。传统的半导体公司只有几百个客户,而Xilinx在全世界有7,500多家客户及50,000多个设计开端。 本次课程设计中使用的Spartan-3E开发板就是由xilinx公司最

12、新推出的低成本FPGA,是基于Spartan-3/3L的,对其性能和成本进一步优化。这款产品成本低廉,总体性能指标不是很优秀,适合低成本应用场合,是Xilinx未来几年在低端FPGA市场上的主要产品。 本次课程设计使用xilinx ISE是Xilinx公司集成开发的工具,我们使用的版本是Xilinx ISE Design Suite 13.1,利用它编写VHDL程序,仿真,综合编译并生成后缀为.bit的数据文件。二、需求分析和研究思路2.1需求分析 MP3播放器的功能可以有很多,基本功能就有从SD卡读取文件,通过扬声器播放音乐,通过调节按钮调节音量等。还可以有多个扩展功能,如通过LED显示歌曲

13、的歌曲名、演唱者、播放时间等相关信息,快进后退,暂停等。甚至可以实现一些较高级别的创新功能,如通过语音识别实现MP3的密码保护功能。这是一个发展空间很大的课题,研究者可以根据自己的能力水平和兴趣爱好自由发展。本次课程设计中,我完成了预置音乐的播放,暂停,音符显示,播放模式控制,播放时间显示,暂停及重新播放控制,快进及回放控制,快速及慢放控制,VGA显示乐谱彩条,键盘敲击电子琴,音量调节功能。 预置音乐的播放:把音乐的曲谱写在程序里面,通过对不同音符的发音频率进行分析,把不同的音符以不同频率的脉冲形式输出,接到扬声器发出声音。 暂停:音乐是通过不断输送的时钟脉冲一个一个连续不断的实现输出的,使时

14、钟脉冲停止就达到了是音乐播放暂停的功能。 重置:将音乐乐谱置为零即可。 音符LED显示:把音符的简谱代码存放在程序中,在音符频率输出的同时也通过LED灯把音符的简谱代码显示出来。 播放模式控制:通过一个拨码开关,实现单曲播放和循环播放模式的切换。 播放时间显示:在乐曲开始播放的同时启动计时器,并将时间显示在数码管上,随着乐谱的播放而递增,当暂停是时间停止计数,重置时将时间清零。 快进及回放控制:通过快进按键和回放按键控制,当快进按键按下时将乐谱以3个音节递增,回放按键按下时以3个音节递减。 快放及慢放控制:通过快放和慢放两个拨码开关,分别实现快放慢放,快放时每个音节时间播放3个音节,慢放时每3

15、个音节播放1个音节,即实现了快放和慢放功能。 VGA彩条显示音节:在显示器上画出7条彩条分别对应着7个音调,当对应音调被播放时,显示器上对应的彩条显示高亮。 键盘接口实现电子琴:通过键盘接口实现电子琴,主要是坚挺键盘,当键盘按下17按键时分别对应7个音调,并播放出来,即实现了电子琴功能。 音量调节:把输出的声音经过一个集成运算放大电路,通过可调电阻对音量进行调节。2.2研究思路 按照EDA开发流程,采用VHDL硬件描述语言开发,从系统的整体出发对硬件演奏电路的功能进行分析并划分为多个功能模块,完成各个功能模块的设计以及实现,最后通过系统结构的整体设计实现预先设置乐曲的播放功能。再把播放功能模块

16、的输出经过一个集成运算放大电路实现音量调节功能。 需要完成的设计如下: 找出不同音符的发音频率,寻找最佳待分频频率,计算分频数和分频预置数,制作乐谱查找表。乐谱查找表里应当有:不同音符的发音频率,该发音频率相对于基准频率的分频系数和分频预置数。 预置曲谱。定义一个转换规则,将音乐音符转换为代码预置在程序里。 对预置的曲谱码在乐谱查表码里进行查找,找出相应音符对应频率的分频预置数。 根据查找到的分频预置数对待分频频率进行分频并输出。 通过集成运放电路实现音量调节。 将输出连接到扬声器,播放音乐。 通过不同拨码开关及按键的状态控制模式状态。 通过键盘监听得到按下的按键,如果按下的是1到7,就产生相

17、应的音调,通过查表查到预置数,然后送到进行分频播放。 通过显示屏画出彩条,利用产生的音调信号作为控制信号,送到VGA模块,使相应的彩条高亮。 使用Xilinx ISE Design Suite 14.1编写程序和仿真,使用Xilinx PlanAhead 13.1综合布线,综合编译并生成.bit下载文件,使用digilent adept下载到BASYS2实验开发板上进行功能验证。三、系统设计3.1系统原理 如果单纯以纯硬件的电路来实现乐曲演奏电路会复杂很多,比较难以实现。本次课程设计采用强大的EDA工具和硬件描述语言来实现乐曲演奏。我们知道,一首乐曲是由很多个音符组成的,而每个音符又包括音符的

18、发音频率和发音持续时间两个基本因素。如何把音符一个一个播放出来,就要看怎么获得音符的发音频率和发音持续时间,并利用这些数值以硬件软件相结合的方式实现乐曲的演奏。 如果我们现在知道每个音符的发音频率,利用程序使FPGA开发板上的某个引脚输出一定频率的脉冲,再连接到扬声器,就可以发出相应音符对应的声音了。然后再控制每个音符的发音持续时间,这样就输出了一个完整的音符。乐曲是由一个又一个的音符组成的,利用时钟信号使音符一个接着一个输出,就完成了一首乐曲的播放,同时将每个音调信号送给显示器接口,使对应的彩条高亮,当切换到电子琴模式下时监听键盘按键,当按下1到7按键时输出相应的音调然后进行分频输出。因此,

19、我们需要编写程序来控制FPGA引脚输出不同音符对应的不同的音调和音长。 从FPGA引脚输出的不同频率的信号具有一定的峰值,改变这些峰值的大小可以控制音量的大小。因此,我们需要一个调节音量的外接电路来调节音量。3.1.1音调控制 声音是发音体震动的次数,在规定的频率数字范围内波动产生的。因此,频率的高低决定了发出声音音调的高低。我们一般使用的数字简谱以可动唱名法为基础,用1、2、3、4、5、6、7代表音阶中的7个基本音级,读音为do、re、mi、fa、sol、la、si,每个音级又有低音、中音和高音三种不同的音级,这些再加上休止符,一共有22个不同音符。查阅相关资料可得到不同的音符的发音频率。

20、查阅资料得到音符与发音频率之间的对应关系如表3-1所示。表3-1数字简谱中的音符与频率的对应关系音符名频率/Hz音符名频率/Hz音名符频率/Hz低音1261.525中音1523.329高音11046.502低音2293.664中音2587.329高音21147.659低音3329.627中音3656.255高音31318.510低音4349.228中音4698.465高音41396.919低音5391.995中音5783.990高音51567.981低音6440中音6880高音61760低音7493.883中音7987.766高音71975.537 22个不同的音符就有22种不同的频率,这些频

21、率可以由一个基准频率进行分频得到。只要找到一个合适的基准频率,计算得出每个音符的分频数,就可以对基准频率进行分频,得到不同的音符频率。由于各个音符频率大多数为非整数,所以计算得到的分频系数也大多是非整数。我们采用四舍五入的方法,可以获得为整数的分频数。 如何选择基准频率很关键。若基准频率比较小,用他除以音符频率得到的分频系数也就比较小,这样的话进行四舍五入后误差相对而言会比较大。若基准频率偏大,分频系数也就偏大,这会增加系统的负担。综合考虑分频系数的准确性和大小,查阅相关资料可知,基准频率为750 khz是比较合适的。 我们使用的BASYS2开发板自带50 mhz的时钟频率,对50mhz的时钟

22、频率进行分频可得到750 khz的频率信号。由于得到的750 khz的频率信号是脉宽极窄的尖脉冲信号,为了提高扬声器有足够的功率发音,我们对尖脉冲信号再进行二分频,得到对称方波后再输出。因此,在表3-2中,就是以375 khz为基准频率计算了各个音符的分频数和分频预置数。3.1.2音长控制 音符的持续时间是由乐曲的速度及每个音符的节拍数来确定。想要控制音符的持续时间,就要知道乐曲的速度和每个音符的节拍数。现在一般乐曲中,最小的节拍为1/4拍。若定义1拍的持续时间为1秒,那么1/4拍的持续时间就为1/4秒,即0.25秒。其他的节拍数位1/4拍得整数倍,因此他们的持续时间就为0.25秒的整数倍。若

23、将乐曲中每个音符的持续节拍数写进程序,我们再定义一个4hz的时钟频率,每当时钟上升沿来临时就输出1/4拍音符,若是其他1/4拍整数倍的音符就连续输出整数倍的次数。这样,音符的发音持续时间久得到了控制。表3-2 各个音符的频率及其对应的分频系数(基准频率375KHz)音符名频 率(Hz)分频系数计数初值音符名频 率(Hz)分频系数计数初值休止符37500002047中音4698.4565371510低音1261.5251435513中音5783.9904781569低音2293.6641277770中音68804261621低音3329.6271138909中音7987.7663801667低音

24、4349.22810221025高音11046.5023581689低音5391.9959571090高音21147.6593271720低音64408521195高音31318.5102841763低音7493.8837591288高音41396.9192681799中音1523.2517171330高音51567.9812391808中音2587.3296381409高音617602131834中音3656.2555711476高音71975.53719018573.1.3乐谱发生器 根据一定的规则将乐谱的音符转换为代码预置在程序中,利用一个乐谱码计数器做标注,每1/4拍计数一次,若一个音

25、符占有多个1/4拍,就连续多次计数。计数器指向当前的音符,当4hz时钟频率的上升沿来临时,计数器就加1,指向下一个1/4拍音符。音符转为为代码按照如下规则:休止符转换为代码0,低音1-低音7转换为代码1-7,中音1-中音7转换为代码8-14,高音1-高音7转换为15-21。3.1.4音量控制 FPGA中没有控制频率峰值大小的功能,因此音量控制电路需要外接一个电路来完成。音量控制电路可以是一个集成运放电路。从本质上来看,集成运放是一种高性能的多级直接耦合放大电路。尽管集成运放的品种繁多,内部结构各不相同,但是他们的组成原则基本一致。组成主要包括差分输入级、中间放大级、偏置电路和输出级四个部分。差分输入级使运放具有尽可能高的输入电阻及共模抑制比;中间放大级由多级直接耦合放大器组成,以获得足够高的电压增益;输出级可使运放具有一定

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

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