2.3 语音播报子程序
ISD4004芯片所有操作必须由微控制器控制的操作命令,通过串行通信协议SPI接口送入。SPI控制寄存器控制芯片的录放音、信息检索、上电、掉电、开始和停止等功能,由软件编程指令改变SPI控制寄存器的控制位来实现,SPI控制寄存器的控制位如图8所示,指令格式是:8位控制码+16位地址码。ISD的任何操作在运行位C4置1时开始,置0时结束,如果遇到EOM或OVF,则产生一个中断,使用“读”指令使中断状态位移出ISD的MISO引脚时,控制及地址数据也同步从MOSI端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一个SPI周期里,同时执行读状态和开始新的操作(即新移入的数据与器件当前的操作可以不兼容)。
语音播报子程序,要严格按照以上ISD4004的要求编程,其流程见图9。系统确认当前播报信号有效时,通过查找语音存放地址,得到16位的播报地址。首先要调用上电子程序,送上电指令,然后等待约25μs的延迟,再传送16位放音起始地址参数和8位从指定地址开始放音的指令,分别调用数据发送子程序,完成信息的播报。
2.4 数据发送子程序
数据发送子程序流程图见图1O,主要将16位放音地址和8位功能控制指令数据按照SPI协议标准,在串行时钟同步下传送到ISD4004的MOSI。
2.5 上电、掉电子程序
ISD4004可实现电源操作模式的管理,通过指令编程完成上电和掉电的操作,其程序流程图见图11和图12。芯片掉电后进入低功耗状态,耗电电流1μA左右,只有在上电操作完成后芯片才能正常工作。
3 结 语
阐述了基于ISD4004芯片设计的单片机控制语音播报系统在火车站信号控制室实际应用的一个事例,主要介绍了系统软、硬件的设计方法,其目的就在于提供一种多路工业过程控制在线语音提示或报警的微机控制模块,可以稍加改造,方便地与常规工业控制系统或设备配合使用,甚至还可以方便地与复杂系统和DCS系统配合使用,完成各种工业控制和监测系统的工作状态报警和操作提示。