语音系统对电梯来说是不可缺少的部分,比如进行楼层报数、方向提示、报警告示、消防对讲甚至广告宣传等。目前绝大多数电梯使用语音芯片来进行语音存储和播放,而语音芯片系统存在一些缺陷,比如外围电路复杂、音质不佳、成本偏高、容量有限以及语音更改不便等。有鉴于此,本文设计了一款基于单片机控制的智能电梯语音系统。
系统概述
电梯控制系统的基本功能,是根据用户的楼层按键信息,显示到往楼层数字,语音播报到达楼层。系统框图如图1所示。
图1 电梯语音系统结构框图
硬件设计
根据FLASH的读写规则和MP3的解码协议,事先设定CPLD的逻辑规则。控制器按照输入的信息,向CPLD发出控制命令和传送数据。CPLD根据接收到的命令按照逻辑规则读写FLASH以及对MP3设定内部控制寄存器和输送音频数据。MP3输出的模拟信号可以直接推动耳机发音,但是如果需要推动大功率扬声器,还需要外接功率放大器。
系统微控制器采用了STC89C58RD+C,它是新一代51增强型高性能单片机,具有加密性强、超强抗干扰、超低功耗、在系统可编程、可供应内部集成 MAX810 专用复位电路等特点。STC89C58RD+C拥有32K的FLASH和16K的EEPROM,而值得关注的是其内含的1280 Byte内部SRAM存储空间,在音频数据处理和显示数据处理需要进行较大数据缓冲的情况下,选择该款具有大容量内部存储器的单片机,可以胜任系统的控制要求。
本文使用CPLD负责逻辑控制和数据传递。CPLD电路使用XC9572-VQ64,它拥有72个宏单元、1600个可用门电路、52个I/O口,具有低至2.5V供电,可在线编程等特性。
MP3解码芯片VS1011E工作原理与电路设计
VS1011E音频解码芯片为VS10XX系列的第三代产品,它内部包含一个高性能、低功耗的DSP处理核,一个5.5KB 片内RAM可供用户存储代码和数据,一个串行SPI总线接口,一个双声道采样频率可调的16位DAC。工作于12.288MHz~14MHz或24.576MHz~28MHz时钟频率下,可以解码MPEG1&2 Layer1、2、3以及MPEG2.5 Layer3、WAV和PCM格式文件。
VS1011E的工作流程
VS1011E的工作流程如图2所示。
图2 解码芯片VS1011E工作流程图[nextpage]
本系统中,MP3或WAV格式音频文件首先通过SDI总线进入芯片内部,并解码。
解码后,如果SCL_AIADDR != 0,将会执行应用区代码,代码地址由相应的地址寄存器提供。然后,按照SCL_BASS寄存器(SB_AMPLITUDE位和ST_AMPLITUDE位)的设置,数据可能会被送到低音和高音优化器进行音效处理。此后,数据通过音量控制单元,同时备份到音频FIFO中。音频FIFO保持数据,并作为采样率转换器和DAC的输入。采样率转换器将所有不同采样率转换成CLKI/512,输送给DAC。DAC按位依次产生立体声模拟信号。
由于本系统为电梯系统,推动大功率扬声器发声需要外置功放。这里功放采用的是CD4752CZ,该功放具有较大的电压范围和抗干扰能力,适合电压波动大,外界干扰强的电梯工作环境。
存储器的组织结构
系统采用NAND闪存K9F5608作为存储器。NAND闪存以块(block)和页(page)为存储单元。K9F5608包括2048块,每1块又包括32页,1页大小为528字节,依次分为2个256字节的数据区,最后是16字节的备用空间。
软件设计
电梯在运行过程中,如果没人去按键,那么电梯语音系统就播报一些广告、天气预报等,同时根据要求伴有点阵或液晶显示。当有键按下时,语音系统则会根据按下的键值调用相应的按键处理程序,比如到达的楼层数等。主程序流程图如图3所示。
图3 系统主流程图
VS1011E的软件设计
本系统音频解码芯片采用VS1011E,控制流程如图4所示。[nextpage]
图4 解码芯片VS1011E控制流程图
VS1011E通过一个工作于从模式的SPI串行总线与主机进行数据和控制信息的交流,音频数据通过串行数据接口(SDI)传送,控制数据则通过串行控制接口(SCI)传送。
VS1011E的SPI接口具有两种工作模式:VS1002新模式(SM_SDINEW = 1)和VS1001兼容模式(SM_SDINEW = 0)。当SM_SDISHARED = 0时,控制信号和数据信号的传送分别采用XCS和XDCS作为同步信号;当SM_SDISHARED = 1时,共用XCS作为同步信号。
作为从机工作模式,VS1011E通过一个信号线Dreq指示是否允许主机传送数据,当Dreq为高时,VS1011E至少可以接受32KB的SDI数据或者SCI控制命令。
软件控制要点
对MP3解码器进行控制时应注意以下6点:
(1)设置内部控制寄存器MODE的参数。包括支持文件格式、软启动设置、数据流模式设置、DCLK触发沿设置和SDI数据首位设置等。SM_SDINEW和SM_SDISHARED设置也在这里进行。
(2)如果时钟速率不是24.576MHz,需要设置SCI_CLOCKF寄存器。若通过改变SCI_CLOCKF使用倍频时钟,应该将适当的采样速率写入SCI_AUDATA寄存器,等待至少11000个时钟后才可以进行SPI通信。
(3)设置音量寄存器SCI_VOL;0位为最大音量,0xFEFE位为静音,0xFFFF将触发模拟调电模式。
(4)若希望强化低音和高音,可以设置寄存器SCI_BASS。
(5)若使用用户代码,通过将SCI_AIADDR置零关闭它。
(6)若采用RAM级的用户代码,可以通过激活SCI_WRAM、SCI_WRAMADDR、SCI_AIADDR来装载这些数据实现所需功能。
结语
基于MP3的语音系统如今越来越受到人们的重视和喜爱,它们被应用到更多的工业领域,如公共汽车的站名播报系统等。由于具有良好的性能,基于MP3的语音系统将在非专业音响领域也得到更广泛的应用。