话音和数据同传有多种方案,这些方案大都先将话音信号数字化,经过压缩后与外部数据一起打包传输。主要区别在于发送一包话音数据与外部数据的占用时间,以及话音数据与外部数据在包内的分割时长。常见的有两种方案[1]。一是日本救护车所用的数话同传方案,可将病人的身体状况的检测数据与话音同传。在这一方案中,以625ms为一个话音压缩周期,其中187.5ms用于传送数据,437.5ms用于传送话音,外部数据时隙占整个信道时间的30%,数话同传时话音延迟约为200ms。另一种是UIC建议的数话同传方案。这个方案以1040ms为一个周期,其中260ms用于传输数据,780ms用于传输压缩话音,数据时隙占整个信道的时间为25%。这一方案由于数据占用的时间较短,因此可以提供较好的通话质量,但话音延迟260ms,在双工通话时会使人感到不适,数据传输量也不高。
上述两种方案的话音延迟都较长,同时外部数据时隙占信道的时间比较短,发送数据量受到一定的限制,主要用于传送话音信号。本文在保证传送话音质量的基础上,尽量减小话音延迟,提高外部数据分割时长,同时根据AMBE话音Codec和GMSK Modem的特点,提出了如图1 所示的数话同传方案。
AMBE话音Codec[2]采用基于MBE(多带话音激励)模型的压缩技术,已被证明优于CELP、MP-MLQ、LPC-10以及其它的压缩技术,MOS分达到3.5分,能够在低至2.0kbps的压缩速率下保持高质量的话音。所以本系统采用2.4kbps的话音压缩速率时仍然有很好的自然度和可懂性。当单片机查询到有话音数据时,不中断数据的传输,而是延迟60ms,单片机再将AMBE话音Codec传过来的话音数据处理后与外部数据一起打包发给Modem,实现数话同传。从上述方案中可以看出,话音信号的延迟不会超过120ms,优于前两种方案,能够很好地满足实时性的要求;外部数据时隙占整个信道时间约为46%,分割时长也比前两种方案高,此时外部数据传输率约为4800bps。没有话音数据传输时,单片机直接对外部数据进行打包传送,数据传输率为GMSK Modem的传输率,即为9600bps。
1 系统的硬件组成及工作原理
1.1系统的硬件结构
整个系统的硬件结构框如图2所示。
系统以Atmel公司的单片机AT89S52和Altera公司的EPLD芯片EPM7128为主控芯片。AT89S52是一款低功耗、高性能的8位微处理器,负责整个系统的绝大多数工作,内部带有8KB可编程的FLASH存储器,无需扩展ROM,自带ISP口,可灵活地进行在系统可编程,可以通过全双工的标准串口与外部计算机或PLC交换数据。EPM7128[3]是Altera公司的MAX7000系列中的一款,具有高阻抗、电可擦写等特点,可用门单元为2500个,管脚间最大延时为5ns,主要用来实现话音压缩和解压缩所需的时序及逻辑控制。话音预处理和ADC-DAC单元采用MC145480[4],其内集成了300Hz~3400Hz的带通滤波器、AD和DA转换器,采样频率为8kHz,每个采样值采用8比特(256个量化级)编码,可输出A 律和μ律可选的64kbps的PCM 信号。话音压缩和解压缩通过AMBE1000[2]完成,压缩速率从2.4kbps~9.6kbps,A/μ律可选,具有语音检测、回声抑制和休眠等功能[2]。数据调制解调部分的核心器件是无线单片收发芯片FX909[5]。此芯片采用GMSK调制解调方式,频带利用率非常高,特别适合在窄带的数传系统中,内部硬件实现FEC和CRC算法,同时兼容Mobitex无线广域网空中接口标准。模拟调频电台将从Modem输出的GMSK信号经过二次调制到数传信道上传输,带宽一般为25kHz,新西兰大吉公司、美国的MDS公司、日本的建武的模拟台都可实现此功能。
1.2 系统工作原理
在无话音数据传输时,AT89S52将从串口接收的数据打包处理后发送给Modem,Modem对传过来的数据增加前向纠错(FEC)、循环冗余校验(CRC)位后,按Mobitex标准的数据格式进行交织和扰码处理,再附上比特同步和帧同步字节后,对数据包进行GMSK调制,输出音频的GMSK信号,再由电台将其调制到模拟调频话音信道上传送出去。当有话音数据传输时,模拟话音输入MC145480,经过8kHz 的A律编码输出64kbps的PCM信号。经过AMBE1000压缩后,输出2.4kbps的压缩话音数据,这些话音数据经单片机AT89S52除包延时处理后与串口接收的外部数据一起打包送到调制解调模块,实现数据和话音的同时传输。
数据接收时,Modem从模拟调频电台读入音频信号进行GMSK解调,经检错和撤包处理后,将数据传送给AT89S52。单片机经过判断处理后,如果是外部的数据,则直接通过串口输出;如果是话音数据,则经过处理后送给AMBE1000解压缩,输出的PCM信号经过A律解码和DAC,还原成模拟话音信号输出。
2 软件设计及实现
整个系统的软件主要包括三大部分:MC145480和AMBE1000的接口时序的实现、语音压缩数据的处理、数据的调制和解调。
2.1 接口时序的实现
AMBE1000话音Codec与MC145480的接口关系[2]如图3所示。