主页(http://www.pttcn.net):基于单片机控制的新型智能电梯语音系统设计 语音系统对电梯来说是不可缺少的部分,比如进行楼层报数、方向提示、报警告示、消防对讲甚至广告宣传等。目前绝大多数电梯使用语音芯片来进行语音存储和播放,而语音芯片系统存在一些缺陷,比如外围电路复杂、音质不佳、成本偏高、容量有限以及语音更改不便等。有鉴于此,本文设计了一款基于单片机控制的智能电梯语音系统。 系统概述 图1 电梯语音系统结构框图 硬件设计 系统微控制器采用了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的工作流程 VS1011E的工作流程如图2所示。 图2 解码芯片VS1011E工作流程图 本系统中,MP3或WAV格式音频文件首先通过SDI总线进入芯片内部,并解码。 解码后,如果SCL_AIADDR != 0,将会执行应用区代码,代码地址由相应的地址寄存器提供。然后,按照SCL_BASS寄存器(SB_AMPLITUDE位和ST_AMPLITUDE位)的设置,数据可能会被送到低音和高音优化器进行音效处理。此后,数据通过音量控制单元,同时备份到音频FIFO中。音频FIFO保持数据,并作为采样率转换器和DAC的输入。采样率转换器将所有不同采样率转换成CLKI/512,输送给DAC。DAC按位依次产生立体声模拟信号。 由于本系统为电梯系统,推动大功率扬声器发声需要外置功放。这里功放采用的是CD4752CZ,该功放具有较大的电压范围和抗干扰能力,适合电压波动大,外界干扰强的电梯工作环境。 存储器的组织结构 软件设计 图3 系统主流程图 VS1011E的软件设计 图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控制命令。 软件控制要点 (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置零关闭它。
|