AIS电文解析技术研究

2012-06-30 10:46万载东
江苏船舶 2012年1期
关键词:电文解码串口

徐 忠,万载东

(江苏南通海事局,江苏 南通 226004)

0 引言

AIS从开始发展到在船舶上强制安装执行,经过了十余年的时间,目前AIS正处于实施和进一步发展成熟的阶段。1998年美国海岸警卫队与ROSS公司合作组建了新一代的AIS示范点。2000年荷兰建设了“荷兰内河船舶信息显示与监控系统(INDRIS)”项目,该项目由12个AIS基站和30个AIS船站组成,此系统已投入运行并且效果良好。2005年Helsinki委员会宣布波罗的海AIS海上公共交通监控系统全面投入使用。中国从2005年开始,至2010年建设了全面覆盖中国沿海和内河主要航道的AIS基站系统,对我国船舶实时动态监控和管理及区域船舶航行安全发挥了重要作用。

1 AIS电文解析软件系统功能

为了从AIS基站或设备中获得周围船舶实时动态信息,需要对接收到的AIS电文进行解析,按照标准协议从中解析所需要的信息数据。本文研究中,采用了软件编程解析技术。该软件首先从AIS的串口接收数据,并根据 IEC 61162-1协议提取 ITURM.1371电文,然后根据ITU-RM.1371封装电文内容提取所需要的船舶动静态数据,然后在PC机上显示船舶动静态信息并实现对本船信息进行实时更新。设计过程中,主要实现了两种功能:

(1)通过串口接受数据并解码,然后通过信息框显示实时显示船舶信息并通过解码框显示对应的解码信息。

(2)根据接收到的解码信息判断是否为本船数据,并通过文本框显示本船信息,以达到对本船实时信息的掌握和监控。这两个过程相辅相成,实现了信息的接受解码与本船信息的动静态显示,完成了设计的要求并对以后的拓展与实际应用提供了方便。软件编程使用.NET平台下的c#语言,利用其优越性在美化界面、结构设计、功能实现等诸多方面进行了开发研究。在串行通信部分,采用了虚拟串口与串口调试助手,实现了对串口号、校验位、波特率、数据位、停止位的控制与AIS船舶信息语句的传输;在解析部分,通过多线程的方法,实现了数据的实时分析解码,并将解析信息和为解析前的接收信息分条显示在系统界面中。

该AIS解析软件可实现有关AIS电文的实时接收,并将其解码为明文:如船舶的静态信息与船舶的航速、经纬度等动态信息。同时将本船信息显示在信息框中,便于对本船信息进行监控。

2 AIS电文解析软件系统总体架构

AIS电文解析软件系统的主要功能实现是通过串口设置和控制后通过串口接收AIS电文后实现对于电文实体部分的解析,并且通过合理规划文本,实现了AIS电文和解码信息的显示。另外,通过本船信息显示界面,显示出实时更新的本船信息。通过本设计软件,用户可以实现对主要AIS船舶电文进行解析并显示电文和明码信息,可以实现对本船信息的实时更新。本系统的总体架构框图见图1。

该软件系统通过主控模块实现系统的中心调度,并通过串口模块、显示模块和信息解码模块综合实现系统的解码显示功能。AIS电文在串口模块接收后,经过信息解码模块解码后由显示模块显示,从而实现系统的综合功能。

图1 系统需求框图

3 AIS电文解析软件系统具体实现

3.1 各模块及函数设计

AIS电文解析软件系统主要使用c#编程环境实现。整个系统包含3大模块:串口模块、显示模块和信息解码模块,各个模块又包含若干函数和子函数,其中核心部分为电文解析模块及其包含的各函数和其子函数。本设计详细框架结构见图2。

图2 AIS电文解析软件系统整体框图

AIS电文解析软件系统串口模块实现串口设置和控制功能,可以对串口设置如串口号、波特率、校验位、数据位、停止位等参数。串口打开后,由中心调度模块从串口接收电文并分两部分处理:一方面,由电文信息显示模块进行分条显示,以便于用户分析观察对传过来的电文暗码进行分析观察;另一方面由解码信息显示函数将电文拆解后提取有效信息并拼接,而后调用电文解析函数对电文的有效编码部分进行解析并显示在系统主界面中,同时由显示本船信息子函数对本船信息的显示进行实时更新和显示。本系统的显示界面同时具有清空电文信息模块和清空解码信息的函数,可以让用户更方便的查看分析信息。

解码模块是本软件系统的核心。主控模块将解码有效信息传给解码模块后,字符串再由解码模块的转二进制函数转换为二进制串后由取位解析函数解析成解码信息明文。最后由拼接模块拼接成整体信息后由主控模块传给显示界面模块进行显示。

3.2 电文解析实例

本软件的核心是电文解析模块,其作用是将电文的暗码解译为信息明文。其中运用的是AIS协议中的电文解析协议。

为了让解码过程更加明了,有必要将电文解析举出示例。以下以电文5为例进行电文解析部分的实例解释,电文5以外的各电文在解析过程方面大同小异。电文与示例见表1。

AIS电文解析部分以字段“电文ID”为例,截取经转二进制函数处理后的暗文的1~6位,即:000101,经二进制转十进制函数转化后即得电文5的电文号。AIS电文解析信息由显示模块显示在系统界面并最终实现与用户交互。

表1 电文5示例

4 结语

本软件通过串口接收AIS电文后,实现了对AIS电文的解析,并且通过各显示模块,实现了AIS电文和解码信息的分条显示。另外,通过本船信息显示界面,实时对本船信息进行更新。但是在实际设备中,可能出现意外的电文传输问题,如串口发送延时等待等。因此,本设计还要进行容错处理,以使其更加适合于实际应用。但是,本文的研究和开发为将来的更深层研究搭建了基本框架,并且完成了AIS电文解码系统的基本设计要求,对于今后AIS系统应用和同类软件的设计开发具有指导意义。

[1]黄丽卿,胡稳才,邵哲平.AIS输出数据包的解包技术研究[J].集美大学学报,2005,(1):37 -41.

[2]催岚波.船舶通信与导航[M].哈尔滨:哈尔滨工程大学出版社,2007.

[3]普瓦拉,等..NET程序设计:从Java到c#[M].湖北:华中科技大学,2004.

[4]徐布克,等..NET程序设计案例教程:Visual c#2008[M].北京:中国铁道出版社,2008.

[5]周瑜明,等..NET平台与c#面向对象程序设计[M].北京:电子工业出版社,2010.

[6]费拉基亚蒂,等..NET数据服务c#高级编程[M].北京:清华大学出版社,2002.

[7]周红安,等.21条学通c#[M].北京:电子工业出版社,2009.

猜你喜欢
电文解码串口
《解码万吨站》
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
一种与内部缺陷仪设备通讯的接口模块
MT799更正电文能否被视为信用证修改
基于EM9000工控板高性能双串口通信模型设计与实现
一种基于数据库描述的电文参数通用解算方法
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
船舶电子设备串口数据的软件共享方法