1 系统构成
语音电路组成框图如图1所示。由PLC发布RS232电平信号,经电平转换后,为单片机AT89C51所接收。一方面控制语音芯片ISD1420放音,同时控制高亮度数码显示牌给出倒计时信号,为被训练人员提供提示。看门狗则保证该电路正常运行。
2 语音信号控制
2.1语音电路构成
根据训练要求,语音电路在起跑前10秒发出“长提示音”一声,然后每隔一秒发“短提示音”一声,计时回零时发“发令枪声”(发声规律可调)。
语音部分电路设计见图2。“提示音”与“起跑枪声”由语音存储/再生芯片ISD1420分段存储,ISD1420输出的音频信号经电容耦合到两片集成功率放大器TDA2003构成的BTL功放电路,最后由扬声器输出。MAX232将PLC送过来的RS232电平信号转换成TTL电平并送到单片机AT89C51,AT89C51根据PLC的指令,通过P3.6控制ISD1420的放音,P3.2~P3.5用来调整放音地址。MAX813L则作为看门狗为单片机AT89C51提供上电复位和运行监控,由P3.7提供喂狗信号。
2.2语音电路特性
选用语音存储/再生芯片ISD1420。该电路采用EEPROM存储方法将模拟语音数据直接写入半导体存储单元中,具有音质自然、可反复录放、抗干扰、低功耗等许多优点。ISD1420放音时间为20秒;最多可分为160段,每段段长最少125ms;输入采样6.4kHz;100000次录音周期;5V单电源供电,放音电流15mA,维持电流0.5μA。完全满足设计需要。使用28引脚的DIP封装芯片,引脚功能见参考文献[5]。
地址引脚(A0~A7)有两个作用,取决于A7、A6的状态。当A7或A6有一个为“0”时,A0~A7解释为地址位,作为当前录放操作的起始地址。我们设计的电路使用了A0~A7的地址位功能。ISD1420的地址空间分配见表1。
根据需要,语音信号分为“提示音”和“发令枪声”两段存储数据,“长提示音”或“短提示音”则由放音时间来区分。利用A0~A7引脚的地址功能,将ISD1420的内部存储空间分成两部分。20秒存储空间分为前8秒存储“提示音”,后12秒存储“发令枪声”。本设计对语音信号的音质要求并不高,所以语音数据事先由模拟方式录入。由于实际放音持续时间都小于存储的时间(8秒、12秒),可以通过调整语音芯片的低位地址A0、A1、A2(P3.2~P3.4控制)来选择合适的数据段播放。
如图2所示,语音电路在现场使用时只受控放音,
AT89C51的P3.6控制,放音时间长短由P3.6低电平保持时间决定。放音地址则由P3.2~P3.5决定。P3.5=0为“提示音”地址;P3.5=1为“发令枪声”地址,P3.2~P3.4为地址微调。何时放音、放哪段声音、放多长时间均由PLC发布命令。
2.3BTL功放电路
起跑装置要求在无交流电源时,可用电瓶供电,所以电源设定为12V。由于在户外使用,要求发出的声音具有一定的响度,即要求语音电路有较大功率输出。ISD1420内部输出级带有放大器,其直接的扬声器驱动功率为12.2mW(16Ω负载),这距离我们的实际需要相差很大,因此后级功放必须保证能在低电压下输出大功率信号,以推动扬声器发声。
要在单电源低电压条件下输出大功率信号,功放电路选择桥接式无变压器输出电路(即BTL电路),其基本工作原理由图3所示的分立元件BTL电路简图说明。图中有四个输出管VT1~VT4,扬声器接在两个输出端之间。在输入信号u的正半周,VT1、VT4导通,VT2、VT3截止,输出电流如图中I1所示。在输入信号u的负半周,VT2、VT3导通,VT1、VT4截止,输出电流如图中I2所示。正、负半周,扬声器上的电位差方向相反,大小相等,都接近电源电压,所以对电源的利用率很高。理论上BTL电路效率可达78.5%。
实际使用的电路如图2所示,两片10W集成功率放大器TDA2003接成BTL电路形式,通过电容与扬声器直接耦合,利用同时“推”“挽”的原理,扬声器上正弦波峰峰值电压近似为电源电压的两倍。输出基本能满足要求。
3 软件设计
AT89C51的软件设计相对简单。主要包括与PLC的串行通讯程序(12MHz晶振、4800波特率、八位异步方式),放音控制程序,显示控制程序及喂狗程序。由于都是常规的方法,这里不在赘述。