图3 SPI端口的控制位
表1 SPI指令表
以下列举了几种对ISD器件进行操作时的指令次序。
(1) 信息快进。用户不必知道确切的地址,就能快进跳过一条信息。信息快进只用于放音模式。放音速度是正常的1600倍,遇到EOM后停止,内部地址计数器加1,并接下条信息开始处。
(2) 上电顺序。器件延时TPUD(8kHz)采样时,约25ms后才能开始操作。因此,用户发完上电指令后,必须等待TPUD,才能发出一条操作指令。例如从 00处放音,应遵循如下时序:发power up命令;等待TPUD上电延时);发地址值为00的SETPLAY命令;发PLAY命令。器件会从00地址开始放音,当出现EOM时,立即中断,停止放音。如果从00处录音,则按以下时序:发power up命令;等待TPUD(上电延时);发power up命令;等待2倍 TPUD;发地址值为00的SET REC命令;发REC命令。器件便从00地址开始录音,一直到出现OVF存储器末尾)时,录音停止。
SPI控制寄存器控制器件的每种功能,如表2所列。
表2 SPI 控制寄存器
注:IAB置0时,录、放操作从A15A0地址开始。为了能连贯录、放到后续存储空间,在操作到达该行之前,应发出第二个SPI指令将IAB置1,原则器件在同一地址上反复循环。这个特点对语音提示功能很有用,RAC脚和 IAB位可用于信息管理。
2.3 命令格式及时序
8位及24位命令格式如图4和图5所示。录音、放音、停止时序如图6所示。
图4 8位命令格式
图5 24位命令格式
图 6 录音、放音、停止时序
3 电梯语音系统的设计
3.1 系统原理电路
本系统是指安装在电梯内的放音电路,不包含录音部分。在实际应用中,将对方需要播音的内容事先录制到语音芯片中(每一层楼对应一段语音服务,按楼层从低到高的顺序录音),电梯运行时,本系统便可实现自动的语音播报服务。各楼层信号通过信号采集系统从电梯控制面板中引出,经过隔离系统,进入单片机(如图8所示,其中隔离器件选用TOSHIBA的光电耦合芯片TLP521-4)。电源部分从电梯内部引入220V交流电源,通过电源模块和电压调节模块分别为单片机和语音芯片提供5V和3V电压(如图9所示)。语音芯片输出的音频信号通过功放电路输出至外部。系统总体结构如图7所示。
图7 系统整体结构图
图8 信号采集电路
图9 电源电路
3.2 单片机与ISD芯片接口电路
本文讨论的电梯语音系统的控制和放音部分主要由AT89C51单片机和ISD4004语音芯片构成,其中单片机和语音芯片的接口设计如图10所示:
图10 ISD4004与89C51接口电路
从图10中可以看出,单片机和ISD4004之间的连线较少。P1.0接 ISD4004的片选引脚/SS,控制ISD4004是否选通;P1.1接ISD4004的MOSI串行输入引脚,语音芯片从该引脚读入放音的地址; P1.2接ISD的串行输出引脚MISO,单片机从该引脚接收从语音芯片传来的信号;单片机AT89C51的P1.3接ISD4004的串行时钟输入端 SCLK,作为ISD的时钟输入,用于同步MOSI和MISO的数据传输;P1.4接ISD芯片的中断引脚/INT, 接收从语音芯片发来的EOM信号,获得语音段结束信息, 控制其放音或快进操作;ISD4004音频信号输出引脚AUDOUT通过一滤波电容输出至外部功放。
本系统是针对播报20层楼的情形设计的,通过信号采集系统从电梯控制面板内主要取出了三类信号:楼层信号,上下行信号,关门信号。其中F1至F20便是楼层信号,UP和DOWN分别为上行和下行信号,CLOSE为关门信号,这些信号经过隔离处理后进入单片机。
4 软件设计
按照前面的分析和硬件原理图,软件部分的任务主要是找出将要进行语音播报服务的楼层和在找到楼层后在合适的时候进行放音。
4.1 软件流程包括以下步骤
(1) 初始化,取定当前楼层;
(2) 扫描电梯面板,并量化存储用户选取的所有目标楼层信息;
(3) 为存储的目标楼层数据排序;
(4) 判断是否存在有效的目标楼层信息,若判断结果为否,则返回步骤(2);
(5) 若步骤(4)中的判断结果为是,检测是否有关门信号,若检测结果为否,则返回步骤(2);
(6) 若(5)中检测的结果为是,判断电梯是上行还是下行;
(7) 保存判断所述的电梯最近目标楼层;
(8) 调用选音播放子程序;
(9) 保存已经播放语音的电梯最近目标楼层为当前楼层。
4.2 软件
软件流程图如图11所示。选音播放子程序见图12。