在大型、复杂的工业控制系统中,无论采取什么方法来提高系统的可靠性,在长期的生产使用中,系统还是会出现故障的。因此,故障诊断及报警技术便成为提高控制系统可靠性和可维修性的最后一道防线。传统的声光报警系统受物理条件的限制,很难达到令人满意的效果,甚至由于报警信息不明确还会出现故障处理不及时或处理不当的现象,造成不必要的损失。
语音合成技术的发展为故障报警提供了一条新的而有效的途径。语音报警具有灯光报警所不可比拟的优点:首先,语音给人以非常快速、直观、准确的信息,便于维修人员实时分析、处理所出现的问题;其次,人类有相当大的一部分信息量是通过语音获取的,语音给人以非常亲切的感觉,利用语音作为报警输出结果的表达方式,大大缩短了人机交互界面的距离。而且,随着电子技术的发展,存储器的容量不断增大,可以存储大量的语音信息。基于此,我们设计了一套基于87C51单片机的语音报警系统用于“遥控机器人化铲掘机”控制系统的故障诊断及报警,该系统结构简单、使用可靠,不仅大大提高了系统的报警能力和质量,而且维修者可以从语音报警中直接获得有关故障诊断专家系统的诊断结果,为判断和隔离并及时排除故障提供了很大的帮助。
语音存储容量的确定
存储器的容量C(单位Kb)可以用下面的公式计算:
c = r × t (1)
其中t为语音合成时间,单位s,r为采样比特率,也就是存储1秒钟语音信息所必需的bit数。r用下面的公式计算:
r = f × m (1)
其中f为采样频率,单位kHz; m为语音信号采样值的编码位数,确定采样频率、编码位数和语音合成所需的时间后,就可以通过上面的公式计算出存储器的容量。
语音录入
在语音录入时,我们选用了台湾技电公司生产的基于286以上普通PC机的VP- 880语音合成开发系统,语音合成芯片为该公司自行开发的VP1410。该芯片在语音信号的调制过程中采用CVSD ( Continuous Variable Slope Delta Modulation)调制技术。CVSD是一种δ调制增量自适应系统,采取连续采样,以相对基准的比较值作为采样结果(0或1)输出,故其编码位数为1,采样比特率在数值上等于采样频率。所以我们可以通过选择较高的采样频率来获得好的声音品质。根据香农采样定理,语音信号的采样频率必须是语音所必需的频带宽度的2倍以上。在实际录入时,我们选取的采样频率为32kHz。
首先,我们对系统可能出现的故障类型进行预测,规划出系统报警所需的单词及语句内容,计算出语音合成大约需要的时间,然后根据公式(1)计算出所需的存储器容量。由于报警系统用于发声的词汇专业性强,数量较少却使用频繁,我们选用EPROM作为存储器,这样既利于长时间保存报警信息,又便于系统反复调用。结合所选用的语音合成芯片VP1410的地址扩展能力,我们选用了4片1Mb的EPROM,可以存储2分多钟的语音量信息。
报警信息规划好以后,即可进行语音录入。录入时尽量选择较好的话筒(如驻极体电容式话筒)以保证声音品质。经话筒的声电转换,语音信息转变为电信号进入语音合成开发系统,然后经系统的CVSD调制,最后通过开发软件的切割、组合,以二进制形式存储在计算机中。其过程如图1所示:
图1
语音库建立以后,就可以利用通用编程器将语音信息烧录到EPROM中。
系统基本功能
语音报警系统要实现实时报警,必须具有以下功能:
- 与主控CPU实时通讯能力
- 在线故障诊断及处理功能
- 按照诊断结果进行正确的触发逻辑判断,控制相应的语音信息段输出
- 驱动LED显示板报警
- 存储报警信息的能力
- 适应音频带宽
- 的滤波能力
- 音频输出及功率放大功能
系统组成
为实现上述功能,该系统Inte187C51,双口RAMIDT7132,语音合成芯片VP1410(无需扩展即具有10段放音能力),LED显示板,存储器组(4片27C010),带通滤波器(300Hz ~ 3.4IkHz),功率放大器和扬声器等部件组成,如图2所示。
语音报警系统的核心是Intel 87C51微处理芯片和语音合成芯片VP1410, 87C51不仅要实现与主控CPU的实时通讯,而且要完成故障的诊断及处理,并驱动语音芯片及LED显示报警。语音合成芯片应能正确读取语音EPROM中的语音段并进行D/A转换,然后经滤波及功率放大由扬声器放音。
我们利用存储在87C51片内EPROM中的故障诊断专家系统来完成故障诊断,在专家系统的知识库中,存储了各类故障的征兆、模式、成因和处理意见等内容。专家系统根据从主控CPU获得的故障检测信息及初步结果,运用知识库中的知识通过正、反向推理机制进行推理判断,直到得出诊断结果和处理意见。
为了提高系统的可靠性,我们还在系统中设置了看门狗电路,一旦系统出现不可恢复性错误,看门狗电路驱动单片机复位,并在程序内部设置了程序“陷阱”,避免程序走飞。
图3
带通滤波器设计
语音信号经语音合成芯片处理后,还需对其进行滤波处理,才能达到令人满意的效果。该滤波器应只允许人的话音频带(一般在300Hz~3 . 4KHz之间)通过,并能滤去声音合成输出信号中含有的一些高次谐波,达到改善话音清晰度,提高信噪比S/N的目的。我们设计的带通滤波器由高通滤波器和低通滤波器串联组成,如图3所示。
图中的高通及低通滤波器分别为赛伦-凯型二阶有源滤波电路,具有-40dB/10倍频的衰减抖率。其中高通滤波器的截止频率为300Hz,低通滤波器的截止频率为3.4KHz,所以整个电路具有300Hz-3.4KHz的通频带。我们以低通滤波器为例说明设计计算过程(集成运算放大器为LM324 )。
为计算方便,令R5 = R6,R7= R8 = R,C3 = C4 = C,则电压放大倍数为:
由于集成运放工作在线性区,利用IΣ = IΣ'和VΣ = VΣ'的结论,不难得出:
从上式可以看出,这是一个具有二阶响应的低通滤波器,其中:
因为f0 = 3 .4KHz,所以由式(5)可得 RC=0 .047 x 10-3,取R=l0KΩ,则C= 0.0047μF。需要注意的是当Av = 3 时,电路将产生自激振荡,因此,R6 必须小于 2R5,而且需要选择性能比较稳定的电阻,我们取 R5 = R6 = 10KΩ。
基于同样的求解过程,我们求得高通滤波器的各个参数如下
语音信号经带通滤波后,还需进行功率放大,才能得到令人满意的响度效果,由于篇幅有限,这里就不再赞述。
系统工作原理
主控CPU内部的故障检测程序通过检测各子系统传感器的反馈信息,对整个控制系统的运行状态进行在线监控。当系统的某一部分发生故障时,其反馈的信息会发生变化,这种变化是渐变的或突变的。当检测程序检测到这些变化时,判断系统是否出现了故障,一经确认,主控CPU马上将检测到的相关信息及得出的初步结果送入双口RAM IDT7132中,同时通过握手机制向语音报警系统的CPU 87C51发中断申请,通知87C51主控CPU将故障信息写入双口RAM。 87C51以中断查询方式工作,一旦检测到主控CPU有中断申请,马上响应,读取IDT7132中的内容。然后故障诊断专家系统根据获得的检测信息进行故障诊断,得出故障的发生部位、类型及危害程度,并提出相应的处理意见。
诊断结果及处理意见得出后,87051通过口线驱动LED显示报警,同时程序进行触发逻辑判断,计算出与专家系统诊断结果相对应的语音信息段在EPROM中的位置。然后驱动I/0控制口线,以低电平方式触发VP1410相应的段选信号(I/O0~I/O10 ) ,同时通过译码电路74LS139选通相对的语音 EPROM 的片选信号CE。VP1410某一段选信号被触发以后,驱动管脚READ(低电位有效)选通所有EPROM的读选通信号OE,这样与诊断信息所对应的语音EPROM就被唯一选通(见图2),VP1410通过芯片内部的段选逻辑读此EPROM中相对应的语音段,并在片内进行D/A转换,然后经片外带通滤波和功率放大,由扬声器播放出去。系统工作流程图如图4所示。在具体操作中,要注意各操作之间的时序对应,否则可能出现报警延时,报警语音残缺等现象。