1、 本科毕业论文 基于 ATmega16 的 MP3 设计与实现 The Design and Implementation of MP3 Based on ATmega16 学 院:理学院 专 业:电子科学与技术 姓 名:李伟男 学 号: 101412786 指导教师:李根小 职 称:讲 师 论文提交日期:二一四年 摘 要 随着 MP3 播放功能在各类手持和车载音频设备中的普及,对于 MP3 播放技术的研 究有了极高的社会价值和经济价值。本设计对于 MP3 功能进行了初步的研究与实现。 MP3 编码标准压缩率高,压缩质量好,是广为应用的音频压缩格式。本设计是基于 ATmega16内核单片机实现
2、对 MP3的解码以及播放功能的。 ATmega16是一款高性能、低功耗的 8 位 AVR微处理器,拥有 32 个 8 位通用寄存器,工作于 16MHz 时性能高达 16MIPS,具有先进的指令集以及单时钟周期指令执行时间,从而可以减缓系统在功耗和处理速度之间的矛盾。正因为 ATmega16 具有如此多的特点,为许多嵌入式控制应用提供了灵活而低成本的解决方案 。本设计采用了VS1003 解码芯片 来 实现 MP3 播放功能。该芯片可用于解码 MP3 以及 WMA 格式的音频文件,具有高低音控制、流媒体支持、低功耗运行、内含高性能片上立体声数模转换器,两声道间无相位差等特点。设计最终实现了 MP3
3、 的播放以及在 LED显示屏上显示正在播放的歌曲、当前音量,并由按键和遥控器控制整个播放器。 关键词: MP3 播放技术 ;ATmega16 单片机; AVR 微处理器; VS1003 解码芯片 The Design and Implementation of MP3 Based on ATmega16 Abstract With the popularity of MP3 playback function in various portable and vehicle audio equipments, the study of MP3 display technology has hig
4、h social and economic value. This design studied the MP3 function and its realization. MP3 coding standard with high compression ratio and high quality compression, are widely used as audio compression format. We used the ATmega16 kernel MCU to realized the decoding and play back funvtion of MP3. Th
5、e ATmega16, a 8 bit AVR microprocessor, has higher performance, lower power consumption, 32 8-bit-general-purpose registers, working in the 16MHz performance up to 16MIPS. The ATmega16 is an advanced instructions in a single clock cycle time of execution, which can conflict mitigation system in powe
6、r consumption and processing speed. Based on advantages of the ATmega16, it provides flexible and low cost solution to many embedded control applications. In the design, we select the VS1003 decoder chip to realize MP3 playback function. The VS1003 decoder chip can be used for decoding MP3 and WMA f
7、ormat audio files, which has high bass control, streaming media support, low power operation and stereo digital to analog converter with high performance on-chip, features no phase difference between two channels. The design finally achieved MP3 playback and displayed on the LED display is playing s
8、ongs, the current volume, and the keys and remote control of the player. Key words: MP3 playback function ; ATmega16 single chip microcomputer; AVR Microprocessor; VS1003 decoding chip 目 录 1 引言 . 1 1.1 背景与意义 . 1 1.2 课题设计任务 . 1 1.3 MP3 设计方案 . 1 1.4 需要研究的内容 . 2 1.4.1 分析 FAT 磁盘文件格式 . 2 1.4.2 分析出 MP3 的解
9、码方式 . 2 1.4.3 了解 MP3 解码芯片的相关使用 . 2 1.4.4 对 SD 卡的初始化及文件读写 . 2 1.5 设计目的 . 3 2 ATmega16 单片机 . 3 2.1 简介 . 3 2.2 产品特性 . 3 2.3 各引脚功能设置 . 4 2.4 AVR CPU 内核 . 6 3 FAT 文件系统 . 7 3.1 FAT 文件系统简介 . 7 3.2 FAT 文件系统特性 . 8 3.3 FAT 文件系统应用 . 8 4 VS1003 解码芯片 . 9 4.1 VS1003 解码芯片简介 . 9 4.2 VS1003 解码芯片特性 . 9 4.3 初始化 VS1003
10、 解码芯片 . 10 5 SD 卡初始化设置 . 12 5.1 关于 SD 卡的简介 . 12 5.2 SD 卡复位到 SPI 的方式 . 13 5.3 SD 卡 SPI 方式读写 . 14 6 结论 . 17 致谢 . 18 参考文献 . 19 附录 . 20 插图和附表清单 1. 图 1 ATmega16 引脚图 . 4 2. 图 2 AVR 结构的方框图 . 6 3. 图 3 FatFs 模块层次结构图 . 8 4. 图 4 VS1003 模块连接示意图 . 10 5. 图 5 对 SD 卡复 位操作时序 . 13 6. 图 6 将 SD 卡初始化为 SPI 方式时序图 . 14 7.
11、图 7 对 SD 卡进行单数据块读操作时序图 . 15 8. 图 8 对 SD 卡单数 据块进行写操作时序图 . 16 9. 表 1 SD 卡接口定义 . 12 缩 略 语 表 SD(secure digital memory card) 安全数码卡 USB( universal serial bus) 通用串行总线 LED( light emitting diode) 发光二极管 FAT( file allocation table) 文件配置表 RISC( reduced instruction set cpu) 精简指令集计算机 EEPROM( electrically erasable
12、 programmable read-only memory) 电可擦可编程只 读存储器 SRAM( static RAM) 静态存储器 JTAG( joint test action group) 芯片内部测试协议 USART( universal synchronous/asynchronous receiver/transmitter)通用 同步 /异步串行接收 /发送器 SPI( serial peripheral interface) 串行外设接口 CPU( central processing unit) 中央处理器 RWW( read while writing) 同时读写能力
13、I/O( input/output) 输入 /输出 MPEG( moving picture experts group) 运动图象专家组 TC(timer/counter) 定时器 /计数器 A/D (analog to digital converter) 模 /数转换器 PC( program counter) 程序计数器 RTOS( real-time operating system) 实时操作系统 API( application programming interface) 应用程序编 程接口内蒙古农业大学学士学位论文 1 1 引言 1.1 背景与意义 MP3 的全名是 MPEG
14、 Audio Layer-3,是一种声音文件的压缩格式。世界第一台 MP3 播放器诞生在韩国企业 Saehan(世韩, 1995 年从三星分离出来),并在1998 年推出第一台 MP3 播放器 MPman F10。 MPMan 取意于 MP3 与 WALKMAN 的结合。MPMan F10 的体积为 70 90 16.5mm,约有四个 1.44M 软盘堆叠起来这么大,体重为 65g。音频数据压缩方法是通过研究人耳和大脑听觉神经对音频失真的敏感度,在编码时先分析声音文件的波形, 利用滤波器找出噪音电平 ( Noise Level ),然后滤去人耳不敏感的信号,通过矩阵量化的方式将余下的数据每一位
15、打散排列,最后编码形成 MPEG 的文件。而音质听起来与 CD 相差不大。 MP3 的好处在于大幅降低数字声音文件的容量,而不会破坏原来的音质。在抽样分辨率为 l6bit,抽样频率 44.1kHz,声音模式为立体声,存储 l 秒钟 CD 音质的 Wave文件,须要 1411.2kbit 的存储容量,存储介质的负担相当大。 最近,国内许多创业者想要开发 MP3 播放机 (MP3 player)。可是苦于目前可用且便宜的 MP3 系统 级单片机实在不多,且又在成本不断要求降价的压力之下,创业者想要以便宜的技术方案来获得更高的利润,实属不易。本文以技术的观点来介绍 ATmega16 单片机,若不考虑
16、体积大小、耗电量、额外的复杂功能、生产成本,它是能以单一的技术整合方案,来实现一台可用的 MP3 播放器。 MP3已经成为了当今音乐播放领域的主流产品 ,消费者已经广泛接受 MP3格式音乐播放器作为传统音频设备的替代品 ,其中有诸多原因促成此局面。越来越低廉的价格 ,越来越广泛的音乐获取途径 ,越来越多的设备支持以及更为出色的兼容性都是 MP3 播放器市场发展的动力。 随着科技的进步 ,计算机技术施展的舞台也越来越宽广 ,特别是小型化的单片机 ,己经被用于电子行业的各个领域当中 ,而世界各大生产厂商也不断的开发自己的新产品。 1.2 课题设计任务 本项目通过 ATmega16 单片机设计并实现
17、了 MP3 音乐播放器的功能。其中包括 LED 显示屏的运用, VS1003 解码器的使用,以及 SD卡的驱动。设计采用汇编语言实现对个部件的驱动,要求实现选曲,播放,声音加减,显示播放歌曲以及当前音量等功能。 1.3 MP3 设计方案 本设计目的是基于 ATmega16 单片机实现 MP3 播放器功能。这其中 包括控制单元、存储单元、音频转化部分、外部控制、通讯系统、外部显示以及电源部分等功能的实现。 2 基于 ATmega16 的 MP3 设计与实现 控制部分:本设计控制部分主要为 ATmega16 单片机控制整个系统,提供USB 控制。 存储部分:存储部分作为 MP3 播放文件的存储器采
18、用外部 SD 卡进行存储,可以实现大容量寄存。 音频转化部分:采用 VS1003 解码芯片,(再解释得细些)。 外部控制:具有对 MP3 进行操作的外部中断按键以及红外线遥控器。 通讯系统:包括 USB 以及串口通信。 外部显示:包括了 LED 发光管指示灯,液晶显示屏等。 电源部分:通过 USB 为 MP3 提供 所需要的电能。 1.4 需要研究的内容 1.4.1 分析 FAT 磁盘文件格式 由于本设计要对 SD 卡数据进行读写,其内部数据存储方式及引导区大小等情况显得尤为重要。因此先对 SD 卡数据的格式进行分析才可读数据。现今,大多数 SD 卡的数据格式都是 FAT 或 FAT16 格式
19、。首先需要认真分析 FAT 磁盘文件格式再进行设计。如果忽略此环节,势必在读取数据时造成错误,对结果造成重大影响。 1.4.2 分析出 MP3 的解码方式 在使用 MP3 解码芯片解码时,必然会用到解码相关知识。而且,在将数据送到 MP3 解码芯片前,对数据做 必要的处理也可以提高 MP3 解码芯片处理效率,增加设计的可实现性。因此了解和分析 MP3 的解码格式。如果对 MP3 解码不够了解,就可能导致设计的失败。 1.4.3 了解 MP3 解码芯片的相关使用 对于不同的 MP3 解码芯片,其操作、控制字及外围电路也各不相同。选用性价比高并且外围电路简单的芯片是非常重要的环节。这不但可以降低成
20、本,也会大大的提高系统的可行性并降低系统成本。本设计采用了 VS1003 解码芯片实现 MP3 播放功能。 1.4.4 对 SD 卡的初始化及文件读写 SD 卡属于存储设备,但是,它与一般的存储设备不 同。其与集成芯片相似,需要对其初始化才能正常工作。而对其进行读写操作也与其它存储器不同,每次读写均需写入相应的命令控制字,否则,对 SD 卡的操作均为无效操作。 内蒙古农业大学学士学位论文 3 1.5 设计目的 随着科技的进步, MP3 播放器已经成为现代消费者首选的随身听产品,它以小巧玲珑的体积,精美的外形,低廉的价格及其出色的音质和强大的功能深得消费者的厚爱。而设计者们也在乐此不疲的为 MP
21、3 播放器加入一些新的设计元素,让 MP3 播放器在消费者面前永远保持着新鲜的卖点和创新的活力。 如今, MP3 播放技术已经非常成熟,现阶段各大商家最为关心的并 不是如何实现 MP3 播放功能,而是如何能在低成本低功耗的平台上实现 MP3 播放功能。这就意味着对原始 MP3 播放功能标准在实现过程中的优化是当前的一个热点,这也是本设计的意义所在。 MP3 播放器是一种典型的嵌入式设备,本设计采用大容量存储,在功能上实现多功能化。另外,近年来,嵌入式系统与单片机开发的有机结合,已经广泛的被应用于网络通信、工业控制、机顶盒等诸多领域。本设计提出了一种基于ATmega16 单片机的 MP3 播放器
22、设计方案,这也进一步的体现了该设计的灵活性。目前该设计已经实现,实践证明,此播放器拥有市场 MP3 所用的全部功能并能够很好地运行。 2 ATmega16 单片机 2.1 简介 ATmega16 单片机 是基于增强的 AVRRISC 结构的低功耗 8 位 CMOS 微控制器。由于其先进的指令集以及单时钟周期指令执行时间, Atmega16 单片机 的数据吞吐率高达 1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。 ATmega16 单片机的 AVR 内核具有丰富的指令集和 32 个通用工作寄存器。所有的寄存器都直接与算逻单元( ALU)相连接,使得一条指令可以在一个时钟周期内
23、同时访问两个独立的寄存器。这种结构大大的提 高了代码效率,并且具有比普通的 CISC 微控制器最高至 10 倍的数据吞吐率。 ATmega16 单片机 有如下特点: 16k 字节的系统内可编程 Flash(具有同时读写的能力,即 RWW)、 512 字节 EEPROM、 1K 字节 SRAM、 32 个通用 I/O 接口、32 个通用寄存器、用于边界扫描的 JTAG 接口、支持片内调试与编程、三个具有比较模式的灵活的定时器 /计数器( T/C)、片内 /外中断、可编程串行 USART、有起始条件检测器的通用串行接口、 8 路 10 位具有可选差分输入级可编程增益的 ADC、具有片内振荡器的可编
24、程看门狗定时器、一个 SPI 串行端口,以及 6个可以通过软件进行选择的省电模式。 2.2 产品特性 Atmega16 单片机是一个高性能、低功耗的 8 位 AVR 处理器,拥有先进的4 基于 ATmega16 的 MP3 设计与实现 RISC 结构、 131 条指令,大多数的指令执行时间为单个时钟周期。拥有 32 个 8位通用寄存器,全静态工作,工作于 16MHz 时性能高达 16MIPS。拥有只需要两个时钟周期的硬件乘法器,非易失性程序和数据储存器。 16K 字节的系统内可编程 Flash,擦写寿命达到 10000 次。 在外设方面, ATmega16 单片机拥有两个具有独立预分频器和比较器功能的8 位定时器 /计数器, 一个具有预分频器、比较功能和捕捉功能的 16 位定时器 /计数器。 8 路 10 位 ADC, 8 个单端通道, 2 个具有可编程增益的差分通道,面向字节的两线接口,两个可编程的串行 USART,可工作于主机 /从机模式的 SPI串行接口,具有独立片内振荡器的可编程看门狗定时器。 工作电压: 4.5-5.5V,速度等级: 0-16MHz。 2.3 各引脚功能设置 ATmega16 单片机具有 44 个引脚,各引脚功能如图 1 所示。 Fig.1 The pin figure of the ATmega16 图 1 ATmega16 引脚图