




已阅读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随身听都支持播放44 1KHz的MP3音频文件 MP3音乐的基本术语 Bitrate 位速 位速是指在一个数据流中每秒钟能通过的信息量单位是Kbps 表示 每秒千字节数 因此数值越大表示数据越多 128 KbpsMP3音频文件包含的数据量是64 KbpsMP3文件的两倍 注意该参数描述的对象是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语言编程 以硬件模块为对象划分任务将不同硬件模块的操作划分为不同的任务 使得应用系统必须通过 C OS 内核调度相应的任务 才能实现对于某个硬件模块的访问 这样 每个模块都有且只有惟一的任务与之对应 其他任务则无权时访问它 这种操作模式有效地避免了由于多个任务同时争用同一硬件模块造成的冲突甚至死锁现象 划分强实时性任务实时即立即 及时的意思 根据应用中的实时要求 可以将其分为强实时和弱实时2大类 应将每个强实时应用划分为独立的任务 与其他应用分开 并设定高优先级 以保证强实时事件的限时发生 避免出现灾难性后果 假设把某一强实时应用与一弱实时性要求的应用一起打包成为1个任务 一旦该弱实时应用因为某种原因 例如 等待内存数据 等待外部输入信号 等待中断发生等 导致整个任务进入等待状态 则在等待的事件发生之前 强实时应用也无法通过任务调度得以执行 基于 Cos II微内核的C语言编程 分割耗时较多的任务在一些较复杂的嵌入式应用系统中 个别任务代码会包含繁琐的计算算法 运行时占用大量的CPU处理时间和资源 严重影响 C OS 系统的实时性 对于这样的任务 可将其按照不同的内部功能划分为多个模块 每个模块即为一个相对独立的小任务 相互之间通过任务通信机制协调工作 由于需要占用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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年合同法与劳动合同法对比
- 钻床夹具的装配说课稿-2025-2026学年中职专业课-机械制造技术-装备制造大类
- 2025企业借款合同范本
- 2025成都市正规劳动合同样本
- Unit 9 Section B 1a-1e 说课稿2025-2026学年七年级英语下册同步教学(人教版)
- 1.2 Arduino 操作基础与开发流程说课稿-2025-2026学年高中信息技术教科版2019选择性必修6 开源硬件项目设计-教科版2019
- 三年级信息技术上册 海底世界图片展 2说课稿 冀教版
- 2025合同管理人员如何审查合同风险
- 居民瓶装液化石油气供用合同
- 第5课 进退有序说课稿-2025-2026学年小学书法练习指导六年级上册华文版
- 幼儿园护学岗职责
- 国开电大《组织行为学》形考任务1-4
- 施工安全生产风险分级管控和隐患排查治理双重预防机制建设实施方案
- 【MOOC】化学与社会-大连理工大学 中国大学慕课MOOC答案
- 精细化工技术-大学专业介绍
- 餐饮财务问题的研究报告
- 慢性疾病运动干预中心服务要求(征求意见稿)
- 林同炎与美洲银行大厦
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蚀工程施工及验收规范
- 人教版八年级历史上册 第一、二单元 单元测试卷( 2024年秋)
- 二次抵押贷款合同
评论
0/150
提交评论