作 者:21ic
图1为VoWLAN语音终端的硬件框架图
建立连接后用户的模拟话音通过AIC10的AURXFP、AURXM、AURXCP输入,将模拟信号进行A/D转换形成数字信号流后传至编码模块。编码模块中的DSP根据系统要求将语音数据压缩,压缩后放入DOUT的寄存器中。
在接收语音数据时,在TLV320AIC10的帧同步FS为低电平,转换时钟信号SCLK的上升沿时,系统处理器将语音数据通过DIN送入AIC10进行解压缩,形成64Kbps的PCM码流,送入D/A进行数模转换,最后由AIC10的OUTP和OUTM输出模拟语音。
3 VoWLAN的软件设计
系统软件是基于SIP协议栈的基础上实现的。由于SIP协议栈采用模块化设计思想,因此,系统软件可以直接调用协议栈各模块提供的API。软件应用模块的消息获取线程是实时获取协议栈处理的结果(以消息或事件的形式存储在协议栈消息队列中),并把它转换成系统应用的消息结构存放在应用模块的消息队列中。图2是软件应用模块的程序流程图。
图2 为软件应用程序流程图
图2中的“应用初始化”包括建立消息读取线程等;“SIP协议栈初始化”包括建立协议栈主线程、注册回调函数、协议栈其它模块的初始化及消息队列的建立等;“关机准备操作”首先进行注销操作,接着终止消息读取线程和协议栈主线程,释放软件应用模块和协议栈各模块占用的资源。
协议栈模块包含事务管理和对话管理这两模块,同样,软件应用模块也包含类似的管理功能,即“呼叫(call)管理”。呼叫管理的功能和协议栈模块中的对话管理功能类似,只是呼叫管理侧重于和用户交互,通过人机界面显示信息,提示用户当前呼叫的进度,引导用户执行进一步的操作。
呼叫有四种状态:“S_IDLE”、“S_PROGRESS”、“S_INCOMING”、“S_CONNECTED”,它们之间的关系用一个有限状态机来描述,如图3。
图3 为呼叫管理有限状态机
“S_IDLE”状态就是我们通常所说的待机状态。当用户拨打对方的SIPURI,协议栈通过发送INVITE请求消息,得到临时响应消息,呼叫就处于“S_PROGRESS”,图中箭头<1>表示该操作引起的状态切换。在“S_PROGRESS”状态,对方如果拒绝接受呼叫,状态又返回“S_IDLE”,如箭头<2>;当对方接受呼叫,就处于连接通话状态“S_CONNECTED”,如箭头<5>。在“S_IDLE”状态也可能收到对方的呼叫请求,当UA应用发现一个新的呼叫请求,就应当切换状态到“S_INCOMING”,如箭头<3>;同样,用户可以拒绝接受呼叫,状态切换回“S_IDLE”,如箭头<4>;当用户接受呼叫请求,呼叫状态就处于“S_CONNECTED”。在“S_CONNECTED”状态,通话双方任何一方的结束通话请求都会导致状态返回“S_IDLE”,结束通话。
4 结论
本终端成本价格低,目前已经能够注册到有关厂家的SIP测试平台,并可以完成基本会话功能;同时,在LAN中可以以静态IP的方式注册成功,并进行会话操作。
创新点
SIP/SDP信令协议的VoWLAN终端嵌入式开发使用;USERAgent在VoWLAN终端的嵌入实现;实现VoWLAN终端对PC、VoWLAN终端对VoWLAN等终端、VoWLAN终端对PSTN的通话。
参考文献
1.吕京建等,嵌入式系统设计综述,单片机公共实验室,2001
2.王瑞刚,李燕。IP电话终端设备——原理、电路及应用.西安:电子科技大学出版社,2003
3.ZhangY.SIP-based VoIP network and its interworking with PSTN. Electronics & Communication Engineering Journal, 2002. 273~282.
4.GoodeB.Voice over Internet protocol (VoIP). Proc. of the IEEE, 2002
5.IP2022InternetProcessor User Manual http://www.ubicom.com
6.TLV320AIC10DataSheet. http://218.19.77.199:8001/download.php
7.咸廷伟,孙仁祥,毛琦。基于MPLS(多协议标记交换技术)的IP QoS应用.微计算机信息,2003,(08)