谢 军,马 辉,李 秀
(1.海南大学机电工程学院,海南 海口 570228;2.清华大学深圳研究生院,广东 深圳 518055)
海底观测网中上位机与服务器通信协议的设计*
谢 军1,2,马 辉2,李 秀2
(1.海南大学机电工程学院,海南 海口 570228;2.清华大学深圳研究生院,广东 深圳 518055)
在海底观测网络中,各仪器采集的数据都分别发送到各自平台上位机,各上位机进行数据汇总后分别发送数据到数据管理系统服务器。在对海底观测网中各个设备数据采集格式、数据通信速率、数据通信容量进行综合分析后,设计了上位机与数据服务器之间的通信协议。通信数据包包括包头、包体和校验位,各个上位机通信的包头格式一致,包体结合不同设备的各自特点分别进行设计。根据通信协议开发了相应的客户端和服务器端软件。测试结果表明,通信协议能够完整、正确、高效地完成数据传输。
海底观测网;物联网;通信协议;TCP/IP
海底蕴含了丰富的矿藏、天然气水合物、可燃冰等资源。对海底进行观测主要包括间接方式和直接方式。间接方式就是派考察船等采集海水、海底的微生物等回实验室,进行离线分析,这种方式是非实时、非原位的。直接方式就是直接把仪器设备放在海底,建立海底观测网,实时采集、实时分析、实时传输到地面,这种实时和原位方式,能够更加真实和实时地得到海底的各种信息[1~3]。海底观测网络的建立,对于海洋资源探测、海洋环境监测、国防安全等都具有重大意义。目前全世界比较有名和成熟的海底观测网包括美国的MARS、加拿大的NEPTUNE、欧洲海底观测网ESONET和日本新型实时海底监测网ARENA[4~7]等。我国的海底观测网络起步时间还不是很长[8]。
海底观测网络,是由数据管理与服务系统、岸基系统、光电复合缆、接驳盒、各级水下节点等构成的海底原位科学探测平台[3,9]。观测网络中的各个观测平台的上位机除了对海底的设备进行控制外,还需要读取各设备的数据信息和状态信息,这些信息除了在本地进行存储,还需要统一发送到数据服务中心,即数据管理系统服务器。海底观测网属于物联网,每天24小时不间断产生大量的数据。每天数据量超过1.2 GB,每年数据量超过400 GB。如果加上视频,数据还要大很多。并且,如果海底通信网不稳定导致采集的数据丢失,比如丢失实时的地震数据导致无法提前预报海啸,就有可能导致巨大的生命财产损失或者经济损失。海底通信网的通信稳定性和可靠性相对于陆地而言,要求要高很多。因此,各上位机与数据管理系统服务器之间的通信协议设计[9~11],是海底观测网能否正常稳定运行的关键技术之一。
在整个海底通信网中上位机到数据服务器的通信系统,有以下五个上位机平台,每个上位机分别包含的仪器如下:
(1)接驳盒,分别包含主接驳盒电能数据、主接驳盒环境数据、次接驳盒电能数据、次接驳盒环境数据;
(2)海洋动力平台,包括声学多普勒流速剖面仪ADCP(Acoustic Doppler Current Profilers)、声学多普勒流速仪ADV(Acoustic Doppiler Vector Current Meter)、温盐深仪CTD(Conductivity Temperature Depth)、压力传感器;
(3)激光拉曼平台,包括激光拉曼光谱仪;
(4)化学平台,包括二氧化碳、溶解氧、PH值等传感器;
(5)地球物理平台,包括地震仪、磁力计、电源控制板、信号转换板。
每种仪器或设备里面发送的数据类型主要包括观测数据和状态数据,存储类型包括ASCII码和二进制。综合考虑所有设备待发送数据的数据特点,先设计各上位机公用的数据包头,然后分别设计不同设备的包体。
协议包体由各家平台按照各自的数据内容进行封装、定义。包体支持二进制(含BCD)码和ASCII码。包体部分根据各自内容的不同有不同的格式和长度。
设计通信协议时,主要是设计从上位机往服务器发送数据时的数据格式。主要基于以下几个原则:
(1)数据的发送周期最短为50 ms,最长为10 min。数据发送周期短的设备,采用TCP协议。数据发送周期长的设备,如果采用TCP协议,因为一直保持连接状态,会降低服务器通信通道的利用效率;如果采用UDP协议,则系统混合了TCP和UDP协议,加大了协议的复杂度。综合分析,决定全部采用TCP协议,但是结合长连接和短连接。长连接是指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接。短连接是指发送完一个数据包后马上断开连接。
数据发送周期短的设备,比如ADCP,每秒1个数据包,采用TCP长连接。数据发送周期长的设备,比如CTD数据,每15秒才发送一次数据,采用TCP短连接,上位机发送完数据包并接收到来自服务器的表示已经正确接收和解码的返回包后,马上断开连接。这种设计模式,在兼顾通信效率和通道利用率的同时,还降低了协议的复杂度。国外的海底通信网一般都只是采用长连接,这样做的好处是通信控制逻辑较为简单,但是由于多个通信通道一直由服务器占用,对服务器资源消耗会更大。
(2)包括三部分:包头、包体和包尾。其中包头是定长的;因为不同设备发送的数据不同,因此数据包体不定长;定长的4个字节校验位放在数据包尾。数据包体的长度在包头中设置。每个数据包可传递多个传感器的数据,允许一个数据包同时包含状态与观测数据,数据包必须包含设备编号(ID)和时间戳。
综合分析,采用TCP协议。服务器与各上位机建立一对或多对SOCKET端口,同时支持长连接和短连接。对于长连接,数据服务器设置“心跳”机制,当上位机长时间没有数据发送时,每隔一段时间往服务器发送一个心跳包,以保持连接。
协议将通信包体分成三个部分:包头、包体和校验位。包头部分完成协议号定义、时间戳、包编号等公共信息定义,在每个请求数据包中,包头的长度以及格式固定。包体为完成的具体业务需要的接口参数信息。消息的包体部分根据各自接口的内容不同而有不同的格式和长度。协议包体由各家平台按照各自的数据内容进行封装、定义。包体支持二进制(含BCD)码和ASCII码。
3.1 发送消息格式
发送消息是由各上位机发送到数据库服务器,数据包格式如表1所示。长度单位为字节数。
Table 1 Format of sending data packets表1 发送数据包的格式
第1项,同步头。作为数据包开始的标志。
第2项,协议编号。协议编号是为了区分不同设备,同一设备的数据信息和状态信息。
第3项,时间戳。表示数据包发送时间。采用压缩BCD码,这样既有很高的表示效率,也便于调试时人工观测大小,兼顾了效率和清晰度。
第4项,包编号。每天的0:00开始计数,每发送一个包自动加1。
第5项,包体长度。当服务器解码出包体长度后,便知道了包体从哪儿开始。
第6项,字节序定义。0x00对应低序字节存储在起始地址,0x01对应将高序字节存储在起始地址。例如,0x01时,4个字节,从左到右高16位,低16位。
第7项信息类型,主要是为协议将来的可扩展性考虑,为系统不同调试阶段进行补充。在系统设计与调试过程中,在服务器端将设计一个模拟客户端来模拟各不同上位机发送数据;在与各上位机远程联调时,各上位机会发送模拟数据或者从设备真实采集的数据;在进行系统集成联调的时候,也会发送模拟数据和从设备真实采集的数据;最后系统正式上线运行时,是发送真实的采集自海底的真实数据。对这一项定义如下。0:系统正式上线时从放在海底的设备真实采集的数据;1:平时设备放在水池时从设备采集的数据;2:各上位机自己模拟的数据;3:服务器端模拟采集的数据;其它值,将来再进行补充。这一项的设计方案,是对于整个系统进行综合分析以及和各平台上位机逐步调试过程中才总结提出的,属于本通信协议设计的特色之一。
第8项,备用位。这项是为了系统将来可扩展使用的。
第9项,数据包体。每个设备真正的数据就位于这个段。
第10项,CRC校验。把CRC校验放在整个数据包的最后,而不是放在包头与包体之间,是为了编程实现CRC时,对前面整个连续段计算CRC,而不用把分离的包头和包体合并在一起再计算校验值。
针对每个设备做校验和,采用CRC32算法将所有数据转换为二进制表示。对转换后的数据抽取CRC32摘要,长度为4字节。32位循环冗余校验标准多项式CRC如下所示:
X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1
3.2 响应消息格式
服务器收到上位机发送过来的消息后,经过协议解码、分析和处理,反馈给上位机的数据格式如表2所示。其中长度的单位为字节数。
返回码含义表如表3所示。
每个包体都要有数据采集时间,且如果一个包体内包含一个/多组观测量的不同时刻下的观测值,则每个组/观测数据分别带时间戳。
包头里面所有多字节整数,都是先发送高位字节,再发送低位字节。包体部分,也建议如此。包体部分的数据编码,除了仪器自动产生的数据无法更改编码方式外,自定义数据按照如下规范进行编码:
(1)整数:直接用16进制编码。除非特别说明,都是补码。
(2)小数:小数点左移几位变为整数后,再用上
Table 2 Format of response data packets表2 响应数据包的格式
Table 3 Return codes of response messages表3 响应消息中返回码表
面的整数编码方式编码。
(3)时间:建议也用包头里面的BCD码格式。
3.3 通信流程图响应消息格式
这里仅仅列出上位机向服务器发送数据的流程图。当客户端和服务器建立连接后,客户端每一个数据包的发送都按照图1所示。客户端要等到服务器返回确认包才继续发送下一个数据包。如果多次重发当前数据包后仍然无法接收到确认包,则认为发送失败。后面可以提示用户或者重新连接服务器。流程图里面的30 ms和60 ms两个参数都可以根据现场网络状况进行调整。
Figure 1 Flow chat of sending data packages from clients
3.4 协议的其它补充
数据管理系统与平台上位机如果出现长时通信故障,如服务器宕机,平台上位机将自动存储故障期间的数据。在故障解决后,在实时数据的间歇之间,将故障期间的数据自动发送到服务器。服务器可对故障期间的延时数据进行传输控制,可选择只接收实时数据和接收实时数据及延时数据两种模式。如返回码为300时,停止接收故障延时数据;如收到返回码为301,可在实时数据的空隙发送延时数据。
数据服务器采用曙光I620-G10,CPU为E5-2620X2,内存为DDR3 8 GB。服务器软件环境为Linux Cent OS 6.2。客户端运行环境为联想笔记本电脑E49,CPU为I5双核,内存4 GB,软件为Windows 7。客户机和服务器位于一个局域网里面。以海洋动力环境中压力传感器实测数据为例,上位机客户端和服务器端界面分别如图2和图3所示。
Figure 2 Interface of sending pressure sensor data from clients
图2和图3里面压力传感器显示数值均为15.291 3。上位机发送的数据与服务器解码后的数据一致。上位机发送数据到服务器接收数据、解码、显示总共延时没有超过20 ms。
Figure 3 Pressure sensor data on server web page
通信协议的设计是海底观测网中关键技术之一,本文描述了海底通信网中服务器与各上位机的通信协议。协议主要包括包头和包体,论文主要详细描述了包头的设计以及包体的设计原则。经过测试,设计的通信协议达到了预定的功能和性能要求。本通信协议的设计方案,对于其它应用领域通信的设计,也具有一定的参考意义。
[1] Isern A R,Clark H L. The ocean observatories initiative:A continued presence for interactive ocean research [J]. Marine Technology Society Journal,2003,37(3):26-41.
[2] Doya C,Pardo A J,Matabos M,et al. Behavioral rhythms in sablefish (anoplopoma fimbria) and other benthic species,as recorded by the deep-sea cabled observatories in Barkley canyon (NEPTUNE-Canada) [J]. Journal of Marine Systems,2013,130(1):69-78.
[3] Wang Pin-xian.Seafloor observatories:The third platform for earth system observation [J]. Chinese Journal of Nature,2007,29(3):125-130. (in Chinese)
[4] Massion G,Raybould K. MARS:The monterey accelerated research system [J]. Sea Technology,2006,47(9):39-42.
[5] Heesemann M, Insua T L, Scherwath M, et al. Ocean networks Canada from Geohazards research laboratories to smart ocean systems [J]. Oceanography,2014,27(2):151-153.
[6] Favali P,Chierici F,Marinaro G,et al. NEMO-SN1 abyssal
cabled observatory in the western ionian sea [J]. IEEE Journal of Ocean Engineering,2013,38(2):358-374.
[7] Suyehiro K,Mikada H,Asokawa K. Japanese seafloor observing systems:Present and future [J].Marine Technology Society Journal,2003,37(3):102-114.
[8] Li Xin. The east China sea floor observatory network systems engineering:Economic analysis and prospects [C]∥Proc of the 2013 International Conference on Advances in Social Science,Humanities,and Management,2013:711-718.
[9] Lu Han-liang,Li De-jun,Yang Can-jun,et al. Design and implementation of information acquisition and monitoring system of deep seafloor observatory network[J].Chinese Journal of Sensors and Actuators,2011,24(3):407-411.(in Chinese)
[10] Toma M,Del Rio D,O’Reilly J,et al. Automatic marine sensors services discovery on IP networks [C]∥Proc of 2013 IEEE Oceans (MTS’2013),2013:1-4.
[11] Xia Jun,Pang Zheng-bin,Liu Lu,et al. Design and implementation of a NIC based RDMA reliable communication protocol[J].Computer Engineering & Science,2014,36(2):216-221.(in Chinese)
附中文参考文献:
[3] 汪品先.从海底观察地球——地球系统的第三个观测平台[J].自然杂志,2007,29(3):125-130.
[9] 卢汉良,李德骏,杨灿军,等. 深海海底观测网络信息采集监测系统设计与实现[J]. 传感技术学报,2011,24(3):407-411.
[11] 夏军,庞征斌,刘路,等. 一种基于NIC的RDMA可靠传输协议的设计与实现[J]. 计算机工程与科学,2014,36(2):216-221.
谢军(1975-),男,湖南湘阴人,博士后,副教授,研究方向为海洋信息和数据挖掘。E-mail:sxiejun@sz.tsinghua.edu.cn
XIE Jun,born in 1975,postdoctor,associate professor,his research interests include ocean information, and data mining.
Design of communication protocol between upper computer and data server in seafloor observatory networks
XIE Jun1,2,MA Hui2,LI Xiu2
(1.College of the Mechanical and Electrical Engineering,Hainan University,Haikou 570228;2.Graduate School at Shenzhen,Tsinghua University,Shenzhen 518055,China)
In seafloor observatory networks, sampling data of each instrument are sent to their own upper computer respectively, which then summarizes all the data and sents them to the data management system server. On the basis of a comprehensive evaluation of data sampling format, data transforming velocity and data transforming capacity, we design a communication protocol between the upper computer and the data server. Package head, package body and cyclic redundancy check (CRC) are included in the communication package. For different upper computers, the format of package head is the same while the format of package body is designed respectively according to the specific characters of the instruments. Besides, we also develop a corresponding client and server software according to the communication protocol. Test results show that the proposed communications protocol can secure full, correct and efficient data transmission from the upper computer to the data sever.
seafloor observatory network;Internet of things;communication protocol;TCP/IP
1007-130X(2015)09-1656-05
2014-10-20;
2015-01-28基金项目:国家863计划资助项目(2012AA09A408)
TP311.1
A
10.3969/j.issn.1007-130X.2015.09.009
通信地址:518055 广东省深圳市南山区深圳大学城清华校区
Address:Tsinghua Campus,Shenzhen University Town,Nanshan District,Shenzhen 518055,Guangdong,P.R.China