作为目前热门的嵌入式技术,开发基于嵌入式技术的VoIP网关有助于进一步拓宽嵌入式技术的应用范围。本文介绍了基于嵌入式ARM处理器的VoIP网关模块的设计思路,并结合核心芯片AC4880XC-C详细介绍了该模块的设计流程、软硬件结构及其工作方式。
VoIP的应用趋势
作为NGN(下一代网络)中的重要组成部分,VoIP是面向未来、可持续发展的语音解决方案,可以为商业和家庭用户提供质优价廉的IP语音服务。随着NGN网络技术的快速发展,VoIP的通信量也已得到快速增长,并以其低廉的价格优势迅速占有市场。
VoIP语音技术与传统电话的区别
VoIP(又称IP PHONE)是建立在IP技术上的分组化、数字化语音传输技术。其基本原理是:通过语音压缩算法对语音数据进行压缩编码处理,然后把这些语音数据按IP等相关协议进行打包,经过IP网络把数据包传输到接收地,再把这些语音数据包串起来,经过解码解压处理后,恢复成原来的语音信号,从而达到由IP网络传送语音的目的。VoIP系统把传统电话的模拟信号转换成计算机可联入因特网传送的IP数据包,同时也将收到的IP数据包转换成声音的模拟电信号。经过VoIP系统的转换及压缩处理,每个普通电话传输速率约占用8~11kbit/s带宽,因此在与普通电信网同样使用传输速率为64kbit/s的带宽时,
VoIP线路数是原来的5~8倍。同时,IP技术允许多个用户共用同一带宽资源,改变了传统电话由单个用户独占一个信道的方式,节省了用户使用单独信道的费用。
VoIP的基本结构由网关(GW)和网守(GK)两部分构成。网关的主要功能是信令处理、H.323协议处理、语音编解码和路由协议处理等,对外分别提供与PSTN网连接的中继接口以及与IP网络连接的接口。网守的主要功能是用户认证、地址解析、带宽管理、路由管理、安全管理和区域管理。VoIP的核心与关键设备是VoIP网关。
图1 Voip实现原理框图(略)
基于嵌入式技术的VoIP功能实现框图
1、VoIP实现原理框图:(如图1)
2、嵌入式系统中VoIP的工作过程:
① 在单个独立的嵌入式系统内部进行语音通信时,该系统实现功能的过程如下:用户话音脉冲通过SLIC和CODEC电路产生PCM流,载入语音处理器AC4880XC-C中,通过片内DSP进行语音压缩、成帧(包括地址等用户信息及语音信息),AC4880XC-C再将数据包通过HPI口传送到主系统,完成交换功能后,认定目的地是本系统的另一个用户,将处理过的话音数据包传给AC4880XC-C,AC4880XC-C进行解压缩后,
以PCM流返回到CODEC部分,根据目的地址信息驱动目的用户。
② 在嵌入式系统之间进行语音通信时,过程如下:AC4880XC-C将话音数据包通过HPI口传给本系统后,本系统的交换功能认定目的地是另一个嵌入式系统的一个用户,本系统将数据包重组后,通过I/O端口传给目的系统,由目的系统自动完成解压缩,驱动目的用户的功能。
系统设计实现
硬件设计为以下六块组成
1、SLIC(用户线接口电路)部分
采用AMD公司生产的AM79R70PLCC芯片,通过该芯片产生输入、输出话音脉冲和铃音脉冲。
2、CODEC(编解码)部分
采用AMD公司生产的AM79Q021JC编解码芯片,通过该芯片产生的PCM流送到语音处理芯片处理。
3、语音处理部分
作为本系统中的核心部分,语音处理采用以色列AudioCodes公司生产的专用多通道语音处理芯片AC4880XC-C。它具有以下特点:
⊙ 支持ITU的G.711、G.723.1、G.726、G.729A等分组语音处理标准;
⊙ 支持回波抵制和抵消、静音检测和舒适噪音等提高分组语音处理性能的配套模块;
⊙ 高质量坏帧插补;
⊙ 支持2.4~14.4 kbps的T.38和FRF.11的功能传真业务;
⊙ 支持各种信令,如DTMF等;
⊙ 提供语音、传真、数据或信令等PCM高速接口;
⊙ 可选择 或o 律;
⊙ 输入输出增益控制;
⊙ 提供同步HPI、PCM、时钟、存储器以及I/O和仿真测试接口(如图2);
图2 AC4880XC-C功能接口图(略)
⊙ 144pin,TQFP封装,1.8V内核电压,3.3V芯片电压。
4、CPLD部分
AC4880XC-C采用8位并行的主处理器接口HPI接口与主系统进行数据交换。鉴于嵌入式系统中接口逻辑繁杂,选用CPLD实现接口适配功能。主CPU可通过CPLD控制实现CODEC
和SLIC部分的功能。
5、HPI接口部分
本设计中,嵌入式系统CPU与AC4880XC-C通过HPI接口进行数据通信,CPU通过AC4880XC-C片内共享的双口存储器与其片内DSP实现数据交互。
HPI接口包括1根8位数据总线和11根控制总线。主系统CPU通过三个寄存器(HPIC、HPIA和HPID)控制AC4880XC-C及访问片内存储空间。HPIC为控制寄存器,用来选择AC4880XC-C的高低字节顺序。HPIA为地址寄存器,用来寻址片内的2K存储空间。HPID为数据寄存器,用来缓存每次读写的两个字节数据,外部CPU以单个Word或块数据访问HPID。以块数据方式访问时,HPIA寄存器自动累加,可减少外部CPU写HPIA寄存器的开销。AC4880XC-C的内部寄存器和存储器为16位,外部CPU每次访问AC4880XC-C必须以两个字节为基本单位,信号线HI/LO用来选择高低字节,信号HRS1、HRS0指示当前访问的是哪个寄存器。
6、语音接口部分
语音接口提供未压缩语音、传真数据的I/O通道。语音接口对外提供四根信号线PCMIN、PCMOUT、PCMCLK、PCMFS构成PCM总线,直接连接外部CODEC芯片的PCM
Highway。PCMIN输入从CODEC送来的PCM信号,AC4880XC-C内部的DSP按照相应标准压缩后从HPI口交给主系统CPU
处理。PCMOUT则相反,AC4880XC-C将主系统CPU送来的语音数据按照合适的标准解压缩,然后从PCMOUT口送到外部CODEC,CODEC经过数/模转换后恢复成语音信号再通过用户接口送给用户端。PCMCLK提供2.048MHz的比特同步时钟,而PCMFS提供8kHz的帧同步时钟。PCM主时钟(BCLK)、帧同步时钟(FS)、接收数据(DR)和发送数据(DX)一起构成PCM
Highway信号,与AC4880XC-C进行连接。BCLK与FS分别对应AC4880XC-C的PCMCLK和PCMFS,这两个时钟信号都由AC4880XC-C
产生;DR和DX分别对应AC4880XC-C的PCMOUT和PCMIN。PCM Highway信号时序以及时隙与帧同步信号的关系分别如图3、图4所示。为了CODEC与DSP芯片间正确收发数据,一般选择CODEC芯片在BCLK的上升沿发送数据DX,下降沿采样数据DR,而在另一端的AC4880XC-C,则在时钟下降沿采样PCMIN,上升沿发送PCMOUT。
图3 PCM Highway(略)
图4 时隙与帧同步信号的关系(略)
软件设计部分
该系统软件主要用于对AC4880XC-C进行控制,实现读写等操作。
1、编写芯片AC4880XC-C的读写函数
图5 软件流程图(略)
主要是基于嵌入式ARM处理器,通过HPI接口实现对AC4880XC-C及相关芯片的读写操作。流程图如图5所示:
2、配置AC4880XC-C内部设置
首先通过处理器对CODEC和CPLD进行配置,并调用AudioCodes 公司提供的初始化内核程序对AC4880XC-C进行复位初始化。复位成功后,写入内核程序,然后写入工作程序,最后再将这些程序通过AC4880XC-C的HPI接口写入到AC4880XC-C,芯片即开始工作。
结语
嵌入式系统作为一种功能强大的软硬件操作开发平台,很适合基于嵌入式ARM处理器的VoIP的开发。AC4880XC-C是一款功能强大语音处理芯片,本方案利用该芯片作为核心芯片,配以其他功能芯片实现了基于嵌入式技术的VoIP网关。该网关已应用于嵌入式综合实验平台,效果十分理想,在IP电话和多媒体通信领域的应用前景非常广泛。
|