基于MPEG-2算法的列车语音记录设备
扫描二维码
随时随地手机看文章
摘 要:本文介绍了一种新型列车语音记录设备的系统架构、特点和软硬件实现方法。运用DSP技术对语音信号进行处理、压缩和记录,实现了机车语音联控和列车当前状态信息的记录,进而规范乘务员的工作用语并协同监控装置分析行车故障。
关键词:A/D转换;语音数据编码;循环冗余校验
前言
列车运行监控记录装置在铁路的安全运输过程中发挥了巨大的作用,但不足的是没有语音记录功能。为了解决这个问题,按照铁道部的技术要求,本文研究开发了一种新型列车语音记录设备。该设备主要用于对乘务员机车联控进行录音,并可协同监控装置分析行车事故,为机务部门和运输部门的科学管理提供新的技术手段。鉴于常见设备的技术指标及标准,对于语音的数字化,以16KHz的采样频率、16位量化精度进行采样,在编码方面,采用MPEG-2压缩编码方式。
硬件系统组成
该语音记录设备如图1所示,整个系统由 ADC、DSP、CPLD控制器、Flash大容量存储器及LCD显示屏等组成。
在本系统中,ADC用来完成信号的转换,数据格式在16、18、20位之间可选,DSP为系统的核心数字处理器,功能强大,完成数字信号的压缩编码,CPLD用于数据传送的控制以及对ADC、Flash和LCD显示屏等器件的初始化检测设置, Flash用来存储数据, LCD显示屏用来显示当前系统的状态,如运行等待和数据处理等。系统上电后,若有语音信号,则输入ADC,得到一串数字信号送入DSP 进行数据压缩编码,经过压缩编码的数据由CPLD存储到Flash中,整个系统以流水线的方式工作,数据的采集、压缩编码和存储同时进行。
A/D转换器UDA1341TS
UDA1341TS是由Philips公司生产的一款单片立体声A/D、D/A转换器,工作电压为3.0V,信噪比为97dB,具有双通道输入功能,采样频率在16,32和44.1KHz之间可选。
UDA1341TS与DSP构成语音信号采集系统,主要涉及到位采样时钟(BCK)、字同步时钟(WS)、采样数据输出(DATAO)、系统时钟输入(SYSCLK)这几个对时序有要求的引脚。系统中,DATAO作为输出引脚,与DSP的BDR0引脚相连;BCK、WS、SYSCLK作为输入引脚,其时序由DSP供给。UDA1341TS的系统时钟只能是256Fs、384Fs、512Fs,通过对状态寄存器的SC0位和SC1位编程可实现系统时钟的选择设置。这里Fs是语音信号的采样频率。在采样数据时,WS用来指明UDA1341TS的DATAO输出的有效数据。当系统对VINL(左声道)端口进行采样时,WS的上升沿表明一帧数据的起始,下降沿表明一帧数据的结束;当系统对VINR(右声道)端口进行采样时,WS的下降沿表明一帧数据的起始,上升沿表明一帧数据的结束。
图1 系统总体结构图
UDA1341TS提供了一个L3端口,利用CPLD控制器对L3的L3DATA、L3MODE和L3CLOCK三个引脚进行编程,可以设置其内部的寄存器。当L3MODE引脚为低电平时,通过L3DATA引脚输入寄存器地址信息;当L3MODE引脚为高电平时,通过L3DATA引脚输入有关寄存器设置的数据信息(如设置芯片系统时钟频率、数据输入格式、芯片工作模式等)。UDA1341TS与DSP的McBSP(多通道缓冲同步串口)相连,各种同步信号由DSP产生,这样就保证了新数据的正常接收以及已接收数据的正常处理。UDA1341TS与DSP的硬件连接如图2所示。
语音编码器TMS320VC5402
数字语音信号的压缩需要大量的数字信号处理,一般单片机是无法完成的,所以本系统选用TI公司的DSP芯片TMS320VC5402(以下简称C5402)对语音信号进行压缩处理。
C5402通过它的McBSP与语音采样转换器UDA1341TS通信。McBSP提供了全双工的通信机制,以及双缓存的发送寄存器和三缓存的接收寄存器,允许连续的数据流传输,数据宽度在8、12、16、20、24、32位之间可选; McBSP与ADC的通信通过BDR0引脚实现,通信过程的控制则由BCLKR0、BCLKR1、BFSR0等三条引脚实现。
图2 UDA1341TS与DSP的硬件连接图
CPLD低速控制
DSP作为高速的运算处理器不适合低速的控制应用。对UDA1341TS检测、初始化,对LCD的控制以及对Flash的存储控制都是低速的控制。本系统选用CPLD来完成这些工作, CPLD为Altera公司的EPM7128S,开发仿真环境为Altera公司的MAX-PLUSII。因为DSP的地址线A0、A1、A2要被某些芯片使用,所以选取A3-A7、A15共6根地址线和I/O空间选择信号共同产生系统中各芯片的选通信号。CPLD中的控制电路
负责产生各种读写信号,如Flash的读信号MEM_RD和写信号MEM_WR等。
在该系统中,C5402要产生许多控制信号(如Flash程序页的选择信号PPG2-PPGO等),同时也要监视和读取外部的状态。因为C5402只有两个通用I/O引脚,所以用CPLD来对其进行I/O端口扩展。CPLD内部通过一个8位DFF触发器实现对数据的输出。另外,通过8个三态门,将8位输入状态放到C5402数据总线的低8位上。C5402有4个中断输入。CPLD的中断选择模块可以从最多8个外部中断信号中选择4个作为C5402的中断输入,提高了系统的灵活性。
图3 系统主程序
软件设计
软件设计主要包括ADC的程序设计,语音数据的压缩编码等。
ADC的程序设计
ADC以16KHz的采样频率、16位量化精度进行采样,采样的位同步信号、帧同步信号、数据位时钟信号均由DSP提供,所以对McBSP相关寄存器的编程,如引脚控制寄存器(PCR)的编程,串口控制器(SPCR1,SPCR2)的编程,接收控制寄存器(RCR1x,RCR2x)以及发送控制寄存器(XCR1,XCR2)的编程会影响语音信号的最终效果,所以用户在开发之前必须详细参阅相关资料。
图4 帧内编码流程
语音数据编码
本文采用通用的MPEG-2语音压缩编码算法,该算法是帧数据结构编码,一帧的样点值是576,以UDA1341TS 的16KHz采样频率计算,一帧数据的编码要求在72ms内完成。C5402的指令周期是10ns,在满足算法要求的情况下,进行双通道实时编码约需要10ms,所以C5402可以完成该算法的实时编码。主要包括以下几方面:滤波器组的运算;心理声学模型的运算; 量化编码;帧数据格式化。
滤波器组的作用是完成信号从时域到频域的映射。心理声学模型的计算是利用1024点的FFT,对输入的语音信号进行频谱分析,再结合时频映射的结果,计算出各子带人耳的掩蔽特性。量化编码是通过各子带人耳的掩蔽特性和输出比特率的要求,计算出各子带编码所需的比特分配信息,并且对各子带数据进行线性量化编码的过程。程序的后续工作是按照MPEG-2标准对数据进行格式化,其目的是使数据编码后能被正确地解码,系统主程序如图3所示。
帧内编码是DSP按照MPEG-2标准对ADC传来的数字语音信号进行压缩编码,其流程如图4所示。
结语
系统上电运行后,经多次实验测试,运行情况稳定。目前该设备已经进行现场调试运用,开始部分装车运行,满足了列车语音记录的实际要求。
参考文献:
1 Philips Semiconductors. UDA1341TS Product specification [Z].Netherlands:Philips Semicon ductors,2002