`
duyouhua1214
  • 浏览: 227636 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

嵌入式多媒体播放器的设计与实现

阅读更多

1、引言

  随着音频解码技术、存储器技术、MP3高质量压缩技术等相关技术不断的发展以及人们对消费电子产品需求的增加,MP3新产品层出不穷,成为时尚潮流前沿的一个最佳载体。人们可以用它休闲娱乐 ,也可以用它工作和学习。设计一款性价比优良的MP3 播放器具有实际的应用价值[1]。随着 C语言的发展和嵌入式系统技术的推广 ,在嵌入式系统低端应用中 ,存在着大量的小型嵌入式应用系统。MP3 播放器的设计 ,就是典型的嵌入式系统应用。MP3具有最基本的播放、选曲、音量控制、音效控制功能。当连接到计算机的 USB接口时,MP3变成 U盘,可以向 U盘复制文件,文件包括 MP3歌曲文件和普通文件 [2,3]。系统的功能结构图如图 1所示: 

系统的功能结构图

  2、系统设计相关技术

  2.1 MP3文件格式 [4]

  MP3 文件是由帧(frame)构成的,帧是 MP3文件最小的组成单位。MP3的全称应为 MPEG1 Layer-3音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,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所示:

(D/A转换与音频放大芯片:CS4330A和DAC3550)

有代表性的 MP3方案

  由上表的分析结果及本设计的实际情况,最后选定了方案1,方案内容如下: AT89C51SND1C:CPU+解码器+USB控制器;CS4330A:D/A转换;任意双路运算放大芯片: 音频放大;K9F5608:32M Flash存储器;最后选定了集成 MP3解码器的 MP3播放器方案,选择了 AT89C51SND1C作为主控制器。

  (2)、AT89C51SND1C简介 [5-6]

  AT89C51SND1C是ATMEL公司推出的基于8位C51 MCU内核的MP3解码器芯片。它内置 MP3硬件解码器和 USB控制器,支持 48、44.1、32、24、22.05及 16KHZ采样频率,具有重低音、中音、高音均衡控制和重低音环绕声效果。 它可以适应市场上不同 DAC的可编程的音频输出接口,兼容 PCM格式和 I 2S格式。内置 2304BRAM和 64KB Flash程序空间,方便用户增加复杂的功能,并提供 MP3音频时钟及 USB时钟。

  (3)、硬件系统结构图(详见图 2)

  4、软件设计

  4.1、系统流程图

  ①、系统主框架图:       

  ②、MP3音频解码系统实现过程:

系统主框架图

  ③、MP3播放过程流程图:

MP3播放过程流程图

   4.2、功能定义

  利用 Flash存储器技术、MP3音频解码技术、USB接口技术、定时/计数器中断等技术,实现如下的几大主要功能:(一)、读取 MP3音频文件;(二)、解码 MP3音频文件;(三)、播放解码后的 MP3歌曲文件;(四)、实现人机交互接口。(五)、U盘的读写。


  4.3、AT89C51SND1C初始化 [8-9]

  播放 MP3文件时,首先需要对主控制器 AT89C51SND1C进行以下几方面的初始化设置。如图 7所示。

初始化设置

  (1)锁相环初始化,MP3解码器、USB控制器和音频输出接口使用的都是内部锁相环提供的时钟。程序设计如下:

  void PllInit(void) { if (FirstStart)

  {AUXR1 = 0xf2;   //这两个寄存器的值在用 Start Application和直接上电时

              //不一样,前一种情况下 MP3解码器才工作,

  PLLCON = 0;  //这里强制将其置为与用 Start Application按钮时一致

  FirstStart = 0; }  //PLLCON:锁相环控制寄存器;锁相环时钟及 MP3解码器时钟设置

  CKCON |= X2;  //0000 0001使能 X2模式,增加处理速度,

          //每个机器周期变成 6个振荡周期即 3个时钟周期 PLLCON &= (~PLLRES);  //使能 PLL PLLCON |= 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)中的相关部分进行正确的设置。程序设计如下:

  void PllInit(void)

  { if (FirstStart)

  {AUXR1 = 0xf2; //这两个寄存器的值在用Start Application 和直接上电时

  //不一样,前一种情况下MP3 解码器才工作,

  PLLCON = 0; //这里强制将其置为与用Start Application 按钮时一致

  FirstStart = 0; } //PLLCON:锁相环控制寄存器;锁相环时钟及MP3 解码器时钟设置

  CKCON |= X2; //0000 0001 使能X2 模式,增加处理速度,

  //每个机器周期变成6 个振荡周期即3 个时钟周期

  PLLCON &= (~PLLRES); //使能 PLL

  PLLCON |= 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)中的相关部分进行

  正确的设置。程序设计如下:

  void AudioInit()

  { unsigned char i = 10;

  AUDCON0 = 0x77; //0111 0110

  AUDCON1&=(~0xB0); //SRC=0,MSREQ=0,MUDRN=0

  AUDCON1 |= 0x01;

  while (i)i--;

  AUDCON1 |= 0x40;}

  (4)按键初始化,实现播放MP3 的人机交互功能。

  void KeyBoardInit()

   { P1 = 0x0f; //将端口1 的低四位,即键盘对应的4 位置1


  KBCON = 0x00; //设置键盘有效模式为低电平有效,并使能

  IEN1 = IEN1 | EKB; } //使能键盘中断Enable KeyBoard Interrupt

  5、总结

  嵌入式系统是专用的计算机系统,软硬件的设计必须协同和严格规范。本设计的硬件系统围绕着 AT89C51SND1C主控芯片进行规范设计与调试。软件设计则必须以硬件系统为前提以功能定义为要求进行设计现调试。嵌入式系统硬件的定制,程序的设计必须多次的调试与完善。比如,硬件电路无法正常工作,必须分析原因、调试;开发环境相关软件无法正常安装,必须排除各种错误,直到成功搭建开发环境;程序编译出现错误,必须利用调试功能找出错误并修改代码等等[10]。

  嵌入式系统是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式便携多媒体播放器是嵌入式系统技术的一个典型应用。嵌入式便携多媒体播放器未来的发展方向将会呈现出多样化、多功能化、普遍化的变化。

 

来源:http://blog.chinaunix.net/space.php?uid=20564848&do=blog&id=74390

分享到:
评论

相关推荐

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

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

    QT特性基于Qt的嵌入式媒体播放器的设计与实现

    QT特性基于Qt的嵌入式媒体播放器的设计与实现

    基于QT嵌入式媒体播放器的设计与实现

    石家庄铁道学院王建民张宏壮 摘要 本文以无线多媒体终端项目的需求为背景提出了一种适用于嵌入式系统的媒体播放器架构设计方案。论文给出了一种嵌入式系统中音视频同步的解决方案有效的提高了嵌入式媒体播放器...

    一种嵌入式多媒体播放器的硬件设计与实现_章坚武1

    摘要:对一种基于 SIGMA EM8510 处理器的嵌入式多媒体播放器的硬件设计进行了介绍, 并给出了具体的解决方案:将播放器整体分为核心模块、显示模块、音频模

    基于嵌入式Linux的多媒体音乐播放器的设计与实现

    实现了基于嵌入式Linux的多媒体音乐播放器

    消费电子中的嵌入式多媒体播放器的设计与实现

    MP3 播放器的设计 ,就是典型的嵌入式系统应用。MP3具有最基本的播放、选曲、音量控制、音效控制功能。当连接到计算机的 USB接口时,MP3变成 U盘,可以向 U盘复制文件,文件包括 MP3歌曲文件和普通文件 [2,

    基于MAP的嵌入式MP3播放器设计与实现

    多媒体应用处理器简称MAP,是一种适用于便携式... 文中介绍了MAP的主要性能特点,给出了基于MAP芯片ATJ2135的嵌入式MP3播放器的硬件设计、MP3解码流程、实时操作系统设计、系统软硬件调试过程等嵌入式系统设计与实现。

    毕业设计论文:基于嵌入式Linux的MP3播放器的设计与实现

    毕业设计将设计一个基于嵌入式 Linux 的 MP3 播放器,系统硬件采用基于 ARM 架构的开发板。 论文首先介绍了嵌入式操作系统的最新发展、嵌入式 Linux、ARM 的特点 以及 Qt 等的相关知识。重点介绍了如何使用开源...

    基于嵌入式ARM-Linux的播放器的设计与实现

    本文首先详细分析了ARM体系结构,研究了嵌入式Linux操作系统在ARM9微处理器的移植技术,...通过对音频数据输出的研究,解决了Mp1ayer播放声音不正常的问题,实现了一个集音乐和视频播放于一体的嵌入式多媒体播放系统。

    基于OMAP3530的多媒体播放器设计

    本文主要介绍了针对OMAP3530平台下的多媒体播放器设计开发过程,分别对嵌入式Linux软件开发环境的搭建以及目前Linux下最优秀的媒体播放器Mplayer的移植都作了较为详细的介绍。本设计将X86平台下的Mplayer移植到OMAP...

    一种嵌入式Linux系统的多媒体播放器设计

    针对市面多数多媒体播放器软件自身体系庞大、系统资源占用率高、加载耗时、速度慢等方面的不足以及捆绑其他插件,设计一种嵌入式Linux系统的多媒体播放器。设计以QT基础类库为前端界面,套用Phonon多媒体框架,使用...

    技术分享:基于EFSL的嵌入式MP3播放器设计方法

    本文基于EFSL文件系统以及ARM平台设计一款新型的嵌入式MP3播放器,具有一定的实用价值。同时为单片机摆脱操作系统束缚,实现单片机多媒体应用提供一种可行性参考方案。

    基于DirectFB的嵌入式播放器设计

    本文首先对DirectFB进行了介绍,接着提出了一种新的基于DirectFB的嵌入式播放器设计方案。该方案相比于其他嵌入式GUI开发的播放器能够有效地降低资源的消耗,适用于各种中低端的场合,同时具备良好的可移植性。  1...

    嵌入式系统/ARM技术中的基于DirectFB的嵌入式播放器设计

    本文首先对DirectFB进行了介绍,接着提出了一种新的基于DirectFB的嵌入式播放器设计方案。该方案相比于其他嵌入式GUI开发的播放器能够有效地降低资源的消耗,适用于各种中低端的场合,同时具备良好的可移植性。  1...

    基于嵌入式Linux的PMP系统设计与实现

    便携式多媒体播放器(PMP),也就是通常人们所说的MP4,已成为继MP3以后消 费类产品的一个新热点。PMP的主要优点是:携带方便,能够直接播放高品质音/视频文件;也可以浏览图片,以及作为移动硬盘、数字银行使用;此外...

    基于树莓派设计的多媒体播放器且支持(Windows、Linux、Android)系统(毕设/课设/竞赛/实训/项目开发)

    专为树莓派(Raspberry Pi)设计的多媒体播放器且支持(Windows、Linux、Android)系统,支持视频、音频、流媒体、图片、摄像头、动画、文本、滚动字幕、日期时间、二维码、等,支持指令控制播放、覆盖、停止、移动、等...

    嵌入式机车车辆车载播放系统软件设计与实现

    摘要:系统使用Qt Creator作为开发工具,综合嵌入式数据库SQLite、开源多媒体播放器MPlayer技术,设计并实现了一个具有良好人机交互界面的嵌入式机车车辆车载播放系统,可对主流音视频文件进行播放,且系统易于移植...

    基于SMP86 54的MKV播放器设计与实现

    本文基于SMP86 54平台设计与实现了一个MKV播放器,能够支持对高清MKV文件的播放,并针对嵌入式系统和高清媒体的特点做了进一步优化,具有一定的工程意义和市场价值。  0 引言  随着电子技术和多媒体技术的进步,...

Global site tag (gtag.js) - Google Analytics