您现在的位置: 首页» 成果展示» 专利» 基于北斗短消息数据及文件传输协议

基于北斗短消息数据及文件传输协议

2014年12月5日 09:28

目前,我们的北斗系统采用20张卡的多卡机进行信息传输,其中,19张卡用于将船端文件或施工数据传送至岸端,1张卡用于岸端指挥机发送指令至船端。

一、文件流传输协议流程

1、压缩

所有文件流数据均采用.rar格式压缩后再传输,在协议的应用层予以约束

2、分组

传输控制模块实施数据流或超过70字节文件的切割,生成符合北斗通信终端的数据包,并依据给定的编码策略对数据包编码。

3、编码

将要传输的数据流文件切割成70字节的数据段后,将每个数据段套上包头和包尾形成基本数据包,包头主要包括船名信息、数据类型、总包个数和数据包号信息,包尾为校检位。

3.1、文件流基本数据包格式如下:

船名 数据类型 总包个数 数据包号 数据区 检校位

船名:第0~9bit 

数据类型:第10bit,当传输文件数据时,该位为“1”

总包个数:第11bit~20bit,数据包个数范围为0~1024个,传输的最大文件大小为70KB

数据包号:第21bit~30bit,表明该传输文件的数据顺序号

数据区:第31bit~558bit为传输文件的数据内容

校验位:第559bit为偶校检位,使70个字节数据中二进制1的个数为偶数

3.2 船名对应ID编码如下:

 

船名编码 船名 船型 所属公司
1 航浚4001 耙吸挖泥船 中港疏浚公司
2 航浚4003 耙吸挖泥船 中港疏浚公司
3 航浚4006 耙吸挖泥船 中港疏浚公司
4 航浚4007 耙吸挖泥船 中港疏浚公司
5 航浚4008 耙吸挖泥船 中港疏浚公司
6 航浚4009 耙吸挖泥船 中港疏浚公司
7 航浚5001 耙吸挖泥船 中港疏浚公司
8 航浚5002 耙吸挖泥船 中港疏浚公司
9 航浚9001 耙吸挖泥船 中港疏浚公司
10 航浚9002 耙吸挖泥船 中港疏浚公司
11 新海鲸 耙吸挖泥船 中港疏浚公司
12 新海龙 耙吸挖泥船 中港疏浚公司
13 新海虎 耙吸挖泥船 中港疏浚公司
14 新海凤 耙吸挖泥船 中港疏浚公司
15 新海牛 耙吸挖泥船 中港疏浚公司
16 新海马 耙吸挖泥船 中港疏浚公司
17 新海虎4 耙吸挖泥船 中港疏浚公司
18 新海虎5 耙吸挖泥船 中港疏浚公司
19 新海虎8 耙吸挖泥船 东方分公司
20 新海豹 绞吸挖泥船 东方分公司
21 新海鹰 绞吸挖泥船 东方分公司
22
航绞2001 绞吸挖泥船 东方分公司
23 新海鳄 绞吸挖泥船 东方分公司
24 新海燕
绞吸挖泥船 东方分公司
25 新海鸥 绞吸挖泥船 东方分公司
26 新海鹭 绞吸挖泥船 东方分公司
27 新海鹤 绞吸挖泥船 东方分公司
28 新海鲛 绞吸挖泥船 东方分公司
29 新海豚 绞吸挖泥船 东方分公司
30 新海蚌 抓斗挖泥船 东方分公司
31 航扬1301 抓斗挖泥船 东方分公司
32 新海虎9 耙吸挖泥船 东方分公司
33 航浚4011 耙吸挖泥船 上航建设公司
34 航浚4012 耙吸挖泥船 上航建设公司
35 新海狼 绞吸挖泥船 上航建设公司
36 新海鲤 绞吸挖泥船 上航建设公司
37 新海鲲 绞吸挖泥船 上航建设公司
38 航扬1308 抓斗挖泥船 上航建设公司
39 航浚3001 耙吸挖泥船 上海疏浚公司

例: 

4、传输

       文件在传输过程中,将占用通信信道,在规定的时间内排斥其他文件流的传输或人为强制退出。

5、校检

       接收端将对数据包进行校检,若符合偶校检即认为数据包正确,否则丢弃数据包。

