当前位置:首页 > 单片机 > 单片机
[导读] 摘要:本文提出一种利用PWM和电阻网络实现16位高音质WAV语音文件播放的设计,并提给3种解决方案和对比论证,阐述了其实现过程并通过实验验证。该方法不仅成本低,其音质接近16位精度,而且由于WAV编码方式简单,在单

 摘要:本文提出一种利用PWM电阻网络实现16位高音质WAV语音文件播放的设计,并提给3种解决方案和对比论证,阐述了其实现过程并通过实验验证。该方法不仅成本低,其音质接近16位精度,而且由于WAV编码方式简单,在单片机上解码容易实现。实验结果表明,该方法音质效果较好,可应用范围广。

引言

PWM波由谐波和直流量组成,谐波是需要被滤除的信号,即通过模拟低通滤波器可以将调制后的PWM信号转换成模拟信号,滤波器可以消除大部分高频成分,最后只留下直流量,图1为PWM信号还原为模拟信号的示意图。普通单片机受限于其处理能力,一般只能调制8位左右的PWM信号,因此只能还原8位的WAV声音文件。而用D/A转换器实现模拟量的输出成本较高,音质效果也不佳。电阻网络对各频带及幅值的信号的阻碍比较统一,保证了声音信号保真率。本文将16位高音质WAV信号进行拆分处理,一部分由PWM进行调制,另一部分控制8个I/O口中的某几路输出PWM,信号经低通滤波和功率放大后送至喇叭等放声设备,以此将数字语音信号转换成模拟信号,达到语音播放的目的。

1 原理及误差分析

1.1 基本原理

16位数字信号可表示自然界65 535种声音信号,据此将16位数字量量化为对应的模拟信号,便完成声音的还原:

这里将16位数据Data拆分为X1和X2,且有Data=X1×X2。将X1通过单片机的定时器调制为PWM信号,通过控制占空比来控制输出电压大小,即:

将X2用来控制单片机的8路I/O是输出调制好的PWM信号,还是输出信号“0”,该8路信号送到电阻网络,即:

则最后输出的电压大小为:

,以此便可以实现16位D/A转换。

1.2 数据拆分形式分析

针对基本原理中提出的将16位数据拆分为高低位两部分在单片机中的实现,提出3种方案并对其进行对比分析。

1.2.1 方案1

将16位数据从中间截断,并判断高低8位的值是否为0,是则补1,避免拆分的两个数据有一个为0时导致输出也为0。拆分后的低8位送给定时器进行PWM合成,高8位送给电阻网络控制输出。该方式占用单片机资源很少,对单片机处理能力没有要求,可以在所有单片机上实现。但PWM与电阻网络模拟电压输出均有非线性失真,当拆分的两个数据中有一个较小(接近0)或较大(接近255)时,对最后的输出电压有较大影响。

1.2.2 方案2

利用查表法,将Data=X1×X2的所有65 536种数据的拆分结果计算出来,建表后存到单片机中,只需根据数据大小对号查出X1、X2进行PWM调制并控制电阻网络输出即可(X1、X2均不大于256)。该数组需占用128 K的存储空间,但不是所有数据都能写成Data=X1×X2形式,只能尽可能地去逼近,最终的输出值与Data会有少许出入。该方案也不需要单片机具有较强的处理能力,且避免了方案1的缺陷,但因其逼近的拆分方式导致其输出精度有损,达不到16位高精度。

1.2.3 方案3

判断16位数据的高位为0的位数,将不为0的低位数据从中间一分为二,然后将拆分后的数据均左移相同的位数,保证数据拆分前后“一致”,将拆分后的数据分别进行PWM调制和控制电阻网络输出。一般单片机可轻松完成,占用资源较少,避免了方案2的缺陷,但在左移时会

有数据丢失,导致输出误差较大,特别是当数据小于255时,其误差是不可接受的。

根据现有的理论分析和实际的测试效果来看,方案2较为理想。本文针对方案2展开设计。

2 系统设计

系统框图如图2所示,该方案采用TI公司的MSP430F5529作为主控MCU,它将TF卡中的WAV文件读取出来,并在TF卡中的数据表中查出对应的数据拆分值,然后存放在单片机中分出来的1 KB的缓冲区中。定时器A定时读取缓冲区中的数据,定时器B完成PWM调制并同时控制电阻网络输出。由电阻网络输出的信号经二阶低通滤波器和功率放大器后送到喇叭完成语音播放。带触摸功能的TFT液晶屏用来显示和控制语音播放。单片机的供电由两节干电池完成,功率放大电路供电由12 V直流电源提供。

2.1 硬件设计

电阻网络的电路图如图3所示,利用电压叠加定理和电阻分压计算分析可知,其输出为Vout=(1/2×Viol+1/4×Vio2+1/8×Vio3+…+1/256×Vio8)×Vcc。它仅由两种阻值的电阻组成,阻值选取容易,其成本也低。

低通滤波和功率放大电路如图4所示,设计中采用了二阶无源低通滤波器,功率放大器选择TI公司的LM386,它适合放大低电压的音频信号。图4中R1、R2、C5、C6组成二阶低通滤波器,其在下降率为6 dB时的截止频率为16kHz,用以播放采样频率为22.05 kHz的WAV语音。C7、

R3组成了一阶高通滤波器。此处电压增益为20 dB,C3为隔直电容。LS1接0.5 W/8 Ω的喇叭。

2.2 软件设计

本系统在硬件平台的支持下,采用状态机的形式完成对SD卡的读取、触摸控制信号的获取、WAV文件的播放以及WAV的文件名和进度等信息的显示。SD卡读取及LCD显示驱动现已比较成熟,此处不再展开。其中的关键点在于保证WAV音频高音质流畅播放的“同时”,完成控制及显示等功能。为实现这一目标,本设计用另一个定时器来计算下次指令执行所剩时间,低于某一阈值则暂停触控信号的获取及信息的更新显示,优先保证音频能流畅播放。实验表明,该方法在触控及LCD显示上并无明显延迟。其软件流程图如图5所示。

结语

语音的频率范围为300~3 000 Hz,而音乐的频率范围为20 Hz~20 kHz,在PWM语音播放器中需要注意的是PWM的频率一般是低通滤波器截止频率的4倍以上,所以在播放音乐时可根据实际需要提高声音的PWM频率,还可以修改低通滤波器的电容参数(C5、C6),将电容减小,并增大滤波器的截止频率,从而达到音乐的频带要求。

该方案采用PWM并结合电阻网络的形式,其结构简单,性价比高。现单片机的主频很容易突破12 MHz,加上MSP430F5529为16位单片机,其调制PWM的精度可达10位以上,基本弥补了数据的逼近处理带来的误差,提高了整个系统的语音播放音质。该方案可广泛用于火车站的播报提醒、银行等场合的叫号系统、电话应答机以及各种需要高音质语音播报的场合。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