引言
近年来,Internet得到了飞速发展和普及应用,而作为其核心技术的IP协议体系在数据网络架构中的统治地位已得到了广泛认同。
同时,随着基于IP技术上各种应用技术的提出,尤其是VoIP技术的提出,使得数据网络通信逐渐的融入了传统的话音业务领域。
VoIP(VoiceoverIP)俗称IP电话(InternetProtocol Phone),是利用IP网络实现语音通信的一种先进通信手段,是一种完全基于IP网络的语音传输技术。它利用语音网关,软交换平台,网守等设备将模拟信号数字化,然后将数据压缩成数据包,通过IP网络传输到语音的目的地址。目的地址接收到数据包后,将数据重组,解压缩后再还原成模拟信号。这样,一次完整的通话过程就在IP网络中实现了。本文将讨论如何在嵌入式μCLinux环境下设计出在IP网络中承担数据压缩、解压和传输等重要功能的设备——VoIP语音网关。
1IP电话系统的基本组成
IP电话系统一般由三部份组成:电话(phone)、语音网关(gateway)和网守(gatekeeper),如图1所示。
电话是指可以通过电话网或一线通(ISDN)连到本地网关的电话终端。
语音网关是指通过IP网络提供电话之间完成话音通信的要害设备,即Internet网络与电话网和一线通(ISDN)网之间的接口设备。它完成语音压缩(将64Kb/s的语音信号压缩成低码率的语音信号)和寻址与呼叫控制,并具有IP网络与电话(PSTN)或一线通(ISDN)互连的接口功能。
网守即网络治理者,负责用户注册、计费等治理功能.
2VolP语音网关
IP电话系统设计的核心为VoIP语音网关。根据VoIP语音网关的功能需求以及市场上的成熟技术,笔者采用“硬件+嵌入式操作系统+应用层软件”的系统架构来设计VolP语音网关。
对于硬件平台,以VolP主芯片为核心附以必要的外围设备。主芯片采用TexasInslruments生产的TITMS320VC549DSP和Samsung公司ARM7TDMI核的双内核结构。
VolP软件部分分为两层:嵌入式操作系统和应用层软件。利用开放源代码的实时操作系统μClinux作为嵌入式操作系统,采用模块化设计,开发平台友好。根据功能需求,在应用层软件中包括语音包处理模块、电话信令网关模块、路由寻址模块和网络治理模块。
2.1硬件实现
VolP语音网关由主芯片、存储器、以太网接口、音频接口和I/0扩展电路等几部分组成,硬件框图如图2所示。
(1)主芯片
主芯片框图如图3所示。主芯片由TMS320VC549DSP和ARlM7TDMI双内核构成。
ARM7TDMI内核使用50MHz主频和单周期精简指令,内建8KBRAM、DMA控制器和中断控制器,并支持各种总线扩展。其内部的SIM (System Integrated Module)单元集成了丰富的通用模块,包括2个异步串口,2个32位的计数器和以太网控制器等。
TI公司的16位高速定点DSPTMS320VC549,其处理速度高达100MIPS且功能十分强大,可支持所有高压缩/低时延编解码(G.711、G.729、G.729a和G.723.1),并完全支持回声抵消、语音状态检测、静音压缩、抖动缓冲和舒适噪音产生等功能,保证统一、高质量的语音交互。
本硬件设计采用双内核结构,使VoIP语音网关在功耗和应用的复杂度之间建立了良好的平衡。采用双内核的优势如下:
①提高语音处理的实时性,避免传统单内核设计功耗太大的缺点。若全部工作都由ARM7TDMI核来完成,负担过重,实时性能受到影响,将会造成语音质量下降,且限制了通信的会话路数,不能满足大量用户通信的要求。现由DSP处理器完成实时的语音信号压缩、DTMF信号的检测与产生、回波消除等工作,既减轻了ARM核的负担,同时又提供了多个话路,降低了功耗,使网关为多用户提供服务成为可能。
;②实现复杂的系统功能。采用32位ARM核作为控制治理中心,能稳定的运行嵌入式实时操作系统,能支持各种网络协议栈如TCP/IP,使语音数据能够在网络中有效地传输。
(2)存储器
系统包括1片8MB的Flash,用于存储嵌入式实时操作系统内核和应用程序代码的压缩文件,还有1片512KB的SDRAM。系统启动时,ARM核将Flash中的压缩文件调入SDRAM进行解压,然后执行。
(3)音频解码器
编解码器芯片负责对DSP解压缩后送来的PCM数据进行解码,并将滤波后的模拟语音信号送给用户端;同时,编解码器芯片还负责将模拟语音信号进行PCM编码,然后送到DSP芯片进行压缩处理。在设计中,编解码器芯片采用IDT公司的4通道PCM编解码芯片IDT821034。该芯片具有可编程增益设置、主时钟频率为2.048MHz,最大支持128个可编程时隙、A律/μ律可选、内置数字滤波器、串行控制接口和低功耗等特点。
(4)以太网控制器
采用由Realtek公司生产的以太网芯片,它具有10/100M自适应收发功能,支持全双工操作,符合802.3协议。由它负责处理有关以太网数据帧的发送和接收,包括曼彻斯特编码、冲突检测、帧头的产生和检测、CRC校验码的生成和验证以及数据重发等。
(5)其他外围
系统中还包括LCD液晶显示、键盘、AC—DC电源等模块。
2.2软件实现
图4是软件系统的总体设计和层次及模块划分的框图。下面对各个层次和模块进行介绍。
2.2.1嵌入式操作系统和驱动程序的设计
嵌入式操作系统采用μClinux,包含File模块、GUI模块和NET模块等。μClinux是针对无内存治理单元处理器定制的Linux操作系统,具有源代码公开、内核可裁剪和易于移植等特点。本系统用C语言进行开发,μClinux强大的应用程序库μCLibc对应用软件层的开发提供了支持,节省了系统开发的时间。File模块是文件系统模块。GUI模块是一个图形治理模块,支持LCD和触摸屏,用于开发人机界面。NET模块即网络模块,实现了TCP/IP协议栈,用于提供网络语音通信的功能。
根据硬件平台的要求,还需要开发适应硬件平台的驱动程序,包括BSP板级包,串口驱动程序和以太网口驱动程序。BSP板级包贯穿着硬件级、操作系统级和应用程序级多层,与μClinux一起为应用程序提供服务。BSP板级包的编写是实现μClinux系统移植的要害。在BSP板级包上开发和完成硬件初始化,中断的处理和产生,硬件时钟治理,本地和总线的内存映射等功能。在串口驱动设计中,实现了单字符发送、字符串发送、单字符读取等基本功能,达到通过串口收发字符串的目的。网口驱动相对简单,实现了芯片初始化、网络包发送、网络包接收和芯片复位等基本功能,达到通过网络口发送和接收网络数据包的目的。
2.2.2应用软件模块
应用层的软件由系统应用层协议栈H.323和各个功能模块组成。
系统的应用层协议栈H.323实现通过VoIP网关实时传送数据的功能。H.323通信协议栈负责IP电话中寻找被叫方、建立应答、并且按照彼此的数据处理能力发送数据,在网络中进行实时语音传输。应用层协议栈H.323是系统应用层软件的基础,应用层的软件模块在这个协议栈的基础上进行开发。
应用层软件功能模块包括语音包处理模块,电话信令网关模块,路由寻址模块和网络治理模块。
语音包处理模块主要是在数字信号处理器(DSP)芯片上运行,可实现以下的功能。
①语音的编码及解码。
②静音检测。通过对无话音时的噪声进行检测,从而判定所接收的信号是否含有语音信号,假如没有检测到语音信号,将会反馈至“语音包处理器”,让它发出一个含有“静音”的信息包,从而最大限度节省通信带宽。
③回音抵消。基于国际标准G.165/G.168实现语音通信中的回音抵消,以改善语音的通信质量。
④自适应语音恢复。通过一个缓冲器,对接收到的延后语音包信号进行语音恢复,从而达到抗“延时”、抗“时延抖动”的目的;并且可以“自适应”地调节时延值,达到语音传输时延最小的目的,改善语音通信质量。同时支持“内插”算法,即当语音包在传输过程中丢失时,能够利用“内插”技术进行恢复。
⑤语音包处理。对经过编码后的语音信号进行“语音打包”处理,或者是对接收到的语音包进行“拆包”处理,从而完成封装协议的处理。
电话信令网关模块主要实现信令转换的功能。VoIP语音网关提供了与公共电话网(PSTN)的接口,因此VoIP语音网关要实现的一个重要功能就是信令的解释和转换,即把来自公共电话网(PSTN)的呼叫控制信令翻译成IP电话网内部可以识别的信令格式,然后通过IP网络进行传输。
路由寻址模块主要完成路由寻址及路由治理的功能。它将各个地区的电话区号映射为相应网关的IP地址,存放在数据库中,当在用户拨打长途电话时,网关根据电话区号的数据库资料,确立相应网关的IP地址,并将此IP地址加入到IP数据包中,同时选择出最佳的路由以减少传输延迟,把IP数据包经过Internet传送到目的网关。
;网络治理模块(SNMP/WEB/CLI)提供一个语音治理的接口,实现对VoIP语音网关的配置和维护。网络治理信息是基于国际标准ASN.1和SNMP(简单网络治理协议)的要求建立的,针对系统开发了三种模式治理:基于WEB的治理,基于SNMP(简单网络治理协议)的治理和基于命令行的治理。这使用户对VoIP语音网关的配置和维护更加简单和有效。
结语
本文分析了基于嵌入式VoIP语音网关系统的体系结构,并分析了系统软、硬件模块结构,利用了以太网协议丰富和开放性强的特点,采用TCP和H.323协议设计,充分满足了实际应用的需求。目前,VoIP设备正从基于PC的初级产品发展为大规模、高可靠性的、高性能的电信级网络运营设备。在技术上,综合现有的电话网信令技术,可将话音、数据、传真以及多媒体融合到一个统一的网络之中。IP电话在降低网络基础设施成本的同时,为用户提供了极其丰富的新业务功能。
作者:于红岩 吕杨 吴选勇 杨腾霄