基于CMX638的语音通信模块设计与实现
扫描二维码
随时随地手机看文章
摘要:CMX638是一款专用于通信系统中语音编解码芯片,讲解了CMX638的基本结构、功能,并给出了基于CMX638的语音系统的外围电路设计以及与其通信控制器的软件设计与实现。实际应用表明,该系统可适用许多需要语音处理的通信场合。
关键词:CMX638;基带;声码器;语音通信
语音通信系统是通信中非常重要的一个部分。如何在有限的频段下,传输更多高质量的语音信息,是人们研究的一个重点课题。现在,对于语音处理芯片有很多,包括CMX618/638和AMBE2000等。和AMBE2000相比,CMX638虽然压缩的语音速率的选择没有AMBE2000多,但是它内部包含了语音CODEC模块,它可以灵活选择使用内部的CODEC或者外部的CODEC,从而在实际的运用中有较大的吸引力,本文以CMX638为基础,设计和实现了一个语音处理模块。
1 CMX638介绍
如图1所示,CMX638是一款高性能的全双工语音编解码器,CMX638内部结构包含3个部分,一个是语音CODEC模块,主要完成输入语音和输出语音的放大、16位的PCM A/D和D/A转换;音码器主要是将数字语音信号压缩成低速率的数码语音信号,或者将数码语音信号解压缩成数字语音信号。CMX638通过C-BUS总线完成和其它模块数据通信和控制。FEC开关选择前向纠错编码器和解码器。
2 语音系统介绍
图2为CMX638语音系统的结构图。在该系统中,采用了该芯片内部的CODEC完成16位的PCM A/D和D/A转化,因此不需要外部的CODEC模块。其输入输出通过C-BUS接口和其他模块进行通信。
3 硬件设计
3.1 电源供电
由于CMX638包含了模拟电路和数字电路,其供电也要求有模拟供电AVDD、数字端口供电IOVDD及数字供电VDD,其中AVDD电压为3.3 V,IOVDD的电压为3.3 V,VDD的电压为1.8 V。如图3所示为其供电电路,采用芯片LM1117-3.3,输入电压为5 V,输出.电压为3.3 V工IOVDD使用。采用同样的电路,只是将芯片换为LM1117-1.8,就可以实现1.8 V的数字电路供电。而3.3 V的模拟电路供电可采用L1、C20、C18进行滤波,减小数字电路供电和模拟电路供电之间的干扰。同时,数字地DGND和模拟地AGND可采用0欧电阻来连接。在实际的电路设计以及PCB板的制作中,为了防止电磁干扰,在尽量靠近CMX638芯片的每个电源引脚附近加一个0.1μF的电容进行滤波。
3.2 语音电路
语音输入电路采用LM358进行放大,如图4所示。
由于采用CMX638内部CODEC,其23脚CSCEL需要连接到IOVDD上,CODEC PORT接口中的15脚SDI、17脚SCLK、18脚STRB需要连接到DGND。在此状态下,由于CMX638内部模拟电路自带了输入语音和输出语音放大电路,因此可以直接将话筒语音采用差分方式接入CMX638的5脚(INPUTP)和6脚(INPUTN),而将其10脚(OUTP)和11脚(OUTN)的输出语音直接送给扬声器。在实际的应用中,不能将语音输出两脚短路。
3.3 时钟电路
对于CMX638,其时钟类型必须由31脚(XTALSEL1)、32脚(XTALSEL2)、33脚(XTALSEL3)来选择,而且,31、32、33脚不能由单片机输出的逻辑电平来控制,而应该直接连接到IOVDD或者DGND。若采用12 MHz时钟中晶体,则需要将31和33脚接DGND,32脚接IOVDD,27脚(XTAL IN)和28脚(XTALOUT)分别接12 MHz的晶体。同时需要将34脚(ENABXTAL)接高电平,使时钟电路工作。
3.4 CBUS接口
CBUS接口包括42脚(CLK)、43脚(CDATA)、44脚(RDATA)、45脚(CSN)。该接口提供CMX638的控制信息数据和传输的数码数据,其操作格式如图5所示。
从控制器写CMX638寄存器是通过CDATA(Command Data)线写入,第1个字节为寄存器地址,后面没有数据,或者接一个数据字节;读CMX 638寄存器,首先在CDATA上传对应的寄存器地址,然后从RDATA读一个数据字节。而进行数码语音数据交换时,其数据根式和读写寄存器一样,只是地址位后面有多位数据字节而已。
4 软件设计
4.1 信号处理流程
如图6所示是CMX主要信号处理流程,在(a)中是系统刚启动时的初始化过程,(b)是系统进行编码过程,(c)是系统进行解码过程。其中休眠状态时,要求关闭解码和编码,并将芯片的34脚(ENABXTAL)设置为低电平,关闭时钟电路。需要启动芯片工作时,需要将芯片的34脚
(ENABXTAL)设置为高电平,并至少等27 ms后,在进行编码或者解码操作。
4.2 部分软件代码
CMX638的初始化如下,包含开中断,设置工作模式,打开A/D、D/A转换以及配置声码器等。
在控制器中对CMX638工作状态处理函数如下,包含有休眠、激活、编码、解码等等。
5 结论
CMX638能够运用到很多通信的环境,而且其内部包内涵了16位A/D、D/A转换,因此不需要外加单独的codec模块,并且能够实现多种传输速率,全双工数据处理。经过实际的测试,该系统能够适用于需要进行语音处理的许多通信系统中。