新型声码器CMX638及其应用设计
扫描二维码
随时随地手机看文章
摘要:介绍一款高性能语音声码器CMX638及其应用电路设计,简述CMX638的主要特性、内部结构和控制原理。
CMX638配置灵活,集成模拟输入/输出通道,能直接采集模拟语音信号,或者与片外A/D或D/A转换器配合使用,实
现全双工的语音压缩编解码,在超低压缩速率下达到长途话音质量。
关键词:语音压缩;帧格式;前向纠错;编解码;CMX638
l 引言
语音编解码技术的迅速发展,使中低速率语音编码技术广泛应用于现代移动通信。初期的脉冲编码调制PCM方案传输速率为64 Kb/s,占用的频带宽,成本高。在实际通信中,有些信道难以扩展且质量差,而有些信道正广泛使用,短期内难以更新;有些昂贵的信道,压缩每一个比特都意味着节省成本。如何在较窄的带宽内传送更多的语音数据,这就要求利用各种压缩编码技术来扩大通信容量。因此,这里给出了基于新型语音编码器CMX638的应用设计方案。
2 CMX638简介
CMX638是一款高集成,高性能全双工语音编解码器,采用鲁棒的先进低复杂性波形插入技术,提供超低位速率下长话级音质性能,且具有FEC(前向纠错)、SDD(软决策解码)、DTX(非连续发送检测)、VAD(语音激活检测)、CNG(舒适噪声发生)、STD和DTMF信号检测功能。因此,该语音编解码器可广泛用于语音存储和回放、VoIP、数字PMR/LMR、再生数字语音中继等领域。
2.1 主要特性
CMX638具有以下主要特性:长话级音质鲁棒先进的低复杂性波形插入编码算法:多种压缩速率模式则为2 050 b/s,2 400 b/s、2 750 b/s或3 600 b/s(带FEC功能);集成16位A/D和D/A转换器、模拟增益放大器和数字低通滤波器:数据包压缩时间长度分20 ms,40 ms,60 ms和80 ms;具有VAD、CNG、STD和DTMF功能;+1.8 V和+3.3 V双电源供电:采用48引脚LQFP(L4)和48引脚VQFN(Q3)封装;工作温度范围为-40℃~+85℃。
2.2 内部结构
CMX638的内部结构包括模拟和数字两部分,加图1所示。当端口CSEL输入低电平时,即选择使用外部语音解码器(CODEC),可通过串行接口SSP与外部器件交换数据,编码器和解码器选择片外CODEC的数据通道,端口EEC和REC输出分别使能和复位片外的CODEC;当CSEL输入高电平时,CMX638选用内部CODEC模块,该模块包括输入/输出通道的可编程增益放大器(PGA),16位PCM A/D和D/A转换器以及通带频率为4 kHz的低通滤波器,可有效实现模拟信号转换成数字信号及数字信号转换成模拟信号的过程。主机通过控制总线C-BUS接口配置内部寄存器,实现不同功能;端口SYNC使主机与CMX638同步;语音压缩编码器将源信号压缩成低比特率的数据帧,解码器把数据帧解压缩,恢复源信号;如果使用FEC功能,开关则选择前向纠错编码器和解码器,两者加入到数据的压缩和解压缩过程中:STD/DTMF管理模块提供语音信号的特殊处理功能,实现单音或双音检测,提高语音压缩和解压质量。
2.3 与AMBE2000相比较
与同类竞争产品语音压缩编解码器件AMBE2000相比CMX638具有以下特点:采用RALCWI算法,速度快,质量好且结构简单;片内集成增益放大器,A/D和D/A转换器,低通滤波器,能够直接处理模拟信号,提高信噪比;可选用外部语音CODEC,具有灵活性;压缩速率虽无AMBE2000的选项多,但配合压缩包时间长度和FEC功能,可应用于DMR TDMA和DMR FDMA及其他场合;封装引脚数少,易于使用和布线,且成本低。表1列出CMX638与AMBE2000的异同点。
3 CMX638工作原理
3.1 编解码过程
3.1.1 不带FEC的简单帧格式编解码
CMX638提供简单的编解码数据帧格式,其压缩速率包括2 050 b/s,2 400 b/s,2 750 b/s,此过程不带FEC,STD和DTMF功能。CMX638每隔20 ms采集160个16位数据(A/D转换器的采样率为8 kHz),当第一个20 ms结束后,开始编码运算,由于信号的异同会产生不同抖动延时,主机在40 ms的时刻读取第一帧数据。以后每隔20 ms操作一次,形成流水线作业。在解码过程中,在0 ms时刻主机向CMX638输入一帧数据后,CMX638开始解码运算,与编码相似也会出现算法抖动延时,第一个样本的输出时刻由内部寄存器IDD决定,其延时应确保输出连续有效的数据。图2为CMX638简单帧格式编解码过程。
3.1.2 带FEC的复杂帧格式编解码
CMX638可提供带前向纠错的编解码数据帧格式,其数据包长度为60 ms,包括3帧数据,其压缩速率为3 600 b/s。CMX638在0时刻开始采样,每隔20 ms进行编码运算,会出现抖动延时,每隔60 ms插入一次FEC编码(图3黑色部分),在80 ms时刻一个数据包稳定有效,主机读出数据,以后每隔60 ms操作一次。在解码过程中,主机向CMX638输入数据包后,开始对每一帧数据解码运算,并会出现抖动延时,设置适当的内部寄存器IDD,可在延时后输出连续有效的数据。图3是带FEC的复发帧格式编解码过程,其数据包压缩时间为60 ms。
3.2 数据帧格式
CMX638编码后输出的数据帧格式较简单,无帧头和其他控制标志信息,直接输出有效数据。当压缩速率为2 050b/s时,每隔20 ms产生一帧数据,有效数据位为41 bit,占用6字节,主机必须以字节为单位与CMX638交换数据,所以应该输入/输出6字节,其中最高字节先进先出,7个无效比特位不影响编解码。当压缩速率为2 400 b/s时,其工作原理与2 050 b/s压缩速率相同,有效数据为48 bit,恰好占用6字节,无无效比特位。当压缩速率为2 750 b/s,有效数据为55bit,占用7字节,1个无效比特位,必须输入/输出7字节。当压缩速率为3 600 b/s,带FEC功能,每隔60 ms产生包括3帧的数据包,有效数据为216 bit,采用硬比特格式,占用27字节。而采用软比特格式时,则占用108字节。
3.3 主机与片外CODEC接口
主机通过C-BUS串行接口与CMX638交换数据。写操作时,CSN为低,先写入要访问的寄存器地址,再写入有效数据,以字节为单位,结束时CSN拉高;读操作时,先写入地址,接着读取数据。在CLK上升沿采样,最大时钟频率为5 MHz;每两次CSN操作应至少相隔1μs。
当CMX638选用外部CODEC时,利用SSP接口与外部CODEC交换数据。当STRB同步脉冲到达,如果是写操作,SDI输入16 bit数据;如果是读操作,SDO输出16 bit数据。SCLK的最大时钟频率为6.6 MHz,时钟沿采样输入数据方式取决于内部寄存器EXCODECCONT($0B)。
4 应用电路
4.1 CMX638采集电路设计
图4是基于CMX638的语音采样、压缩、解压缩的应用电路,采集麦克风的语音信号,直接压缩;再解压缩恢复源语音信号输出到喇叭。CMX638使用片内的语音CODEC,可直接采集模拟信号。输入/输出通道分别有两个可编程增益放大器,通过配置寄存器AIG($05)和AOG($06)确定其增益。当输入/输出增益较大时,可能出现噪声,但这些噪声被片内数字低通滤波器滤除。信号的输入/输出端无需接放大电路和滤波电路,提高信噪比。
麦克风和喇叭的输入/输出采用差分接法,提高抗干扰性能。晶体振荡器频率为12 MHz,对应的XTALSEL[3:1]引脚输入值为“010”,引脚ENABXTAL输入高电平。由于选用片内语音CODEC,引脚CSEL输入高电平,则与片外语音CODEC通信的数字接口SDI,SDO,SCLK,STRB必须全部接地。引脚EEC和FEC是输出端口,可以悬空。C-BUS接口与微控制器对应相接,CLK时钟频率为1 MHz,通过C-BUS接口先配置内部寄存器,确定其工作方式。在编码正常工作状态下,微控制器根据SYNC端口与CMX638同步,通过IRQN接收中断信号,读取压缩的数据帧并存储为后级处理;在解码过程中,微控制器向CMX638送入数据帧解码,恢复源语音信号。
4.2 CMX638与PCM3500接口电路设计
CMX638使用灵活,当选用片外语音CODEC时,其典型应用是与PCM3500配合使用,图5为应用电路。PCM3500是Burr-Brown公司开发的16位低功耗A/D和D/A转换器,系统晶体振荡器时钟频率为4.096 MHz,采样率为8 kHz。端口BCK时钟频率为128 kHz。MS端输入高电平为主动工作模式,FS主动输出同步信号,BCK输出时钟信号。引脚TSC输入低电平,控制时隙操作模式,当同时使用多片PCM3500时才使能该功能,对应的FSO为输出口,可悬空。引脚LOOP使能A/D转换器与D/A转换器循环连接。HPFD输入高电平,取消高通滤波器,可滤除输入的直流分量。麦克风和喇叭采用单端输入/输出方式,输入端接增益为22的放大电路和直流偏置电路,输出端接上低通滤波器,提高信噪比。数字接口与CMX638的SPI接口对应连接,实现数据交换。
由于CMX638选用片外的语音CODEC,端口CSEL应输入低电平,利用REC连接PCM3500的PDWN端口,对其复位;模拟输入/输出端需要增加相应的放大和滤波电路。微控制器配置内部寄存器EXCODECCONT($0B)可使CMX638与PCM3500的通信接口工作方式相对应,如图5所示。该电路同样实现麦克风的语音信号的采集,直接压缩;再解压缩恢复源信号输出到喇叭。图4和图5都可以灵活应用于话音记录仪,语音通信系统,数字链路等领域。
5 结语
随着数字语音通信的高速发展,要求在极低传输速率中保持高质量语音信号。改进编码速率低于4 Kb/s的压缩算法无疑成为当前研究热点。作为最有潜力的波形内插语音编码算法,其今后研究重点为与其他低速率语音编码技术更合理相互补充;特征波形提取和对齐问题。CMX638采用鲁棒的先进低复杂性波形插入技术的语音编解码算法,在低速率下保持长话级的语音质量,不但节约存储资源,而且能够减小对通信带宽的要求。声码器CMX638集成了A/D和D/A转换器,可直接处理模拟信号,使用灵活,具有广阔的应用前景。