张振国 刘红北方工业大学
基于平面调车的VoIP网络数字语音转发器的设计
张振国 刘红
北方工业大学
针对铁路平面调车调度室进行优化整合,原有数字调车区长台由于无线电波的通讯距离受限,无法满足调车区长对调车组人员进行远程指挥和远程监控的需求,设计了VoIP(Voice over IP)网络数字语音转发器,通过本设计将数字区长台和数字控制盒接入同一局域网,对数字调车区长台的操控距离进行了拓展,实现了调车区长对平面调车组人员的远程指挥和远程监控的能力。本设计给出了以S5PV210为核心,以Linux为操作系统,采用VoIP为通信技术的软件硬件设计方法。该产品应用于数字平面调车作业系统中,解决了远程操控数字调车区长台的难题,开创了VoIP技术在数字平面调车作业中的应用先例。
Linux VoIP 调车区长台 调车作业
数字调车区长台是数字平面无线调车系统中的必备通信设备之一,调车区长通过它下达、变更作业计划,呼叫调车组人员,监听调车现场作业情况。为了适应我国铁路平面调车的快速发展和中长期发展的需要,从2014年开始郑州局等开始对平面调车指挥中心进行优化整合,废弃原有的信息化水平低、交通不便的调度室,将原调度室功能转移到新的调度指挥中心。由于新的调度指挥中心距离调车作业现场的距离远,数字调车区长台不能搬迁到新的调度中心。调车区长如何在新的调度中心使用原有数字调车区长台成了急需解决的问题。
铁路平面调车地形复杂,天气多变,涉及部门众多,需要多方协调,所使用的调车设备较多,其中的数字无线平面调车设备一直都是国内外研究的热门课题。针对以上问题,作者设计了基于平面调车的VoIP网络数字语音转发器,通过本设计将数字调车区长台和数字控制盒接入网络,通过数字控制盒远程操作数字调车区长台,实现了调车区长对数字调车区长台的远程控制,使铁路运输部门可以对现有的调车室进行优化整合,提高了铁路调车的信息化、智能化水平。目前国内还没有相关VoIP设备可以直接将数字调车区长台连接到网络,本设计的成功研制正好填补这一空白。
本设计利用网络数字语音转发器分别将数字控制盒和摩托罗拉数字区长台接入网络,这样调车区长就可以使用数字控制盒远程操控摩托罗拉数字区长台,拓展了调车区长与调车组的通话距离。本系统主要包含数字控制盒、数字调车区长台、VoIP网络数字语音转发器、数字机控器和数字手持台。通过操控数字控制盒可以对数字调车区长台的信道进行切换,以便可以与多个调车组分别进行通信。数字控制盒、数字机控器和数字手持台三者之间可以相互通话;数字控制盒通过数字调车区长台可以向数字机控器和数字手持台传送数据。
利用铁路现有的网络,通过VoIP网络数字语音转发器延伸数字区长的收受话及数据的传输距离,从而实现远程控制调车组的目的。
2.1VoIP网络数字语音转发器功能
通过VoIP网络数字语音转发器实现远程操控数字调车区长台的目的,本设计需要实现以下三个功能。
可以传输控制命令:以实现对数字调车区长台的信道进行切换,通话的接通、挂断等操作。可以传输实时数据:以实现数字调车作业单的发送及钩确认的操作。可以传输实时话音数据:以保障调车区长与调车组人员的顺利沟通。
2.2VoIP网络数字语音转发器组成
VoIP网络数字语音转发器主要有电源模块、网络模块、话音模块、数据通信模块、USB模块、SD卡模块及接口电路组成。话音模块又分为话音数据采集、话音数据传输、话音数据处理三个部分。数据通信模块又分为RS232和RS485两个部分。
2.3VoIP网络数字语音转发器工作原理
VoIP网络数字语音转发器主要完成将数据和话音从网络的一端传输到另一端。本设计中通过网络模块实现对话音和数据的端到端的传输;话音模块完成对话音的采集、压缩、解压和播放的功能;数据通信模块完成对串口指令数据的接收、传输和写入。
为了缩短开发时间,节省开发成本,本设计采用核心板加底板的方法进行硬件设计,核心板采用了华天正公司的E210COREV2核心板,底板上添加电源模块、SD卡模块和设备接口等电路。
该核心板使用了S5PV210为主控芯片进行设计。它集成了2 个USB2.0接口,一个100M以太网接口,四组UART,一个AC97接口HIFI声卡。在外设资源方面能够满足本设计的要求。
下面主要对硬件电路中的网络模块、话音模块和数据通信模块三个关键模块进行介绍。
3.1 网络数字语音转发器网络模块设计
本设计中,网络模块电路使用的网络芯片是DM9000A,网络变压器使用的是HS9016。 DM9000A与S5PV210的接线示意图如图3.1所示。
图3.1 DM9000A接线示意图
3.2 网络数字语音转发器话音模块设计
本设计的话音模块主芯片采用的是WM9713,它的主要功能是实现A/D转换和D/A转换,由数字控制盒输入的话音是双端信号,而WM9713是单端输入,所以加入了1:1的音频变压器进行信号的转换。为了防止话音信号的指标变差,在电路设计上采用了模拟地和数字地分离的方法。图3.2是音频接口电路的原理图。
图3.2音频接口电路原理图
图3.3网络数字语音转发器与数字控制盒的数据通信模块设计
3.3与数字控制盒及数字调车区长台的数据通信模块设计
为实现本设计与数字控制盒和摩托罗拉数字调车区长台的控制命令和数据的通信,摩托罗拉数字调车区长台的数据接口是由与其配套的选项板上的RS232提供的。由于数字控制盒与网络数字语音转发器在使用时放置距离较远,采用了RS485进行数据传输。网络数字语音转发器与区长台的连接很简单,故连线图略。网络数字语音转发器与数字控制盒的数据通信模块设计如图3.3所示。
以嵌入式Linux为操作平台,进行驱动程序和应用程序的开发。
4.1 嵌入式Linux操作系统
嵌入式Linux的开发包括开发环境的搭建(Fedora14、交叉编译工具arm-linux-gcc)、Linux内核的移植、构建根文件系统、设备驱动程序的开发及应用程序的开发。主要任务在设备驱动程序的开发[8]和应用程序的开发。设备驱动程序主要涉及到字符设备开发,在网上有很多资料可供参考,此文篇幅有限只对应用程序部分进行介绍。
4.2应用程序的开发
应用程序部分共七个模块。完成了从软件配置、数据和命令的收发,音频数据的采集,播放等功能。
图 4.1 应用程序模块框图
4.2.1应用程序模块概述
根据本设计要完成的功能,应用程序模块框图如图4.1所示。主控模块负责启动和维护另外几个模块的功能,另外程序中使用了部分Linux开源代码作为程序的函数库(portaudio库和ortp库),音频数据的采集播放的相关函数放于portaudio库中,音频数据传输的相关函数放于ortp库中。下面主要对主控模块、话音模块、通信模块及配置文件读取模块作详细介绍。
4.2.2主控模块流程
主控模块起到了组织、管理其它模块的功能。首先建立程序所需的信号量、然后读取配置文件,对内存变量(如ip地址,串口参数,采样参数)进行设置,并启动http server线程和串口监听服务线程。
当用户按下CTRL+C时,程序就会收到信号SIGQUIT,程序就会关闭串口监听服务线和http server线程,退出程序的执行。
当程序收到的并非SIGQUIT信号,而是配置信息改动的信号时,程序将会自动重新起动。
4.2.3话音模块流程
话音模块主要完成音频数据的采集、传输及播放,其主要工作过程描述如图图4.2所示。
图4.2话音模块工作进程描述图
发送端首先打开默认的录音设备,按照预设的录音参数,开启录音过程。录音开启后,通过开启时注册的录音回调函数,周期性的获得数字化后的音频数据,使用RTP协议对其进行打包封装,发送给预设的目标主机。同时,在整个音频会话过程中,我们还可以周期性的发送RTCP(发送)状态报告给目标主机,以便在此次会话结束后,统计此次音频传输的质量。
接收端主机首先根据会话开始时接收到的音频播放参数打开默认的放音设备,注册放音回调函数。而后当它周期性的从网络上接收到RTP音频封包时,先从封包中提取出音频数据,而后直接写入到放音回调缓存中,从而播放出声音。同时在整个音频会话过程中,我们还可以周期性的发送RTCP(接收)状态报考给源主机,以便在此次会话结束后,统计此次音频传输的质量。
4.2.4通信模块流程
通信模块主要完成串口指令数据的接收、传输、写入,其主要工作过程描述如下:
(1) 根据预设的串口名称、波特率打开串口及串口监听服务程序。
(2) 监听串口指令数据。
(3) 获取到一条合法的串口指令数据后,如果是话音指令,则交给“话音模块”处理;如果是普通指令,则封装HTTP POST报文,发送给预设的目标主机并等待响应回复。
(4)目标主机收到HTTP POST请求后,解析指令,如果是话音指令,则交给“话音模块”处理;如果是普通指令,则写入本地已打开的串口,并发送响应回复。
(5) 当接收到程序退出信号后,关闭串口监听服务程序,并关闭已打开的串口。
4.2.5配置文件读取模块
为了设置和调试的便利,在程序中编写了配置文件,可以对网络语音数据转发器的本机和远端IP地址进行设置,数据收发延时时间进行设定。
当VoIP网络数字语音转发器的软硬件设计完成后,需要将转发器接入系统中,根据功能要求进行测试,找出设计不足进行改进。
5.1 测试环境搭建
测试中用到的主要设备有数字控制盒一个,摩托罗拉数字区长一台,VoIP网络数字语音转发器两台, 摩托罗拉数字手持台一台,路由器一台(带RG-45网口),网线两根,另配数字控制盒连接线和数字区长连接线各一根,通过VoIP网络数字语音转发器分别将数字控制盒和数字调车区长台接入网络。
连接前摩托罗拉数字调车区长台和摩托罗拉数字手持台都必须通过摩托罗拉公司提供的写频软件对其进行设置,添加要使用的数字信道,并保证数字调车区长台和数字手持台频点的一致性。
5.2 主要功能测试
控制信令数据传输测试。通过数字控制盒的数字按键发送切换信道命令,如果摩托罗拉数字调车区长台的LCD屏幕显示的当前信道号与所按下的数字键一致,说明信令数据传输成功。
发送语音功能测试。拿起数字控制盒手柄,按下PTT按键,对着话筒说话,如果数字对讲机可以接收到话音,说明语音语音可以从数字控制盒端通过网络传送到数字调车区长台一端,发送语音功能工作正常。
接收语音功能测试。按下数字手持台的PTT按键,并对着MIC讲话,如果数字控制盒有讲话音,说明语音可以从数字调车区长台一端通过网络传送到数字控制盒端,接收语音功能工作正常。
VoIP适用于基于IP网络的语音通信,结合Linux操作系统的优势提出了VoIP网络语音数字转发器的软硬件实现,通过此设备将数字控制盒与数字调车区长台分别接入网络,实现了通过数字控制盒远程控制数字调车区长台的目的。为区长室集中优化中的数字调车区长台的升级改造提出了可行方案。本文下一步工作研究如何消除系统通话过程中的背景音,提高用户体验。本文对数字调车区长的远程操作提出了解决方案是值得推广的。
[1]王本良VoIP技术现状及发展分析《商业现代化》,2005年第5期
[2]三星 S5PV210[EB/OL].http://baike.baidu.com/ view/8123492.htm
[3]嵌式入 linux[EB/OL].http://baike.baidu.com/ view/1195294.htm
[4] REAL210 LINUX用户手册.广州华天正科技有限公司.2011
[5]袁安富. 夏生凤.基于ARM和Linux的DM9000网络接口设计及驱动实现[J].计算机工程与科学.2011,33(2)
[6]WM9713L-AC97 Audio+TouchpanelCODEC.Wolfson Microelectronics plc.2004.1~14
[7]ADM3488 Datasheet.ADCorp.1994.1~15
[8]曹忠明程姚根编著《从实践中学嵌入式Linux操作系统》北京电子工业出版社 2012年
[9]陈刚冯利美编著《从实践中学嵌入式Linux应用程序开发》北京电子工业出版社 2012年
[10]oRTP:A Real-time Transport Protlcol stack[J]. http://www.linephone.org
张振国,1977-,男,北方工业大学,在读工程硕士研究生,主要研究方向:嵌入式计算机、铁路平面调车、智能卡、物联网。刘红,1967-,女,北方工业大学电子信息工程学院,副教授、主要研究方向:信号分析、信息处理、嵌入式系统开发、基于Web的大型系统开发、计算机应用技术。