基于FPGA的音乐播放器设计报告_第1页
基于FPGA的音乐播放器设计报告_第2页
基于FPGA的音乐播放器设计报告_第3页
基于FPGA的音乐播放器设计报告_第4页
基于FPGA的音乐播放器设计报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中国质大(武)基于的音乐播放器设专班

业级小组成员指导老师2015.06

目录一、实现功能.......................................................二、成员及任务分工.................................................2三、详细设计及原理..................................................31.系统硬件结构设计..............................................32.程序流程......................................................四、具体实现.......................................................1.SD卡文件系统的初始化..........................................2.按键选歌模式..................................................3.自动播放模式..................................................4.快进、快退、播放/暂停功能.....................................75.LCD显示歌曲名及歌词模块......................................86.LED显示功能.107.数码管显示当前曲目、总歌曲数和时间功能11五、碰到的问题及解决过程...........................................121.问题一.......................................................2.问题二.......................................................3.问题三......................................................134.问题四......................................................13六、运行效果.......................................................七、设计小结.......................................................1

一、功能1.支持SD卡文件读取功能;2.支持WAV格式音频功能;3.支持歌词同步显示功能;3.支持歌曲名称显示功能;4.支持“播放/暂停”控制功能;5.支持歌曲选择功能;6.支持LED灯显示音量功能;7.支持返回功能;8.支持硬启动从ROM启动;9.支持数码管显示总歌曲数和第几首歌曲功能;10.支持数码管显示歌曲的播放进度功能;11.支持LED灯指示拨码开关状态功能;12.支持前6首歌曲直接选择功能。二、成及务分工姓名

所做任熟悉NiosII系统开发流程,看懂原工程文件。了解卡FAT文件系统大致读写流程卡FAT16格式并将.wav和.lrc文件复制到SD卡根目录下。到实验室去测试原工程文件的硬件设置和软件功能。测试软件功能,明确各个按键对应的功能。一起讨论如何更改原来的功能,并添加新功能。完成实验任务,分工书写课程设计报告。2

