新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ISD4004语音芯片和AT89S52单片机的语音播报记

基于ISD4004语音芯片和AT89S52单片机的语音播报记

作者:时间:2011-09-08来源:网络收藏

  引 言

  本文介绍一种以语音存储与自动播放系统为基础的记事器设计。该设计以:语音芯片和单片机为中心,很好地实现了语音存储与自动播放。

  1 硬件设计原理

  记事器的主要功能是实现语音存储与定时播放。要实现语音存储与定时播放的方法很多,可供选择的器件也很多。由于单片机等微控制器的出现和数字电路技术的发展,使得现在的语音存储与自动播放变得易于实现。本设计采用单片机作为微控制器。单片机的字长由4位、8位、16位发展到32位。目前这几种字长的单片机同时存在于市场,用户可以根据不同的需要进行选择。本系统选用字长为8位的单片机作为控制器。

  目前可以与单片机配合使用的语音芯片有很多,其中不乏性能十分优越的语音芯片,美国ISD公司生产的语音芯片就是它们中的一员。芯片采用CMOS技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮阵列。引脚包括电源、时钟、语音信号模拟输入/输出端、与MCU接口(SPI接口)几部分。芯片采用多电平直接模拟量存储技术,每个采样值直接存贮在片内闪烁存贮器中,因此能够非常真实、自然地再现语音。

  ISD4004系列单片录放时间为8~16 min,采样频率可为4.0/5.3/6.4/8.0 kHz,频率越低,录放时间越长,而音质则有所下降。芯片设计基于所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI或Mi-crowire)送入。由于ISD4004的众多优点,本设计就采用它作为录放音器件。

  系统外接时钟芯片PCF8563、矩阵键盘LED显示和E2PROM AT24C01。录音时为了改善语音质量,要提高输入端的信噪比,因此在系统的输入端采用三极管(9014)放大电路单端输入,系统的输出端经音频功率放大器LM386放大输出后驱动扬声器。整个系统的系统框图如图1所示。

  


  2 硬件设计

  2.1 语音输入与输出电路设计

  语音信号经过驻极体话筒转化为的电信号很微弱,在送入语音芯片之前需要经过放大。这样做的目的是为了提高信号的信噪比,以达到更好的抑制噪声的目的。由于声电转换器件使用的是驻极体话筒,所以后级放大电路使用三极管作为放大器件即可满足要求。本设计中从语音芯片输出的语音信号很微弱,不能直接驱动扬声器,所以要在语音芯片和扬声器之间加上一个功率放大电路。功率放大电路使用美国国家半导体公司生产的音频功率放大器LM386并配合少许电容电阻构成。该功放电路的放大效果良好,噪音小,可以满足本设计的要求。

  2.2 显示电路设计

  本设计的显示部分使用LED数码管。为了提高LED显示的亮度,在本设计中,将a,b,c,d,e,f,g引脚分别串联300 Ω的电阻后接5 V电压即可。本设计采用软件查表方式输出。当系统没有录放音时,需要显示年、月、日、时、分、秒、星期等信息;当系统有录放音时,需要显示与录放音有关的信息。这样,整个系统一共需要15个数码管。为了节省单片机的I/O口,显示部分使用了74LS154,单片机与LED的接口采用动态接口。74LS154是4线16线译码器,用于将单片机的输出译码后作为LED的片选信号使用。

  2.3 PCF8563接口电路设计

  PCF8563是飞利浦公司生产的低功耗的CMOS实时时钟/日历芯片,是I2C总线接口器件。设计中,PCF8563用来提供时间和日历信息。当没有进行录音和放音操作时,本设计相当于一个万年历;当进行录音或放音时,PCF8563用来对每段录音或放音进行计时,所有的时间信息均通过LED数码管显示出来。由于PCF8563是漏极开路,所以必须要加5.1 kΩ的上拉电阻。PCF8563与的接口电路设计如图2所示。

  

  2.4 ISD4004接口电路设计

  本设计使用ISD4004-16M型号的语音芯片。这款语音芯片可以录音16 min,它有一个端口为RAC端,RAC为行地址时钟端,每个RAC周期表示ISD存储器的操作进行了1行(ISD4004系列中的存贮器共2 400行),所以RAC端的行地址数目与语音芯片中存储器的行数对应,即语音芯片存放的每段录音的初始与结束地址与惟一的RAC行地址数对应。所以只需将RAC端与单片机的计数端相连,仅记录RAC行地址数目即可实现整个录放操作,且单片机的计数器无需中断。根据以上的思想,设计ISD4004与单片机的接口电路如图3所示。

  

  3 软件设计

  本设计中的程序设计包括以下几个部分,即键盘处理程序、ISD4004放音驱动程序、ISD4004录音驱动程序、时间校正程序、录音子程序、放音子程序、播放时间设置子程序、播放选择程序、子程序设计。图4为主程序流程图。

  

基于ISD4004语音芯片和AT89S52单片机的语音播报记

  4 系统测试

  系统上电后15个数码管全亮大概3 s,以此检测数码管的好坏。之后数码管会出现年、月、日、星期、时、分、秒等信息。当按下录音键后,系统开始录音。录音时,数码管会显示“SAVE”字样,并会显示该段录音的时间信息;当确定键按下后,该语音段的录音结束,数码管重新显示时间信息。当按下放音键时,系统开始放音,这时数码管会显示“PLAY”字样,并会显示该段录音的时间信息。放音结束后数码管会回到时间显示界面。当按下时间校正键后,便可以对时间进行校正;当按下确定键后,时间校正结束。本系统可以录音15 min,可以录4段录音。当按下播放设置键后,就可以对每段录音的播放时间进行设置;当按下播放选择键后,就可以播放4段录音中的任意一段。

  本系统在播放录音时会有少量的噪音,可能由以下原因造成:

  (1)整个系统完全是手工焊制,线路之间存在干扰;

  (2)ISD4004的数字地与模拟地没有分别走线,全部接到了一起,存在干扰;

  (3)语音输入放大电路的放大倍数不够,噪声没有得到足够的抑制。

  整个系统的设计合理,外围电路结构简单,方便调试;单片机余留有I/O口,方便系统的升级和扩展;单片机的所有程序均使用C-51进行编写,方便调试和阅读。整个系统工作稳定,操作方便。本设计的设计原理完全可以用在公共汽车上,作为语音报站器使用,也可以用在银行和医院等一些需要自动播报语音信息的公共场所。在本设计的基础上稍加扩充,就可以满足实际应用的需要。



评论


相关推荐

技术专区

关闭