MP3播放器项目汇报_第1页
MP3播放器项目汇报_第2页
MP3播放器项目汇报_第3页
MP3播放器项目汇报_第4页
MP3播放器项目汇报_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

汇报人:朱宁2012年3月,简易MP3播放器,基于STM32F103x控制器和Cos-II2.86系统,汇报主题,项目内容,项目研究,项目成果,项目展望,项目内容,了解音乐播放器的基本工作原理;了解MP3音乐格式的由来与基本术语;了解常用数字音频输出芯片和MP3解码软件库;理解文件存储的基本原理与使用文件系统的必要性;掌握核心芯片STM32主要接口的使用方法和注意事项;熟悉基于Cos-II2.86微内核的C语言编程;构建一个从文件存储设备到音频输出设备的数据流处理机制;完成简易MP3播放器的基本模型。,音乐播放器的基本工作原理,MP3音乐格式的由来,简单的说,MP3就是一种音频压缩技术,由于这种压缩方式的全称叫MPEGAudioLayer3,所以人们把它简称为MP3。MP3是利用MPEGAudioLayer3的技术,将音乐以1:10甚至1:12的压缩率,压缩成容量较小的file。换句话说,能够在音质丢失很小的情况下把文件压缩到更小的程度。而且还非常好的保持了原来的音质。正是因为MP3体积小,音质高的特点使得MP3格式几乎成为网上音乐的代名词。每分钟音乐的MP3格式只有1MB左右大小,这样每首歌的大小只有3-4兆字节。使用MP3播放器对MP3文件进行实时的解压缩(解码),这样,MP3音乐就播放出来了。,MP3音乐的基本术语,bitsPerSample(采样位数)在播放声音文件时所使用数字声音信号的二进制位数。可以理解为采集卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实。它客观地反映了数字声音信号对输入声音信号描述的准确程度。8位代表2的8次方-256,16位则代表2的16次方-64K。比较一下,一段相同的音乐信息,16位声卡能把它分为64K个精度单位进行处理,而8位声卡只能处理256个精度单位,造成了较大的信号损失,最终的采样效果自然是无法相提并论的。,MP3音乐的基本术语,SamplingRate(采样率)把模拟音频转成数字音频的过程就称作采样。实现这个过程使用的设备是模/数转换器(A/D)。它以每秒上万次的速率对声波进行采样,每一次采样都记录下了原始模拟声波在某一时刻的状态,称之为样本。将一串的样本连接起来,就可以描述一段声波了,把每一秒钟所采样的数目称为采样率,单位为Hz(赫兹)。采样率越高所能描述的声波频率就越高,则音质越有保证,在录音时体现的最为明显。大部分的MP3随身听都支持播放441KHz的MP3音频文件。,MP3音乐的基本术语,Bitrate(位速)位速是指在一个数据流中每秒钟能通过的信息量单位是Kbps。表示“每秒千字节数”,因此数值越大表示数据越多:128KbpsMP3音频文件包含的数据量是64KbpsMP3文件的两倍。注意该参数描述的对象是MP3文件数据,而不是解码之后的数据。位速还有三种不同形式:VBR(VariableBitrate)动态比特率也就是没有固定的比特率,压缩软件在压缩时根据音频数据即时确定使用什么比特率,这是以质量为前提兼顾文件大小的方式,;ABR(AverageBitrate)平均比特率是VBR的一种插值参数。ABR在指定的文件大小内,以每50帧(30帧约1秒)为一段,低频和不敏感频率使用相对低的流量,高频和大动态表现时使用高流量,可以做为VBR和CBR的一种折衷选择。CBR(ConstantBitrate),常数比特率指文件从头到尾都是一种位速率。相对于VBR和ABR来讲,它压缩出来的文件体积很大,而且音质相对于VBR和ABR不会有明显的提高。,MP3音乐的基本术语,outputSamps(输出样本点数)经过MP3解码后,输出的PCM数据量。一般情况下的输出数据量如下表:,常用数字音频解码芯片,IPODnano2代搭配了WOLFSON音频编解码器(型号不明),IPODnano搭配WolfsonWM8758;iRiver的E10微硬盘播放器、IAUDIO的U3搭配了CIRRUS公司的CS42L51音频编解码器;IAUDIO的D2搭配的是WolfsonWM8985;国内使用独立DAC的厂家不多,其中:台电C150搭配了德州仪器的AIC230音频编解码器,台电T19和T29搭配了WolfsonWM8750音频编解码器;魅族科技的M6搭配了飞利浦UPA1380;OPPO的V3/V5搭配WolfsonWM8750;,常用数字音频解码芯片,WM8978是Wolfson新近推出的一款全功能音频处理器。它带有一个HI-FI级数字信号处理内核,支持增强3D硬件环绕音效,以及5频段的硬件均衡器,可以有效改善音质;并有一个可编程的陷波滤波器,用以去除屏幕开、切换等噪音。WM8978同样集成了对麦克风的支持,以及用于一个强悍的扬声器功放,可提供高达900mW的高质量音响效果扬声器功率。一个数字回放限制器可防止扬声器声音过载。WM8978进一步提升了耳机放大器输出功率,在推动16欧姆耳机的时候,每声道最大输出功率高达40毫瓦!可以连接市面上绝大多数适合随身听的高端HI-FI耳机。最新的高端数码播放器,如微软的ZUNE播放器,已经开始使用WM8978。主要参数:数字模拟转换器信噪比:98db总谐波失真:0.013%/-84db(20毫瓦)代表产品:微软ZUNE音质特点:继承了WOLFSON中高音清晰明亮,解析度高的特点;由于输出功率大,动态范围更宽,声音舒展,能够放得开特色功能:HI-FI数字信号处理内核,40毫瓦大功率输出,录音电平自动控制(AGC)、麦克风偏置电路、硬件3D环绕立体声音效、5频段硬件音调音效,0.9瓦BTL功放,MP3解码软件库,常用的MP3软解码库主要有两种:libmad和helix。libmad输出的是24位的PCM数据,占用RAM较大;helix输出的是16位的PCM数据,占用RAM较小,helix在运行解码程序时,最大只需要24KRAM空间。另外,网络上也有许多helix的移植案例。因此,选用helix作为终端的MP3软解码库。,文件存储的基本原理,硬盘是现在计算机上最常用的存储器之一。数据都以文件的形式存储在硬盘里。在读取相应的文件时,你必须要给出相应的规则。这就是分区概念。分区从实质上说就是对硬盘的一种格式化。硬盘分区后,将会被划分为面(Side)、磁道(Track)和扇区(Sector)。需要注意的是,这些只是个虚拟的概念,并不是真正在硬盘上划轨道。当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。根据硬盘规格的不同,磁道数可以从几百到数千不等;一个磁道上可以容纳数KB的数据,而主机读写时往往并不需要一次读写那么多,于是,磁道又被划分成若干段,每段称为一个扇区。一个扇区一般存放512字节的数据。扇区也需要编号,同一磁道中的扇区,分别称为1扇区,2扇区,使用文件系统的必要性,同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。由于硬盘上保存着段与段之间的连接信息(即FAT),操作系统在读取文件时,总是能够准确地找到各段的位置并正确读出。为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号。对一个文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT表来保存的,表中有很多表项,每项记录一个簇的信息。由于FAT对于文件管理的重要性,所以FAT有一个备份,即在原FAT的后面再建一个同样的FAT。初形成的FAT中所有项都标明为“未占用”,但如果磁盘有局部损坏,那么格式化程序会检测出损坏的簇,在相应的项中标为“坏簇”,以后存文件时就不会再使用这个簇了。FAT的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,因为其中需要存放簇号。FAT的格式有多种,最为常见的是FAT16和FAT32。,文件系统扮演的角色,STM32主要接口的使用方法,液晶显示器,使用FSMC接口触摸屏:使用SPI接口,关于STM32接口的注意事项,FSMC接口与I2C接口在引脚上有冲突,注意分时复用;I2C接口位速不要太高,最好小于250kbps;在变更WM8978的播放采样率时,不仅需要使用I2C来配置采样率,还需要重新设定I2S接口的时钟速率;使用SD卡的中断模式时,注意检查该中断入口是否存在系统初始化时的中断向量表中。进入中断服务程序时,要禁止任务切换。,基于Cos-II微内核的C语言编程,确定系统中的最紧迫任务和最重要任务最紧迫任务是指对实时性要求最严格的任务最重要任务是指系统中的执行核心功能的若干个任务,基于Cos-II微内核的C语言编程,以硬件模块为对象划分任务将不同硬件模块的操作划分为不同的任务,使得应用系统必须通过COS-内核调度相应的任务,才能实现对于某个硬件模块的访问。这样,每个模块都有且只有惟一的任务与之对应,其他任务则无权时访问它。这种操作模式有效地避免了由于多个任务同时争用同一硬件模块造成的冲突甚至死锁现象。划分强实时性任务实时即立即、及时的意思,根据应用中的实时要求,可以将其分为强实时和弱实时2大类。应将每个强实时应用划分为独立的任务,与其他应用分开,并设定高优先级,以保证强实时事件的限时发生,避免出现灾难性后果。假设把某一强实时应用与一弱实时性要求的应用一起打包成为1个任务。一旦该弱实时应用因为某种原因(例如:等待内存数据、等待外部输入信号、等待中断发生等)导致整个任务进入等待状态,则在等待的事件发生之前,强实时应用也无法通过任务调度得以执行。,基于Cos-II微内核的C语言编程,分割耗时较多的任务在一些较复杂的嵌入式应用系统中,个别任务代码会包含繁琐的计算算法,运行时占用大量的CPU处理时间和资源,严重影响COS-系统的实时性。对于这样的任务,可将其按照不同的内部功能划分为多个模块,每个模块即为一个相对独立的小任务,相互之间通过任务通信机制协调工作。由于需要占用CPU较多的处理时间,这些任务几乎没有实时性要求,所以通常将其优先级设低,以确保强实时任务的正常运行。举例:首先根据算法1处理数据X,其次利用算法2处理数据Y,最后将数据X和数据Y通过算法3得到数据Z。在这种情况下,应将不同的算法处理部分划分为独立的子任务,并根据执行顺序逐次递减任务优先级。由于缩短了单个任务的执行时间,任务的响应时间也随之变短,整个系统的实时性得到了提高。,基于Cos-II微内核的C语言编程,关于Cos-II的系统配置注意os_cfg.h中关于任务总数,事件控制块数量等上限的设置,要满足系统的需求;关于任务栈大小的确定:启用任务统计宏:#defineOS_TASK_STAT_STK_CHK_EN1调用系统函数:OSTaskStkChk(TaskID,来获得相应的任务栈使用情况(包括已使用与未使用)当发生hardfault时,极有可能是任务栈问

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论