单片机播放WAV格式音频的理解

发布者:学海星空最新更新时间:2018-07-24 来源: eefocus关键字:单片机播放  WAV格式  音频 手机看文章 扫描二维码
随时随地手机看文章

    很久以前就看到过某知名嵌入式论坛上有大牛用单片机来做WAV播放器,我看到后觉得很不错,有一种制作的冲动,因为那时MP3播放器还很贵。后来我确实也做出来了,还把它送给朋友。但是,当时只是完全copy别人的电路和程序,唯一跟原创不同的是把它外表做得精美点,并没有对里面的原理做出分析。今天突然想起那个WAV播放器来,所以打算把知识点梳理一番。

 一、 首先是WAV格式。WAV格式音频是采用原始的PCM编码数据,没有经过压缩。PCM编码只是一种数字的量化手段,直接用它来当做原始数据来处理是可以的。只要我们按照原来的采样速率把数据通过DAC,那么声音就会还原回来。你要PCM数据你首先要知道.WAV后缀文件的格式。

  WAV文件是以RIFF格式为标准的,RIFF格式是windows环境下大部分多媒体文件遵循的一种文件结构,由多个chunk(块)组成,:RIFF WAVE Chunk, Format Chunk, Fact Chunk(optinal), Data Chunk,LIST Chunk(optinal)等。如下图所示:

那么,每一个chunk的格式是怎样的呢?每个Chunk 有各自的ID,位于Chunk 最开始位置,作为本Chunk 开始的标识,均为4 个字节字符。紧跟在ID 后面的是Chunk 的大小---Size,也占用4 个字节,Size 是本Chunk所占字节总数减去8 个字节(ID 和Size)的数值,低字节表示数值的低8 位,高字节表示数值的高8 位(类似于小端模式),下面具体介绍各个Chunk 内容。

      1.RIFF WAVE Chunk

假设size大小为a,则这个文件大小为(a+8)字节,type标示这是WAV文件。

      2.Format Chunk

这一块很重要,包含了重要信息,包括声道数,采样频率,数据位数等

      3.Fact Chunk(optinal)

这一块为可选,有些没有此chunk

   4.Data Chunk

size大小纯粹是data的大小。

   5.LIST Chunk(optinal)

此块也是可选,可以用来在文件最末端添加一些附加信息。

       声道数据是怎样反映在data里呢?假如是8位单声道,则是每个采样点一个数据,不间隔。假如是8位双声道,则每个采样点的采样数据包含左右两个声道数据,也就是先左声道的数据,紧跟着是右声道数据,然后下一个采样点......16位数据这里就不介绍了。8位PCM的格式为ungsigned char 0~255。刚好与AVR单片机的TCNT0的范围一样,待会讲到PWM时再讨论。相信大家对WAV文件格式有初步了解。大家可以用WinHex软件查看WAV文件,对照上面的表格,自己找出实际音乐数据的位置,查看一下没有声音时PCM数据是多少(0x80)。

    二、PWM组成的零阶保持器

    PWM是脉冲宽度调制的缩写,可以通过改变“占空比”来改变电压有效值。我们可以考虑,当占空比可以由数字信号的量化值来改变时,那么输出电压的有效值跟量化值应该会有一个近似正比的映射关系,于是,这一个装置可以看做是一个粗糙的DAC。我们可以用这个"DAC"来将PCM信号还原成声音信号(类似于D类放大器)。

   我们可以使用AVR的PWM来实现。AVR单片机的PWM有几种模式-----普通模式,CTC模式,相位修正PWM模式,快速PWM模式.每种模式有各自的优缺点。我们这里可以用快速PWM模式。下图是ATMEGA16的快速PWM模式的时序图:

       可以看出,当COM01:COM00=1:0时,TCNT0为初值时引脚OC0输出高电平,一直持续到TOP,或者跟OCR0的值匹配后,引脚OC0变低。当改变OCCR0值时,占空比也跟着改变,而且,OCR0值越大(最大0xFF),占空比越大。AVR单片机快速PWM模式的PWM频率F=Fosc/(256*N);N为分频值。F越大,“DAC”的噪声就更多地分布在高频,容易使用低通滤波器滤除,提高音质。我们可以设置TCCR0=0X69;TCNT=0X00;OCR0=0X7F;代表的意义具体查看ATMEGA16的寄存器说明。为了能让从WAV格式文件读取出来的数据转换成音频信号,除了有DAC,我么还需要把数据按照采样率来输送到“DAC”才能还原成原来的声音。相信大家小时候都玩过磁带录音机,磁带录音机的转速是有一个标准的,也就是录音和播放采取一样的转速,如果因为里面的齿轮生锈了,转速变慢,那么播放出来的声音就变得走音、低沉,有时女声变成男声。同样地,这里的采样率跟磁带录音机的转速一个道理。那么,我们可以用单片机的定时器功能来做到,在定时器中断服务程序中发送数据给OCR0,也就是定时发送数据给“DAC”,只要将定时器的频率调节到采样率,那么声音就还原出来了。

      如果没有接触过SD卡和文件系统,我们可以简单地,用Windows系统自带的录音机功能录取一段单声道语音,用WinHex查看,找到数据,把它做成一个C语言数组形式。就可以用单片机读取还原出声音了!!


