您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 基于ARM开发MP3的设计实例及其分析-戴瀚林
2011-2012学年第2学期实验报告实验课程名称电子产品设计专业班级电信1001学生姓号31002124学生姓名戴瀚林实验指导教师刘加海基于ARM开发MP3的设计实例及其分析1.引言在当今社会中,MP3已经成为了人们娱乐生活中一种不可缺少的物件,下面就让我们来分析一下MP3的设计实例。1.1设计目的MP3(MPEGLayer3)是一种音乐格式,它能够将CD品质的数字录音压缩成极小的文件,并将其存储在电脑之中。与磁带和CD不同,MP3可以让您根据自己的意愿安排音乐的播放顺序,既迅速又轻松!这样可以更好地娱乐和丰富我们的生活。1.2设计背景随着微电子技术的飞速发展,嵌入式产品以其自然的人机交互界面和丰富的多媒体处理能力迅速得以推广,并取得了巨大成功。目前,在多媒体音频领域中,MP3播放器占据了绝对的主导地位。但现有的MP3播放器驱动能力非常有限,只适合个人使用,不能满足大型公共场所在不同区域播放不同背景音乐的多通道播放需要。基于以上分析,本文设计了一种基于ARM的μClinux环境下的多通道专业MP3播放器[1]。1.3功能说明目前市场上流行的MP3设备从功能和性能上已经远远超出了原来播放器的范畴,逐步发展成为集音频播放(包括MP3之外的音乐格式)、录音复读、文本阅读、移动存储、FM收音等功能为一体的多媒体掌上设备。有的高端MP3设备甚至还集成了音频编辑处理、电影播放等功能。2.整体设计方案说明我们的整个设计是基于ARM开发板的,方案的设计过程以及主要流程如下图图12.1整体功能模块分析图2为了提高系统运行效率,实现多通道播放管理,本系统选用三星公司的S3C44B0X作为核心处理器,主要负责数据转换,输出通道的选择,以及LCD的控制。同时,选用意法半导体的STA013作为解码芯片,配合AK4393实现模拟音频信号的输出,此外,使用SL811HS和ISP1520提供两个主USB接口,以实现移动硬盘或U盘的挂接。数据以帧为单位每帧由帧首部边带信息编码数据和辅助数据四个主要部分组成,设其PCM采样频率为Samplingfrequency,位速率为bitrateCD音质的音乐一般为双声道立体声,采样频率为44.1kHz,位速率为128kbps可得每帧的播放时间约为0.02612ms每帧需要处理的数据长度约为418B为了达到实时播放效果要求解码器处理数据的时间必须少于播放时间[2]。2.2详细功能分解及原理说明MP3解码原理首先将数据帧解包解出帧头信息和边带信息然后采用霍夫曼解码解出比特分配信息接着在逆变换中利用频谱系数在综合滤波器中将32个子带合并成一个宽带信号18个频谱值执行32次逆改进型离散余弦变换将生成的576个频谱值变换成长度为32的18个连续的频谱通过18次运算多相位综合滤波器将这些频谱变换到时域完成波形重构生成立体声PCM音频数据。通过利用内置式或外置式话筒进行录音模拟输入模拟信号经过PCM编码以及压缩编码后存储在FLASH存储器中以备播放时调用数字输入采用USB接口输入播放时只需按播放键就可以将FLASH存储器中的MP3文件通过MP3解压缩D\A转换变成模拟音频信号输出。主控制逻辑模块在接收用户接口控制模块和USB接口模块送来的信号后产生各种控制信号协调和控制MP3的各种操作它可以细分为主逻辑控制和播放逻辑控制其中主逻辑控制模块控制各项功能的优先次序为其他逻辑模块提供控制信号并实现操作MAS3507D内部的参数寄存器以改变其各项参数设置如采样频率音量功耗模式等播放逻辑控制模块实现MP3播放器的音乐播放操作在接到主逻辑模块送来的PLAY操作指令后插入Read信号送给FLASH控制模块音乐数据从FLASH存储器中以PIO-DAM模式传送给STMP1342进行解码[3]。主要原理结构图图3用户接口控制模块用于控制用户操作及驱动LED显示器显示当前的MP3播放器的状态它包含用户接口和LED显示用户接口负责处理PLAYREW等各种操作当用户按下其中的任一按钮时产生一个相应的上升沿LED显示负责驱动LED显示器显示系统状态信息如音乐音量等。FLASH控制模块设计的最大成本因素是存储MP3音频文件所需的大量FLASH内存FLASH控制模块不仅控制音乐FLASH和地址FLASH存储器而且当执行用户操作时还控制这些FLASH存储器的地址FLASH控制模块还可以进一步细分为下载控制模块用户命令控制模块和FLASH逻辑控制模块根据所选择的操作FLASH逻辑控制模块产生合适的FLASH控制信号。音频数字模拟转化器接口由两个独立的功能模块组成每一个模块对应到个别的串行端口控制端接口实际上是由软件执行的2位I/O端口可以实现DAC中控制缓存器和状态缓存器所用的I2C协议。电源管理模块对于MP3播放器的可靠性和低功耗性是至关重要的PUP信号线指示STMP1342DC/DC转换电压是否已稳定如稳定则激活信号线开启STMP1342否则电压不足应关闭MP3播放器。USB接口实现MP3音乐文件到FLASH存储器中在下载操作开始之后下载信号被传送给主控制逻辑模块和用户接口控制模块以在操作期间忽略其他任何操作。前面已经完成了MP3播放器各个模块部分的设计下面把这些部分组装起来形成完整的总体设计命名MP3其外部端口如图4各个输入输出端口的功能如下:1.CLK为外部时钟信号CLP为复位信号2.PLAY为高电平时表示用户按下PLAY键播放器启动3.Dnld_mode为高电平时表示用户插入USB键口信号下载操作2.3功能实现流程系统多通道播放采用的基本方法是(以四通道为例):当系统上电以后,解码控制信号为了实现对每一个解码通道的具体工作状态控制,通过采用外接一个四路转换开关(CD4066),控制各路通道解码芯片的工作状态。转换开关四路通道的输入部分连接CPU的IIC总线的IICSDA,通过与CPU相连的多个控制引脚(CTRL1,2,3,4),确定控制数据的传输方向。四路通道的时钟信号则直接连接在CPU上,只有控制数据传输时才发生作用。在播放过程中,CPU实时响应各通道传输数据的请求,选通该路的解码芯片,被选通的解码芯片对从总线上获取的mp3文件数据进行解码,而未被选通的解码通道则忽略总线上的音频数据。当数据请求的中断请求信号由高变低,系统开始响应下一次数据请求。通过这种各通道交替工作的方式,实现四通道同步播放的功能[4]。3.具体功能实现3.1硬件实现图4图5体积小重量轻实现耳挂式,传统的MP3携带不是很方便而且耳机非常容易损坏,使用ARM嵌入式使更小的芯片拥有更多的功能重量减小可实现耳挂式。轻薄屏幕可实现多功能,耳挂式体积小加之轻薄屏幕可使之功能齐全而不影响外观而且有了轻薄保护屏膜可以使MP3的易损坏部位得到改善。STOP为高电平时表示用户按下STOP停止播放FWD/REW为高电平时表示选中下一曲/上一曲的FLASH地址存储器读取MP3数据VOL+/VOL-为高电平表示用户接口模块内的音量计数器增1或减1.7DISPLAY表示系统的音频输出[4]。3.2软件实现驱动程序的设计本系统所编译的μClinux内核中包含有USB、LCD等驱动程序,只要根据需要适当的修改便可以应用。但是对于MP3解码部分芯片的驱动需要自己编写。音频驱动程序实现的主要功能是:(1)系统启动时可以完成芯片的初始化;(2)具体操作时可以提供给操作系统合适的软件接口。音频驱动初始化程序如下:voidSTA013_Init(void){if(STA013_SendCommand(RESET_REG,0,0x00))//复位STA013STA013_PrintError();if(STA013_SendCommand(ACT_CON_REG,0,0x00))//未激活状态STA013_PrintError();if(STA013_SendCommand(PWR_CON_REG,0,0x00))//上电STA013_PrintError();if(STA013_SendCommand(FS_CON_REG,0,ISTA013L_FsValue[SysInfo.SamplingIndex]))//选择采样频率STA013_PrintError();if(STA013_SendCommand(IF_CON_REG,0,0x02+(06)))//选择16位IIS数据格式STA013_PrintError();if(STA013_SendCommand(ANG_CTL_REG,0,0))//0x13,0x12选择DACSTA013_PrintError();和LineIn输入模式if(STA013_SendCommand(DGT_CTL_REG,0,0x00))//DAC静音STA013_PrintError();if(STA013_SendCommand(LHP_VOL_REG,0,0x00))//左声道音量STA013_PrintError();if(STA013_SendCommand(RHP_VOL_REG,0,0x00))//右声道音量STA013_PrintError();if(STA013_SendCommand(ACT_CON_REG,0,0x00))//数据传送激活STA013_PrintError();}播放程序的设计作为本系统的一个主要创新点,在多通道部分设计合理且高效的播放程序代码很重要,在这里采用的是将待解码的MP3文件先由USB设备复制到内存的缓冲区,再由缓冲区发送给解码器的方法。播放时,程序会根据每个通道的歌曲信息将MP3文件流从USB设备复制到相应的缓冲区中。其主要实现代码如下:for(i=0;i4;i++){if((dbuf[i]=malloc(BUF_LEN))==NULL){printf(Allocation%dError\n,i);exit(1);}}操作界面的实现完整的MP3播放器设备需要有一个简洁的操作界面。本系统的操作界面选用MiniGUI软件进行编写,通过对MiniGUI运行模式的选择、MiniGUI的移植以及界面程序的编写,最终的操作界面如图4所示。整个操作界面简洁明了,系统在开机后提供了当前时间,以及播放、设置和复位按键,可以直接通过播放键来实现多通道播放功能,通过设置键进行歌曲目录的编排[5]。图63.3产品整合设计多通道MP3播放器与传统的MP3播放器相比,具有许多优势,可以满足大型公共场所对背景音乐更高性能的需求。多通道MP3播放器可以实现多个音频输出通道同步播放,并可以通过USB接口外挂存储设备实现歌曲的大容量存储。此外,系统还提供了串口、以太网等一系列接口,方便与外部进行数据交换和软件升级。多功能设计,在不增加系统成本或增加很少系统成本的情况下可以增加一些其他的功能以增加卖点,主要可以考虑的附加功能如FM收音长时间录音部分,PDA功能等。集成扬声器,在现有的便携式MP3基础上集成扬声器以取代传统盒式磁带录音机。4.产品人机交互设计4.1人机界面设计MP3是1998底开发出的新产品,是人类进入信息时代在工作和生活中不可缺少的工具。MP3的外观造型,操作方式,界面设计关系到人们的选购与使用。随着科学技术的不断发展。流行风格的日益变化,MP3也在不断地转变中。根据人们的需求,结合社会经济,技术,文化状况,研究适合人们使用的产品,能给用户以及商家带来更大的利益[6]。图74.2硬件人机交互设计包装的好坏直接关系着产品能否顺利到达用户的手中,除了足够漂亮来吸引更多的消费者之外,内包装的质量更是非常的重要,简单直接的隔开空间,让每个物件各居其位,同时还需要有良好的减震能力,更好的保护机器和其它配件对于包装来说比外观更加重要。如果要带着MP3出门远行,那么充电器等物件就必不可少了,是否方便携带和方便连接使用是关系到用户能否在旅途当中音乐相伴的关键。同时充电器插口的兼容性很重要,关系到如果遗失能否马上买到新的使用。其实在附件上有很多细节都能够体现厂商的用心,比如挂绳材料的使用,不同的产品应该会对应不同的挂绳;比如皮套或者便携袋的配备;比如耳塞海绵套
本文标题:基于ARM开发MP3的设计实例及其分析-戴瀚林
链接地址:https://www.777doc.com/doc-2568293 .html