6、合并

       接收端将所有数据包存储在缓冲区中,去掉包头和包尾,按照数据包的顺序拼接成整体的数据流文件。

二、工况数据传输协议

1、数据读取

第一种方式是需要软件通信的一方提供API(应用程序接口)函数,通信的另一方通过调用该API函数,读取或者写入数据,达到数据通信的目的,这种方式的本质就内存空间的共享,因此,优点是效率比较高,通信速度快,缺点是安全性和可靠性受软件开发人员的水平影响。

第二种方式是通过工业通信协议OPC(OLE for Process Control,用于过程控制的OLE)通信,这种方式需要软件通信的两方都需要按照标准规范写程序,一方作为服务器,另外一方作为客户端,因此,这种方式非常安全、可靠,缺点是由于经过了多层封装,通信效率比较低。

2、数据压缩

       将船舶

1)高精度用8个字节表示,采用IEEE 754标准中的double型编码

数据范围在1.7E–3081.7E+308

2)一般精度模拟量数据用两个字节采用科学计数法的形式表示数据,高12位表示数据长度,低4位表示10的指数,其中,第15位表示数值的正负号,第3位表示指数的符号,例如:

 

0

0

1

1

0

1

1

 0

0

0

1

1

0

1

1

 0

表示:8.67×106,第15位为0,因此为正数。

 

1

1

1

1

0

1

1

 0

0

0

1

1

0

0

1

 1

表示:-1.891×103,第15位为1,因此为负数

 

1

0

1

1

1

1

1

 0

0

0

1

1

1

0

0

 1

表示:-9.95×10-1,第15位为1,因此为负数;第3位为1表示指数为负数。

2)布尔型的数据用二进制位来表示

3、分类

       疏浚船舶按照船型及子系统划分数据块,其中,耙吸挖泥船分为12类、绞吸挖泥船分为7类,抓斗6类,以及其他船舶数据不会超过128类。

 

4、编码

工况数据的分类原则是使每类信号的总量接近或等于70字节的整数倍,不足70字节的自动填充为0

4.1工况数据基本数据包格式如下:

船名

数据类型

信息类型

数据包号

数据区

批次号

 

船名:第0~9bit

数据类型:10bit,当传输文件数据时,该位为“0

信息类型:第11bit~17bit,总共128种数据类型,其中,耙吸船12类、绞吸船7类和抓斗6

数据包号:第18bit~25bit,表明该传输文件的数据顺序号

数据区:第26bit~551bit为传输工况的数据内容

批次号:第552bit ~559bit为批次号,在发送端同一时刻读取的数据取相同的编号,下一次发送时累加1,超过1024后又从0开始累加。(17小时)

4.2 船名编码如下:

同上一节3.2

4.3 信息类型ID编码如下:

 

ID编码

信息类型编码