三、详设及原理1.统件构计本设计采DE2开发板,充分利NiosII软核的特性,结合自定义用户组件、自定义用户外设。在PGA中使用软核处理器的优势在于灵活高效,硬核实现没有灵活性,通常无法使用最新的技术。而应NiosII软核处理器,开发者能够完全定制CPU和外设,获得恰好满足需求的处理器,充分利用NiosII处理器灵活和高效的特性通过DE2开发板上的SD卡插槽读取SD卡上的音频数据后,送到音频/解码器,对音质进行相关处理后输出,进行音乐的播放.卡音乐播放是由NiosII处理器通过软件完成的。该音乐播放器主要分两种播放模式:按键选歌模式和自动播放模式。根据系统所划分的功能,处理器、音频设备、存储器、输入、输出和交互接口都必须选用硬件设备实现。其中硬件部分如处理器Altera司的NiosII软核来实现,MP3乐文件存储于外部的SD卡中,发板上有4个为用户预留的按钮可以用来输入,作MP3播放器的功能键,输出可以使用开发板上的输出口来接音频设备,用户与开发板的交互可以使用开发板RS-232串行口和JTAG口。整个系统分为四个部分CPU模块(包括外围配置芯片、扩展芯片等储器(SD卡)模块、LCD显示模块、GPIO接口模块。图播放器硬件整体框图3

2.序程图2程序程图对于MP3播放器来说,它应该在板子加电时自动加载SRAM,然后到一个约定的地方读取音乐数据就可以了。本系统会播放几个音乐文件所以MP3播放器就需要通过一个机制来管理或定位这些音乐文件也就是通过一个文件系统管理功能的程序让这个文件系统软件和MP3播放器配合使用。4

音乐文件的存放应该配合MP3音乐的播放音乐文件的播放和显示通过文件系统获得相应的播放音乐文件的地址和相关信息储也应该符合系统文件的定义来存放也就是说文件系统是存放音乐和播放音乐的一个中间层是音乐文件播放和音乐文件存放的一个默认标准以文件系统的结构定义是文件读取和存储的关键。四、具实1.SD文系的始调用函数SD_card_init();(1)SD卡简介及FAT16文件系统构成介绍:SD卡(SecureDigitalMemoryCard)是一种基于半导体快闪记忆器的新一代记忆设备不需要额外的电源来保持其上记忆的信息而且它是一体化固体介质没有任何移动部分所以不用担心机械运动的损坏SD卡的结构能保证数字文件传送的安全性也很容易重新格式化所以有着广泛的应用领域它被广泛地于便携式装置上使用,例如数码相机、个人数码助理PDA)和多媒体播放器等。(2)FAT16文件系统构成MBR区装有用于启动系统的代码和有关文件系统的重要信息;在主引导扇区的末尾处含有分区表分区表用于标识每个分区开始和结束的表项最多可以有4个分区,每个分区可以包含不同的文件系统。分区引导扇区记录各个分区启动的引导程序。记录SD存储卡以簇为单位进行记录的存储空间的信息,簇的大小根据实际系统的电子盘特性设定。根目录区记录文件名和目录名。用户数据区用于存放用户数据及子目录。SD卡格式化时,系统采用FAT16文件格式。主引导区位于整个SD卡的0柱面0磁头,1扇区存放引导程用于启动和引导操作系统,同时存放SD卡的主分区表记录卡的分区信息在总共字节的主引导记录中MBR的引导程序占了其中的446个字节(相对于扇区首地址的偏移量~1BDH后的字节(偏移量1BEH~1FDH)为DPT(DiskPartitionTable,硬盘分区表后的两个字节“55AA移量1FEH~)是分区有效的结束标志。FAT16件系统最多支持4个分区项,对应于4个分区表。在PT部分共64字节中,以字5

节为分区表项单位描述一个分区的属性本系统能够D卡只作为一种存储介质使用,且整个系统作为一个分区处理。2.键歌式(1)进入按键选歌当swit0为0,即无拨码开关置为‘’时,LCD提示“Presskey3asong下KEY3后,先显示歌曲总数和歌词总数,继而显示当前所选歌名。while检测入选歌界{ifbreak}(2)歌曲选择功能上一首/下一首功能分别由按键EY2和按键KEY1实现播放至最后一首歌时按KEY1按键则将播放第一首歌曲直接选歌功能由拨码开关W10~15实现可选择第1~6首歌曲。a代表当前为第几首歌,为歌曲总数。switch{case0x0400:breakcase0x0800:breakcase0x1000:breakcase0x2000:breakcase0x4000:breakcase0x8000:break6

defaultifelseifbreak}后一首a=(a+1)%num_music;(3)确认选歌

前一首a=(a+num_music-1)%num_music;按下KEY3按键,确认当前所选歌曲,开始播放音乐。ifbreak3.动放式(1)循环播放模式elseif(swi[0])//连播放{}当开关swi[0]拨动到‘1’位置时,为循环播放模式,播放下一首歌曲。(2)单曲循环模式elseif(swi[1])//循播放{显示时间}当开关swi[1]拨动到‘1’位置时,为单曲循环模式,循环播放当前歌曲。(3)随机播放模式elseif(swi[2])//随播放{

显示时间}当开关swi[2]拨动到‘1’位置时,为随机播放模式,随机播放歌曲。4.进快、放/停能(1)快进if快进{7

显示间continue}当开关swi[4]拨动‘位置时b是第几个簇执行b=(b+4)%cluster_num实现快进。(2)快退elseif(swi[5])//快{显示间continue}当开关swi[5]拨动到‘1’位置时,执b=(b+cluster_num-4)%cluster_num实现快退。(3)播放/暂停功能由开关swi[6]实现,实现代码:elseif(swi[6])//暂{continue}当开关swi[6]拨动‘1位置时执行=(b+cluster_num-1)%cluster_num,实现暂停。5.LCD示曲及词块(1)显示歌名选歌定播放歌曲后,歌曲名会显示在CD上,调用函数:void{/歌名显的页面数if{8

}elsefor歌名显示的页数,歌名滚动显示{写第一行for{}写第二行for{}ifelse}}(2)显示歌词歌曲播放时LCD则会显示歌曲的歌词,先读取歌词后显示歌词,调用函数:读歌for显示歌词{if{break}elseif{break}9

elseif{break}elseif{break}}该函数中首先匹配歌曲名字和歌词名字,找到匹配歌词后,读扇区,读入一个簇的歌词。如果歌词时间没有重复,即一句歌词对应一个时间标志的情况,从歌词开始标志开始读,一个扇区的数据读,读取下一个扇区,读时间,计算歌词的长度是多少倍,将歌词补满32的整数倍个;如果歌词时间有重复即一句歌词对应多个时间标志的情况有几个时间信息取出这句歌词对应的所有时间信息如果一个扇区的数据读完,读取下一个扇区进行时间转换转换成这句歌词时间对应的扇区数计算歌词的长度是的多少倍将歌词补满32的整数倍个重复歌词读取将读出来的歌词及其时间按时间顺序排序将读出来的长歌词转换为短歌词,函数返回数值numb1。示能(1)红灯显示音量将送入播放器的电平Buffer的值取出后按比例缩小使其最大值为16然后将缩小后的值通过处理后由LED灯显示Buffer的值越大表示当前电平值越大,则LED灯点亮的个数越多。while{if{10

}}if{}(2)绿灯指示拨码开关状态DE2平台上只有9绿色的LED灯只能够指示拨码开关的状态,开关状态为“0对应的灯灭;开关状态为“则对应的灯亮。7.码显当曲、歌数时功DE2开发平台上共8个数码管12两个数码管显示当前曲目34数码管显示歌曲总数,5、、、8四个数码管显示当前歌曲的播放时间。数码管显示时调用函数:voidtime(intintint{intunsignedint=11

}该函数的传入参j簇中第几个扇区n当前播放的歌曲序号num歌曲总数。函数中完成根据计算当前时间,并将歌曲序号、歌曲总数和时间显示到对应数码管上。五、碰的题及解过1.题一在原始软件工程上直接编译,出现system_0.ptf的存储路径与II工程不相符,导致运行时找不到.ptf文件,错误如下所示。解决方:熟悉软件开发流程在软件工程编译时需要用到相对应的硬件平台的配置信息。新建一个NIOSII工程,在添加SOPCBuilderPTFFile时,添加正确的ptf文件,添加所需的.c和.h文件,再次编译。2.题二编译工程时,出现gnu_rules.mkgtf_rules.mk文件不存在的问题,错误如下图所示。解决方:在网上搜索了一下所遇到的问题网友给出的回答是软件与电脑操作系统不兼容,于是将软件的兼容模式设置为Windows,再次编译工程,错误消失,编译成功。12

3.题三在修改NIOSII工程时,不了解SD卡的扇区、簇等概念。解决方:在网上搜索了关于“中件分析”的文章,了解的文件系统。每个扇区通常有512个字节,每个簇可以包括2、4、8、16、32或64个扇区,一个簇中只能放置一个文件的内容,因此文件所占用的空间,只能是簇的整数倍如果文件实际大小小于一簇它也要占一簇的空间如果文件实际大小大于一簇根据逻辑推算那么该文件就要占两个簇的空间一个簇只能容纳一个文件占用即使这个文件只有0字节也决不允许两个文件或两个以上的文件共用一个簇,不然会造成数据混乱。因此,单片机读卡上的文件时是以簇为单位的。4.题四SD卡没有格式化为格式的SD显示为3.18G,导致DE2开发平台无法识别SD卡,程序停在SD卡初始化位置。解决方:将SD卡在电脑上格式为格式,内存大小恢复到2G一下,再插入到开发平台上,SD卡被成功识别,程序运行正确。六、运效1开界13

2歌选模14

3前首/一功;按KEY2键选择前一首歌,如果当前为第一首,则前一首为最后一首歌。按KEY1键选择下一首歌,如果当前为最后一首,则下一首为第一首歌。按确认键KEY3选择当前歌曲,继而播放当前歌曲。15

数码管显示当前歌曲为第几首歌、总歌曲数、当前歌曲播放时长;显示播放时长及歌词。4返功拨码开关SW17的状态改变后,直接跳到选歌界面。SW1状态为“1”时,拨码开SW17的状态改变后,直接跳到循环播放模式。16

SW2状态为“1”时,拨码开SW17的状态改变后,直接跳到单曲循环模式。SW3状态为“1”时,拨码开SW17的状态改变后,直接跳到随机播放模式。5直选功拨动拨码开关SW10~15,直接选择歌曲1~6。17

18

七、设小本次课程设计完成了以下工作:1.研究了软硬件协同技术具体研究了软硬件的系统描述软硬件划分等方面的技术。了解NiosII处理器的结构特性,掌握基于NiosII的嵌入式SOPC系统软硬件设计方法。2.实现SD卡读写歌词和歌曲的驱动程序。3.将软硬件协同付诸于实践,在NiosII开发板上实现了MP3播放器。采用软硬件协同设计的思想来进行系统的设计。从系统性能出发,对系19

统进行了划分在硬件的设计中参考了软件的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论