针对对讲机的VOIP中继网关设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
针对对讲机的VOIP中继网关设计
常海滨;王帑
【摘要】针对当前对讲机在特定领域中发挥的重要作用,并考虑到传统中继台在转发对讲机语音信号上的缺陷,参考当前流行的VOIP技术,设计了一种搭建简单,但功能齐全的针对对讲机的中继网关设计.利用两台对讲机进行中继台的双频收发,利用嵌入式技术和互联网技术实现将中继台的信号通过网络进行远距离转发.大大增加了对讲机语音信号的中继距离.用了互联网中SIP和RTP协议完成会话的建立删除,利用微处理器来控制中继台接口.经过试验证明,设计大大简化了中继台搭建的复杂程度,并且有效的扩大了中继台的中继范围.具有很强的创新性和实用价值.
【期刊名称】《微型电脑应用》
【年(卷),期】2016(032)008
【总页数】3页(P40-42)
【关键词】对讲机;中继台;语音网关;VOIP;嵌入式
【作者】常海滨;王帑
【作者单位】陕西学前师范学院,实验室与设备管理处西安,710000;西安理工大学西安,710048
【正文语种】中文
【中图分类】TN916
综合考虑现今技术趋势和传统模拟通信弊端,本文介绍了一种基于对讲机和嵌入式系统结合的嵌入式中继网关设计,利用因特网在速度与距离上的优势,重新发掘传
统对讲机在各种应用场合下的优势。
在本设计中采用因特网传输对讲机中的语音与其他信令信息,使用两台对讲机和嵌入式处理核心实现中继台的基本功能。
利用两台对讲机完成两个频点上信号的收发,经过嵌入式处理器进行相关信号采集,并将语音信号打包通过互联网进行远距离通信,最终实现通过网络提高中继台的中继范围。
本系统主要由中继终端和网络服务器组成。
中继终端在接收到中继请求后,判断发起请求的对讲机所发出的信令信号,经由网络服务器获取目标IP地址,然后连接
到目标中继终端,并最终完成远距离中继。
系统总体设计如图1所示:
中继终端由两部对讲机和两块嵌入式控制板组成。
一块是作为语音网关核心的ARM9处理器,另一块是由单片机为核心的底层电信号控制单元。
底层控制单元
主要负责完成两组对讲机的信号采集与控制信号的生成。
由两部对讲机分别完成信号的收发,来实现中继台的基本中继功能。
其中一台采集接收到的信号,产生传输触发信号。
核心处理器通过该信号触发语音信号发送线程,并在该线程中对信道中的语音信号进行采样量化,并完成打包传输。
接收到语音包之后,语音网关核心模块对其进行解包,触发PTT信号,并通过DA将语音信号合成输出。
同时考虑到
在传输过程中会需要相应信令传输,本设计还添加了DTMF编解码模块,完成对
应的双音频信号的获取与生成。
并最后通过服务器根据拨号选择中继IP,发起中
继会话。
1)硬件总体设计:
针对双对讲机拼接完成的中继台,本文设计一种简易而且功能完全的硬件接口电路。
其中包含了对PTT发射键、信号接收和语音收发信号的处理。
硬件上主要包括ARM核心处理板、单片机控制板和接口控制电路3部分组成。
硬件总体结构如图
2所示:
如图2所示,单片机作为底层核心控制器,利用其IO引脚对逻辑信号进行控制,
完成对DTMF信号的编解码、PTT发射键控制和对接收信号监控的功能。
对讲机组成的中继台产生的语音信号,通过阻抗网络,连接到ARM核心处理器中。
同时ARM处理器从网络接收到的语音信号也经由阻抗网络送至中继台发送出去。
2)DTMF收发模块设计:
常见的双音频编解码的方式有模拟电路方式、DSP方式和FPGA的方式实现。
这里采用标准IC芯片实现的方式。
本次设计采用了敏特尔MT8880CE芯片实现DTMF编解码功能,系统采用STC89C52RC单片机作为控制芯片,完成对该芯片的初始化设置,实现双音多频的编码与解码功能。
基本电路设计参考手册中给出的推荐电路,接口接入单片机。
参考电路及相应参数如图3所示:
图3 中元件参数为:
与单片机连接后设计电路如图4所示:
3)语音与控制信号接口设计:
中继网关接口的电气连接需要进行简单处理。
针对语音信号,在AD和DA的输入输出接口前,需要对语音信号进行调整。
在这里通过使用集成运放设计电路调理网络来实现另外,考虑到单片机与ARM核心处理器之间的引脚工作电平不兼容,需要在单片机和ARM处理器之间进行电平调整,完成数据传输。
最后设计一个开关电路,将开关信号连接至对讲机PTT发射键上。
至此硬件基础基本完成。
1)软件总体设计:
本次设计中,需要编写三大部分的应用软件。
分别是针对单片机的控制软件、针对ARM核心处理器的应用软件和针对服务器中的服务代码。
单片机中的控制代码主要负责监控中继台中发出的接收信号,并根据上层ARM处理器给予的信息完成PTT的开关。
另外还要完成对MT8880DTMF芯片的操作,完成对双音频信号的编解码功能。
这里的ARM核心处理器选择三星公司的Scs2440处理器,该处理器运算速率高,完美支持Linux嵌入式操作系统,本次设计中利用Linux系统对
网络的强大支持,移植SIP和RTP协议,完成中继网关之间的远距离通信功能。
同时,编写驱动程序,完成IO引脚与单片机的通信功能。
最后服务器上的程序是将挂载到网络上的各路语音网关列入状态表中,并初始化状态记录各自IP。
当有
语音网关发起服务请求时,查找被请求目标网关的IP发送发起请求网关。
2)单片机及MT8880控制程序:
对于芯片的驱动程序,由于该芯片接收到信号并解码后会产生中断脉冲信号,首先要对单片机进行初始化,初始化之后应当对芯片进行初始化设置,即读写芯片内部相应寄存器。
将常用操作分成四个独立模块:
读状态寄存器:char readreg()
写控制寄存器:void writereg(char d)
读数据寄存器:char readdat()
写数据寄存器:void writedat(char d)
实现以上各功能之后将芯片工作模式设置成为:发送50ms的DTMF双音多频音
频段,使能接收DTMF双音多频信号并解码,解码和发送完数据之后有中断脉冲
产生。
设置参数方式为:
之后应当设置好外部中断,并在外部中断的响应中编写相应的处理程序。
主要步骤为:开总中断:EA=1;开外部中断:EX0=1;设置外部中断为上升沿:
TCON=0x01;
在中断处理程序中要首先查询芯片状态寄存器,判断是接收到信号还是发送完毕的信号。
然后根据不同结果执行不同功能。
控制程序流程图如图5所示:
3)系统主代码编写:
整个系统由多个线程并行执行,主要由SIP、RTP的收发线程和核心调度线程组成。
主要负责监控整个中继台状态,根据各种信号发起结束会话;管理中继台的收发设
置;设置侦听循环,来获取客户端输入命令;创建SIP用户代理客户端线程和SIP 用户代理服务器端线程,以实现两个角色的不停切换;创建RTP接收和RTP发送线程,实现全双工通信。
主要代码如:
创建线程后,初始化每个线程需要的驱动模块,包括音频OSS驱动,通用IO引脚读写驱动。
然后初始化网络协议模块,设定IP和端口地址。
然后开始侦听和检测。
完成中继网关功能。
主程序代码流程图如图6所示:
完成要求的线缆链接,将四部对讲机中所需信号引出,接到中继网关接口处,完成两台中继网关A、B,设置两部网关工作于不同频点,这样方便本地测试。
使用两部对讲机,并工作于不同频点中。
给中继网关各模块设备上电,开始正常工作。
手持对讲机,将频率调整至中继网关A工作频点,按住发射键,讲话。
可以在另一端将另一部对讲机调整至网关B发送频点,此时可以看到另一部对讲机的busy指示灯被点亮,对讲机中有一侧对讲机内讲话的声音,至此测试完成。
经测试表明,本设计可以在使用多个对讲机时,利用对讲机搭建简易但是传播距离更远的中继台。
该中继台设计使用因特网VOIP的技术,凭借网络的巨大便利和强大功能,突破了传统中继台在中继距离上的限制,具有很强的创新性和实用性。
仅需要对两部对讲机进行简易链接就可以完成传统中继台无法实现的远距离中继,对未来相关语音通信产品有较强的指导意义。
【相关文献】
[1] 肖勇军,李海标,杨文,杜明.基于SIP的嵌入式语音网关设计与实现[J].计算机系统应用,2009,8:120-123.
[2] 洪斌,王利霞,孙红岭,孙皓月,杜春梅.基于ARM和DSP的VoIP网关设计与实现[J].通信技术,2008,41(8):173-178.
[3] 王古.基于软交换技术的RoIP网关设计与实现[J].现代电子技术,2010,320(9):72-74.
[4] 罗苑棠.嵌入式驱动程序和系统开发实例精讲[M].北京:电子元器件应用工业出版
社,2009(08):1-33.
[5] 冯国进.linux驱动程序开发实例[M].机械工业出版社,2011:132-134.
[6] 于明,范书瑞,曾祥烨.ARM9嵌入式系统设计与开发教程[J].北京:电子工业出版社,2008:260-266.。