1个数据包大小(bit

2个数据包大小(bit

   

1

船舶位置信息

54

2

绞吸船电驱绞刀数据

66  

3

绞吸船变频驱动水下泵数据

67  

4

绞吸船液驱绞刀电轴水下泵数据

45  

5

绞吸船泥泵系统

68  

6

6

6

绞吸船钢桩定位数据

40  

7

绞吸船三缆定位型数据

52  

8

绞吸船横移桥架数据

56  

9

绞吸船液压系统

61  

10

绞吸船泥泵柴油机数据

64  

29

29

11

绞吸船水下泵柴油机数据

64  

8

8

12

绞吸船液压柴油机数据

64  

8

8

13

绞吸船疏浚发电机数据

50  

44

44

14

绞吸船发电机数据

37  

15

         

16

耙吸船耙臂数据包

69  

13

13

17

耙吸船吃水装载数据包

46  

18

耙吸船阀状态数据

64  

19

耙吸船泥门、抽舱门状态数据

64  

20

耙吸船液压系统数据

59  

21

耙吸船泥泵系统数据

64  

9

9

22

耙吸船高压冲水泵系统数据

25  

23

耙吸船功率显示数据

68  

40

40

24

耙吸船主柴油机(左)数据

69  

69

69

25

耙吸船主柴油机(右)数据

69  

69

69

26

耙吸船发电机数据

70  

16

16

27

耙吸船侧推器数据

35  

 

5、校检

       实时数据不做任何校检,接收到数据包即认为正确。

6、接收

       接收端收到数据包后,按照信息类型,将数据通过数据库驱动软件写入数据库相应字段中,对于收到的同一批次数据以最先到达的数据的时间为准。

 

三、指令集

1、文件推送请求指令(0XA1

       当发送方需要将指定文件发送至接收方时,通过向接收方发送文件推送请求指令,告知接收方即将发送文件及所属船舶。

文件推送请求指令

指令类型(0XA1)

船名ID

总包数

文件流水号

2BYTE

2BYTE,只用低10

2BYTE

2BYTE

 

2、文件发送申请应答指令

       当接收方收到发送方的文件推送请求指令后,接收方通过发送文件发送申请应答指令告知发送方,接收方已经为文件接收做好准备。

文件发送申请应答指令

指令类型(0XD1)

船名ID

2BYTE

2BYTE,只用低10

 

3、文件发送指令

       当发送方接收到接收方的文件发送申请应答指令后,发送方通过文件发送指令发送数据。

 

文件发送指令

船名

数据类型

总包个数

数据包号

数据区

校检位

 

3、文件推送完毕通知指令

       当发送方将缓冲区里的文件片段遍历发送完后,发送方通过文件推送完毕通知指令告知接收方,文件发送已经完毕。

文件推送完毕通知指令

指令类型(0XA2)

船名ID

文件流水号

2BYTE

2BYTE,只用低10

2BYTE

 

5、文件重发指令

       当接收方收到发送方的文件推送完毕通知指令后,接收方若统计出文件数据包不完整,将通过文件重发指令告知发送方缺失的数据包ID

文件重发指令

指令类型(0XA3)

船名ID

文件流水号

缺失数据包号

2BYTE

2BYTE,只用低10

2BYTE

2BYTE,只用低10

 

6、文件中止传输指令

       当发送方想终止文件传输操作,发送方向接收方发送文件中止传输指令告知接收方,取消文件传输操作,接收方接收该指令后,丢弃所接收数据。

 

 

文件中止传输指令

指令类型(0XA4)

船名ID

文件流水号

2BYTE

2BYTE,只用低10

2BYTE

 

7、工况数据发送请求指令

       当发送方需要将指定工况数据发送至接收方时,通过向接收方发送文件推送请求指令,告知接收方即将发送文件及所属船舶。

 

工况数据发送请求指令

指令类型(0XB1)

船名ID

信息类型

2BYTE

2BYTE,只用低10

1BYTE

注:若要传输所有数据,信息类型设置为0XFF

 

8、工况数据推送请求应答指令

       当接收方收到发送方的工况数据推送请求指令后,接收方通过发送工况数据推送请求应答指令告知发送方,接收方已经为文件接收做好准备。

工况数据推送请求应答指令

指令类型(0XD2)

船名ID

2BYTE

2BYTE,只用低10

 

9、当发送方接收到接收方的文件发送申请应答指令后,发送方通过文件发送指令发送数据。

船名

数据类型

信息类型

数据包号

数据区

批次号

 

10、工况数据中止指令

       当发送方需要终止工况数据传输操作,发送方向接收方发送工况数据中止指令告知接收方,取消工况数据传输操作。

工况数据中止指令

指令类型(0XB2)

船名ID

2BYTE

2BYTE,只用低10

 

11、指定工况数据传输指令

       若接收方需要对指定信息类型数据的进行传输,可以通过指定工况数据传输指令告知发送方需要传输的数据类型,发送方接收到该指令后,只传输指定类型的工况数据。

指定工况数据传输指令

指令类型(0XD2)

船名ID

信息类型

2BYTE

2BYTE,只用低10

1BYTE

 

12、普通短信发送指令

       若船端需要向岸端传送通讯内容,通过普通短信发送指令将信息发送至岸端。岸端。同时若岸端需要船端传送通讯内容,也可以通过普通短信发送指令传送信息。

 

普通短信发送指令

指令类型(0XA1)

船名ID

流水号

内容

2BYTE

2BYTE,只用低10

1BYTE  

65BYTE

 

13、普通短信收到指令

       若通讯双方一方接收到发送方的普通短信后,对相应流水号的短信进行确认。

普通短信发送指令

指令类型(0XA1)

船名ID

流水号

内容

2BYTE

2BYTE,只用低10

1BYTE  

65BYTE