基于北斗的无人船艇数据传输系统研发*
2018-08-03徐风云万隆君徐轶群蔡亚军
徐风云,万隆君,徐轶群,蔡亚军,方 超
(集美大学轮机工程学院,福建厦门 361000)
0 引言
由于远洋航海船舶与船舶、船舶与岸基之间通信距离较远,影响因素多,困难多。在航海领域上,目前远洋航海大多数依赖于海事卫星、美国全球定位系统作为通信主要手段。文献[1]以国际海事卫星通信海事宽带系统作为通信系统,尽管海事卫星系统使用的L波段独有的特性,L波段终端因其天线波束较宽可以迅速地寻星和对星。但是它的通信费用昂贵,使许多用户望而却步。文献[2]以美国全球定位系统作为通信手段,GPS具有全天候、不易受任何天气的影响、全球覆盖率高和三维定点定速定时高精度等特点,但是缺少短报文通信,而且通信技术需要掌握在本国手中,尤其是在军事上,应积极避免采用他国卫星技术作为通信方式。北斗卫星导航系统的应用不仅广泛,而且成本低,是目前我国作为自主研发可利用的最好的海洋通信方式。其短报文通信功能,为远洋数据的传输提供了更加便利的信道[3-4]。为此,本文提出了利用北斗的短报文通信以及定位功能,实现对无人船艇的数据传输和监测。
无人机、无人自主航行器以及无人船艇随着智能化发展也逐渐成为研究热点。无人船艇是一种依托船舶,可装载定位、导航以及控制设备新型的搭载平台,并且搭载多种海洋传感器,监测各类数据,以实现各种海洋任务[5-6]。
在无人船艇上采用北斗卫星导航系统和北斗系统的短报文通信功能的通信功能,实现无人艇定位功能以及无人船艇数据的传输。使水面无人船艇的工作范围从近海域扩展到远洋,实现岸基对无人船艇自身参数以及在远洋上对其工作范围内的海洋环境、水面情况的监测[7-10]。本论文提出了一种利用北斗卫星导航系统技术,开发无人船艇数据传输系统的硬件与软件设计方案。此方案便捷高效,可在各级别水面无人船艇上使用。通过现有的无人船艇数据采集技术,加载北斗卫星导航通信系统,开发船载数据转发装置,岸基人机交互界面。本文将我国的北斗卫星导航系统的通信技术,应用于无人船艇的数据传输系统,为无人船艇的数据传输提供了一种高效便捷的方式,同时对北斗卫星导航系统的民用以及商业推广有着重要意义。
1 北斗短报文相关技术简介及系统总体设计
1.1 短报文双向通信功能流程
短报文通信功能是我国北斗导航系统与其他导航系统相比的特有功能,用户和用户、用户和中心控制系统之间可以进行短报文的双向通信,这就使北斗系统不需要依赖其他通信系统即可实现位置信息的传送,方便指挥中心对用户的监控与调度。每个用户终端都有一个用户号,这个用户号是唯一的。通过这个唯一的用户号,经过地面中心站转发的短报文都能被识别身份,其工作流程如下。
(1)发送的信息内容和接收方账号的申请信号会被加密。加密后的信号通过卫星的转发,到达地面中心站。
(2)通信申请信号发送到地面中心站后,将信号解密后再加密,经卫星广播给用户。
(3)接收方用户终端收到卫星广播的电文后,经过解调、解密,获得消息内容,完成一次通信[4]。数据传输时延约为0.5秒,通信最高频度是1秒1次,工作流程图如图1所示。
图1 北斗系统的短报文工作流程图Fig.1 Short message flow chart of Beidou system
1.2 系统功能分析
本文研究的数据采集传输系统终端是为航海用户所用,再结合航海用户会遇到的特殊情况,确定设计终端要实现的功能[11]。本设计主要分为船载转发装置和岸基显示界面,两部分的功能分析如下。
船载转发装置功能:
(1)实时提取船载用户的位置数据,并储存到相应的存储单元,在岸基用户的申请指令下,进行打包处理,返回定位数据;
(2)能将无人船艇的参数按北斗短报文格式处理打包封装,在岸基用户的申请下,返回短报文数据。
岸基软件界面功能:
(1)向船载接收机发送申请指令;
(2)按北斗协议格式4.0和自定义的数据格式解析船载返回的数据包;
(3)在设计好的软件界面显示所需的各项数据。
1.3 总体系统结构
无人船艇数据传输系统总体设计结构主要分为船载硬件和岸基软件两部分,如图2所示。
图2 设计总体结构Fig.2 Design overall structure
1.4 总体设计工作流程
总体设计工作流程分为两部分,如图3所示。
整个设计的工作流程分为船载和岸基两个部分,两个部分的工作流程如下。
(1)船载硬件工作流程
控制器模块接收北斗定位模块的实时定位信息,实时储存就近十条定位数据,并将数据以北斗定位协议格式进行处理;
接收无人船艇数据采集信息,并以短报文协议格式进行处理;
在船载北斗收发天线得到岸基申请指令时,判断要返回的是定位数据还是短报文数据,并根据需求,返回实时处理好的数据包。
图3 整体设计工作流程图Fig.3 Flow chart of overall design
(2)岸基软件工作流程
界面分别设计定位和短报文申请触控按键,点击该按键可通过串口向岸基北斗收发天线发送申请指令,并由该天线通过北斗卫星系统向船载发送申请指令;
解析船载返回的数据包,按自定义的协议格式解析该数据包,并将用户所需数据显示在开发的交互界面上。
2 系统硬件设计
本文设计的船载数据转发装置主要有控制器模块、北斗定位模块、无人船艇参数传输模块、RS232通信接口模块以及北斗通信模块几部分组成。该数据转发装置基本原理结构如图4所示。
图4 船载转发装置原理结构图Fig.4 Schematic diagram of ship's transponder
控制器模块:负责处理北斗用户机发送过来的申请,判断应返回的是定位数据还是无人船艇参数数据;对北斗定位信息、无人船艇参数数据进行综合处理,采用相应的报文编码方式编写报文,再将处理好的数据通过串口发送给北斗用户机。
北斗导航/定位模块:接收MCU的申请指令,通过串口控制的方式向控制器模块提供实时定位信息和航行基本数据。定位信息包含无人船艇的实时经纬度、定位时间、地面高程和用户高程;航行基本数据包括无人船艇的航向、航速等基本信息。
无人船艇参数传输模块:在得到控制器的申请指令下,将无人船艇参数通过串口通信传输给控制器,该参数包括无人船艇的排水量、吃水线、横倾角、纵倾角、航向等。
北斗通信模块:负责接收岸基传输来的申请指令,发送控制器打包处理完成的返回数据。
RS232通信接口模块:负责各个模块之间的连接,接收和传输各模块之间的数据信号。
2.1 控制器模块
图5 无人船艇数据转发装置主控制器引脚连接图Fig.5 Main controller pin connection diagram of unmanned vesselsBased transponder
控制器选择STM32F103VET6为主控制芯片,它是ST公司推出的基于ARM Cortex-M3的STM32系列处理器,同单片机系列相比较,该芯片具有性能高、功耗小、实时性强等特点。该芯片与其他32位微处理器比较,成本较低,但又能实现其他处理器所能实现的大多数功能,并且后期维护升级简单[13]。无人船艇数据转发装置的主控制器与各个模块的接口引脚如图5所示。
本设计使用STM32的串口2(UART2)通过SP3232连接UM220模块来进行北斗信息的接收和设置;使用STM32的串口3(UART3)来进行模拟报文数据的接收和处理;使用串口5(UART5)来连接北斗用户机天线模块,进行天线数据的发送与接收。三个串口在STM32的控制下同时工作,相互协调。作为船载端,进行北斗报文申请的接收和判断,采集无人船艇信息并处理,提取北斗卫星定位数据,并做综合处理后返回岸基用户端。
2.2 北斗定位模块
根据设计思路和功能需求,又参考了各个模块相关参数、通信格式协议等方面的因素,本模块选择了和芯星通生产的UM220III-N系列北斗导航/定位芯片作为该设计的北斗定位模块。该芯片具有高性价比,抗干扰,能在复杂环境下稳定精确的定位等优势,具有出色的导航,定位功能,既可以支持单系统定位,又可以支持双系统联合定位,并且支持A-GNSS和D-GNSS[14-15]。SMD表贴封装,方便批量生产。UM220III-N电路图如图6所示。
图6 UM220模块电路图Fig.6 UM220 module circuit diagram
2.3 无人船艇参数传输模块
该模块连接相应的无人船艇数据采集模块,故设计串口通信接口,进行无人船艇参数采集模拟。本设计中使用STM32的串口3来进行模拟报文数据的接收和处理,电路连接上,将STM32的PB10和PB11引脚作为数据的输出输入接口。如图7所示。
2.4 北斗通信模块
北斗天线模块采用的是三模一体用户机,该一体机内部集成RDSS模块、RDSS B1/GPS L1模块、天线等,该三模一体机能够实时地接收B1/L1卫星信号,实现北斗定位以及北斗短报文通讯。它具有很高的集成度、体积小、功耗低、连接简单、操作方便,非常适应于船艇导航、位置上报及短报文通信等大规模应用[12]。如图8所示。
图7 无人船艇参数传输模块电路连接图Fig.7 Circuit connection diagram of unmanned vesselsBased Parameter
2.5 RS232通信接口模块
RS-232是美国电子工业协会EIA(Elec⁃tronic Industry Associa⁃tion)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232 为标识号[16]。RS232模块采用SP3232芯片,其电路图如图9所示。
图8 北斗三模一体机Fig.8 Beidou satellite three-mode one
图9 模块电路图Fig.9 RS232 Module circuit diagram
3 系统的软件设计
3.1 船载端无人船艇数据转发装置软件设计
本设计的开发工具选择了Keil MDK,Keil MDK通过uVision4强大的集成开发环境将C编译器、库管理、宏汇编、链接器和仿真调试器在内的完整开发方案等功能组合在一起。
该船载端无人船艇数据转发装置程序主要通过以下几个模块实现功能:北斗通信模块子系统、UM220北斗定位模块子系统、无人船艇数据采集模块子系统等几部分。首先对北斗定位模块、STM32串口和北斗通信模块初始化。对北斗通信模块的串口初始化设置之后,UM220定位模块开始实时获取无人船艇定位数据并由串口传输至控制器模块,控制器模块接收数据并放入队列等待被读取;控制器模块接收实时无人船艇数据,按照北斗电文协议格式做数据处理,根据申请类型,向北斗天线用户模块返回报文。为了达到以上功能的实现,采用C语言作为程序设计语言,实现软件的设计,其主要程序流程如图10所示。
图10 船载端无人船艇数据转发装置软件流程图Fig.10 Flow chart of unmanned vessels based transponder
3.2 岸基端监测平台设计
岸基监测软件是一款基于.Net平台开发的Winform应用程序,采用的是.Net FrameWork框架,软件利用C#编程语言开发[17-18]。该监测平台是基于C/S(Client/Server)架构下开发的客户端应用程序软件。
该设计开发工具采用Visual Studio 2010,它是一套完整的开发工具集,包括自动编译、项目创建向导和创建部署工程等大量的功能的实用开发工具,为开发人员提高工作效率。
岸基监测软件平台的设计中,用户界面分别可以实现定位数据的查询、水面无人船艇(unmanned surface ves⁃sel,简称USV)参数查询、短报文通信以及通信设置等功能;信息处理层可以实现北斗数据的解析、与北斗天线模块的串口通信等功能。为实现以上功能,根据需求设计了软件程序,软件设计流程如图11所示。
图11 软件设计流程图Fig.11 Software design flow chart
4 总结
本文探讨了北斗卫星导航系统在无人船艇数据传输上的应用,积极研发了无人船艇船载端数据转发装置和岸基端数据监测软件平台,通过无人船艇船载端软硬件和岸基端软件监测平台的联机测试,船载端数据转发装置各个串口都能实现设计功能,岸基端软件监测平台界面满足需求,该数据传输系统基本达到了设计要求。为无人船艇的数据传输提供了一种高效便捷的方式,同时对北斗卫星导航系统的民用推广有着重要意义,并具有很高的市场应用价值。为远洋无人船艇管理带来了巨大的便利,也为海上船舶的遇险救助与安全提供了更多手段。