主页(http://www.pttcn.net):VoIP在楼宇对讲系统应用中的设计 这个方案有个缺陷就是基本上没有视频处理模块!以后我们会使用i.mx系列扩展一个比较完善的VOIP系统 1 引言 VoIP(Voice over Internet Protocol)技术利用IP网络传输语音数据,降低了语音和数据的通信成本,是语音通信领域中快速崛起的新兴技术本文介绍了一种基于IP的智能小区对讲系统,是国内首次将VoIP技术应用在智能小区领域。该系统由门口机、用户机和管理机构成,之间用以太网相连接。语音信号进行数字化、压缩处理后转换为IP数据包在IP网络上进行传输,是一个全双工的实时语音传输与处理系。文章分别介绍了该系统的硬件结构和软件实现方法。随着科学技术的发展,人们对居住环境的安全性、舒适性、方便性提出了更高的要求,智能化住宅小区建设在我国得到了很快的发展。在很多新建的中高档住宅小区中,宽带直接深入到各家各户,基于IP网络的各种应用开始起步。本文成功研制了基于IP的智能小区对讲系统,是国内首次将VoIP技术应用在智能小区对讲领域。与传统的基于模拟线路的对讲系统相比,本系统具有以下特点: 1) 功能扩容和技术升级非常方便:在统一的IP网络平台上可方便实现功能扩容如视频传输、消息发布、远程监控管理等多种扩展服务功能,无需架设新的线路,适应了当代信息技术迅猛发展的要求。 2) 布线方便:本系统直接应用在现有的宽带网络平台上,极大方便了居民和物业管理人员。 3) 开放兼容的互连标准:采用标准的TCP/IP协议,可实现与其他支持TCP/IP协议的产品互连,因此有更好的商业前景。 2 系统概述 整个系统由门口机、用户机和管理机构成。小区内每个住户都装有一个用户机。门口机装在楼栋下,主要负责相应门栋的门禁,客人来访时可以通过门口机呼叫用户机以验证身份,用户可远程打开门栋口的电锁。管理机位于小区的管理中心,可接受来自用户机和门口机的呼叫。管理机也可以主动呼叫用户机。门口机、用户机和管理机由以太网(Ethernet)连在一起。 用户机、门口机和管理机都具有全双工语音通话功能。语音信号是模拟信号,要用IP方式来传输该信号,必须先经过模数转换,为了减轻网络的负载,还要进行压缩处理;反过来先要进行解压缩,再转换成模拟信号还原成原来的声音。 3 硬件设计 每个网络节点(用户机、门口机和管理机)的语音模块具有相同的硬件结构。 要实现双向通话,每个节点包括了语音输入通道和语音输出通道。 为了简化硬件设计,我们选择了TI公司的一款型号为TLV320AIC10的转换芯片,该芯片具有模数、数模双向转换能力,并在芯片内部集成了信号的前置放大与滤波功能。TLV320AIC10的线性转换精度可以达到16位,可设置LV320AIC10的配置控制字,以实现对采样、增益等特性的动态配置[3]。 语音编码解码芯片我们选用DVSI公司的AMBE2000的芯片,该芯片采用AMBE语音编码算法,进行实时、全双工的音频压缩/解压缩,在较高的压缩率下仍能提供比较好的语音质量。AMBE2000还具有回声消除、静音检测和插入舒适噪声等功能。另外AMBE2000具有音频数据前向校错的功能(FEC,Forward Error Correction)、对语音数字通道中所出现的有限量错误能进行自动校正[2]。 以太网接入模块的核心器件是IP2K网络微处理器,IP2K内含全双工串化器解串器(Ser/Des)硬件功能,能直接与各种常用网络接口相连。IP2K内置了10Base-T以太网媒体访问控制层(MAC)和物理层(PHY)[4]。IP2K完成语音数据的打包、解包功能和其他IP网络接口协议。 从麦克风进来的语音信号是300Hz~3,300Hz的模拟信号,ADC采样频率为8khz,其输出的数据速率为8×16bit=128Kbps。AMBE2000输出编码速率为2.4~9.6kb/s。 由于门口机具有话筒免提的特性,要求扬声器输出较大的音量,麦克风需较高的灵敏度,这样扬声器发出的声音很容易进入麦克风造成回声。为解决这一问题,本设计了启用了AMBE2000的回声消除功能,在很大程度上降低了回声。 4 软件设计 当两个网络节点之间要进行通话时,需要会话管理协议来建立、管理和结束会话(Session),以及语音传输协议来传输语音数据包。 4.1 会话管理协议 SIP协议(Session Initiation Protocol,会话发起协议),是用于多媒体通信的应用层控制(信令)协议,相比H.323协议而言,具有扩展容易,比较简单等特点[1] [5]。考虑到本系统嵌入式、结构简单的特性,我们部分地参照了SIP 协议。 呼叫前节点A处于空闲(Idle)状态。当节点A要呼叫节点B时,A向B发出Invite请求信令并进入Inviting状态。当B也处于Idle状态时,则返回Ack_Ringing应答信令表示正在响铃同时B进入Being_Invited状态。当B提起话筒后,B返回Ack_Invite_OK信令,A收到后返回Ack_Invite_Resure再次应答确认,表示会话建立成功,A和B进入Talking状态,开始传输语音数据。这样,经历了三次握手,以保证会话的可靠建立。 当A或B挂断时,挂断方发出Bye请求,另一方返回Ack_Bye_OK应答,A和B进入Idle状态。 注:当A向B发出Invite请求时B不处于Idle状态,B则返回ACK_Busy,A收到后提示对方正忙并返回到Idle状态。在A拨号后没接通电话就挂机,A发出Cancel信令,B返回Ack_Cancel_OK, A和B返回到Idle状态。 为保证会话建立的可靠性,设计中使用了定时器机制,充分考虑数据包丢失的情况。例如当A发出一个需要应答的请求信令一段时间后还没收到应答,则说明A发出的请求数据包或B返回的应答数据包丢失,A会再次发送请求信令,如果发送三次仍未收到应答,A端报告网络故障并自动进入某一状态。这样保证了状态机工作不会紊乱。 4.2 语音传输协议 会话建立后,开始进行语音数据的传输。实时传输协议(Realtime Transport Protocol,RT P)可提供实时数据的端到端传输,如音频、视频和非实时应用数据[1] [6]。 RTP协议建立在UDP协议之上。根据顺序编号和时间戳,舍弃因网络阻塞等原因导致先被发出却后到达的数据包。 AMBE2000编码器每隔20ms输出一帧长度为24个字长(48bytes)的数据,其中前12个字长的数据包含当前编码速率在内的状态信息,后12个字长包含了语音数据。IP2K将语音数据打包上传。同时解开收到的语音包,将语音数据连同控制信息送给AMBE2000进行解码处理。 4.3 根据ID查询对应IP 网络上每个节点都有不同的IP地址,同时为了便于操作管理,每个节点都有自己的ID号。例如要呼叫12楼02室拨1202这个ID号即可。这样一个ID对应着一个IP。这个ID-IP映射表存储在门口机的Flash里。每个用户机存储着门口机和管理机的IP地址。当门口机呼叫用户机时,门口机根据ID查询到对应的IP后向其发出呼叫请求。当管理机呼叫用户机时,被呼叫方的IP查询有两种方式,一种是向门口机查询对应ID的IP;另一种是通过广播的形式查询,网络上各用户机节点收到查询IP的信令后与自己的ID进行比较,若匹配返回给查询方。通过广播的方式,即使门口机发生故障,管理机仍可以正常呼叫用户机,提高了系统的健壮性。用户机呼叫管理机只需读出存储在本地的管理机IP即可。 5 结论 本文成功研制出了基于IP的智能小区对讲系统。该方案已完成全部软、硬件的实现以及网络的组建,并已通过初步测试,运行稳定可靠。 (中国集群通信网 | 责任编辑:张思怡) |