




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
07106171140710617114 基于基于 STM32STM32 的的 MP3MP3 播放器设播放器设 计计 张蓝凯张蓝凯 物理与电子信息工程系物理与电子信息工程系 1897841483718978414837 曾繁政曾繁政讲师讲师 20072007 级级 电气工程及其自动化电气工程及其自动化 2011201103031111 独独 创创 性性 声声 明明 本人郑重声明 所呈交的毕业论文 设计 是本人在指导老师指导下取得的研究 成果 除了文中特别加以注释和致谢的地方外 论文 设计 中不包含其他人已经发 表或撰写的研究成果 与本研究成果相关的所有人所做出的任何贡献均已在论文 设 计 中作了明确的说明并表示了谢意 签名 年 月 日 授权声明授权声明 本人完全理解贺州学院有关保留 使用本科生毕业论文 设计 的规定 即 学 院有权保留并向国家有关部门或机构送交毕业论文 设计 的复印件和磁盘 允许毕 业论文 设计 被查阅和借阅 本人授权贺州学院可以将毕业论文 设计 的全部或 部分内容编入有关数据库进行检索 可以采用影印 缩印或扫描等复制手段保存 汇 编论文 设计 本人论文 设计 中有原创性数据需要保密的部分为 无 签 名 年 月 日 指导教师签名 年 月 日 精品文档 I欢迎下载I欢迎下载I欢迎下载I欢迎下载I欢迎下载I欢迎下载I欢迎下载 基于基于 STM32STM32 的的 MP3MP3 播放器设计播放器设计 摘摘 要要 随着数字编解码及压缩技术的发展 语音文件也朝着高压缩比 高保真的方向发 展 从 MP1 MP2 到目前的 MP3 格式 因此高压缩比 高保真 MP3 播放器设计研究有 很好的应用前景 本论文详细介绍了基于 STM32 的 MP3 播放器的设计的方法 系统实现了把 SD 卡 中存储的 MP3 格式的文件解码播放 并在 TFT 触摸屏上显示播放歌曲的名称 歌曲播 放剩余时间及显示歌曲对应的歌词 通过 TFT 触摸屏上的图形交互用户图界 还可以 实现歌曲的快进 快退 暂停和更改循环模式等 基本上可以实现一个带有触摸屏功 能的 MP3 播放器 关键词 关键词 MP3 播放器 STM32F103VCT6 VS1003 SD 卡 II ABSTRACTABSTRACT At the development of the digital coding and decoding and compression technology Voice files are also moving in a high compression ratio high fidelity direction from MP1 MP2 to MP3 format now Therefore high compression ratio high fidelity design of MP3 players have a good prospect This paper introduces based STM32 s MP3 player design methods system implements the SD card stored in MP3 format decoding player and TFT touch screen display playing a song title song playback remaining time and display songs Corresponding to the lyrics through the TFT touch screen graphic interactive graphical user community Songs can also fast forward rewind pause and change the loop mode basically can function with a touch screen MP3 player KeyKey words words MP3 player STM32F103VCT6 VS1003 SD Card 精品文档 III欢迎下载III欢迎下载III欢迎下载III欢迎下载III欢迎下载III欢迎下载III欢迎下载 目目 录录 摘摘 要要 I I ABSTRACTABSTRACT IIII 1 1绪论绪论 1 1 1 1选题背景 1 1 2国内外研究现状及意义 1 2 2系统硬件方案设计系统硬件方案设计 2 2 2 1设计目标 2 2 2设计方案对比 2 2 2 1控制器方案 2 2 2 2MP3 解码方案 3 2 2 3显示模块方案 3 2 2 4MP3 储存介质方案 3 2 3系统设计原理 4 2 3 1中央处理器工作原理 4 2 3 2音频解码芯片 5 2 3 3TFT 电阻式触摸屏 7 2 3 4SD 卡 9 3 3系统软件方案设计系统软件方案设计 1111 3 1系统软件开发平台 11 3 1 1程序设计流程图 12 3 2各模块软件系统设计 12 3 2 1VS1003 驱动程序 12 3 2 2TFT 显示屏驱动程序 13 3 2 3SD 卡驱动程序 15 4 4系统测试 调试系统测试 调试 1616 4 1运行过程 16 4 2设计过程遇到的困难和问题 17 4 2 1硬件方面 17 4 2 2软件方面 18 5 5结论结论 1818 参考文献参考文献 1818 致致 谢谢 精品文档 1欢迎下载1欢迎下载1欢迎下载1欢迎下载1欢迎下载1欢迎下载1欢迎下载 1 1绪论绪论 1 11 1 选题背景选题背景 随着数字编解码及压缩技术的发展 语音文件也朝着高压缩比 高保真的方向发 展 从 MP1 MP2 到目前的 MP3 格式 便携式 MP3 播放器作为一种集音频播放 数据 存储为一身的数码产品 其功能结构为电子设计人员所津津乐道 MP3 是 MPEG 一 1 音 频 III 1ayerIII 的简称 MPEG 一 1 音频 ISO IECll 172 3 是目前普遍应用的音频 压缩标准 其中层 III 的算法最为复杂 但压缩比最大 效果也最好 在低码率的条 件下基本能达到 CD 的音质效果 MP3 标准用尽可能低的码流实现 CD 音质的声音而不 会产生数据损失 如果对于一段声音不进行压缩的话 那么每存储一秒钟的立体声 CD 音质音乐必须用 1 4Mbit 这是个十分大的开销 通过运用 MPEG 音频标准的压缩技术 我们可以把存储空间压缩到原来的 1 12 而不会降低声音的音质 即使使用 1 24 的 压缩因子 仍然比单纯降低采样率的音质要好 低数据量和高播放品质的优点使其成 为音乐存储 数字广播 网上音乐传输的主要方式 人们不仅可以使用计算机软件 还可以通过数字随身听来欣赏音乐 在这种数字化潮流下 嵌入式系统已成为当前研究和应用的热点之一 嵌入式手 持设备的视音频多媒体应用也越来越广泛 由于嵌入式系统的应用要求及成本因素决 定了嵌入式系统在系统资源 包括硬件资源和软件资源方面都是非常精简和高效的 1 21 2 国内外研究现状及意义国内外研究现状及意义 MP3 全称是 MPEG Layer 3 狭义的讲就是以 MPEG Layer 3 标准压缩编码的一种音频 文件格式 在 INTERNET 广泛普及的今天 MP3 音乐以其较小数据量和近似完美的播 放效果已经成为计算机上和 INTERNET 最流行的音乐格式了 将 CD 格式的音乐数据压 缩成 MP3 格式 音效相差无几 除非你有很好的音响和鉴赏力 文件大小至少可以 压缩 12 倍 每首 PCM 格式的 CD 歌曲大约 40 50MB 数据量 自韩国世韩 Seahan 公 司 1998 年推出世界上第一台 MP3 随身听以来 MP3 播放器以其小巧的外形 不错的 近乎于 CD 的音质 前卫的功能 越来越受到消费者的青睐 也就成为业界甚至大众 媒体关注的一个热门话题 它的记录媒介是芯片或卡 无需转动部件 彻底摆脱了磁 张蓝凯 基于 STM32 的 MP3 播放器设计 2 带和光碟的束缚 因而 抗震和节电性能更好 在市场消费刺激下 各大公司纷纷推 出了自己的 mp3 播放器产品 IC 供应商提供了众多的 MP3 解码芯片及其解决方案 除 了 Micronas 方案 MAS3507 DAC3550 ST 方案 ST92163 STA013 015 Crystal 软解 压单芯片方案 EP7209 EP7212 TI 软解压单芯片方案 TMS320C5409 还有台湾创 品方案 T33510 T33520 美国 SigmaTel 方案 STMP3400 和 TI 的 DA 250 解决方案 这使 mp3 播放器的研制与生产变得更加容易 成本也大大降低 市场更加广阔 2 2系统硬件设计系统硬件设计 2 12 1 设计目标设计目标 本论文是基于 STM32 的 MP3 播放器的设计 论文中将涉及到 STM32 的学习和嵌 入式原理的应用 MP3 解码的实现原理及其解码芯片的应用指南 SD 卡的数据存储结 构及其各种文件系统的区别 TFT 触摸屏的操作及简单 GUI 在 TFT 上的实现 预期将能实现在 TFT 液晶上对 MP3 播放的实时控制 2 22 2 设计方案对比设计方案对比 2 2 12 2 1控制控制器方案器方案 方案一 此方案采用 89C51 单片机实现 单片机软件编程自由度大 可用编程 实现各种控制算法和逻辑控制 但是 89C51 需外接模数转换器来满足数据采样 如 果系统增加语音播放功能 还需外接语音芯片 对外围电路来说 比较复杂 且软件 实现也较麻烦 另外 51 单片机需要用仿真器来实现软硬件调试 较为繁琐 方案二 此方案采用 SPCE061A 单片机实现 此单片机内置 8 路 ADC 2 路 DAC 且集成开发环境中 配有很多语音播放函数 用 SPCE061A 实现语音播放相对 方便 但 5V 的工作电压 16 位的处理器芯片 较低的闪存 使得功耗比较大 处理 速度比较慢 工作效率比较低 存储量受到限制 方案三 此方案采用 STM32F103VCT6 实现 它使用高性能的 ARM Cortex M3 32 位的 RISC 内核 工作频率为 72MHz 内置高速存储器 高达 128K 字节的闪存和 20K 字 节的 SRAM 丰富的增强型 I O 端口以及包含 2 个 12 位的 ADC 3 个通用 16 位定时器 和一个 PWM 定时器 使得处理速度大大提高 机器功耗大大降低 整体性能得到很大 提高 32 位的处理器使得控制更加稳定 迅速 窗口型看门狗 使得程序运行更加高 精品文档 3欢迎下载3欢迎下载3欢迎下载3欢迎下载3欢迎下载3欢迎下载3欢迎下载 效 另外 比较方便的是该板支持硬件仿真 通过 Ulink 仿真器可以方便实现在线逐 步调试 这大大方便了系统的开发与调试工作 基于 STM32 的高性能 低功耗 方便调试等特性 故选择方案三 2 2 22 2 2MP3MP3 解码方案解码方案 方案一 此方案采用软解 MP3 直接用软件解码 节约了硬件成本 但代码复杂 编程难度较高 工作量极大 而且对控制器的处理速度和资源要求都比较高 方案二 此方案采用硬解 MP3 直接用音频解码芯片解码 它使用高性能的 VS1003 MP3 解码芯片 功能强大而且价格便宜 VS1003 支持 MP3 WAV WMA MIDI 等诸多音频格式 音质可与市场上中档 MP3 播放器相媲美 基于上述比较 故选择方案二 2 2 32 2 3显示模块方案显示模块方案 方案一 此方案采用 LCD1602 完成数据显示 LCD1602 驱动电路简单 它可以 显示简单的中英文字符 功能和设计的成本都比较低 方案二 此方案采用 LCD12864 它既可以显示中英文字符 也可以显示图片 但 其图案分辨率较低 而且只能显示单色字符 方案三 此方案采用 TFT 液晶模块 它既可以显示彩色数字 中英文字符和图案 还可以加上触摸屏模块 实现 GUI 用户图形交互实时控制 基于 TFT 液晶的强大功能 故选择方案三 2 2 42 2 4MP3MP3 储存介质方案储存介质方案 方案一 此方案采用直接将 MP3 文件存放在控制器的内部 ROM 储存器中 读取速 度快 操作简单方便 但是 相比于 51 AVR SPCE061A 等单片机 虽然 STM32 有着 很大的内部 ROM 容量 但还是不能完整的保存一首 MP3 歌曲 方案二 此方案采用 U 盘来储存 MP3 文件 极大的提高了储存容量 方案三 此方案采用 SD 卡来储存 MP3 文件 采用 SPI 通讯方式的 SD 卡不仅读取 数据的速度快 而且具有小体积 大容量等特点 根据本人的实际情况 故采用了方案三 张蓝凯 基于 STM32 的 MP3 播放器设计 4 2 32 3 系统设计原理系统设计原理 本设计由 STM32 最小系统 SD 卡的读取模块 TFT 控制模块 外扩 FLASH 模块 触摸屏模块 串口通信模块组成 将要解决 SD 卡的读取及使用 FATFS 系统对 SD 卡的 操作 TFT 液晶的控制及触摸屏原理 还有图形用户界面 GUI 的实现等问题 硬件系 统方框图如图 2 1 所示 基本设计流程是使用 STM32 系列微控制器 采用 FATFS 文件系统方式读取 SD 卡 中的 MP3 文件 并控制 MP3 解码芯片对 MP3 文件进行解码播放 并在 TFT 液晶上显示 实时播放情况 STM32F103VCT6 TFT 触摸屏 SD 卡 VS1003 音频解码 外扩 FLASH 串口 通信 图 2 1 硬件系统方框图 2 3 12 3 1中央处理器工作原理中央处理器工作原理 STM32 系列是基于 CortexM3 核的微控制器 它在 CortexM3 内核的基础上扩展了 高性能的外围设备 CortexM3 是 ARM 公司最新推出的基于 ARMv7 体系架构的处理器核 具有高性能 低成本 低功耗的特点 专门为嵌入式应用领域设计 ARMv7 架构采用了 Thumb2 技术 它是在 ARM 的 Thumb 代码压缩技术的基础上发 展起来的 并且保持了对现存 ARM 解决方案完整的代码兼容性 Thumb2 技术比纯 ARM 代码少使用 31 的内存 减小了系统开销 同时能够提供比 Thumb 技术高出 38 的 性能 在中断处理方面 CortexM3 集成了嵌套向量中断控制器 NVIC Nested Vectored 精品文档 5欢迎下载5欢迎下载5欢迎下载5欢迎下载5欢迎下载5欢迎下载5欢迎下载 Interrupt Controller NVIC 是 CortexM3 处理器的一个紧耦合部分 可以配置 1 240 个带有 256 个优先级 8 级抢占优先权的物理中断 为处理器提供出色的异常 处理能力 同时 抢占 Pre emption 尾链 Tail chaining 迟到技术 Late arriving 的使用 大大缩短了异常事件的响应时间 CortexM3 异常处理过 程中由硬件自动保存和恢复处理器状态 进一步缩短了中断响应时间 降低了软件设 计的复杂性 CortexM3 体系架构提出了新的单线调试技术 CortexM3 处理器的跟踪 调试是通过调试访问端口 Debug Access Port DAP 来实现的 DAP 端口可以作为串 行线调试端口 SWDP 或串行 JTAG 调试端口 SWJDP 允许 JTAG 或 SW 协议 使用 其中 SWDP 只需要时钟和数据 2 个引脚 实现低成本跟踪调试 避免使用多引脚进行 JTAG 调试 并全面支持 RealView 编译器和 RealView 调试产品 此外 CortexM3 还具 备高度集成化的特点 大大减小了芯片面积 内部集成了许多紧耦合系统外设 合理 利用了芯片空间 使系统满足下一代产品的控制需求 其引脚分布如图 2 2 所示 图 2 2 STM32F103VCT6 微控制器引脚分布图 2 3 22 3 2音频解码芯片音频解码芯片 VS1003 是一个单片 MP3 WMA MIDI 音频解码器和 ADPCM 编码器 它包含一个高性 能 自主产权的低功耗 DSP 处理器核 VS DSP4 工作数据存储器 为用户应用提供 张蓝凯 基于 STM32 的 MP3 播放器设计 6 5KB 的指令 RAM 和 0 5KB 的数据 RAM 串行的控制和数据接口 4 个常规用途的 I O 口 一个 UART 也有一个高品质可变采样率的 ADC 和立体声 DAC 还有一个耳机放大 器和地线缓冲器 芯片原理图如图 2 3 所示 其具体特性如下 1 能解码 MPEG 1 和 MPEG2 音频层 III CBR VBR ABR WMA 4 0 4 1 7 8 9 5 384kbps 所有流文件 WAV PCM IMAAD PCM 产生 MIDI SP MIDI 文件 2 对话筒输入或线路输入的音频信号进行 IMAADPCM 编码 支持 MP3 和 WAV 流 3 高低音控制 低功耗 单时钟操作 12 13MHz 内部 PLL 锁相环时钟倍频器 4 内含高性能片上立体声数模转换器 两声道间无相位差 内含能驱动 30 欧 负载的耳机驱动器 模拟 数字 I O 单独供电 5 为用户代码和数据准备的 5 5KB 片上 RAM 串行的控制 数据接口 可被用 作微处理器的从机 6 特殊应用的 SPI Flash 引导 供调试用途的 UART 接口 新功能可以通过软 件和 4 GPIO 添加 图 2 3 VS1003 芯片原理图 2 3 32 3 3TFTTFT 电阻式触摸屏电阻式触摸屏 TFT 电阻式触摸屏由 TFT 显示屏 驱动 IC ILI9320 控制 TFT 触摸屏 触摸屏 控制器 ads7843 控制触摸屏电压的转换 等组成 本设计采用的 TFT 显示屏是 3 2 寸 TFT 240 320 26 万色彩屏模块 支持 SD 卡 支持 DATAFLASH 支持 16 位 8 位模式 模块可以 180 度任意旋转使用 精品文档 7欢迎下载7欢迎下载7欢迎下载7欢迎下载7欢迎下载7欢迎下载7欢迎下载 ILI9320 是一款包括一个 720 通道的源极驱动器 一个 320 通道门驱动器 172 800 字节数据 RAM 能驱动 240RGBx320TFT 液晶显示器的驱动芯片 电阻式触摸屏工作原理如下 电阻式触摸屏利用压力感应进行控制 它的主要部 分是一块与显示器表面配合的电阻薄膜屏 这是一种多层的复合薄膜 它以一层玻璃 或硬塑料平板作为基层 表面图有一层透明氧化金属导电层 上面盖有另外一层氧化 金属导电层 在他们之间有许多细小的 小于 1 1000 英寸 透明隔离点把两层导电 层隔开绝缘 当手指触摸屏幕时 两层导电层在触摸点位置就有了接触 控制器侦测 到这一接触并计算出 X Y 的位置 再根据模拟鼠标的方式运作 图 2 4 电阻式触摸屏的原理图 触摸屏控制芯片为 ADS7843 ADS7843 是一个内置 12 位模数转换 低导通电阻模 拟开关的串行接口芯片 供电电压 2 7 5 V 参考电压 VREF 为 1 V VCC 转换电压 的输入范围为 0 VREF 最高转换速率为 125 kHz 其引脚功能如表 2 5 所示 ADS7843 典型应用电路如图图 2 6 所示 表 2 5 ADS7843 的引脚功能表 张蓝凯 基于 STM32 的 MP3 播放器设计 8 图 2 6 ADS7843 典型应用电路 2 3 42 3 4 SDSD 卡卡 SD 卡 Secure Digital Memory Card 是一种为满足安全性 容量 性能和使用 环境等各方面的需求而设计的一种新型存储器件 SD 卡允许在两种模式下工作 即 SD 模式和 SPI 模式 本系统采用 SPI 模式 本小节仅简要介绍在 SPI 模式下 STM32 处理器如何读写 SD 卡 SD 卡如果采用 FAT16 文件格式 按照其不同的特点和作用大致可分为 5 部分 MBR 区 DBR 区 FAT 区 FDT 区和 DATA 区 由于 SD 卡一般不做引导盘 一般也不分 区 因此通常无 MBR 区 直接从 DBR 区开始 下面对后面四个区分别作简介 1 DBR 区 内容为系统引导记录 它包括一个引导程序和一个被称为 BPB Bios Parameter Block 的本分区参数记录表 引导程序的主要任务是当 MBR 将系统控制权交给它时 判断本分区根目录是否有操作系统引导文件 如果有则将其读入内存 并把控制权交 给该文件 BPB 参数块记录着本分区的起始扇区 结束扇区 文件存储格式 根目录 大小 FAT 个数 分配单元大小等重要参数 2 FAT 区 该区内容为文件分配表 FAT16 文件系统进行空间分配的最基本单位是簇 文件 分配表反映了 SD 卡所有簇的使用情况 通过查文件分配表可以得知任一簇的使用情 况 对于 FAT16 来说 FAT 表每项占用两 精品文档 9欢迎下载9欢迎下载9欢迎下载9欢迎下载9欢迎下载9欢迎下载9欢迎下载 个字节 FAT 表的第一项通常为 FFF8H 对于其它项 若其值为 0000H 表示可用 FFF7H 表示为坏簇 FFF8H FFFFH 之间表示该簇为某文件或目录的最后一个簇 FFF0H FFF6H 之间为保留值 其它值则指示下一个簇的簇号 3 FDT 区 该区的内容为文件目录表 FAT 文件系统的一个重要思想是把目录 文件夹 当 作一个特殊的文件来处理 FAT32 甚至将根目录当作文件处理 FAT 分区中所有目录 文件 实际上可以看作是一个存放其它文件 文件夹 入口参数的数据表 因此 目 录占用空间的大小并不等同于其下所有数据的大小 但也不等于 0 通常是占很小的 空间 其具体的存储原理是 不管目录文件所占空间为多少簇 一簇为多少扇区 多 少字节 系统都会以 32 个字节为单位 进行目录文件所占簇的分配 4 DATA 区 该数据区存放文件的内容 SD 卡所占用的空间绝大部分为此部分 如果文件长度 大于一个簇的大小 需要多个簇存放该文件 这些放通过 FAT 链表串连起来 SD 卡内部结构及引脚如图 2 7 所示 图 2 7 SD 卡内部结构及引脚 SD 卡主要引脚和功能为 CLK 时钟信号 每个时钟周期传输一个命令或数据位 频率可在 0 25MHz 之间 变化 SD 卡的总线管理器可以不受任何限制的自由产生 0 25MHz 的频率 CMD 双向命令和回复线 命令是一次主机到从卡操作的开始 命令可以是从主 机到单卡寻址 也可以是到所有卡 回复是对之前命令的回答 回复可以来自单卡或 所有卡 张蓝凯 基于 STM32 的 MP3 播放器设计 10 DAT0 3 数据线 数据可以从卡传向主机也可以从主机传向卡 SD 卡以命令形式来控制 SD 卡的读写等操作 可根据命令对多块或单块进行读写操作 在 SPI 模式下其命令由 6 个字节构成 其中高位在前 SD 卡共支持三种传输模式 SPI 模式 独立序列输入和序列输出 1 位 SD 模式 独立指令和数据通道 独有的传输格式 4 位 SD 模式 使用额外的针脚以及某些 重新设置的针脚 支持四位宽的并行传输 低速卡通常支持 0 400 千比特 秒数据传 输率 采用 SPI 和 1 位 SD 传输模式 高速卡支持 0 100 兆比特 秒数据传输率 采用 4 位 SD 传输模式 支持 0 25 兆比特 秒 采用 SPI 和 1 位 SD 模式 3 3系统软件设计系统软件设计 3 13 1 系统软件开发平台系统软件开发平台 STM32 系列微控制器采用 ARM 公司最新的 CortexM3 内核 Cortex M3 是 ARM 公司 推出的最新的针对微控制器应用的内核 提供业界领先的高性能和低成本的解决方案 将成为 MCU 应用的热点和主流 但是目前能够支持 Cortex M3 架构的开发工具很少 包括 SDT ADS1 2 等开发工具都不支持 MDK 是目前性价比最高的支持 Cortex M3 处 理器的开发工具 故本次设计的软件平台是建立在软件 MDK Vision4 11 之上的 精品文档 11欢迎下载11欢迎下载11欢迎下载11欢迎下载11欢迎下载11欢迎下载11欢迎下载 3 1 13 1 1程序设计流程图程序设计流程图 开始 系统初始化 TFT 初始化 触摸屏初始化 SD 卡初始化 VS1003 初始化 MP3 播放程序 触摸屏按 下 播放模式设置 读取触摸屏 数据 实行 相应操作 图 3 1 程序设计流程图 本系统的程序设计流程图如图 3 1 所示 工作过程大致为 STM32 通过从 SD 卡中 读取 MP3 文件 将所读取的数据流发送到 VSl003 解码器中解码播放 TFT 触摸屏则用 于显示歌曲的实时播放状态 歌词的显示 功能按扭和控制歌曲的快进 快退 停止 等 3 23 2 各模块软件系统设计各模块软件系统设计 3 2 13 2 1VS1003VS1003 驱动程序驱动程序 1 VS1003 初始化的一般流程如下 1 硬复位 xReset 0 2 延时 xDCS xCS xReset 置 1 3 等待 DREQ 为高 4 软件复位 SPI MODE 0 x0804 5 等待 DREQ 为高 软件复位结束 张蓝凯 基于 STM32 的 MP3 播放器设计 12 6 设置 VS1003 的采样率 SPI AUDATA 0 xBB81 采样率 立体声 7 设置重音 SPI BASS 0 x0055 8 设置音量 SCI VOL 0 x2020 9 向 VS1003 发送 4 个字节无效数据 用以启动 SPI 发送 2 VS1003 播放 MP3 的一般流程如下 1 打开一个指定的 MP3 文件 2 发 32 个字节的数据到 VS1003 3 检测 DREQ 当 DREQ 为高时发下一个 32 字节的数据 4 是否发完 32 个字节 否 则回到第 3 步 5 是否发完打开的 MP3 文件 否 则回到第 2 步 6 关闭打开的 MP3 的文件 VS1003 读写函数如下 u16 Vs1003 REG Read u8 address 读寄存器 void Vs1003 DATA Write unsigned char buf 写数据 void Vs1003 CMD Write u8 address u16 data 写命令 void Vs1003 Init void 初始化 VS1003 void Mp3Reset void 硬复位 void Vs1003SoftReset void 软复位 void set1003 void 设置 VS1003 的音量 播放模式等 void VsRamTest void RAM 测试 void VsSineTest void 正弦测试 u16 GetDecodeTime void 得到解码时间 u16 GetHeadInfo void 得到比特率 void ResetDecodeTime void 重设解码时间 void LoadPatch void 加载频谱分析代码 void GetSpec u8 p 得到分析数据 3 2 23 2 2TFTTFT 显示屏驱动程序显示屏驱动程序 驱动 TFT 显示屏实际上就是对 ILI9320 驱动 IC 的操作 对 ILI9320 的初始化操 作如下 精品文档 13欢迎下载13欢迎下载13欢迎下载13欢迎下载13欢迎下载13欢迎下载13欢迎下载 1 向 ILI9320 控制器写入 0 x00 2 如果返回的数据为不是 0 x9320 则驱动 IC 不是 ILI9320 停止初始化 3 如果返回的数据为 0 x9320 则向相应的寄存器写入默认的数据 启动驱动 IC 4 拉低片选信号 CS 再写 R22h 寄存器 接着写入要写的数据 5 写结束后再将 CS 拉高 TFT 显示屏的读写函数如下 extern void TFT Write Start void 写开始 extern void TFT Write End void 写结束 extern void TFT SetGRAMHVA u16 x0 u16 y0 设置 GRAM 的最初地址 extern void TFT SetGRAMArea u16 HSA u16 HEA u16 VSA u16 VEA 设置一 个 GRAM 显示区域 extern void TFT init void TFT 显示屏初始化 extern void TFT Test Square u16 x0 u16 x1 u16 y0 u16 y1 u16 Color extern void TFT Clear u16 x0 u16 x1 u16 y0 u16 y1 u16 Color 清屏 函数 extern void DrawOnePixel u16 x u16 y u16 Color 画点函数 extern void Write Asc8x16E u16 x u16 y u16 TextColor u16 BackColor u16 W Char 8 16 英文字符 extern void Write Asc12x24E u16 x u16 y u16 TextColor u16 BackColor u16 W Char extern void Write Asc12x24E String u16 x u16 y u16 TextColor u16 BackColor u8 W String extern void Write Asc20 x40E u16 x u16 y u16 TextColor u16 BackColor u16 W Char extern void Write GB16 u16 x u16 y u16 TextColor u16 BackColor u8 W Char 16 16 中文字符 extern void Write GB 16 And Asc8x16E u16 x u16 y u16 TextColor u16 BackColor u8 W String extern void Write GB 24 And Asc12x24E u16 x u16 y u16 TextColor u16 BackColor u8 W String 张蓝凯 基于 STM32 的 MP3 播放器设计 14 extern void Display Picture u16 x u16 y u16 Width u16 Height u16 Picture 显示图片 3 2 33 2 3SDSD 卡驱动程序卡驱动程序 1 驱动模选择 SD 卡上电时 如果 CS 接地 SD 将进入 SPI 模式 CS 接高电平 将进入 SD BUS 模式 在 SD BUS 模式时 发送 CMDO SD 卡不会回应 在 SPI 模式时 发送 CMD0 SD 卡能回应 R1 信息 2 初始化 SD 卡 进入 SD BUS 模式后 发送 CMDO 复位 SD 卡 由于处于 SD BUS 模式 SD 卡此时不 会回复信息 发送命令的时候需要注意 SD 卡命令状态 不同的状态只能响应待定的 命令 下面为初始化命令发送流程 1 CMDO 复位卡 2 CDM55 用户命令 3 CMD41 SD 卡工作电压设置命令 4 CMD2 从默认地址获取 SD 卡 ID 5 CMD3 获取一个新地址 6 CMD9 从新地址读取 SD 卡 ID 7 CMD7 选择新地址的 SD 卡为有效卡 8 CMD55 用户命令 9 CMD6 设置数据位宽 10 CMD16 设置 BLOCK 长度 11 CMD13 读取当前 SD 卡状态 12 初始化完成 3 发送 SD 卡支持的操作命令 不同的 SD 卡所支持的命令稍有不同 但基本命令都是支持的 详细支持哪类命 令要从 SD 卡的 ID 中获得 这一步主要为读 写 擦这三个功能 读 CMD17 写 CMD24 擦 CMD38 4 退出 SD 卡操作 如果总线上挂有多个 SD 卡 就需要用 CMD7 命令退出当前 SD 卡 从面选择其他 的 SD 卡操作 CMD7 命令为选择卡或取消 精品文档 15欢迎下载15欢迎下载15欢迎下载15欢迎下载15欢迎下载15欢迎下载15欢迎下载 卡 在初始化的时候发送 CMD7 命令 SD 卡将进入数据发送模式 在数据模式里发送 CMD7 则退出当前卡的操作 需要注意的是 在数据模式里不同的状态只支持特定命令 SD 卡读写函数如下 u8 SPI ReadWriteByte u8 TxData SPI 总线读写一个字节 u8 SD WaitReady void 等待 SD 卡就绪 u8 SD SendCommand u8 cmd u32 arg u8 crc SD 卡发送一个命令 u8 SD SendCommand NoDeassert u8 cmd u32 arg u8 crc u8 SD Init void SD 卡初始化 u8 SD ReceiveData u8 data u16 len u8 release SD 卡读数据 u8 SD GetCID u8 cid data 读 SD 卡 CID u8 SD GetCSD u8 csd data 读 SD 卡 CSD u32 SD GetCapacity void 取 SD 卡容量 u8 SD ReadSingleBlock u32 sector u8 buffer 读一个 sector u8 SD WriteSingleBlock u32 sector const u8 buffer 写一个 sector u8 SD ReadMultiBlock u32 sector u8 buffer u8 count 读多个 sector u8 SD WriteMultiBlock u32 sector const u8 data u8 count 写多个 sector 4 4系统调试系统调试 4 14 1 运行过程运行过程 1 使用 MDK uvision 4 11 编译程序生成相应的 hex 文件 2 使用串口线将板子的串口与 PC 机连接 设置启动方式 将 Boot0 接高电平 Boot1 接低电平 3 打开 mcuisp V0 993 单片机在线编程专家 加载 MDK 生成的 hex 文件 将 程序烧录到控制器中 4 设置启动方式 将 Boot0 接低电平 Boot1 接低电平 5 复位一下硬件 即可进入 MP3 播放界面 6 插上耳机 即能听到美妙的音乐 张蓝凯 基于 STM32 的 MP3 播放器设计 16 4 24 2 设计过程遇到的困难和问题设计过程遇到的困难和问题 4 2 14 2 1硬件方面硬件方面 在本次设计中 由于首次用到 Altium Designer 来设计 PCB 遇到了各种各样的 困难和问题 例如 由于设计的原理图很大 如果把所有的元件都画在同一张原理图 上 那么将会显得非常的杂乱 烦琐 在这里我使用了层次图的设计方法 把子模块 各放到一个层中设计 在顶层中再把子模块连接起来 不仅使设计显得更加直观 而 且利于模块之间的移植 还有 层之间的元件重叠 不显示绿色报错 在设计中第一次用到贴片元件 也是本次设计中的一次挑战 经过多次尝试努力 终于找到了焊接贴片元件的诀窍 1 首先将元件小心地放到 PCB 板上 使其与焊盘对齐 要保证芯片的放置方 向是正确的 2 将烙铁头尖沾上少量的焊锡 在两个对角位置的引脚上加少量的焊锡 使 芯片固定而不能移动 3 在焊完对角后重新检查芯片的位置是否对准 如有必要可进行调整或拆除 并重新在 PCB 板上对准位置 4 在 IC 脚上加满焊锡 为拖焊作准备 5 把 PCB 板 45 度角斜放或立起来 以保证焊接过程中 熔化的焊锡能顺利流 动 6 从上到下 顺势来回拖动烙铁头 使焊锡与贴片 IC 引脚分离 7 检查无虚焊 无短路后 用硬毛刷浸上酒精沿引脚方向仔细擦拭 直到焊 剂消失为止 即可完成焊接 在完成焊接工作之后 上电调试时 发现系统非常不稳定 由于硬件系统上没有 接有 JTAG 仿真接口 不能在 MDK 中仿真调试 所以只能在程序中的每一个子初始化 函数中加入一个串口测试程序 结果发现程序死在 VS1003 的初始化中 在经过几个 日日夜夜的努力之后 正当我准备要放弃 重新做板子的时候 无意之间手碰到了 VS1003 的晶振引脚 系统又恢复正常了 通过与主控制器的晶振接法作比较后 在 VS1003 的晶振引脚之间加上一个 1M 的电阻后 系统就可以正常工作了 精品文档 17欢迎下载17欢迎下载17欢迎下载17欢迎下载17欢迎下载17欢迎下载17欢迎下载 4 2 24 2 2软件方面软件方面 在首次驱动 VS1003 时 声音总是断断续续的 在逐步检查 排除了晶振的频率 SPI 的速度 STM32 控制器的处理速度之后 发现原来是在写入数据之后没有等待 VS1003 的 DREQ 引脚为高电平 就继续写入数据 在加入 while GPIOC IDR 等待 DREQ 为高 这一条语句之后 就能正常的播放音乐了 5 5总结总结 通过这次毕业设计的研究与制作 让我了解了 MP3 音乐文件的结构 以及在 SD 卡上以 FAT16 存储方式的基础上 针对 MP3 各模块部分 包括主控制芯片及音频解码 芯片 SD 卡模块 以及 TFT 触摸屏等部分的分和互相协助配合下 完成了电路原理图 以及 PCB 制作 焊接与调试电路板 然
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024安全员考试题库试题及答案详解(名师系列)
- 2026届山东省临沂市九年级化学第一学期期中经典模拟试题含解析
- 腔镜甲状腺的护理查房
- 2026届山东省济宁市鲁桥镇第一中学化学九年级第一学期期中经典试题含解析
- 广东省普宁市2026届英语九上期末统考试题含解析
- 喷涂安全教育培训
- 湖北省襄阳市第三十四中学2026届九年级化学第一学期期中质量检测试题含解析
- 2026届辽宁省大连金普新区五校联考化学九上期末调研模拟试题含解析
- 2026届四川省乐至县化学九年级第一学期期中达标检测模拟试题含解析
- 2026届青海省西宁二十一中学化学九上期中达标测试试题含解析
- 2025年工勤技师考试题库及答案
- 部编版六年级语文上册重点难点解析
- 2024年全国工会财务知识大赛备赛试题库500(含答案)
- 检验科进修总结(2篇)
- 打印复印费明细
- GB/T 9798-2005金属覆盖层镍电沉积层
- 《编程猫系列》第1课-Hello-编程猫(课件)
- 高一上学期月考语文试题(八套)
- 非典型骨折课件
- 2022标准方法验证报告(安检)
- 学术论文写作与规范课件
评论
0/150
提交评论