CMX618实现数字语音通信系统设计

引 言
英国cml公司推出的语音编解码芯片cmx618,能够以较低的比特率进行编解码处理,并保证很高的语音质量。在此基于cmx618设计实现了一个数字语音通信系统,该系统结构简单,但功能强大,而且它的工作电压很低,功耗很小,非常适合通信领域开发使用。
l cmx618功能与特点
1.1 ralcwi算法
cmx618是接近长话级的半双工语音编解码芯片,通过一种新的数据速率算法技术——ralcwi技术,对语音进行编解码处理。ralcwi是一种鲁棒的先进的复杂性波形插入技术,与其他语音编解码技术不同,它使用独有的信号分解和参数编码方法,可确保在较高的压缩率下有很好的语音质量。在声码器中,采用 ralcwi技术实现的语音质量与编码位速率在4 kb/s以上的标准声码器话音质量基本相符。它的mos(平均意见得分)处于3.5~3.6之间,而且表现相当优秀。
ralcwi声码器以帧一帧为基础进行传输。在8 khz的采样速率下,对语音信号进行分帧处理,每帧语音包含160个采样点,形成20 ms的元语音帧。语音编码器以较高的计时分辨率(8次/帧)进行语音分析,对每一个语音段都会生成一系列的评估参数。然后,使用不同的矢量量化(vq)方法,这些估算参数被量化生成41 b,48 b或55 b的帧。值得一提的是,这些向量量化值是以多语言语音为基础进行混合编排的,包含了东西方多种语言的语音采样值。
1.2 芯片主要功能及特点
cmx618语音编解码芯片体积小,性能高,功耗低,其具体特点如下:
(1)编码时,有三种位速率可供选择(2 050 b/s,2 400 b/s或者2 750 b/s)。在选择前向纠错编码(fec)的情况下,可通过信道编码和交织处理形成3 600 b/s的位数据流(60 ms/216 b的数据包或80 ms/288 b数据包)。
(2)解码时,可选择前向纠错(fec)解码器对输入编码后的语音位流(216 b/60 ms或者288 b/80 ms的数据包)进行解交织和信道解码,生成纠错后的编码语音位速率为2 050 b/s,2 400 b/s或者2 750 b/s,速率依据所选的模块而定。当使用fec解码器时,可利用“软决策”方法增强解码功能,减小误码的产生。
(3)内部含有一个集成的语音压缩/解压器(codec),实现模拟语音到低位速率编码的压缩/解压过程。
(4)芯片大部分功能,均可通过软件编程的方式,配置内部的寄存器来实现,简单方便。
(5)具有非连续发送检测(dtx)、舒适噪声生成器(cng)、语音激活检测(vad)和双音多频信号检测(dtmf)的检测和产生等辅助功能,使语音性能达到最佳。
1.3 cmx618工作原理
cmx618内部结构图如图1所示。
由结构图可以看出,cmx618主要由音频压缩/解压器(codec)、ralcwi编解码器、前向纠错编解码器和其他特殊功能模块几部分组成。
编码时,输入的模拟语音首先要经过音频压缩/解压器(codec)模块,进行调节增益、a/d转换、滤波和压缩处理,然后进入编码器中开始编码。编码后,如果选择使用前向纠错(fec)功能,则会对编码进行纠错处理,尽量消除误码。这样,编码后的语音数据,按选择的位速率和帧的结构生成数据包,利用c- bus串行总线,传输到微控制器lpc2138中。
解码是编码的逆处理过程。经c-bus串行总线传输的数字语音,进入解码器(可选择fec功能)开始解码,然后经过解压、滤波、d/a转换、调节增益等处理后,就成为可以听到的模拟语音。另外,在编码和解码期间,如果选择一些辅助功能,例如非连续发送检测(dtx)、语音激活检测(vad)或双音多频信号检测(dtmf)时则需另行处理。
2 系统设计实现
2.1 微控制器
arm微控制器具有内核耗电少,功能强,成本低等优点,现在多应用于无线通信、gps、智能手机开发等诸多领域。这里选用philips公司的 lpc2138作为数字语音通信模块的主控制器。lpc2138是一个基于支持实时仿真和嵌入式跟踪的32位arm7tdmi-scpu的微控制器芯片,较小的封装和很低的功耗使lpc2138特别适用于小型系统中。此外,由于lpc2138片内集成了rom,ram,a/d和多个外设模块,如通用i/o 口、定时器、串行口等,因此非常适合于通信网关、协议转换器、软件modem、语音识别、低端成像等场合,为这些应用提供大规模的缓冲区和强大的处理功能。
2.2 系统的硬件设计与实现
基于cmx618的语音通信模块主要由语音编解码器cmx618和lpc2138组成,如图2所示。
该语音通信系统使用cmx618内置的codec模块,其内部集成了a/d和d/a转换、通道滤波、增益调节等功能,足以满足对模拟语音的抽样、量化等操作的指标要求。因此,无需再外接芯片,也节省了大量的物理空间,这在实际的开发设计中是十分重要的。
微控制器lpc2138通过c-bus串行总线与cmx618连接。c-bus是一个四线中断一驱动串行系统,可在主控制器和cmx618内部寄存器间进行数据传输、控制或状态信息的发送。
2.3 系统的软件设计与实现
系统的软件设计主要是编写cmx618的驱动程序,以及对主控制器lpc2138进行编程实现对cmx618的控制。在上电后,首先应初始化cmx618 和lpc2138。对语音编解码芯片,要配置其中的一些功能寄存器,这包括设置编解码位速率、组帧结构、增益大小、辅助功能选用以及开启中断标志位等;对主控制芯片,则要配置接口方式、中断条件和传输速率等。
实际应用中,为使编解码过程中的纠错能力达到最佳,在使用前向纠错(fec)编码器处理语音编码时。可选择声码器帧以3×20 ms或4×20 ms的形式进行数据包传输。这种把多帧数据进行封装、打包传输的形式,更有效地抑制了误码的产生。
这里,要注意cmx618语音编解码芯片的状态(state)寄存器(地址为mym40)。编码和解码操作在状态寄存器中都有对应的标志位,当采用中断方式编解码时,每次要先读出状态寄存器中对应标志位的值,只有当对应标志位的值为“1”时,才会产生中断,执行相应的操作,如图3所示。
其中,在状态(state)寄存器(地址为mym40)中对应的状态标志有vda,vdw,rdy。其中,vda为编码标志位;vdw为解码标志位;rdy为等待配置标志位。
2.4 关键问题
(1)采用ralcwi算法时,由于存在算法抖动,会使编码每一帧时花费的时间不同,这使微处理器对输出数据的时间不好掌握。为解决此问题,在编码时,会给微处理器一条指令,只要编码可行,就会进行数据传输;在解码时,则会增加一个初始延迟时间,避免codec因无采样数据而产生时间空隙。
(2)为了提高微控制器lpc2138与cmx618间的传输速率,使用c-bus串行总线读/写寄存器时,可采用“数据流”的方法传输数据,即只需要一个地址/指令,就可以传输多个数据字节。具体实例如图4和图5所示。
利用c-bus串行总线,写入cmx618内部寄存器的过程中,从主控制器传过来的数据,首个字节为cmx618寄存器的地址,然后,数据就会源源不断地传人此寄存器中;同样,从cmx618内部寄存器读出数据时,首先也要写入寄存器的地址,确定位置,然后就可以从此寄存器中读出数据了,直到传输完为止。
3 应 用
该语音通信模块已经成功应用于900 mhz数字无中心对讲机中,图6为900 mhz数字无中心对讲机各功能模块的结构简图,图中的语音模块与微控制器部分即为涉及的内容。如今,民用对讲机逐步数字化已是大势所趋,国内外众多机构已经投入了大量的人力、物力进行研究和开发,故此系统有着广阔的发展空间。
4 结语
基于该芯片设计的数字语音通信系统,有很好的清晰度和稳定性,在通信产业迅猛发展的今天,必将有着广阔的应用前景。

贝特电子发布新款511系列快速小型熔断器
如何利用CUDA实现一个2D卷积算子
关于语音识别类产品细分及其应用场景分析
我国车联网的发展现状和挑战及未来发展建议
基于SPB16.X平台的小型化设计实现与应用
CMX618实现数字语音通信系统设计
真无线蓝牙耳机哪个品牌音质好?618最值得买的好音质蓝牙耳机!
RX600系列的新型RX65N/RX651微控制器
从L2到L5,对算力需求越来越大,智能驾驶芯片性能至关重要!
变频电机特点有哪些
物联网技术让防疫工作更高效
自举电路如何计算
米尔科技Versatile Express处理器子板介绍
证监会同意博众精工科创板IPO注册
五个开发者必知的CI/CD工具
实际工作中的晶体管适用性确认-确认平均功耗在额定功率范围内
如何在Linux上检查SSH的版本?
国元证券贺茂飞:千亿赛道,成熟市场叠加新兴纯增量市场
IBM 董海军:可持续浪潮中如何寻找机遇?
5G规模部署“站点极简创新”与“产业开放合作”