基于atmega16的mp3设计与实现大学论文.docx
- 文档编号:13622192
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:65
- 大小:1.56MB
基于atmega16的mp3设计与实现大学论文.docx
《基于atmega16的mp3设计与实现大学论文.docx》由会员分享,可在线阅读,更多相关《基于atmega16的mp3设计与实现大学论文.docx(65页珍藏版)》请在冰点文库上搜索。
基于atmega16的mp3设计与实现大学论文
毕业设计(论文)
题目:
基于Atmega16的mp3设计与实现
2014年11月20日
子信息工程系时间:
2014年3月1日
学生姓名
指导教师
设计(论文)题目
基于Atmega16的MP3设计与实现
主要研
究内容
本论文主要研究设计了一种基于Atmega16的MP3音乐播放器系统。
主控芯片为Atmega16,解码芯片为VS1003,显示屏为LCD12864可显示中文,红外遥控控制。
研究方法
首先了解嵌入式开发平台的工作原理,实现在硬件平台上烧写嵌入式系统;通过模块化的编程思想逐步编写实现MP3的各个功能的C语言程序,通过将每个功能的实现、验证、测试,然后再将每个功能模块添加进去,整体实现MP3的每个功能。
主要技术指标(或研究目标)
MP3功能目标:
1.实现歌曲播放,暂停,重播,上一首,下一首等功能。
2.显示播放列表。
3.选择相应歌曲播放。
4.实现音量大小调节以及静音模式
5.显示当前播放歌曲名字
主要参考文献
[1]吴迅.用单片机设计音乐播放器[J].山东:
电子世界,2009.6
[2]李广弟朱月秀.单片机基础 [M].北京:
北京航空航天大学出版社,2007.6:
168~199
[3]周立功.ARM微控制器基础与实践[M].北京航空航天大学出版社,2003.1:
24~27
[4]周立功.ARM嵌入式系统基础教程[M].北京航空航天大学出版社,2008.9:
103~124
[5]电子学报李文明.AVR单片机读写SD卡技术.电子测量与仪器学报[R].中国科学院,2007.6.
[6]马驰崔向唐建.MP3播放器解码功能的实现.沈阳:
沈阳工业学院,2003.4:
41-69.
说明:
一式两份,一份装订入学生毕业设计(论文)内,一份交学院(直属系)。
基于Atmega16的MP3设计与实现
摘要
嵌入式技术近些年来得到的飞速的发展和广泛的应用,已然成为最新最热门的行业之一。
由此本文提出一种嵌入式技术基于Atmega16的音乐播放器的设计与实现方案。
主要包括显示播放列表,显示当前播放歌曲名字,通过点击歌曲名字播放相应歌曲,以及暂停,上一首,下一首,快进,静音和音量大小的调节功能的设计与实现。
MP3实际就是一个功能特定的小型电脑。
MP3需要包括存储器,显示器,中央处理器以及解码器等。
本文中介绍的MP3设计与实现,存储器采用SD存储卡,显示器为LCD12864显示屏,中央处理器为Atmega16单片机微处理器,解码器为VS1003解码芯片,并且对MP3播放器进行了硬件和软件的设计和实现,基本实现MP3播放器的功能。
关键字:
嵌入式,Atmega16,MP3,VS1003解码芯片
ThedesignandimplementationofMP3basedonAtmega16
Abstract
Rapiddevelopmentandwideapplicationofembeddedtechnologyinrecentyears,resulting,hasbecomeoneofthehottestnewindustries.ThispaperpresentsatechniquewherebyanembeddedmusicplayerbasedAtmega16designandimplementation.Includingdisplayplaylist,displaysthenameofthecurrentlyplayingsong,playingsongsbyclickingonthenameofthecorrespondingsong,andpause,previoustrack,nexttrack,fastforward,muteandvolumedesignandimplementationoftheregulatoryfunctionofthesize.MP3isactuallyasmallcomputer-specificfeatures.MP3needtoincludeamemory,adisplay,acentralprocessorandadecoderandthelike.MP3designandimplementationdescribedinthisarticle,thememoryusingSDmemorycard,thedisplayisLCD12864display,centralprocessorsingle-chipmicroprocessorAtmega16decodertodecodechipVS1003,andMP3playerswereonthehardwareandsoftwaredesignandimplementation,thebasicrealizationoftheMP3playerfunction
Keywords:
Embedded,Atmega16microcontroller,MP3,VS1003decoderchip
第1章绪论
1.1嵌入式系统
嵌入式系统是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会(U.K.InstitutionofElectricalEngineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。
国内普遍认同的嵌入式系统定义为:
以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
1.2嵌入式的发展
从20世纪七十年代单片机的出现到各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史。
嵌入式系统的出现最初是基于单片机的。
70年代单片机的出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能:
更容易使用、更快、更便宜。
这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片,执行一些单线程的程序,还谈不上“系统”的概念。
最早的单片机是Intel公司的8048,它出现在1976年。
Motorola同时推出了68HC05,Zilog公司推出了Z80系列,这些早期的单片机均含有256字节的RAM、4K的ROM、4个8位并口、1个全双工串行口、两个16位定时器。
之后在80年代初,Intel又进一步完善了8048,在它的基础上研制成功了8051,这在单片机的历史上是值得纪念的一页,迄今为止,51系列的单片机仍然是最为成功的单片机芯片,在各种产品中有着非常广泛的应用。
从80年代早期开始,嵌入式系统的程序员开始用商业级的“操作系统”编写嵌入式应用软件,这使得可以获取更短的开发周期,更低的开发资金和更高的开发效率,“嵌入式系统”真正出现了。
确切点说,这个时候的操作系统是一个实时核,这个实时核包含了许多传统操作系统的特征,包括任务管理、任务间通讯、同步与相互排斥、中断支持、内存管理等功能。
90年代以后,随着对实时性要求的提高,软件规模不断上升,实时核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。
这时候更多的公司看到了嵌入式系统的广阔发展前景,开始大力发展自己的嵌入式操作系统。
除了上面的几家老牌公司以外,还出现了PalmOS,WinCE,嵌入式Linux,Lynx,Nucleux,以及国内的Hopen,DeltaOs等嵌入式操作系统。
随着嵌入式技术的发展前景日益广阔,相信会有更多的嵌入式操作系统软件出现。
1.3嵌入式的特点
这些年来掀起了嵌入式系统应用热潮的原因主要有几个方面:
一是芯片技术的发展,使得单个芯片具有更强的处理能力,而且使集成多种接口已经成为可能,众多芯片生产厂商已经将注意力集中在这方面。
另一方面的原因就是应用的需要,由于对产品可靠性、成本、更新换代要求的提高,使得嵌入式系统逐渐从纯硬件实现和使用通用计算机实现的应用中脱颖而出,成为近年来令人关注的焦点。
从上面的定义,我们可以看出嵌入式系统的几个重要特征:
1.系统内核小。
由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。
比如Enea公司的OSE分布式系统,内核只有5K,而Windows的内核?
简直没有可比性。
2.专用性强。
嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。
同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全两个概念。
3.系统精简。
嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。
4.高实时性的系统软件(OS)是嵌入式软件的基本要求。
而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性。
5.嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统。
嵌入式系统的应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS(Real-TimeOperatingSystem)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。
6.嵌入式系统开发需要开发工具和环境。
由于其本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。
开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。
7.嵌入式系统与具体应用有机结合在一起,升级换代也是同步进行。
因此,嵌入式系统产品一旦进入市场,具有较长的生命周期。
8.为了提高运行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片中。
1.4嵌入式发展现状和发展趋势
进入20世纪90年代,嵌入式技术全面展开,目前已成为通信和消费类产品的共同发展方向。
在通信领域,数字技术正在全面取代模拟技术。
在广播电视领域,美国已开始由模拟电视向数字电视转变,欧洲的DVB(数字电视广播)技术已在全球大多数国家推广。
数字音频广播(DAB)也已进入商品化试播阶段。
而软件、集成电路和新型元器件在产业发展中的作用日益重要。
所有上述产品中,都离不开嵌入式系统技术。
象前途无可计量的维纳斯计划生产机顶盒,核心技术就是采用32位以上芯片级的嵌入式技术。
在个人领域中,嵌入式产品将主要是个人商用,作为个人移动的数据处理和通讯软件。
由于嵌入式设备具有自然的人机交互界面,GUI屏幕为中心的多媒体界面给人很大的亲和力。
手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像已取得初步成效。
硬件方面,不仅有各大公司的微处理器芯片,还有用于学习和研发的各种配套开发包。
目前低层系统和硬件平台经过若干年的研究,已经相对比较成熟,实现各种功能的芯片应有尽有。
而且巨大的市场需求给我们提供了学习研发的资金和技术力量。
从软件方面讲,也有相当部分的成熟软件系统。
国外商品化的嵌入式实时操作系统,已进入我国市场的有WindRiver、Microsoft、QNX和Nuclear等产品。
我国自主开发的嵌入式系统软件产品如科银(CoreTek)公司的嵌入式软件开发平台DeltaSystem,中科院推出的Hopen嵌入式操作系统(虽然还不够完善)。
同时由于是研究热点,所以我们可以在网上找到各种各样的免费资源,从各大厂商的开发文档,到各种驱动,程序源代码,甚至很多厂商还提供微处理器的样片。
这对于我们从事这方面的研发,无疑是个资源宝库。
对于软件设计来说,不管是上手还是进一步开发,都相对来说比较容易。
这就使得很多生手能够比较快的进入研究状态,利于发挥大家的积极创造性。
第2章概述
2.1课题研究的目的
MP3从问世以来,以其小巧的外形,近乎不差CD的音质,较小的数据目以及前卫的功能迅速的得到了大众的青睐,很快的得到了推广和普及,打败了传统的随身听CD和MD。
故此在市场的推动下,各大公司纷纷推出自己的MP3音乐播放器。
这样使得MP3的研制和生产变得更加容易,成本也在逐步降低,市场更加广阔。
同时为了能够更好地打动消费者,MP3的功能也在与日俱增,我们可以发现每隔一段时间就会有新的元素加入到MP3中,其中2.5寸的硬盘MP3,支持WMA编码的MP3,微硬盘的MP3,闪存彩屏MP3,可拍照MP3,可视频MP3,乃至MP3手表,MP3眼镜。
MP3迅速的发展远远超出了人们的预想。
直到今天MP3依旧是主流产品,虽然单纯的MP3越来越少,但是MP3确实当下任何电子产品不可或缺的一部分。
如今的MP3技术已经非常成熟了,各大制造商已经不再单纯关心的如何实现MP3,而更多的是如何能在低成本低功耗的实现MP3,并且赋予MP3更多的功能使其变得更加实用。
这就意味着对于传统的MP3在实现过程中如何优化如何提高MP3的市场竞争力是当下的热点。
这就是本课题研究的目的所在。
基于以上背景,我在此次设计中提出采用Atmega16微处理器的方案实现MP3,在降低硬件成本的基础上保证高质量的播放效果。
2.2课题研究的意义
MP3是一种典型的嵌入式设备,详细的研究MP3播放器的开发过程,可以为嵌入式开发提供一种合适的开发方法和框架。
MP3使用MPEG-1中的第3层音频压缩模式,可以将音乐文件以1:
10甚至1:
12的压缩率,压缩成容量较小的文件。
而MP3播放器则用以对MP3进行实时的解压缩(解码),这样,高品质的MP3音乐就播放出来了。
体积小,音质高,本件格式小是MP3逐步取代其他类型的音乐格式,并成为网上音乐的代名词。
对于本文研究还有另一个原因,近些年来,嵌入式系统和单片机开发的有机结合别广泛应用于网络通信,工业控制等诸多领域,本文提出基于Atmega16单片机的MP3设计与实现,更加体现出该设计的灵活性和实时性。
2.3国内外概况
从韩国在1998年推出第一款MP3之后,经过16年的发展,MP3占据了电子产品很大的一份市场份额。
在MP3市场上,国内品牌厂商具有绝对优势。
爱国者、联想、朝华等厂商都占据市场销售的前列。
但国外品牌,如三星、iRIVER、iPOD、并没有放弃对市场的争夺。
一方面他们继续巩固在高端市场的优势,同时也在不断想中低端市场渗透。
松下、三洋和创新等加大投入,连索尼、HP和DELL等IT巨头也进军中国MP3市场。
国内的品牌也不再满足低端定位,纷纷推出自己的高端产品。
现在已经是百花争鸣的MP3时代。
2.4课题研究的内容
本论文主要研究设计了一种基于Atmega16的MP3音乐播放器系统。
本设计实现了一种简单的MP3播放器,其核心主控芯片为Atmega16,解码芯片为VS1003,显示屏为LCD12864可显示中文,采用红外遥控控制。
本播放器硬件电路简单,成本低廉,功能强大,易于拓展,系统主要是依靠c语言和汇编语言。
本文主要研究实现MP3播放器的一下基本功能:
1.实现歌曲播放,暂停,重播,上一首,下一首等功能。
2.显示播放列表,播放列表显示歌曲名称,播放时间。
3.选择相应歌曲播放,歌曲播放过程中显示歌曲播放进度。
4.实现音量大小调节以及静音模式。
第3章MP3播放器硬件设计与实现
3.1MP3播放器系统总结构设计
本文MP3播放器硬件设计总体结构如下,本系统的具体硬件设计主要包括:
主芯片Atmega16和USB接口的连接设计,此部分主要用于MP3文件的传输和固件下载;主芯片Atmega16和按键以及LCD之间的设计连接,用户通过显示屏幕获取播放器的进程息,通过按键来对音乐进行选择和控制;主芯片Atmega16和VS1003解码芯片之间,将该系统解码后的数字信号转换为人耳能识别的模拟信号,这一部分主要包括时钟信号、数据信号以及反馈信号的连接;电源转换部分,而USB接口以及电池的电源都需要DC-DC部分来进行转换,从而为系统提供所需的电源;播放系统和存储系统的切换电路设计。
如图3.1。
图3.1系统总体结构
3.2ATmega16微控制器
3.2.1Atmega16简介
ATmega16是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。
由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。
Atmega16有如下特点:
16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。
3.2.2Atmega16引脚功能说明
VCC引脚是电源正极,GND引脚是电源接地。
端口A(PA7..PA0):
端口A做为A/D转换器的模拟输入端。
端口A为8位双向I/O口,具有可编程的内部上拉电阻。
其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。
作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。
在复位过程中,即使系统时钟还未起振,端口A处于高阻状态。
端口B(PB7..PB0):
端口B为8位双向I/O口,具有可编程的内部上拉电阻。
其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。
作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。
在复位过程中,即使系统时钟还未起振,端口B处于高阻状态。
端口B也可以用做其他不同的特殊功能.
端口C(PC7..PC0):
端口C为8位双向I/O口,具有可编程的内部上拉电阻。
其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。
作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。
在复位过程中,即使系统时钟还未起振,端口C处于高阻状态。
如果JTAG接口使能,即使复位出现引脚PC5(TDI)、PC3(TMS)与PC2(TCK)的上拉电阻被激活。
端口C也可以用做其他不同的特殊功能.
端口D(PD7..PD0):
端口D为8位双向I/O口,具有可编程的内部上拉电阻。
其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。
作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。
在复位过程中,即使系统时钟还未起振,端口D处于高阻状态。
端口D也可以用做其他不同的特殊功能.
RESET为复位输入引脚。
持续时间超过最小门限时间的低电平将引起系统复位。
持续时间小于门限间的脉冲不能保证可靠复位。
XTAL1引脚为反向振荡放大器与片内时钟操作电路的输入端。
XTAL2引脚为反向振荡放大器的输出端。
AVCC是端口A与A/D转换器的电源。
不使用ADC时,该引脚应直接与VCC连接。
使用ADC时应通过一个低通滤波器与VCC连接。
AREF是A/D的模拟基准输入引脚。
3.2.3ATmega16引脚图
图3.2Atmega16引脚图
3.2.4ATmega16内核介绍
为了获得最高的性能以及并行性,AVR采用了Harvard结构,具有独立的数据和程序总线。
程序存储器里的指令通过一级流水线运行。
CPU在执行一条指令的同时读取下一条指令(在本文称为预取)。
这个概念实现了指令的单时钟周期运行。
程序存储器是可以在线编程的FLASH。
快速访问寄存器文件包括32个8位通用工作寄存器,访问时间为一个时钟周期。
从而实现了单时钟周期的ALU操作。
在典型的ALU操作中,两个位于寄存器文件中的操作数同时被访问,然后执行运算,结果再被送回到寄存器文件。
整个过程仅需一个时钟周期。
寄存器文件里有6个寄存器可以用作3个16位的间接寻址寄存器指针以寻址数据空间,实现高效的地址运算。
其中一个指针还可以作为程序存储器查询表的地址指针。
这些附加的功能寄存器即为16位的X、Y、Z寄存器。
ALU支持寄存器之间以及寄存器和常数之间的算术和逻辑运算。
ALU也可以执行单寄存器操作。
运算完成之后状态寄存器的内容得到更新以反映操作结果。
程序流程通过有/无条件的跳转指令和调用指令来控制,从而直接寻址整个地址空间。
大多数指令长度为16位,亦即每个程序存储器地址都包含一条16位或32位的指令。
程序存储器空间分为两个区:
引导程序区(Boot区)和应用程序区。
这两个区都有专门的锁定位以实现读和读/写保护。
用于写应用程序区的SPM指令必须位于引导程序区。
在中断和调用子程序时返回地址的程序计数器(PC)保存于堆栈之中。
堆栈位于通用数据SRAM,因此其深度仅受限于SRAM的大小。
在复位例程里用户首先要初始化堆栈指针SP。
这个指针位于I/O空间,可以进行读写访问。
数据SRAM可以通过5种不同的寻址模式进行访问。
AVR存储器空间为线性的平面结构。
AVR有一个灵活的中断模块。
控制寄存器位于I/O空间。
状态寄存器里有全局中断使能位。
每个中断在中断向量表里都有独立的中断向量。
各个中断的优先级与其在中断向量表的位置有关,中断向量地址越低,优先级越高。
I/O存储器空间包含64个可以直接寻址的地址,作为CPU外设的控制寄存器、SPI,以及其他I/O功能。
映射到数据空间即为寄存器文件之后的地址0x20-0x5F。
3.3VS1003解码芯片
3.3.1VS1003简介
VS1003是由芬兰VLSI公司出品的一款单芯片的MP3/WMA/MIDI音频解码和ADPCM编码芯片,其拥有一个高性能低功耗的DSP处理器核VS_DSP,5K的指令RAM0.5K的数据RAM串行的控制和数据输入接口,4个通用IO口,一个UART口;同时片内带有一个可变采样率的ADC、一个立体声DAC以及音频耳机放大器。
VS1003支持解码格式:
MP3(mpeg1和mpeg2,层3),MP3+V,WMA,WAV,MIDI,SP-MIDI。
VS1003支持编码格式:
IMAADPCM(单声道),麦克风和线入(Lineinput)两种输入方式。
VS1003共有16个16位的寄存器,地址分别为0x0–0xF;除了模式寄存器(MODE,0x0)和状态寄存器(STATUS,0x1)在复位后的初始值分别为0x800和0x3C外,其余的寄存器在VS1003初始化后的值均为0。
3.3.2VS1003结构图
图3.3VS1003结构图
3.3.3VS1003特点
解码MP3(MPEG1&2音频层III)(CBR+VBR+ABR),WMA4.0/4.1/7/8/9的所有配置文件(5-384kbit/s的),WAV(PCM+IMAADPCM);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 atmega16 mp3 设计 实现 大学 论文