- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于SOPC的SD卡WAV音频播放器设计文档论文
基于SOPC的SD卡WAV音频播放器
设计报告
组员:贾 登 仪器10802班
张子龙 信工10803班
郭建林 信工10803班
日期:2011年5月29日
基于sopc的sd卡wav音频播放器设计
摘要:本设计使用SOPC Builder在FPGA芯片上定制一个高速CPU实现FPGA与SD卡的SPI模式通信,并根据SD卡的FAT32文件系统读取SD卡内的WAV文件,读到的的音频文件数据送到FIFO模块,以将数据根据其采样率均匀输出到DA播放电路,实现了SD卡根目录下WAV文件的顺序播放、暂停、上一曲、下一曲功能。与SD卡的通信在NIOS Ⅱ 软件中用C语言编写,FIFO模块用Verilog HDL语言编写,音频数据的播放由DAC0832、uA741运放、音箱完成。
关键词:FPGA 、SOPC、SD卡、SPI、FAT32、DA0832
一、设计指标:
系统上电后,自动顺序播放sd卡根目录中所有wav音频文件。Wav音频文件的频率可以是8k、16k、24k、32k、44.1k之中的任何一种,硬件电路自动根据实际的歌曲频率切换输出音乐数据的频率。按键实现播放下一曲、上一曲、暂停功能。
扩展功能:通过遥控器红外线控制播放下一曲、上一曲、暂停
二、硬件平台:
CycloneⅡ EP2C5T144C8 FPGA 开发板(自带sd卡模块)
DAC0832+UA741构成的DA转换模块
其他资源:杜邦线、电源、测试用音箱、(单片机)等。
三、软件平台:
QuartusⅡ 8.1 NIOS Ⅱ 8.1 IDE
四、设计方案:
4.1综合分析:
A、选单片机还是FPGA?
虽然我们跟熟悉的是单片机,但是这个课题对时间要求或者说cpu的处理速度要求较高,单片机接24M晶振也达不到速度上的要求,因此选择fpga是比较合适的。Fpga配上50M的晶振实现高速访问sd卡并实时播放音乐文件是可以实现的。
B、用verilog开发还是C语言开发?
接下来又有两个选择,是采用verilog语言开发还是采用SOPC定制软核再在NIOS Ⅱ IDE中用C语言进行编程实现。若采用verilog进行开发,软件编程上难度较大,时序不容易把握再加上实时调试也比较困难。采用C语言编程,在时序控制上比较容易,借助于NIOS Ⅱ IDE的强大在线调试功能,可以很方便的发现程序的错误并改正。综上几点原因我们选择了用定制cpu的方式进行此课题的设计。
C、采用哪种方式访问sd卡,4位SD模式还是spi模式?
4位sd模式对处理器要求较spi模式要高(crc校验不能忽略),还有cmd命令线是双向端口(发送命令和接受命令都经过cmd线),较spi全部单向传输要麻烦。在实际测试下,spi模式在速度上可以达到本课题设计要求,所以选择了spi模式对sd卡进行通信。
4.2怎样从SD卡读取wav音频文件的数据?
Cpu跟SD卡在底层进行spi通信,在软件上层利用FAT32文件系统获取文件的具体相关信息及文件数据。具体流程如下:
获取SD卡第0扇区的5112字节数据→→→计算得到根目录所在扇区→→→
→→→获取根目录所在扇区的5112字节数据→→→计算音频文件所在扇区或开始簇号→→→根据FAT表分析文件所占有簇的分布情况→→→从而读取整个音频文件
4.3如何保证读到的音频文件按其采样频率输出?
由于sd卡读取数据的速度的不可控性,另外WAV音频文件比较大,一首歌多达十到几十M,只能采用边读边放才能保证音乐实时不间断地放出来。播放的速度只取决于歌曲的采样频率,播放速度在播放过程中不能变化。解决方法:cpu只负责读取音乐数据,FIFO模块将数据按歌曲采样频率送到DAC。FIFO模块产生wren(允许写入信号)通知cpu对FIFO
指定数据块内容进行写入新数据,这样播放的速度就始终保持不变,也能保证完整而不重复地播放音乐文件。
五、系统各模块设计
5.1、SD卡spi通信
电路简化示意图:
在SOPC系统中为cpu添加四条宽度为1位的pio端口如下:SD_CS(output only)(片选信号)
在SOPC系统中为cpu添加四条宽度为1位的pio端口如下:
SD_CS(output only)(片选信号)
SD_CLK(output only)( SPI 时钟信号)
SD_DI (output only)(数据/命令输入到S
您可能关注的文档
- 基于DS18B20的简易温度显示报警控制设计论文.doc
- 基于DS18B20设计了一种多路温度数据采集系统论文.doc
- 基于DSP永磁同步电机调速系统设计.doc
- 基于DSP控制的双闭环直流调速系统设计 (毕业论文)设计范文模板参考资料.doc
- 基于DSP的交通灯控制系统的设计 (毕业论文).doc
- 基于DSP的三相PWM整流器设计 电气工程与电子技术等专业毕业设计 (毕业论文).doc
- 基于DSP的音频信号分析仪的设计论文.doc
- 基于EDA技术的数字秒表设计论文.docx
- 基于DSP的音频信号发生器的设计与实现.doc
- 基于ERP平台物资超市管理系统开发与应用.doc
- 基于spss的多元回归分析模型选取的研究(毕业论文).doc
- 基于STC51系列单片机的红外遥控风扇系统设计本科(毕业论文).doc
- 基于SSH网上商城的设计与实现论文.doc
- 基于STC89C52单片机的人体红外报警器的设计与制作论文.doc
- 基于STC89C52单片机的温度报警器的设计与制作论文.doc
- 基于STC89C52单片机的步进电机控制系统设计论文.doc
- 基于STM32的便携式音乐播放器设计说明书论文.doc
- 基于STM32的LED点阵光笔设计与实现 (毕业论文)软件部分.doc
- 基于SWOT分析达英母婴用品市场-开发的研究.docx
- 基于SW6软件的固定管板式换热器设计论文.doc
文档评论(0)