AIS数据分析详解

来源:互联网 发布:淘宝商品与描述不符 编辑:程序博客网 时间:2024/06/06 03:56

      想必大家在刚接触AIS时,对AIS数据的解码感到困惑,其是采用6位ASCII压缩码传输的,所以对AIS数据的正确解析,就是完成任务的关键所在。通过最近的一个项目,了解了AIS数据的解码分析过程,现将其流程和相关代码列出,此参表可以参见快乐鹦鹉的AIS解码算法一文http://blog.csdn.net/happyparrot/archive/2007/04/26/1585185.aspx。

 

结合自己在AIS项目中的理解,提出几点需要注意的方面:

1. AIS的数据校验采用的是异或校验,校验的数据时!和*之间的数据,比如原始数据位:!ABVDM,1,1,,B,169G?I0P007k`vT;BwhP7gv4@d0e,0*0A

则校验的数据应该是:ABVDM,1,1,,B,169G?I0P007k`vT;BwhP7gv4@d0e,0。下面列出异或算法的代码:

 

2、关于AIS数据各个数据段的具体含义

 

!aaccc,x,y,z,u,c-c,v*hh <CR><LF>

aaccc为标识符,指明本条句子封装的背景信息;
x为传输该条消息所需的表达句数目(至多为9条);
y为本条句子在序列中的牌号;
z为同一序列的统一标识(0-9的循环);
u表示接收该条消息时对应的频道(A/B);
c-c为封装信息,需要映射6位ASCII码;
v表 示填充的字符,因为封装的字符需要是6的整数倍,若不满足,则需要填充0-5个字符;
hh表示的是检验和字段。

 

这里需要说明的是:关于填充字符,已经填充在封装信息,时期成为6的整数倍,在数据解码过程中无需在额外填充。

 

3、关于数据解析过程中,有些数据需要使用ASCII码,比如说船舶类型,这就涉及到将解码的二进制进行编码的问题,下面将实现程序列出:

此算法对应的参表请查看 GB-T20068-2006船载自动识别系统(AIS)技术要求