关键字:单片机播放  WAV格式  音频 引用地址:单片机播放WAV格式音频的理解

上一篇:好消息!PCB设计周期将会缩短
下一篇:STM8 测量脉宽——红外例程

推荐阅读最新更新时间:2024-03-16 16:09

ST推出世界首款高动态范围音频处理器
完美地清晰呈现各种声音。 中国,2014年7月 10日 ——横跨多重电子应用领域、全球领先的半导体供应商、音频处理IC技术的领先厂商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)推出世界首款集成创新高动态范围(HDR,High Dynamic Range)音频信号采集技术(signal acquisition)的音频处理器。这款高集成度解决方案整合了目前所有的最尖端的音频处理技术,拥有强大的性能,且设置灵活,简单易用。 音频处理器是有源音箱(active speakers)、影音基座 (docking stations)和数字媒体播放器等家庭影音系统的重要组件,以高集成度为亮点
[嵌入式]
xMEMS Live - China 2023 | 音频技术研讨会成功举办,音频先锋xMEMS分享固态保真音频方案
中国深圳,2023年9月25日 - 半导体音频解决方案公司xMEMS Labs今日在中国深圳举办“xMEMS Live – China 2023”音频技术研讨会,在现场与音频行业伙伴进行面对面交流。 这是xMEMS Labs在中国一连两场音频技术研讨会的第二场,继9月18日上海场次后,深圳场次的成功举办,代表着“xMEMS Live – China 2023”研讨会的圆满结束。 xMEMS Live – China 2023是由目前业内唯一提供全硅单片MEMS微型扬声器的 xMEMS Labs举办的音频行业研讨会。研讨会上,xMEMS的管理人员、技术领导者以及业界领先企业的合作伙伴一起探索利用xMEMS的固态保真解决
[模拟电子]
xMEMS Live - China 2023 | <font color='red'>音频</font>技术研讨会成功举办,<font color='red'>音频</font>先锋xMEMS分享固态保真<font color='red'>音频</font>方案
基于LM4756的立体声功率音频放大器电路
这是使用功率IC LM4756的立体声功率音频放大器的电路图。该 IC 能够为每个通道提供 7W 的双输出通道。与其他音频放大器电路一样,该电路只需要一些外部元件即可工作。 电路应用: 印刷电路板设计: 这是带有 LM4756 的 2 x 7W 音频放大器的 PCB 设计: 关于 LM 4756: LM4756 是一款立体声音频放大器,能够以 10% 的失真将 7W/声道输出到 4还是 8 个加载。功率放大器的内部设定增益为 30dB。一个 0V 5V DC 控制音量模块提供从输入到线路输出的 80dB 衰减。信号路由的音量控制后,线路输出可用。 该放大器具有平滑过渡淡入/淡出静音和通过TTL或CMOS逻辑控制的省
[嵌入式]
基于LM4756的立体声功率<font color='red'>音频</font>放大器电路
一种基于智能接口的音频系统设计
0 引言   随着现代电子技术的发展,接口技术的发展也越来越迅猛,而USB接口正是在这样的背景下发展并壮大起来的。在传统的硬件体系结构中,接口被看作是相应外部设备的一部分,每个接口一般都只能连接到同一种设备上。虽然通过所谓“菊花链”(daisyohain)方式可以把若干同种设备连接到同一接口上,却不能将不同种类的设备混合连接到同一接口上,由于目前USB接口的设备越来越丰富,种类越来越多,为了满足这样的需求,这里给出一种USB 2.O接口的解决方案,通过USB接口读取各种USB设备;通过SD卡接口,读取各种主流存储卡。该方案支持常用的USB存储设备(包括U盘/USB硬盘/USB闪存盘/USB读卡器)和SD卡(包括标准容量SD
[安防电子]
一种基于智能接口的<font color='red'>音频</font>系统设计
基于AVR单片机音频系统设计
引言   随着现代电子技术的发展,接口技术的发展也越来越迅猛,而USB接口正是在这样的背景下发展并壮大起来的。在传统的硬件体系结构中,接口被看作是相应外部设备的一部分,每个接口一般都只能连接到同一种设备上。虽然通过所谓“菊花链”(daisyohain)方式可以把若干同种设备连接到同一接口上,却不能将不同种类的设备混合连接到同一接口上,由于目前USB接口的设备越来越丰富,种类越来越多,为了满足这样的需求,这里给出一种USB 2.O接口的解决方案,通过USB接口读取各种USB设备;通过SD卡接口,读取各种主流存储卡。该方案支持常用的USB存储设备(包括U盘/USB硬盘/USB闪存盘/USB读卡器)和SD卡(包括标准容量SD卡和
[单片机]
基于AVR<font color='red'>单片机</font>的<font color='red'>音频</font>系统设计
音频衰减器电路中使用MAXQ3210
摘要:本应用笔记介绍一种可自动实现立体声音频衰减器的系统。MAXQ3210低功耗16位RISC微控制器是系统控制器,它产生各种时序间隔,驱动音频信号逐渐衰减,以静音状态结束。使用DS1801 65级、音频抽头、双路数字电位器来产生衰减。MAX1467双路、单电源供电运算放大器提供信号缓冲。可以从Maxim网站上下载固件源代码。 引言 现在很多娱乐设备不需要人干预就可以自动停止工作。例如,现代的无线设备和家庭电视在一定时间或者在预设的周期内可以自己关断,这些应用已经比较普遍了。这种功能便于实现“睡眠”模式,当人们睡着之后,设备自动关断。 然而,并不是所有的娱乐设备都有这类功能;合成立体声系统一般不提供这类特性。在这种情况下,需要
[嵌入式]
在<font color='red'>音频</font>衰减器电路中使用MAXQ3210
三星的新耳机资料曝光 有功能很像空间音频
12月22日上午消息,三星正准备推出新产品Galaxy Buds Pro耳机,该耳机可能会在1月与新的Galaxy S21智能手机一起首次亮相,据说,它会提供类似苹果“空间音频”的功能。   Galaxy Buds Pro这产品目前还没发售,但因为三星的保密工作的疏忽,他们自己不小心在Galaxy Wearable应用中泄露了这耳机,还有一些详细功能。   这耳机看上去与现在的产品Galaxy Buds外观类似,都是入耳式设计,但是其中有一个新的“视频3D音频(3D audio for videos)”功能,听起来很像AirPods Pro和AirPods Max设计的“空间音频”功能 。 “空间音频“是苹果给AirP
[手机便携]
YXC晶振为音频调节器服务提供解决方案
随着智能技术的不断发展,音频设备正朝着智能化方向迅速发展。 音频调节器作为其中的一部分,发展优化了一系列先进的功能,音频调节器拥有对白增强、声场扩展、环境音效、声像位置调整、动态范围控制等功能,能够针对不同的播放设备和不同的音源类型进行个性化的音频性能优化,可以显著提升用户的音频体验。 本文将介绍音频调节器的时钟设计方案,该方案搭配扬兴科技YXC的有源晶振系列YSO110TR-12.288MHz,是市面上最具性价比的设计方案之一。 【方案优势】 1.体积小、功耗低、高效能、整合Wi-Fi功能的系列产品; 2.先进的数字信号处理技术和声学原理; 3.能有效的改善音乐或电影中声音沉闷浑浊、声场太窄或太宽的问题。 【方案框图】
[嵌入式]
YXC晶振为<font color='red'>音频</font>调节器服务提供解决方案
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved