张海燕 冯赟 王广帅
摘 要:针对复杂地形环境下,地埋式光缆线路巡护管理信息化程度低、巡护记录不健全、事后检查取证难等问题,提出了利用北斗卫星定位技术和WebGIS(网络地理信息系统)技术,设计开发了北斗轨迹记录仪、轨迹采集软件和WebGIS轨迹呈现系统,实现对光缆线路巡护轨迹的实时记录与事后回放,提高了光缆维护管理的信息化水平。
关键词:线路巡护 北斗 WebGIS 轨迹记录 轨迹呈现
中图分类号:S7 文献标识码:A 文章编号:1672-3791(2019)01(c)-0005-06
光缆作为光纤传输系统的物理传输媒介,其安全、可靠、稳定运行是传输系统正常运行的前提,经过农田、戈壁、流沙区、工业区等复杂地形区域的地埋式光缆,极易发生人为的非故意中断。为确保光缆的安全可靠运行,及时排除中断隐患,解决中断故障,应当制定严格的巡线制度。然而,巡视时人员乘坐光缆巡护车沿光缆路由全程巡护,巡护记录依赖纸质记录,巡线是否全面,效果无法检验;巡线计划是否落实,事中无法监督、事后很难查证。为提高光缆线路巡护管理的科学化、正规化和信息化水平,该文设计开发了基于北斗和WebGIS的光缆线路巡护管理系统,有效解决了复杂地形环境下地埋式光缆线路巡护管理存在的不足。
1 相关技术简介
1.1 北斗导航定位技术
北斗卫星导航定位系统包括北斗一代导航定位系统(BD1)和北斗二代导航定位系统(BD2)。北斗二代导航定位系统和普通GNSS(GPS/GLONASS/GALILEO)系统相似,系统由空间导航卫星星座、地面测控站和用户终端三大部分组成。
其定位原理是:用户接收机对视野内观测到的卫星信号进行伪距或者载波相位测量而获得伪距观测量,伪距测量方式又可以分为C/A码和P码两种测量方式,在接收卫星数目大于等于4颗时,用户可通过后方交会方式,根据伪距观测量解算出三维位置,并可以进一步通过多普勒频移测量获得三维速度,同时获得高精度的时间信息。
1.2 WebGIS技术
GIS地理信息系统,应用较早,不便于更新,不便于跨平台,不便于用户在不安装指定客户端的情况下使用。随着Internet进入了爆发式增长阶段,网络的铺设以及网速都有了大幅度的提升,出现了WebGIS,也就是展现于网络上的GIS,于是,基于B/S的GIS系统越来越多的开始提供服务,并且在RIA(富客户端)技术、AJAX(动态网页)技术的涌现和成熟下,WebGIS也基本能展现出与C/S一样的效果和功能。目前发展WebGIS技术的公司可以大致分为两个方向:一个是互联网方向,一个是行业应用方向。互联网方向比如:百度地图、高德地图、谷歌地图等,该系统计划采用的就是谷歌地图。
2 系统总体设计思路
系统的总体设计思想如图1所示。
在光缆巡护车上安装自行研制的基于北斗的光缆巡护记录仪(以下简称记录仪),该记录仪会自动记录光缆巡护车的行驶轨迹,每间隔30m,采集一次地理位置信息,并记录在光缆巡护记录仪的内置存储器中。
当巡线车回到车场时,值班员通过轨迹采集终端采集记录仪记录的轨迹信息,该采集终端是通过射频方式与记录仪通信,将采集到的轨迹信息存入相关数据库。
用户打开浏览器,访问基于WebGIS的光缆线路巡护管理系统,即可以查看指定车辆在指定日期的行驶轨迹,该行驶轨迹详细显示了到达某个地点的时间,以及该地点的坐标,此外,还可以动态再现巡护过程。
3 北斗光缆巡护记录仪设计与实现
3.1 总体设计
记录仪的主要功能就是获取北斗信号,定位当前光缆巡护车的地理位置,并保存起来,同时,还要具有与轨迹采集软件通信的功能,因此,其结构设计如图2所示。
可以分为如下几个功能模块。
(1)MCU:主要作用是控制各个外围模块的正常工作,同时接收外部模块传入的数据、指令等信息。需要能够支持多种接口协议,以与不同的外围模块交互。
(2)BD2定位模块:主要作用是接收北斗卫星的信号,计算得到当前的地理位置,并通过一定的接口将位置信息传送到MCU,此处选择的接口是串口。
(3)SD卡控制器:主要作用是接收MCU的指令,存储、读取SD卡中的数据。记录仪会将巡线过程中的位置信息都存储在SD卡,当接收到轨迹采集软件的读取指令后,会从中读出指定的数据。此处设计SD卡控制器通过SPI接口与MCU交互。
(4)RF通信模块:主要作用是与轨迹采集软件建立通信链路,接收轨迹采集软件传过来的指令,然后交给MCU,同时,将MCU的回复信息发送给轨迹采集软件。此处设计RF通信模块通过串口与MCU交互。
(5)电源模块:主要作用是将车载的24V或者12V直流电源转换为适合MCU、BD2定位模块、RF通信模块、SD卡控制器使用的5V直流电源。
3.2 北斗定位模块选型与配置
3.2.1 北斗定位模块选型
BD2定位模块的作用是接收北斗卫星的信号,并加以计算,得到时间信息、定位信息,最后通过一定接口将时间信息、定位信息输出,该文BD2定位模块选择的是“和芯星通”的UM220-III NL。UM220-III NL是一款BD、GPS双模的定位导航芯片,能够同时支持BD2 B1、GPS L1两个频点。
3.2.2 北斗定位模块配置
UM220-III NL芯片默认是同时接收、处理BD、GPS两个定位系统的信号,该文主要使用的是BD定位功能,因此需要配置以屏蔽GPS。
为了屏蔽GPS,可以通过UART接口向UM220-III NL发送如下配置指令:
$cfgsys, h10
其中消息名是cfgsys,作用是设定或输出卫星系统配置,其后面跟一个参数,类型是32bit整数,此处采用16进制的形式表示,其各个bit的含義如图3所示,如果要开启对应的频点,那么对应的bit设置为1。所以此处设置为0x10,就表示只开启BDS B1频点。
此时,UM220-III NL会通过UART接口以1Hz的频率,输出如下格式的一些消息:
$BDGGA,003358.000,4058.939449,N,10012.779013,E,,00,3.781,1024.750,M,0,M,,*6D
$BDGLL,4058.939449,N,10012.779013,E,003358.000,V,N*57
$BDGSA,A,3,,,,,,,,,,,,,0.000,3.781,0.000*2E
$BDGSV,3,1,10,161,27,128,,162,38,209,,163,17,114,,16
4,14,110,*66
$BDRMC,003358.000,V,4058.939449,N,10012.779013,E,0.010,177.924,280715,,E,N*23
可以發现有五类消息,BDGGA、BDGLL、BDRMC中均包含此文所需要的定位信息,并且这3个信息中的内容多有冗余,采用其中一种即可,可以屏蔽其他几种,该文屏蔽了除BDRMC之外的其余信息。
BDRMC消息的格式如下:
$BDRMC,time,status,Lat,N,Lon,E,spd,cog,date,mv,mvE,mode*cs
各个字段的含义如下:
time:UTC时间,格式为hhmmss.sss,其中hh为小时,mm为分钟,ss.sss为秒。
status:位置有效标识,V表示无效,A表示有效。
Lat:纬度,格式为ddmm.mmmmmm,其中dd为度,mm.mmmmmm为分。
N:北纬或南纬指示,N表示北纬,S表示南纬。
Lon:经度,格式为dddmm.mmmmmm,其中ddd为度,mm.mmmmmm为分。
E:东经或西经指示,E表示东经,W表示西经。
spd:地面速率,单位是节。
cog:地面航向,单位是度,从北向顺时针计算。
date:UTC日期,格式为ddmmyy,其中dd为日,mm为月,yy为年。
mv:磁偏角,固定填空。
mvE:磁偏角方向,固定填E。
mode:定位模式,N表示未定位,A表示单点定位,D表示差分定位。
cs:校验和,从'$'到'*'之间的所有字符进行异或得到的 16 进制数。
UM220-III NL经过上述配置,将按照1Hz的频率通过UART接口输出BDRMC消息,MCU将分析该消息,提取其中有效的信息。
3.2.3 北斗模块电路设计
北斗模块UM220-III NL的集成度很高,外围电路设计并不复杂,需要注意的是其采用的是3.3V供电。另外,UM220-III NL提供了两个UART口,该系统计划都使用,其中一个连接到ATMega2560,另一个通过电平转换芯片MAX232,连接到PC机,便于后期的调试。其电路设计如图4所示。
3.2.4 固件编写
需要为ATMega2560编写固件,才能使其按照预期设想进行工作。ATMega2560中固件的主要工作流程如图5所示。
按照完成的主要工作,可以分为三步。
第一步:初始化。包括设置ATMega2560中各个端口的工作方式、时钟设置、串口速率设置、中断设置、检查SD卡是否可读等。
第二步:等待初始定位。因为刚刚加电的的时候,UM220-III NL是冷启动,需要至少30s才能输出有效数据,所以,需要不断的检查UM220-III NL的输出数据,直到数据是有效的,将其中的位置信息,作为初始位置信息保存。
第三步:实时记录位置信息。这实际是一个不断地循环检查,获取UM220-III NL的输出数据,如果无效,那么舍弃,如果有效,那么计算新的位置与旧的位置之间的距离是否大于30m,如果不大于30m,那么舍弃,如果大于30m,那么使用新的位置信息更新旧的位置信息,并将新的位置信息保存到SD卡,如此不停的循环。
4 轨迹采集软件设计与实现
4.1 轨迹采集协议设计
4.1.1 轨迹采集软件与光缆巡护记录仪建立连接协议
轨迹采集软件通过轨迹采集器,向指定车辆的光缆巡护记录仪发送一个握手信号“SYN:E”,记录仪接收握手信号后,向轨迹采集软件发送一个确认信号“OK”。轨迹采集软件收到确认信号,认为连接建立成功。
4.1.2 轨迹采集软件发送、读取轨迹数据协议
轨迹采集软件与记录仪建立连接后,轨迹采集软件向指定车辆的记录仪发送获取特定日期轨迹信息的指令,格式是“XXXXXX:E”,其中6个X是日期,格式是YYMMDD,前两位是年,接着两位是月,最后两位是日。记录仪收到指令后,将对应日期的轨迹数据发送到轨迹采集器端,一次发送一个轨迹采集点数据,格式如下:
xxxxxx;xxxxxx;xxxx.xxxxxx;xxxxx.xxxxxx
数据中第一个分号前的6位是采集日期,格式是YYMMDD,第二个分号前的6位是采集时间,格式是hhmmss,第三个分号前的11位是采集点经度,格式是hhmm.mmmmmm,最后12位是采集点纬度,格式是hhhmm.mmmmmm。
4.2 轨迹采集软件的实现
轨迹采集软件的主要功能是读取指定车辆、指定日期的巡线轨迹数据,并将数据存储到数据库服务器。软件主要包括通信建立模块、轨迹数据采集模块和轨迹数据存储模块。
4.2.1 通信建立模块
首先,通过读取电脑注册表信息获取主机上所有可用串口,然后依次向各个串口发送握手信号“SYN:E”。若某个串口收到响应信息“OK”,则认为通信建立成功;若所有串口没有收到响应信息,则认为通信建立失败,数据采集结束并给出提示信息。
4.2.2 轨迹数据采集
用户选定车辆和日期后,点击“轨迹数据采集”按钮,轨迹采集软件向记录仪发送“XXXXXX:E”指令,然后读取串口收到的数据,并保存到临时存储文件patrolTrack.txt中。如果读取到“EOF”,则表示数据传送结束。
4.2.3 轨迹数据存储
轨迹采集软件在轨迹采集结束后,会接着打开轨迹数据临时存放文件patrolTrack.txt,读取每一行数据(一行数据为一条巡线轨迹数据),判断数据是否完整,如果数据不完整,那么丢弃该数据;如果数据完整,那么将该数据保存到数据库中。
5 轨迹呈现系统设计与实现
5.1 总体设计
轨迹呈现系统主要实现对指定时间段内指定车辆行驶轨迹的呈现、回放、行驶里程计算等。系统结构如图6所示,采用B/S模式,分为3层,分别是数据层、服务层、显示层。
(1)数据层:用来提供轨迹数据,采用就是第5节中轨迹采集软件储存在MySQL数据库中的数据。
(2)服务层:是显示层与数据层的中间层,接收显示层提供的查询请求,依据该请求查询数据层,并将结果返回给显示层,后者进行可视化显示。采用的是Servlet方式,与显示层交互采用的是Ajax方式。
(3)显示层:有3个主要的功能模块,即用户接口、轨迹显示、轨迹回放。
用户接口模块的作用是提供一个查询界面,供用户选择需要查询的时间段及车牌号,并能将用户选择的查询参数通过Ajax方式发往服务层。
轨迹显示模块接收服务层返回的数据,并在地图上呈现出来。服务层返回的是采集的车辆行驶轨迹点的信息,有两种呈现方式:点绘制和路线绘制。点绘制是将所有采集的轨迹点在地图上用标记点图标绘制出来。路线绘制是通过不断绘制点标记和系统自动绘制的直线标记形成行驶路线。
轨迹回放模块实现行驶轨迹的动态再现,方便用户直观地了解车辆的运行轨迹,此外,当用户查看轨迹回放时,可点击图标按钮实现轨迹回放的暂停与继续。
5.2 轨迹呈现系统的实现
为了便于理解,下面按照用户接口、服务层、轨迹显示、轨迹回放的顺序介绍轨迹呈现系统的实现。
(1)用户接口的实现:用户接口提供日期、车牌号供用户选择。本系统采用ExtJS实现用户接口。
(2)服务层的实现:用户选择的日期、车牌号会提交给服务层,后者查询数据库获取对应的轨迹信息。服务层采用Java Servlet实现。
(3)轨迹显示的实现:服务层返回的轨迹信息会交给显示层的轨迹显示模块,后者将在Google Map上绘制对应的行驶轨迹,既可以绘制独立的轨迹点,也可以将轨迹点连接成线,当鼠标点击某个轨迹点时,会显示这个轨迹点的详细信息,包括经纬度、到达时间、行驶距离等。显示轨迹点的效果如图7所示。
(4)轨迹回放的实现:通过使用定时器逐段绘制出轨迹点,可以实现轨迹回放。
6 结语
该文从基地出口光缆线路巡护管理工作存在的现实问题入手,提出了一种基于北斗卫星定位技术和WebGIS技术的光缆线路巡护管理系统,设计开发相关的软硬件系统,并进行实用化验证测试,实现了对巡线车辆轨迹的记录与回放,系统工作稳定可靠,达到了设计目的,满足了使用要求。
该文的研究工作为光缆线路巡护管理的信息化进行了有益探索,为其他轨迹记录提供思路。但是在使用范围的广泛性、小型化和便捷性方面还要进一步的研究和改进,这是我们后续研究的内容和方向。
参考文献
[1] 和芯星通科技有限公司.GNSS数据接口协议UM220-III N[Z].2014.
[2] 和芯星通科技有限公司.UM220用户手册(第二版)[Z].2012.
[3] Atmel. Atmel ATmega640/V-1280/V-1281/V-2560/V-2561/V DataSheet[Z].2014.
[4] 亿佰特电子科技有限公司.E30超低功耗无线串口模块[Z].
[5] Google Maps Javascript API V3[Z].
[6] 徐晓茵.基于WebGIS的系統定位信息分析处理的研究与实现[D].北京邮电大学,2013.
[7] 陶留锋,邢廷炎,吕建军,等.实时富客户端WebGIS框架研究与实现[J].计算机应用与软件,2014(2):55-57.