找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于CPLD和VS1011E解码器的电梯语音系统

[复制链接]
admin 发表于 2013-3-20 00:25:26 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
1 引言

        语音系统是电梯不可缺少的部分,用于楼层报数、方向提示、报警告示、消防对讲以及广告宣传等。传统语音系统绝大多数采用语音器存储和播放语音,但存在比如外电路复杂、音质差、成本高、容量小以及语音不易更改等缺陷。鉴于此,设计了一款基于CPLD和VS1011E解码器的电梯语音系统。
    2 系统概述
        电梯控制系统的基本功能是根据用户的楼层按键信息,显示楼层数字,播报到达楼层语音。电梯语音系统框图如图1所示。
   20121107053949516761333.jpg
      
    2.1信息输入
        输入信息分为两部分,一是用户通过按键向系统发出楼层请求,二是电梯控制系统根据楼层到达或者取消发出的通知。
    2.2处理器
        根据用户信息和控制系统信息控制楼层系统,控制分为显示楼层和语音报送两部分。系统要求处理器处理速度快、内存缓冲空间大。
    2.3显示模块
        用于显示楼层数以及提示超载、消防和紧急状况,甚至还提供日期广告等信息的发布。中低档楼宇电梯系统一般使用LED显示,即点阵块显示。随着液晶显示控制技术的发展与成熟,高档楼宇电梯系统则采用LCD显示。
    2.4逻辑器件
        主要是能进行强大数据快速处理的CPLD。从整个系统可以看出,处理器需要响应输入信息并能够驱动显示模块工作,还要对扩展的存储器进行读写操作,并将存储器的语音数据送到MP3解码器解码。这些都对处理器提出很大挑战,如果处理器性能低则可能导致整个系统工作紊乱,因此,必须对处理器进行"减负"。
        基于上述考虑,本系统使用CPLD。对于MP3解码器的控制,处理器只负责发送控制命令,而具体操作是由CPLD完成。这样就大大提高了系统的速度和可靠性。
    2.5存储器
        用于存储大量语音数据。市场上MP3播放器的存储器类型有3种:磁性存储器(2.5英寸硬盘)、光学存储器(CD-ROM和DVD)和Flash。其中Flash存储器还可以分为NAND Flash、CF卡、SD卡、SMC卡MMC卡以及SONY存储棒。考虑到系统设计和使用的便利性,系统采用NAND Flash。
    2.6 MP3解码器、DAC和功放
        作为MP3播放器的核心,MP3解码器负责把由微处理器从存储器中MP3格式数据编码转换成数字音频信号发送给DAC;DAC则把数字音频信号转变成模拟信号,最后模拟音频信号通过耳机或者功放发出声音。
    3硬件设计
    3.1系统工作原理
        根据Flash的读写规则和MP3的解码协议,预先设置CPLD的逻辑规则。控制器根据输人信息,向CPLD发出控制命令和传送数据。CPLD根据接收到的命令按照逻辑规则读写Flash并对MP3设定内部控制寄存器和传送音频数据。MP3解码器输出的模拟信号直接驱动耳机,若要驱动大功率扬声器,还需外接功放。其系统硬件电路如图2所示。
   20121107053949719881334.jpg
      
    3.2微控制器STC89C58RD+C
        STC89C58RD+C是新一代51增强型高性能单片机,具有加密性强、超强抗干扰、超低功耗、在系统可编程、可供应内部集成MAX810专用复位电路等特点。
        STC89C58RD+C采用MCS51内核,与AT89S52引脚兼容。需要注意的是,D型内部集成复位电路,复位引脚直接接地。拥有32 KB的Flash和16 KB的EEPROM,内含1 280字节SRAM存储空间。因此,STC89C58RD+C能满足系统控制要求。
        D0~D7与CPLD通信,实现数据传输和命令控制,8个端口需要上拉电阻,阻值为10 kΩ,上拉电阻需要3.3 V电源供电,与CPLD电源匹配。DREQ1(P3.2)与CPLD连接,用来读取MP3解码器的忙状态。READY(P2.3)与CPLD连接,判断Flash是否准备好。WR、RD和ALE连接至CPLD,实现对Flash的读写选择和时序控制。
    3.3 CPLD电路
        CPLD是微控制器、Flash和MP3之间的中介,负责逻辑控制和数据传递。CPLD电路采用Xilinx公司的XC9572-VQ64。XC9572-VQ64具有72个宏单元、1 600个可用门电路、52个I/O端口,具有低至2.5 V供电电源,可在线编程等特性。J1用于ISP下载。晶体振荡器采用40 MHz。
    3.4 MP3解码器VS1011E及电路设计
        VS1011E音频解码器为VS10xx系列的第三代产品,是单片MP3/WMA/MIDI解码和ADPCM编码器。它内部集成有高性能、低功耗的DSP处理核(VSDSP),5.5 KB片内RAM可供用户存储代码和数据,串行SPI总线接口,双声道高质量的采样频率可调的16位DAC。VSl011E工作在12.288 MHz~14 MHz或者24.576 MHz~28 MHz时钟范围,能对MPEG1&2 Laver1、2、3以及MPEG2.5 Layer3格式、WAV格式和PCM格式文件进行解码。
        VS1011E的工作流程如图3所示。VS1011E的工作流程为:首先MP3或者WAV格式音频文件通过SDI总线进入芯片内部,并解码。解码后,如果SCL_AIADDR!=0,将会执行应用区代码,代码地址由相应的地址寄存器提供。然后,按照SCL_BASS寄存器(SB_AMPLITUDE位和ST_AMPLITUDE位)的设置,数据可能会被送到低音和高音优化器进行音效处理。此后,数据通过音量控制单元,同时备份到音频FIFO中。音频FIFO保持数据,并作为采样率转换器和DAC的输入。采样率转换器将所有不同采样率转换成CLKI/512,输送给DAC。DAC按位依次产生立体声模拟信号,这些信号紧接着送到耳机功率放大器中。
        由于本系统为电梯系统,推动大功率扬声器发声,需要外置功放。功放采用的是CD4752CZ,该功放具有较大的电压范围和抗干扰能力,适合电压波动大、外界干扰强的电梯工作环境。
