碧波液压网 欢迎你,游客。 登录 注册

利用PWM给单片机应用增加语音功能

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  随着嵌入式领域的拓展,目前许多微控制器芯片一般都不具备数据一模拟的双向通道,但几乎都集成有PWM产生模块。本文利用飞思卡尔公司HCSl2单片机的PWM模块,还原存储在存储器中的声音采样数据,在几乎不增加成本的情况下,实现嵌入式应用中的扩展语音功能。

  HCSl2系列单片机未包含数/模转换的模块。要给其扩展语音功能,通常的做法是增加一块数/模转换芯片。虽然这样做可以得到非常好的音质(取决于数/模转换芯片的性能),但由于耍多使用一块数/模转换芯片,在对音质要求不太高的应用中,会给设计增加额外的成本,同时也使电路设计相对复杂。

  本文介绍利用PWM还原声音的解决方案,可以很好地解决这个矛盾。例如安全报警应用中,系统通常已经包含了一块微控制器(用来处理人机交互以及系统的控制等),当发出警报时,可以是“BB”或“当当”的蜂鸣声;当然,更好的做法是发出清晰的语音。

  用PWM产生声音的基本原理,是使用存储在Flash中的音频采样数据或通过某种算法产生的声音数据,来控制PWM每个波形的占空比;接下来通过一低通滤波器滤波,就可将声音从PWM的脉冲波里分离出来,驱动扬声器发出声音。

  1 从WAV文件中提取声音采样数据

  一般来说,可以从WAV文件中提取声音数据,标准的WAV格式的声音文件含有声音的采样数据和文件头。文件头描述了后面声音数据的一些信息,如通道数、采样频率、采样位数以及数据的长度等。

  通道数,是指声音的采样路数,如单声道、立体声等。采样频率,是指每秒钟对声音的采样次数,采样频率越高,还原出来的声音越接近原始声音,如表l所列。要精确还原出某种频率的波形,其最小采样率应为该波形的2倍。

  

 

  采样位数,指的是每次采样的采样精度。采样位数越高,还原出来的声音的量化噪声越小,波形也越接近原波形。WAV文件的文件头定义:

  

 

  提取声音数据时,请注意采样频率、采样位数、存储容量与存储时间的关系,如表2所列。通常,11.025 kHz的采样频率和8位的采样位数可获得清晰的语音以及较好的音乐声,并且占有较少的存储空间。

  通过了解和分析WAV文件的格式,可以将文件中的声音采样数据读取出来,并转换为C语言格式的数组结构,以便和其他程序一并编译和下载到芯片中去。例如:

  

 

  2 产生PWM波形

  要还原声音,最低要求是HCSl2系列微控制器具备一个PWM模块,芯片选择的另一个细节是要有足够的Flash存储容量,来存储声音的采样数据。MC9S12DP256具有一个16位的PWM模块.可产生16位解析精度的PWM波形,这意味着nr以使用16位的采样数据来产生PWM。MC9S12DP256还具备256 KB的Flash,能够存储23 78 s八位11.025 kHz的采样数据。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签: PWM
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论