基于MINA的定位终端通信设计与实现
2017-02-27刘志博邓中亮
刘志博,邓中亮
(北京邮电大学 自动化学院,北京 100876)
基于MINA的定位终端通信设计与实现
刘志博,邓中亮
(北京邮电大学 自动化学院,北京 100876)
我国是世界上自然灾害最严重的国家之一,尤其是近几年来,全球气候变暖和厄尔尼诺现象愈加严重,我国各地频发灾害,加之各种灾害难以预测,人员损失和经济损失逐年剧增。严峻的灾害形势迫切要求我国不断提升综合减灾与救灾能力。本生命探测系统以CDMA定位技术为支撑,融合应急基站手机定位、Wi-Fi通信、基于MINA框架的网络通信、并行多线程开发等技术,通过系统内部交互的一系列服务协议,构建了多功能的定位服务系统,为用户提供了简洁美观、方便易用的用户界面。本生命探测系统实现了灾后复杂环境下高精度生命探测与定位,灾害现场搜救,应急指挥调度,应急减灾信息位置服务等功能。本文重点实现了生命探测系统嵌入式定位终端的硬件装置和软件平台的搭建,定位终端采用了嵌入式设备与MINA框架相结合的方法,具有一定的新颖性。测试证明,嵌入式定位终端与服务器端可以进行准确稳定地数据通信。
计算机应用技术;灾后定位;MINA框架;嵌入式
0 引言
随着全球各种自然灾害的频频发生,世界各国对灾后的被困人员救援愈发重视。我国70%以上的城市和50%以上的人口分布在气象、地震、地质、海洋等自然灾害严重的地区,并且灾害种类多、分布地域广、发生频率高、造成损失重。因此,我国灾后被困人员的救援工作是救灾工作的重中之重。灾后被困人员的最佳救援时间不超过72小时,如何能够准确快速地定位被困人员,尤其是被废墟掩埋的被困人员,是一个亟待解决的问题。目前,国内现有的搜救技术装备均有一些缺点。如声波、光学生命探测仪需要将探头深入废墟的缝隙中,探测速度较慢;红外热成像生命探测仪探测距离能达到数十米甚至上百米,但是不具备对于墙体等严重遮挡物的穿透能力;雷达生命探测仪在穿透废墟是探测距离仍然有限,且不具备对于大面积废墟内被困人员的并行定位能力。根据工信部最新数据显示,截至2015年12月底,我国手机用户数达13.06亿户,手机用户普及率达95.5部/百人[1],这为我国开展基于手机的生命探测技术奠定了用户基础。本生命探测系统以CDMA手机定位技术为支撑,融合多项技术,可实现对于灾后废墟内被困人员的定位,进一步提高我国应急搜救队伍的技术装备水平,提高灾后被困人员搜救的效率。本文首先介绍系统总体方案,而终端通信的设计实现是本文的重点。
1 系统总体设计概述
灾后区域地质情况复杂,三大运营商的通信基站会有极大概率宕机,而卫星通信和应急移动通信基站受地质情况影响较小。因此,基于CDMA手机定位生命探测系统(图1)是由北斗卫星导航定位数据模块、应急移动通信基站、定位终端和定位服务系统平台四大部分组成。本系统应急移动通信基站具有高精度时间同步装置,保证基站、定位终端与北斗卫星导航定位模块严格同步发送北斗定位信息。
图1 基于CDMA手机定位生命探测系统
本生命探测系统包括3个定位终端和1个应急移动通信基站,它们均带有北斗卫星导航定位模块。北斗卫星导航定位模块产生各终端位置信息,定位终端中FPGA实时采集CDMA手机数据,定位终端融合这些定位信息,并依照内部协议打包封装。封装完成后的数据借助Wi-Fi网络传送到定位服务系统平台,请求解算服务器进行解算。解算服务器解算后的数据,经由网络交给地图显示服务器处理,同步在救灾指挥中心设备上显示。
本文主要研究该系统中定位终端与定位服务系统平台的通信方法。本系统中定位终端由多个模块构成,各模块在嵌入式ARM处理器的控制下,将数据交由ARM处理器按照制定的协议打包封装,统一发送至定位服务系统平台。下面重点介绍定位终端与定位服务系统平台通信的设计实现。
2 定位终端与系统平台通信设计
2.1 定位终端设计需求
本系统中定位服务系统平台采用典型的请求定位模式,定位终端将终端位置信息、采集到的CDMA手机信息、各定位终端的ID号等数据打包封装成帧,实时上传到定位服务系统平台请求定位。这就要求制定相应的通信协议,实现定位终端与定位服务系统平台的通信。同时,必须采用无线通信方式,以保证定位终端的便携性和与救灾指挥中心联系的实时性。
2.2 定位终端结构
定位终端包括嵌入式ARM处理控制板、FPGA数据采集模块、电源模块、网络通信模块和北斗卫星导航定位数据模块。嵌入式ARM处理控制板负责协调控制各模块之间的通信,并将各组数据统一打包封装成帧发送到定位服务系统平台;FPGA数据采集模块负责处理由应急移动通信基站激活的CDMA手机数据;北斗卫星导航定位数据终端负责将装备位置信息发送到嵌入式ARM处理控制板;网络通信模块负责通过Wi-Fi协议将封装完成的自定义协议帧发送到定位服务系统平台的无线接收端。
图2 定位终端结构
2.3 定位终端通信协议
定位终端与系统平台之间、系统平台内部各服务器之间都需要使用预先制定的协议进行通信。采用自定义协议方便识别与提取有效数据,并且占用最少比特编码,保证数据最有效最快速的传输。各部分通信协议均以固定格式数据包制定,通过TCP Socket套接字传输,保证数据不会发生丢包。定位终端与系统平台通信协议数据包,即请求定位数据帧,由同步头、数据信息和CRC校验位组成。其中,同步头数据主要用于进行通信数据帧的起始同步判断;数据信息主要由定位终端ID号、终端位置信息和应急移动通信基站激活的CDMA手机信号数据;CRC校验位主要是为了保证信息传输的可靠性和有效性。
图3 请求定位数据帧结构
3 定位终端与系统平台通信设计与实现
定位终端与系统平台通信的实现硬件主要是嵌入式ARM处理控制板与网络通信模块,软件则是通信协议的制定。根据需要硬件选取以三星公司ARM9处理器S3C2440为核心设计的JZ2440开发板,网络通信模块则选取有人科技公司USR-WIFI232-610联网模块,软件则以MINA网络框架进行通信协议的自定义和数据包的发送。
3.1 定位终端硬件环境的配置
定位终端与系统平台根据MINA网络框架自定义的协议进行通信,而MINA网络框架是基于Java语言构建,需要在定位终端ARM开发板上构建Java运行环境。JZ2440开发板出厂已自带Linux操作系统和arm-linux-gcc工具,其中arm-linux-gcc工具是ARM环境下运行在Linux操作系统下所编写代码的交叉编译工具,arm-linux-gcc工具提供了一种编写环境和执行环境分离的手段。
为在ARM开发板的Linux操作系统环境下运行Java程序,本文采用安装JamVM,并用SecureCRT软件与ARM开发板进行通信。JamVM是一个小型的Java虚拟机,符合JVM规范第二版本。它虽然小但支持完整的规范,包括支持对象的收尾器调用,对象的次、弱、虚引用,类卸载,java 本地接口(JNI)与反射API[2]。JamVM在引入相关MINA框架jar包后,可运行基于MINA框架开发的程序。
3.1.1 GNU Classpath的安装
GNU Classpath是为了使用Java虚拟机运行Java程序的基本类库,也是运行JamVM不可缺少的类库[3]。
将下载的Classpath-0.98解压缩:
进入classpath-0.98文件夹:
指定编译工具,指定目标平台,执行命令:
根据需求完成配置后编译:
编译完成后执行安装命令:
GNU Classpath这时已经安装完成。
3.1.2 JamVM的安装
下载 jamvm-1.5.4.tar.gz 并解压:
进入jamvm-1.5.4目录
指定安装地址,指定classpath地址,指定目标平台,执行命令
编译过程中可能会有错误提示信息出现,根据提示添加需要工具即可。?
根据需求完成配置后编译
编译完成后执行安装命令
将GNU Classpath和JamVM移植到ARM开发板,再进行相关环境配置即可运行Java程序。
添加环境变量
指定 LD_LIBARY_PATH 环境变量
指定类路径
安装完成后执行命令
显示如图4则表示安装成功。
图4 JamVM安装成功
试运行java程序HelloWorld显示如图5
图5 HelloWorld运行成功
3.2 定位终端软件程序的设计
3.2.1 MINA框架结构
MINA(Multipurpose Infrastructure for Network Applications)是Apache软件组织开发的一个可用于开发高性能和高可用性的网络应用程序的基础框架[4]。MINA框架采用了Java NIO,即异步输入输出技术,可以方便的支持TCP/UDP协议;同时MINA拥有灵活、可配置的线程模型,网络通信程序开发者可以根据实际需要选择相应的线程模型。MINA框架的系统结构如图6所示。
图6 MINA框架结构
MINA网络通信框架主要由会话服务管理(IoService)、I/O过滤器链(IoFilterChain)、逻辑业务处理器(IoHandler)和I/O会话管理(IoSession)等模块组成[5]。IoService是创建通信服务的顶层接口,支持TCP/UDP协议读写操作,直接与远程对应端进行通信底层操作,IoService的两个子接口IoAcceptor和IoConnector分别对应服务端和客户端。IoFilterChain接收IoService传输的数据,并使用I/O过滤器进行过滤,可添加编解码器、日志记录和线程池等。IoHandler负责用后台业务逻辑处理由过滤器链过滤后的消息。IoSession负责保持一个有效的连接会话,直到网络断开或者用户断开连接。
3.2.2 Log4j日志管理功能
日志管理是软件系统中的重要功能,Log4j[6]是Apache的一个开放源代码项目,它可以控制日志信息输送的目的地,控制台、文件、GUI(graphical user interface)组件、套接口服务器等都可以作为目的地;用户还可以使用Log4j控制日志的输出格式,控制日志信息的级别,甚至可以细致地控制日志的生成过程。而这些功能都可以通过一个配置文件来进行配置,并不需要修改程序代码,能给软件系统日志管理功能的开发带来极大的方便。
3.2.3 通信程序的设计
根据自定义通信协议和MINA框架结构设计通信程序结构如图7。
图7 自定义通信协议编解码结构
通信程序首先识别各模块的数据,分别赋予其逻辑意义,然后通过MessageEncode转换为固定格式的二进制数据包,每个数据包末尾添加CRC校验位,保证数据的有效性,各个数据包首尾相连,形成二进制数据流。当服务器端IoAcceptor开始监听,客户端将编码完成的二进制数据流经过IoFilterChain过滤后,按照IoHandler中相关业务逻辑处理,最终发送到服务器端。服务器端收到数据后将首先验证数据和数据格式的准确性,通过decodable方法验证后,进行相应的数据处理。
4 通信测试
本次测试首先在PC上进行虚拟测试,测试3个定位终端与系统平台服务端自定义通信协议的正确性如图8所示。
系统平台服务端接收到的定位终端信息如图9所示。
将程序移植到定位终端进行实际测试。
本次测试采用单对单测试,定位终端编码如图10所示。
系统平台服务端接收定位终端信息,显示如图11所示。
经测试,定位终端与服务端通信协议制订正确,通信良好,数据准确。
图8 三个虚拟定位终端编码
图9 虚拟测试下系统平台服务端接收消息
图10 实际测试下定位终端编码
图11 实际测试下系统平台服务端接受消息
5 结论
本文介绍了基于手机定位的生命探测系统,融合了CDMA手机定位技术、北斗卫星导航定位技术、无线通信技术和基于MINA框架的自定义协议网络通信技术等。重点研究了生命探测系统的定位终端与定位服务系统平台的通信方法,提出了利用嵌入式设备和MINA框架实现自定义通信协议下的无线通信方法,经验证可准确实现数据的传输,在数据采集和无线通信方面有一定的新颖性。
[1] 2015年通信运营业统计公报. [Online]. Available: http:// www.miit.gov.cn/n1146285/n1146352/n3054355/n3057511/ n3057518/c4609344/content.html.
[2] 杨海明, 王新辉. Java虚拟机在ARM-Linux平台的移植研究[J].电脑知识与技术: 学术交流, 2007, 2(11): 1374-1375.
[3] GNU开源组织网站. [Online]. Available: http://www.gnu.org/
[4] Lee T. (2006) Introduction to MINA. [Online]. Available: http:// mina.apache.org/mina-project/resources/ACAsia2006.pdf.
[5] 张森. IIP中基于MINA框架的统一接口的设计与实现[J].北京工商大学学报: 自然科学版, 2007, 25(5): 42-45.
[6] (2004)The complete log4j manual. [Online]. Available: https://www.qos.ch/shop/products/log4j/log4-jManual.jsp
Design and Implementation of Location Terminal Communication Based on MINA
LIU Zhi-bo, DENG Zhong-liang
(Automation School, Beijing University of Posts and Telecommunications, Beijing 1000876, China)
China is one of the most serious natural disasters in the world, especially in recent years, the global warming and the El Niño phenomenon is more serious, frequent disasters in China, combined with various disasters is difficult to predict, personnel losses and economic losses year after year. The severe disaster situation urgently requires our country to continuously improve the comprehensive disaster reduction and disaster relief capability. The life detection system is based on CDMA positioning technology, which integrates mobile base station positioning, Wi-Fi communication, network communication based on MINA framework and parallel multi-thread development. Through the series of service protocols, the multi-functional of the positioning service system, to provide users with a simple and beautiful, easy to use user interface. The life detection system to achieve the complex environment of the post-disaster detection and location of high-precision life, disaster scene search and rescue, emergency command and dispatch, emergency disaster reduction information location services and other functions. This paper focuses on the hardware device and software platform of the embedded positioning terminal of the life detection system. The positioning terminal adopts the method of combining the embedded device and the MINA framework, which has certain novelty. Tests prove that the embedded positioning terminal and the server end can carry out accurate and stable data communication.
Computer application technology; Post-disaster location; MINA network framework; ARM
TP311
A
10.3969/j.issn.1003-6970.2017.01.001
国家科技支撑项目(2014BAK12B04);国家自然科学基金(No.61372110);国家重点研发计划(2016YFB0502003)
刘志博(1989-),男,硕士研究生,主要研究方向:室内外无缝定位、网络通信;邓中亮(1965-),男,教授,主要研究方向:室内外无缝定位、卫星导航、卫星通信。
本文著录格式:刘志博,邓中亮. 基于MINA的定位终端通信设计与实现[J]. 软件,2017,38(1):01-05