关键字:CPLD VS1011E 寄存器  

      
    3.5 Flash存储器
        采用Samsung公司的NAND Flash K9F5608作为存储器。K9F5608拥有32 MB的空间,完全满足电梯语音系统的要求。
        NAND Flash以块(block)和页(page)为存储单元。K9F5608包括2 048块,每一块又包括32页,一页大小为528字节,依次分为2个256字节的数据区,最后是16字节的备用空间。
        K9F5608的读、写和擦除操作均由命令完成。读/写操作是以页为单位进行。擦除操作是以块为单位,不能字节擦除,而且在每次改写操作之前需要先擦除一整块;每一块的擦除次数有限,为10万次左右,数据保存时间超过10年。典型的读操作时间为50 ns/字,写操作时间为200 μs/页,擦除操作时间为2 ms/块。
   20121107053950001121335.jpg
      
    4软件设计
    4.1主流程图
        电梯在运行过程中,如果无人按键,电梯语音系统则自动播报广告、天气预报等信息,同时伴有点阵或液晶显示。当有按键按下时,语音系统则会根据按键值调用相应的按键语音处理程序。主程序流程图如图4所示。
   20121107053950032371336.jpg
      
    4.2 YS1011E的软件设计
        软件设计采用VS1011E音频解码器,其控制流程如图5所示。
   20121107053950063621337.jpg
      
        控制MP3解码器时应注意以下几点:
        设置内部控制寄存器MODE的参数。包括支持文件格式、软启动设置、数据流模式设置、DCLK触发沿设置以及SDI数据首位设置;
        如果时钟速率不是24.576 MHz,则需要设置SCI_CLOCKF寄存器。若通过改变SCI_CLOCKF倍频时钟,应将适当的采样速率写人SCI_AUDATA寄存器,等待至少11 000个时钟后才能SPI通讯;
        设置音量寄存器SCI_VOL,0为最大音量,0xFEFE为静音,0xFFFF触发模拟调电模式;
        强化低音和高音,可设置寄存器SCI_BASS;
        使用用户代码,SCI_AIADDR置为零;
        采用RAM级的用户代码,激活SCI_WRAM、SCI_WRAMADDR、SCI_AIADDR装载数据能够实现所需功能。
    5 结束语
        本系统已经投入市场,音质良好、功能稳定。基于CPLD和VS1011E解码器的语音系统如今被应用到很多领域,如公共汽车的站名播报系统等。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-22 10:43 , Processed in 0.057978 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表