引言
下一代网络NGN(Next Generation Network)已经成为通信网络发展的方向,VoIP是NGN研究的一个热点,具有广阔的应用市场。VoIP技术可以在分组交换网络上传输语音业务,满足人们在数据通信网上对语音业务的需求。目前,IP电话领域存在两个呼叫信令和控制标准:ITU—T的H.323协议和1ETF的SIP协议。H.323协议因其提出时间较早已经获得了成熟的应用,而IETF提出的SIP协议,因其简单、灵活的技术特点而呈现出后来居上的趋势。
与此同时无线局域网(WLAN)技术发展迅速。WLAN主流技术标准已从802.11发展到802.11a/b/g,接入速率已从最高l Mbps发展到54 Mbps,而且技术成熟,成本低,普及率提高迅速,迎合了便携式终端的发展要求,已得到大量国际厂商的支持和市场的广泛认同。但是目前802.11a/b/g技术只提供高速数据接入业务,不能提供语音业务,因此有必要在该数据业务基础上采用VoIP技术,研制一种无线VoIP电话(VoWiFi),以适应嵌入式通信网络设备应用越来越广泛的现实。实现VoWiFi的软硬件平台,可以采用当前最流行的嵌入式开发平台和开源的Linux操作系统。基于以上技术可以构建一个嵌入式VoWiFi电话终端,具有重要的应用价值。
1 技术方案
嵌入式VoWiFi电话是能够在802.11a/b/g无线局域网上进行电话通信的设备。为了能在802.1la/b/g上实现电话通信,必须采用VoIP技术,本系统VoIP标准可以选择更灵活的SIP协议。为了能实现各种通信协议,完成各种控制和管理工作,满足今后进一步开发需要,需采用基于微控制器的嵌入式系统。为了提高硬件设计的灵活性和软件代码在平台间的可移植性,本系统软硬件的设计采用了模块化的方法。在硬件上,把系统划分为以太网接口、USB无线网卡接口、音频接口、串行接口等几个功能单元;在软件上,利用嵌入式操作系统分离底层硬件平台和上层应用,通过对终端系统的模块划分和模块间的接口定义,有效分离各模块间的相关性,从而使得各个模块可以同时进行开发,提高开发效率。
2 硬件设计
2.1 总体方案
VoWiFi电话硬件技术方案如图1所示。ARM9处理器是整个终端的核心部分,外围包括802.11b/g无线模块、语音信号处理模块、键盘和LCD电路。ARM嵌入式系统是VoWiFi电话通信控制和管理的核心,它负责操作系统的运行、资源的管理和分配、信息数据的处理以及与外部扩展单元的通信,完成与各个模块的接口和通信、TCP/IP协议和SIP协议的操作等。综合考虑各种因素,本系统采用ARM9微控制器芯片EP9302。为了使系统能够支持多任务,使得程序开发更加容易、便于维护,同时能够提高系统的稳定性和可靠性,采用嵌入式操作系统Linux。
2.2 模块选择与电路设计
802.11b/g无线模块实现空中无线接口和无线局域网接入功能。选用VIA威盛公司的VT6656 USB无线网卡,VT6656 wLAN控制器包括1个IEEE802.11a/b/gMAC,并集成了一枚基带处理器支持USB2.O。该控制器可提供54Mbps高速的无线连接。
在ARM9开发板内部含有1个USB2.O接口控制器,接口电路如图2所示。共有3个LISB接口(2个Host和1个Device),通过选择开关SW800进行选通控制。74HC08作为4个二输入与门逻辑电路,负责控制信号的逻辑组合。该接口用来连接USB接口的外部设备。
语音信号处理模块用于对语音信号的数字化处理。本终端的音频接口由I2S音频总线接口和UDAl341TS音频编解码器组成,I2S接口采用DMA的数据传输模式。UDAl341TS是一款经济型音频编解码器,它通过I2S数字音频接口实现音频信号的数字化处理。图3是EP9302与UDAl341TS的引脚连接示意简图。
LCD显示器和4×4键盘用于人机接口,在ARM嵌入式系统支持下实现各种人机操作。考虑到LCD显示器主要用于号码以及各种状态标识显示,因此采用背光的128×64图形点阵LCD模块。
3 软件设计
本嵌入式WLAN SIP电话终端的软件结构如图4所示。具体来说,需要如下的软件。
(1)嵌入式操作系统嵌入式操作系统
提供了嵌入式应用软件的基础和开发平台,具有将CPU时间、中断、I/0、定时器等资源包装起来而留给用户标准的API系统调用,对任务进行合理调度以保证实时性和可靠性等功能。无线网卡驱动程序、TCP/IP协议栈、液晶显示器及键盘驱动程序等都属于操作系统模块。
(2)SIP协议
SIP协议主要用于呼叫控制,包括呼叫的建立、维护和终结,以及根据呼叫进展情况动态调整和修改相关属性。SIP协议的相关操作包括:SIP消息的发送和接收、消息的生成与分析、状态机的保存与转换、SIP对话的管理、SIP事务处理机制的运行、SDP消息的构造、解析和双方媒体协商处理,以及终端的注册等功能。
(3)语音处理软件
语音处理软件用于实现用户间完整的语音交互,可进一步划分为:
①语音处理模块。负责语音数据的采集、编解码和播放,这里采用全世界的电路电话交换网中使用的G.711语音编码技术。
②实时媒体传输模块。完成数据包的RTP封装与分解,以及数据包的发送和接收。SIP协议和语音处理是两个独立的过程,按照建立SIP会话在前、建立媒体流连接在后,拆除媒体流连接在前、拆除SIP会话在后的顺序工作。
(4)硬件设备驱动
硬件设备驱动包括无线网卡、键盘和LCD驱动。将驱动程序编译成内核的一个可载入模块并链入内核,生成新的可以在目标板上运行的内核,然后将内核烧入目标板的Flash中,使它们能正常使用。
(5)终端应用程序
终端应用程序实现终端程序的初始化,创建线程;管理程序中各模块信息,为它们分配资源;通过与用户的交互,负责在全局上控制和管理其他各模块的工作及模块间的通信;并作为SIP用户代理的运行平台,实现整个系统的呼叫发起、呼叫响应及呼叫结束的功能。
在整个系统的工作过程中,包括信令控制协议的传输、信令控制功能的使用、建立连接之后的语音传输、实时媒体的传输与控制,都是采用UDP方式实现的。语音数据要求比较高的实时性及处理速度,而且语音数据质量对可能出现的因可靠性问题而产生的丢包现象不是很敏感,所以使用UDP作为语音数据的传输载体。
在整个会话过程中,用来保障实时数据传输的协议是RTP协议。RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。实时传输控制协议RTCP和RTP一起提供流量控制和拥塞控制服务。
4 工作过程与实验测试
4.1 工作过程
采用嵌入式VoWiFi电话终端、无线AP和基于PC机的SIP软电话为实验环境。VoWiFi终端工作过程为:音频信号首先经过MIC后送入音频处理单元,完成声音信号的模/数转换,再经过语音编解码自上而下分别以RTP协议、UDP协议、IP协议将数据封装。ARM9处理器则通过I2S总线由DMA方式把封装后的数据读取到片外缓存单元SDRAM,当所开辟的缓存区域存满后,运行无线网卡驱动,把IP包通过无线网卡发送出去。在PC上运行的SIP软电话收到发送过来的数据后,通过应用层软件把IP包中的音频数据取出,然后调用PC声卡驱动,并把数据送入声卡还原成模拟话音。反方向的数据传输类似,只是数据是由运行于宿主机上TCP/IP的客户端程序发送。
4.2 实验测试
经过对终端的注册、呼叫、撤销呼叫、语音通信等功能进行测试,终端可以对SIP信令过程进行很好的控制,从而实现注册、呼叫等基本功能。在语音传输方面,本终端可以与被叫RTP通道进行实时语音传输,在局域网环境内语音质量较好,延迟较小;在互通方面,除了与另一同样终端可以互通,还可以与Linphone、X—lite等终端建立呼叫和语音通信,互通性较好。
结 语
在介绍VoIP原理的基础上,设计了基于ARM9平台的嵌入式VoWiFi电话终端的软硬件。该设计采用当前最流行的嵌入式开发平台和开源的Linux操作系统实现了无线局域网上VoIP语音通话功能。创新点在于:在802.11a/b/g无线局域网(WLAN)上,采用VoIP技术实现VoWiFi电话终端语音通话功能。