新疆大学电气工程学院 靖大同 吴向前 司志泽
随着城市文明化和现代化建设步伐的加快,对建筑中电梯的服务要求也越来越高,现代电梯技术已朝着更快、更稳、更安全及更人性化的方向迅速发展。电梯语音报站器就是体现其人性化设计的一个具体表现。用语音报告电梯将要到达或已经到达的楼层信息、电梯的运行状态、欢迎词和音乐等,可避免乘客搭错电梯或楼层、消除人们乘坐电梯的孤独感。
ISD4004是Winbond公司的ISD4000系列语音芯片。它采用了“直接模拟量存储”(DAST)专利技术,信号无需经过D/A、A/D转换,数字压缩和语音合成等复杂的数字信号处理过程,减少了失真,使其声音存储效果较以前产品有大幅度提高,实际试听主观评价可以达到磁带录音机的水平,是目前市场上录放效果较好的语音电路之一。
本文以ATMEL公司的AT89C51和Winbond公司的ISD4004语音芯片为核心,设计了一种电梯语音服务系统,实现了电梯语音服务的智能化和自动化,以适应各种对服务要求比较高的电梯中。
本系统由信号采集与隔离电路、单片机及其外围电路、语音芯片电路和电源电路四大部分组成。电梯的楼层信号经过采集隔离处理后送至单片机,单片机分析、判断、提取出有效信息,再经过运算处理输出控制信号控制语音芯片电路实时播报。系统整体结构如下图1所示。
ISD4004语音芯片采用CMOS技术,内含内部时钟、采样时钟、平滑滤波器、自动静噪、音频放大器、高密度多电平Flash ROM存储器及防混叠滤波器等,通过串行通信接口(SPI或Microwire总线协议)与微控制器(如MCS-51芯片)相连,所有操作均由微控制器控制。内部采用多电平直接模拟量存储技术,每个采样值直接存储在片内Flash ROM存储器中,因此能逼真、自然地再现语音、音乐、音调等声响效果,避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。采样频率可为4.0kHz、8.0kHz。频率越低,录放时间越长,音质则有所下降。片内信息存于Flash ROM中,可在断电情况下保存100年(典型值),反复录放10万次。器件工作电压3V,工作电流25~30mA,维持电流1uA,单片录放语音时间8~16min,音质好,广泛应用于公共汽车语音报站系统、移动及自动应答电话设备及语音复读机等电子产品中。
2.1.1 SPI端口控制寄存器位及ISD4004控制命令
ISD4004工作于SPI串行接口。SPI串行接口是高速同步串行口,是一种标准的全双工四线同步双向串行总线。SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作。因此,对ISD4004而言,在时钟上升沿锁存MOSI引脚数据,在下降沿将数据送至MISO引脚。
2.1.2 ISD4004语音芯片SPI总线接口时序及命令格式
ISD4000系列语音芯片SPI总线参数如表1所示,ISD4004芯片支持8位、16位命令格式,传输时序及8、16位命令格式如图2、3、4所示。
从SPI总线时序可以看出:其SPI总线时序与SPI总线接口存储器EEPROM 25C01/02/04兼容。在接收控制命令时,先接收LSB(这要求SPI总线控制器先输出LSB);空闲时,SCLK为低电平,在SCLK上升沿锁存MOSI引脚上的信息,如表1所示。
表1 ISD4004语音芯片SPI总线参数
I S D 4 0 0 4 外围接口电路主要由ISD4004、麦克X1及相关外围电路构成。声音信号由X1转换成电信号,经电容C31耦合,三极管Q4放大后由IN-引脚进入ISD4004,由ISD4004采样和保存。录音播放电路主要由ISD4004、LM386等构成。声音信号由ISD4004的AUDOUT引脚输出,经电容耦合送入LM386芯片,放大后由VOUT引脚输出并驱动扬声器发声。如图5所示,ISD4004外围接口电路。
(1)执行上电操作命令(POWER UP);(2)延迟等待,直到上电结束(当采样频率为8 kHz时,上电延迟时间约为25 ms);(3)执行“SET PLAY”命令,设置放音段起始地址;(4)执行“PLAY”命令,从当前地址开始放音,遇到段结束标志EOM或存储器末尾标志OVF时停止放音,同时INT引脚输出低电平,指示当前段播放结束。
当需要播放两段或两段以上时,如果段与段之间间隔很小时,可在上一段播放结束后,延迟一段时间(需通过试听确定延迟时间的长短,一般为数十毫秒)再播放下一段。放音过程如图6所示。在放音操作过程中,执行“STOP”或“STOP WRDN”命令时,将终止当前放音操作。
图1 系统整体结构图
图2 传输时序
图3 8位命令格式
图4 16位命令格式
图5 ISD4004外围接口电路
图6 放音流程
图7 录音流程
(1)执行上电操作命令(POWER UP);(2)延迟等待,直到上电结束(当采样频率为8 kHz时,上电延迟时间TPUD约为25 ms);(3)再执行上电命令(POWER UP);(4)延迟两倍上电等待时间(即延迟2×TPUD时间;(5)执行“SET REC”命令,设置录音段的起始地址。
执行“REC”命令,从当前地址开始录音,直到出现存储器末尾标志OVF信号。
在录音过程中,未录到存储器末尾时,就执行“STOP”或“STOP WRDN”命令,将终止当前录音操作,并产生EOM标志。因此,可利用这一特性在芯片上录制多段语音信息。可见,录音过程与放音过程相似,只是每次录音操作操作只能录一段,如图7所示。
程序设计的关键是对ISD4004的操作。ISD4004有许多操作命令如表4所示,这些命令通过SPI接口传给ISD4004。AT89C51单片机没有SPI接口,因此需要程序模拟SPI接口。下面重点给出ISD4004芯片初始化程序及程序模拟SPI接口向ISD4004发送单字节指令。
初始化ISD4004芯片,代码如下:
void Ini_ISD(void)
{
ISD_OneCode(POWERUP);
Delay50ms();
ISD_OneCode(POWERUP);
Delay50ms();
Delay50ms();
}
程序模拟SPI接口向ISD4004发送单字节指令,代码如下:
void ISD_OneCode(uchar CCode)
{
ISD_CS=0;
//单字节指令
ISD_WriteSpi(CCode);
//适用于:POWERUP,STOPPLAY,STOP REC,PLAY,REC
ISD_CS=1;
}
本文介绍基于ISD4004、单片机AT89S51的电梯语音系统,经测试,整个系统工作稳定,功耗小,音量可调,输出的语音清晰,音色优美,对电梯的安全、稳定运行无干扰,实现了电梯语音服务的智能化和自动化。
[1]王幸之,钟爱琴,王雷.AT89系列单片机原理与接口技术[M].北京航空航天大学出版社,2004.
[2]陈越,严一岩.ISD 全系列单片语音录放电路设计与应用汇编.ISD Data Book.2000.
[3]高红亮,张国忠,杨杰,周晟.采用ISD4004的电梯语音系统的设计[J].电子技术,2005,9.
[4]赖麒文.8051单片机C语言开发环境实务与设计[M].科学出版社,2002.