1、摘 要 随着计算机技术,微电子技术和数字信号处理技术的迅速发展,各种消费类电子 产品朝着集成化和小型化发展。特别是随着网络多媒体技术的普及、数字音视频技术的快速发展,以 MP3 为代表的消费类电子产品广泛的应用在我们的生活中,数字音频技术得到了长足的发展。 MP3 全称是动态影像专家压缩标准音频层面 3( Moving Picture Experts Group Audio Layer III)。是当今较流行的一种数字音频编码和有损压缩格式,它设计用来大幅度地降低音频数据量,而对于大多数用户来说重放的音质 与最初的不压缩音频相比没有明显的下降。它是在 1991 年由位于德国埃尔朗根的研究组织
2、Fraunhofer-Gesellschaft 的一组工程师发明和标准化的。 MP3 就是一种音频压缩技术,由于这种压缩方式的全称叫 MPEG Audio Layer3,所以人们把它简称为 MP3。 MP3 是利用 MPEG Audio Layer 3 的技术,将音乐以 1:10 甚至 1:12 的 压缩率 ,压缩成容量较小的 file。 能够在音质丢失很小的情况下把文件压缩到更小的程度。而且还非常好的保持了原来的音质。 本 课题 以基于单片机的 MP3 数字音频系统的软件设计与实现过程为主要内容,阐述了其相关技术和具体实现流程,其中重点分析 了 FAT32 文件系统在单片机上的移植。整个系统
3、 利用 STC 公司 的单片机 12C5A60S2 作为系统的中央处理器, 采用 VLSI 公司的 VS1003 解码芯片作为 MP3 解码芯 片, SD 卡作为 系统的 存储器 , LPH7366 显示屏作为 系统的 显示屏 。 经过实验测试证明,采用单片机实现的 MP3 播放系统 切实可行,且 具有很高的稳定性、实用性和扩展性。 关键词 : 12C5A60S2 MP3 FAT32 VS1003 SD 卡 目 录 1 前言 . 1 1.1 设计指标 . 1 1.1.1 设计要求 . 1 2 文献综述 . 1 2.1 软件介绍 . 1 2.1.1 Protues 仿真功能介绍 . 1 2.1.
4、2 Keil Vision IDE 仿真功能介绍 . 2 2.2 STC12C5A602S . 5 2.3 VS1003-MP3/WMA 音频解码器 . 5 2.3 LPH7366LCD 模块 . 6 2.4 SD 存储卡 . 7 3 系统硬件设计 . 8 3.1 系统总体硬件设计 . 8 3.2 各模块硬件设计 . 9 3.2.1 显示模块硬件设计 . 9 3.2.2 音频解码模块设计 . 9 3.2.3 SD 卡模块设计 . 10 3.3 系统原理图 . 11 4 系统设计 . 12 4.1 模块介绍 . 12 4.1.1 主程序模块 . 12 4.1.2 显示程序 . 12 4.1.3
5、SD 卡程序 . 14 4.1.4 音频解码程序 . 15 4.1.5 znFAT 文件系统程序 . 16 4.2 程序流程图 . 17 4.2.1 主程 序流程图 . 17 5 测试分析与计算 . 18 5.1 SD 卡兼容性测试 . 18 5.2 MP3 兼容性测试 . 19 6 系统的安装与调试 . 20 7 创新与特点 . 20 8 总结 . 20 致谢 . 22 参考文献 . 23 Abstract . 24 附录 1 主程序 附录 2 实物图 毕业设计成绩评定表 1 1 前言 MP3 全称是 动态影像专家压缩标准音频层面 3( Moving Picture Experts Grou
6、p Audio Layer III)。是当今较流行的一种数字音频编码和有损压缩格式,它设计用来大幅度地降低音频数据量,而对于大多数用户来说重放的音质与最初的不压缩音频相比没有明显的下降。 MP3 是利用 MPEG Audio Layer 3 的技术,将音乐以 1:10 甚至 1:12 的压缩率,压缩成容量较小的文件 ,换句话说,能够在音质丢失很小的情况下把文件压缩到更小的程度, 而且还非常好的保持了原来的音质 。网络上可以找到大量的 MP3 资源,不少手机, VCDPlayer、 DVDPlayer、 PDA 都可以播放 MP3 文件 。 现在市场上普遍流行的 MP3 播放器主要以硬核处理器为
7、核心,利用数字信号处理器 DSP 来完成处理传输和解码 MP3 文件的任务。 相对于用软核处理器, 硬核处理器 具有 速度快,价格 便宜和开发难度低优点。在如今 MP3 播放器竞争如此激烈的市场,价格 和开发时间成为了影响产品竞争力的重要因素。本课题以单片机为控制单元,以最低的成本满足 MP3 文件播放,控制和显示的功能 。以 SD 卡作为存储器,最大支持 2GB的 SD 卡,能存储大约 500 首 MP3,能满足 大部分用户的要求。 供电方面采用 5V 直流电源供电 , 相当的便捷 。本课题的实现 ,为低端的 MP3 播放器系统设计提供参考,对于 MP3 播放器的设计有着积极的意义。 1.1
8、 设计指标 1.1.1 设计要求 ( 1)能播放指定目录的 MP3 歌曲; ( 2) 能 上一曲下一曲 ; ( 3)能显示英文歌曲名; ( 4)能显示 SD 卡的信息 ; ( 5)能在开发板上 进行串口的调试功能。 2 文献综述 2.1 软件介绍 2.1.1 Protues 仿真功能介绍 Protues 是目前最好的模拟单片机外围器件的工具,它可以仿真 51 系列 AVR、 PIC等常用的 MCU 及其外围电路 如 (LCD、 RAM、 ROM、键盘、电机、 LED、 AD/DA,部分 SPI 器件,部分 I2C 器件。 2 当然,软件仿真精度是理想化的,而且不可能所有的器件都找得到相应的仿真
9、模型,并未考虑到实际存在的干扰,可是用其对程序进行仿真可靠性还是很高的,并能减少调试时对单机的烧写,保证其复用次数。 Proteus 与其它单片机仿真软件不同的是,它不仅能仿真单片机 CPU 的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和 存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。 2.1.2 Keil Vision IDE仿真功能介绍 Keil Vision IDE是一个标准的 Windows 应用
10、程序,集成了 C51 编译器、 A51 汇编器、 L51 连接器、实时操作系统、项目管理器及调试器等,可以完成编辑、编译、链接、调试及仿真等整个开发流程,可以用 IDE 编译 C 或汇编源文件。 Vision采用 dScope作调试器,该调试器支持 MON51 及系 统模拟两种方式,高度功能强大。 dScope51 是 一个源级调试器和模拟器,它可以调试由 C51 编译器 A51 汇编器、 PL/M-51 编译器及ASM-51 汇编器产生的程序。 dScope51 可以通过 MON51 接目标板,使用 Keil c51 Mon51 型仿真器进行硬件实时仿真; dScope51 也可以进行软件模
11、拟仿真,不需要购买其它的附件,并且其功能也很强大,可模拟 CPU 及其外围器件,如内部串口、外部 I/O 及定时器等,能对嵌入式软件功能进行有效测试。在软件模拟仿真过程涉及硬件响应时, Keil提供了两种办法解决。一种解决 的方法是,利用 Kiel提供的调试函数实现。调试函数可以模拟外部设备产生的给 CPU 的模拟和脉冲输入信号,还可以产生外部中断,周期性更新模拟输入,将串行数据送入片内串行口等,解决了外部信号的输入问题。另一种解决的方法是,利用Keil提供的接口 AGSI(Advanced Generic Simulator Interface),用 VC+编写动态链接库(DLL),仿真单片
12、机外围设备,从而解决外部信号的输入问题及界面问题。 Keil提供的SDK 是相当于 Keil Vision仿真环境的一个插件,以 DLL 的形式提供在纯 软件仿真模式下,仿真 A/D 芯片、仿真 LCD 显示板及键盘等输入、输出功能,以窗口的形式体现外围设备和单片机之间的交互状态。 3 方案比较 以及硬件介绍 3 3.1.1 解码模块方案比较 方案一: 使用 STC12C2052AD 单片机读 取 WAV 格式音乐 , 利用 PWM 功能 , 把收到的数据合成声波 ,传输给外部音响播放。 以下是原理图: 图 1 单片机 PWM 解码电路 方案二:使用专门的数字音频解码芯片 VS1003 对 m
13、p3 文件进行硬件解码。 VS1003可以解码多种音频文件格式,而且支持较高比特率的音乐,音质好。 经比较可知,方案 一只能进行软件解码,播放格式局限,而方案二支持硬件解码,音质好,集成度高,编程较为简单等优点,所以选择 VS1003 作为解码芯片。 3.1.2 主控模块方案比较 方案一:使用 STC12C2052AD 单片机,此单片机 只一个时钟周期,速度快,而且有两路的 PWM,满足解码功能,原理图如下图所示: 4 图 2 STC12C2052AD 单片机 方案二:使用 STC12C5A602S 单片机,此单片机存储空间大,运行速度快, I/O 口有四种工作模式,引脚图如下: 图 3 ST
14、C12C5A602S 单片机 综合比较, STC12C5A602S 引脚丰富,带负载能力强, 而且价格便宜 是作为数字解码芯片的 最佳选择。 3.1.3 存储单元方案比较 方案一:使用 u盘作为储存单元。 需要使用到 PB375A 芯片。此芯片 是一颗集成了USB HOST、 FAT 文件系统及读写 U盘固件的芯片,外围器件很少,该芯片支持 FAT16 和FAT32 两种文件系统 。 5 方案二:使用 SD卡作为存储单元。 SD 价格便宜,而且速度较快,单片机读取 SD信息不需外加主控芯片。 综合比较,方案二有着低成本,利于编程等一些列的优点,是用于作为存储单元的最佳选择。 3.2 硬件介绍
15、3.2 .1 STC12C5A602S STC12C5A602S 是宏晶科技 生产的单时钟 /机器周期( 1T)的单片机,是高速 /低功耗 /超强抗干扰的第一代 8051 单片机,指令代码完全兼容传统 8051,但速度快 8-12 倍。内部集成 MAX810 专用复位电路, 2 路 PWM, 8 路高速 10 位 A/D 转换( 250K/s),针对 电机控制,强抗干扰场合。 主要性能参数: 增强型 8051 CPU, 1T,单时钟 /机器周期,指令代码完全兼容传统单片机 工作电压: 5V 3.3V 工作频率范围: 0 35Mhz,相当于普通 8051 的 0 420Mhz 用 户应用程序空间
16、: 64K 片上集成 1280 字节 RAM 通用 I/O 口 36 个,复位后:准双向口 /弱上拉(普通 8051 传统 I/O 口) 可设置成四种模式 :准双向口 /弱上拉,推挽 /强上拉,仅为输入 /高阻,开漏 每个 I/O 口驱动能力均可达到 20mA,但整个芯片最大不要超过 55mA 有 EEPROM 功能 看门狗 内部集成 MAX810 专用复位电路 共 4 个 16 位定时器 外部中断 I/O 口 6 路 PWM( 2 路) /PCA 8 路高速 10 位 A/D 转换 通用全双工异步串行口( UART) 3.2.2 VS1003-MP3/WMA 音频解码器 VS1003 是一个
17、单片 MP3/WMA/MIDI 音频解码器和 ADPCM 编码器。它包含一个高性能,自主产权的低功耗 DSP 处理器核 VS_DSP4,工作数据存储器,为用户应用提6 供 5KB 的指令 RAM 和 0.5KB 的数据 RAM。串行的控制和数据接口, 4 个常规用途的 I/O 口,一个 UART,也有一个高品质可变采样率的 ADC 和立体声 DAC,还有一个耳机放大器和地线缓冲器。 VS1003 通过一个串行接口来接收输入的比特流,它可以作为一个系统的从机。输入的比特流被解码,然后通过一个数字音量控制器到达一个 18 位过采样多位 - DAC。通过串行总线控制解码器。除了基本的解码,在用户 R
18、AM 中它还可以做其他特殊应用,例如 DSP 音效处理。 VS1003 特性: 能解码 MPEG 1 和 MPEG2 音频 层 III( CBR+VBR+ABR); WMA 4.0/4.1/7/8/9 5-384kbps 所有流文件; WAV(PCM+IMA AD-PCM);产生 MIDI/SP-MIDI 文件。 对话筒输入或线路输入的音频信号进行 IMA ADPCM 编码 支持 MP3 和 WAV 流 高低音控制 单时钟 操作 12.13MHz 内部 PLL 锁相环时钟倍频器 低功耗 内含高性能片上立体声数模转换器,两声道间无相位差 内含能驱动 30 欧负载的耳机驱动器 模拟,数字, I/O
19、 单独供电 为用户代码和数据准备的 5.5KB 片上 RAM 串行的控制,数据接口 可被用作微处理器的从机 特殊应用的 SPI Flash 引导 供调试用途的 UART 接口 新功能可以通过软件和 4 GPIO 添加 3.2.3 LPH7366LCD 模块 LPH7366 是 NOKIA 公司生产的可用于其 5110、 6150、 6100 等系列移动电话 的液晶显示模块,国内厂家也生产有类似的兼容产品。该产品除应用于移动电话外,也可广泛应用于各类便携式设备的显示系统。与其他类型的产品相比,该模块具有以下特点: 84x84 的点阵 LCD,可以显示 4 行汉字 。 7 采用串行接口与主处理器通
20、信,接口信号线大幅度减少,包括电源和地在内的信号线仅有 9 条。支持多种串行通信协议,传输速率高达 4Mbps,个全速写入显示数据,无等待时间。 LCD 控制器 /驱动器芯片以绑定到 LCD 晶片上,模块的体积很小。 采用低电压供电,正常显示时的工作电流在 200uA 以下,且 具有掉电模式。 3.2.4 SD 存储卡 SD 存储卡( Secure Digital Memory Card)是特别为符合新出现的音频和视频消费电子设备的安全性、容量、性能和环境等要湂而设计的一种存储卡。 SD 存储卡包含符合 SDMI 标准安全性的版权保护机制,速度更快而且存储容量更大。 SD 存储卡的安全系统使用
21、双方认证和 新的密码算法 技术,防止卡的内容被非法 使用。它还提供了一种无安 全性的访问方法访问用户自己的内容。 SD 存储卡的通信基于一个高级的 9 引脚接口(时钟、命令、 4 条数据线和 3 条 电源线),可以在最高 25MHz频率和低电压范围内工作。 SD 卡系统特性: 用于便携式和固定应用。 电压范围: - SD 存储卡: 基本通讯( CMD0、 CMD15、 CMD55、 ACMD41): 2.0 3.6V。 其他命令和存储器访问: 2.7 3.6V。 用于只读卡或读写卡。 时钟频率 0 25MHz。 读写速率高达 10MB/s(用 4 条并行数据线)。 在有 10 张卡时仍能达到最高数据速率。 纠正存储区的错误。 在读操作的过程中拔出卡不会破坏卡的内容。 向前兼容多媒体卡。 版权保护机制 符合 SDMI 标准的最高安全性。 卡有密码保护功能(可选) 。 用机械开关实现的写保护特性。 内嵌的写保护特性(游久和暂时)。