IS22C011/20语音芯片的原理及在MCS-51单片机中的应用
扫描二维码
随时随地手机看文章
IS22C011和IS22C020是ISSI公司推出的高品质语音芯片,它们采用 ADPCM压缩技术、POP减噪技术和最先进的亚微米EPROM技术,实现了即时编程,并使用户产品的开发时间大为缩短。IS22C011/20可由多种开发工具来支持,如IS22VP002(单片机开发系统)、IS22VP003/004(PC机开发系统)等。该芯片只需极少的外围元件,便可实现高质量的语音播放,IS22C011/20语音芯片采用串联扩展可使播放时间不受限制,而采用并联扩展则有利于混音的形成。同时由CPU对其进行部分引脚的控制可方便地应用于仪器设备的语音提示或报警。IS22C011与IS22C020的主要技术特性如下:
●语音长度:
— 8kHz取样:011/020:8/16s;
— 6kHz取样:011/020:10/20s;
— 5kHz取样:011/020:12.8/25.6s;
●电源电压:DC2.4~6.0V;
●静态功耗:<5μA;
●防抖触发延时时间(Debounce delay):15ms
●STP脉冲宽度:30ms;
●采用4键触发可提供8段语音。
1 引脚功能
IS22C011/20采用16-PIN和SOP封装形式,其引脚排列如图1所示,各引脚功能如下:
1、6脚(LED1、LED2):LED显示驱动端,3Hz闪烁,011为高电平有效,020为低电平有效;
2、3脚(VOUT1、VOUT2):蜂鸣器驱动端;
4 脚(GND):电源地;
5脚(STP/BUSY):STP语音结束脉冲输出信号或BUSY信号;
7脚(COUT):电流型D/A转换输出端口,其输出信号可用于驱动扬声器;
8脚(OSC):振荡器电阻接入端,可用于控制采样频率;
9 脚(VPP):编程电源端,放音时不用;
10、11、13、14脚(S1~S4):语音触发端,通常在内部被拉低,高电平有效,可用于控制8段语音,其译码如表1所列;
21脚(VCC):电源正端;
15脚(SBT):全播或顺序播放控制端,此端采用内部下拉,高电平有效;
16脚(IRP):停止播放控制端,采用内部拉低,高电平有效。
2 内部结构
IS22C011/20的内部结构如图2所示,由图可知,该芯片用振荡器、时钟信号发生器来提供时钟信号。其振荡器频率(即语音采样频率)由外接振荡电阻ROSC确定,振荡线路采用高稳定结构,因此在正常的工作电压范围内,采样频率均可保持恒定。该芯片中的逻辑控制电路是芯片的控制中心,可协调和控制地址定序器、 ADPCM译码器、POP减噪电路等线路的工作。EPROM为256k字节的一次性(OTP)存贮器,可分成8段语音,每段语音长度由用户编程控制,长短可不一,但总长度不能超过存贮器总容量的允许时间(如若采样频率为8kHz,总长度不能超过8s)。蜂鸣器缓冲输出采用PWM输出方式,可直接驱动蜂鸣器,并可减少耗电量,因此特别适用于钮扣电池供电设备。其D/A电流输出可直接用晶体管来推动扬声器(1/4W),而无需复杂的滤波线路。
3 可编程选项及时序图
IS22C011/20具有可编程选项功能,包括脉冲触发及电平触发选项、STB全播或顺序播放选项、STOP或BUSY信号选项、放音结束噪音自动下降及非自动下降选项。图3所示是其前三项选项的时序图。放音结束噪声自动下降通常是指在放音结束时COUT端出现的“POP”噪声的下降。实际上,放音结束时使COUT端的输出电流渐渐减少为零可降低电流突然为零(即非自动下降时)时出现的“POP”噪声(即POP减噪),它可在声音数据编码时由用户选择与编程,其信息与声音数据通常被存贮在存贮器中。
图3中还给出了S1脉冲触发及电平触发的COUT时序图,S2~S4的COUT时序图则与S1完全一致。而SBT信号仅给出了脉冲触发的时序图,其电平触发时序可参考S1时序。
4 典型应用
图 4为 IS22C011/20的典型应用电路(LED1、LED2为020的驱动方式),图中的三极管的β值应大于130、SP可选用8Ω、1/4W的扬声器。图5为芯片串联使用时的电路图,该电路的语音长度为两片之和。图6为并联使用时的电路图,其语音段可由8段扩展为16段,也可混音输出。
5 在MCS-51单片机中应用
5.1 硬件连接
当IS22C011/20的S1~S4、STB/BUSY等信号端由MCS-51或其它接口芯片(如8255A)控制时可方便地实现单段一次、多次或多段连续触发,图7为8031与IS22C011/20连接线路。由于8031在复位时的口线输出为高电平,而S1~S4为高电平有效,因此P1. 0~P1.3可通过4069反相器与S1~S4相连。将STB/BUSY控制端与P3.5(T1口)相连可用于单段多次或多段连续触发,T1口工作于方式 2可自动再装入8位计数方式,并允许T1口中断。一旦前段播放完毕,则由STP信号触发T1口向CPU发出中断申请,以进行再次触发或触发下一段,因此, STP/BUSY信号选项应选择STP信号,而S1~S4则用于选择脉冲触发。由于防抖触发延迟时间为15ms,因此触发时的脉冲宽度必须大于15ms,本文中的程序设计为30ms。
5.2 软件编写
以下为单段一次、再次播放和二段连播程序清单,其中“DEL”为触发脉冲脉宽延时子程序,脉宽为30ms。为了提高CPU的工作效率,程序中采用T0 口中断定时方式。R0用于设置播放次数或段落数,#00H为单段一次播放,#01H为单段二次或二段连播。R1、R2的低四位设置二次播放的触发译码,单段二次连播时R1、R2应设置相同的译码,单段一次时R2可不用。由于采用4069反相驱动,因此R1、R2中设置的触发译码应将表1中的译码取反。具体的程序清单如下: