基于51单片机的嵌入式多媒体播放器的设计与实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于51单片机的嵌入式多媒体播放器的设计与实现基于51单片机的嵌入式多媒体播放器的设计与实现作者:赵维佺李迪徐钦桂陈锦闲1、引言随着音频解码技术、存储器技术、MP3高质量压缩技术等相关技术不断的发展以及人们对消费电子产品需求的增加,MP3新产品层出不穷,成为时尚潮流前沿的一个最佳载体。人们可以用它休闲娱乐,也可以用它工作和学习。设计一款性价比优良的MP3播放器具有实际的应用价值[1]。随着C语言的发展和嵌入式系统技术的推广,在嵌入式系统低端应用中,存在着大量的小型嵌入式应用系统。MP3播放器的设计,就是典型的嵌入式系统应用。MP3具有最基本的播放、选曲、音量控制、音效控制功能。当连接到计算机的USB接口时,MP3变成U盘,可以向U盘复制文件,文件包括MP3歌曲文件和普通文件[2,3]。系统的功能结构图如图1所示:2、系统设计相关技术2.1MP3文件格式[4]MP3文件是由帧(frame)构成的,帧是MP3文件最小的组成单位。MP3的全称应为MPEG1Layer-3音频文件,MPEG(MovingPictureExpertsGroup)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是MPEG1标准中的声音部分,也叫MPEG音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer-1、Layer2、Layer3,且分别对应MP1、MP2、MP3这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG音频编码的层次越高,编码器越复杂,压缩率也越高,MP1和MP2的压缩率分别为4:1和6:1-8:1,而MP3的压缩率则高达10:1-12:1,也就是说,一分钟CD音质的音乐,未经压缩需要10MB的存储空间,而经过MP3压缩编码后只有1MB左右。MP3文件大体分为三部分:TAG_V2(ID3V2),Frame,TAG_V1(ID3V1)。ID3是一个标记MPEG的标准,具体的讲,这些标记是用来指明歌曲的作者、演唱者,年月、所属专辑等信息,这样,播放器在播放时可以读出并显示这些信息。每个FRAME都有一个帧头FRAMEHEADER,长度是4BYTE(32bit),帧头后面可能有两个字节的CRC校验,这两个字节的是否存在决定于FRAMEHEADER信息的第16bit,为0则帧头后面无校验,为1则有校验,校验值长度为2个字节,紧跟在FRAMEHEADER后面,接着就是帧的实体数据了,格式如下:3、硬件设计(1)、硬件方案选择本设计选用ATMEL公司的AT89C51SND1C芯片作为MP3播放器的主控制器。主控制器的选定其实也取决于MP3方案的选定。从技术角度上说,MP3播放器有多种实现方案,其中分类方法也较多,这里仅从MP3解码方式和硬件类型方面进行分类,大体可分为:(1)分离芯片的MP3播放器;(2)集成MP3功能单片机的MP3播放器;(3)定制ASIC电路的MP3播放器;(4)采用FPGA实现MP3播放器;(5)混合MCU/DSP器件播放器。经过各种资料的搜索和比较,最后总结出三种有代表性的MP3方案。如表2所示:由上表的分析结果及本设计的实际情况,最后选定了方案1,方案内容如下:AT89C51SND1C:CPU+解码器+USB控制器;CS4330A:D/A转换;任意双路运算放大芯片:音频放大;K9F5608:32MFlash存储器;最后选定了集成MP3解码器的MP3播放器方案,选择了AT89C51SND1C作为主控制器。(2)、AT89C51SND1C简介[5-6]AT89C51SND1C是ATMEL公司推出的基于8位C51MCU内核的MP3解码器芯片。它内置MP3硬件解码器和USB控制器,支持48、44.1、32、24、22.05及16KHZ采样频率,具有重低音、中音、高音均衡控制和重低音环绕声效果。它可以适应市场上不同DAC的可编程的音频输出接口,兼容PCM格式和I2S格式。内置2304BRAM和64KBFlash程序空间,方便用户增加复杂的功能,并提供MP3音频时钟及USB时钟。(3)、硬件系统结构图(详见图2)4、软件设计4.1、系统流程图①、系统主框架图:②、MP3音频解码系统实现过程:③、MP3播放过程流程图:③、人机交互流程图见图6:4.2、功能定义利用Flash存储器技术、MP3音频解码技术、USB接口技术、定时/计数器中断等技术,实现如下的几大主要功能:(一)、读取MP3音频文件;(二)、解码MP3音频文件;(三)、播放解码后的MP3歌曲文件;(四)、实现人机交互接口。(五)、U盘的读写。4.3、AT89C51SND1C初始化[8-9]播放MP3文件时,首先需要对主控制器AT89C51SND1C进行以下几方面的初始化设置。如图7所示。(1)锁相环初始化,MP3解码器、USB控制器和音频输出接口使用的都是内部锁相环提供的时钟。程序设计如下:voidPllInit(void){if(FirstStart){AUXR1=0xf2;//这两个寄存器的值在用StartApplication和直接上电时//不一样,前一种情况下MP3解码器才工作,PLLCON=0;//这里强制将其置为与用StartApplication按钮时一致FirstStart=0;}//PLLCON:锁相环控制寄存器;锁相环时钟及MP3解码器时钟设置CKCON|=X2;//00000001使能X2模式,增加处理速度,//每个机器周期变成6个振荡周期即3个时钟周期PLLCON&=(~PLLRES);//使能PLLPLLCON|=PLLEN;}(2)MP3解码器的初始化,即对MP3CON(MP3控制寄存器)和MP3CLK(MP3时钟除法器寄存器)进行设置。程序设计如下://MP3时钟频率的计算方法:MP3CLK=PLLCLK/(int)(MPCD+1)负反馈MP3CLK|=MPCD;MP3CON&=(~MSKREQ);//允许产生MP3中断MP3CON|=MPEN;//使能MP3解码器.(3)音频输出接口初始化,要得到两个声道串行数据前,需要先对音频输出接口的AUDCON0(音频接口控制寄存器0)和AUDCON1(音频接口控制寄存器1)中的相关部分进行正确的设置。程序设计如下:voidPllInit(void){if(FirstStart){AUXR1=0xf2;//这两个寄存器的值在用StartApplication和直接上电时//不一样,前一种情况下MP3解码器才工作,PLLCON=0;//这里强制将其置为与用StartApplication按钮时一致FirstStart=0;}//PLLCON:锁相环控制寄存器;锁相环时钟及MP3解码器时钟设置CKCON|=X2;//00000001使能X2模式,增加处理速度,//每个机器周期变成6个振荡周期即3个时钟周期PLLCON&=(~PLLRES);//使能PLLPLLCON|=PLLEN;}(2)MP3解码器的初始化,即对MP3CON(MP3控制寄存器)和MP3CLK(MP3时钟除法器寄存器)进行设置。程序设计如下://MP3时钟频率的计算方法:MP3CLK=PLLCLK/(int)(MPCD+1)负反馈MP3CLK|=MPCD;MP3CON&=(~MSKREQ);//允许产生MP3中断MP3CON|=MPEN;//使能MP3解码器.(3)音频输出接口初始化,要得到两个声道串行数据前,需要先对音频输出接口的AUDCON0(音频接口控制寄存器0)和AUDCON1(音频接口控制寄存器1)中的相关部分进行正确的设置。程序设计如下:voidAudioInit(){unsignedchari=10;AUDCON0=0x77;//01110110AUDCON1&=(~0xB0);//SRC=0,MSREQ=0,MUDRN=0AUDCON1|=0x01;while(i)i--;AUDCON1|=0x40;}(4)按键初始化,实现播放MP3的人机交互功能。voidKeyBoardInit(){P1=0x0f;//将端口1的低四位,即键盘对应的4位置1KBCON=0x00;//设置键盘有效模式为低电平有效,并使能IEN1=IEN1|EKB;}//使能键盘中断EnableKeyBoardInterrupt5、总结嵌入式系统是专用的计算机系统,软硬件的设计必须协同和严格规范。本设计的硬件系统围绕着AT89C51SND1C主控芯片进行规范设计与调试。软件设计则必须以硬件系统为前提以功能定义为要求进行设计现调试。嵌入式系统硬件的定制,程序的设计必须多次的调试与完善。比如,硬件电路无法正常工作,必须分析原因、调试;开发环境相关软件无法正常安装,必须排除各种错误,直到成功搭建开发环境;程序编译出现错误,必须利用调试功能找出错误并修改代码等等[10]。嵌入式系统是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式便携多媒体播放器是嵌入式系统技术的一个典型应用。嵌入式便携多媒体播放器未来的发展方向将会呈现出多样化、多功能化、普遍化的变化。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功