目录
目录 3
基于MP3导游仪的MP3播放器系统设计 4
1 目的 4
2 我所做的工作 4
3 本设计的整体构架 4
4 具体实现 6
4.1 硬件部分 6
4.1.1 MP3导游仪系统构建 6
4.1.2 QuartusII中的整体硬件电路的实现 11
4.2 软件部分 12
4.2.1 主程序的流程图: 12
4.2.2 SPI模式下MP3导游仪卡驱动 12
4.2.3 VS1003 驱动 15
4.2.4 TFT驱动 16
4.2.5 文件系统的挂接 17
5.调试过程遇到的问题和解决方式 18
5.1 MP3导游仪卡驱动部分的问题 18
5.1.1 复位始终不能成功 18
5.1.2 模块写不成功 19
5.2 文件系统理解与挂接 19
5.3 VS1003的驱动 20
5.4 TFT的驱动 20
5.4.1 用户手册理解错误 20
5.4.2 数据手册有错 20
6 预期与结果 21
7 附录 22
7.1 参考资料 22
7.2 工程及源代码 22
用FPGA设计MP3导游仪中的MP3播放器
1 目的
1. 让自己能真正用MP3导游仪做出一个实际的定西,学习基于MP3导游仪的嵌入式软件开发的基本流程;
2. 了解一些比较实用的定西,比如MP3导游仪,VS1003,TFT等,并且能做到同时操作,而不是简单的流水灯,蜂鸣器,数码管;
3. 了解,熟练掌握一些常用的协议,I2C、 SPI、RS232等,但本次设计中主要使用的是SPI协议;
2 我所做的工作
MP3导游仪的构建,主要是调用一些IP核,使用类似绘制PCB原理图的方法,连线搭建硬件系统。具体参考林正红的《基于MP3导游仪的MP3导游仪RAM和FLASH的读写实验》。(有兴趣也可以参考《Nios ii 那些事儿》来完成了简单的Nios ii硬件系统设计,同时也可通过http://kingst.cnblogs.com/获得最新版本的《Nios ii 那些事儿》。)
实现了SPI模式下的MP3导游仪卡的驱动,由于Nios ii硬件SPI的缺陷,其SPI的速率不能改变,而在对MP3导游仪的驱动过程中,必须要改变SPI的速率才能完成初始化,所以笔者选择使用IO端口模拟4线SPI。
VS1003的驱动,其实V实现了FAT32文件系统与MP3导游仪卡的挂接。本部分使用的是开源的ZNFAT32文件系统,经过裁剪,实现的功能主要是定位文件,打开文件,读取文件,创建目录,创建文件等功能。(同时也通过http://www.znmcu.cn/softshow.asp?id=47 可以获得ZNFAT32文件系统的源代码)
VS1003能对很多常见格式的音频信号进行解码,比如MP3,WMA,MIDI等,在本设计中只对MP3格式进行解码,以及从MP3导游仪卡读取MP3格式的音乐送给VS1003解码后播放。
TFT液晶屏的驱动,其实一块液晶屏,有很多需要学习的地方,而在本设计中只是简单的显示了一张位图,在本设计中既没有实现触摸功能,也没有设计GUI,只是实现了从MP3导游仪卡中读取BMP格式的图片(16位色)交给TFT显示。
音乐系统的实现,综合上面所有的模块,实现从MP3导游仪卡提取MP3格式的音乐和BMP格式的图片,分别交由VS1003播放音乐和TFT显示图片,因为没有上操作系统的原因,暂时还不能做到同步。