杨 帆,车现法,陈 波,孙建军
(1.广东省南粤交通云湛高速公路管理中心,广州 510100;2.中国公路工程咨询集团有限公司,北京 100070;3.广东华咨圣泰科技有限公司,广州 510530)
物联网在现代交通、环境监测、工业数据传输、车联网等方面的应用越来越广泛和深入,按照广东省交通运输行业建设目标,到2025年,基本形成数字化采集体系和网络化传输体系。作为物联网组成部分的传感器,集数据采集、传输、融合分析等功能于一体,在物联网体系中扮演着关键角色,其中数据传输控制是保证数据高效传输、有效获取的关键。
传感器网络作为分布式系统,节点资源有限,包括有限的数据处理能力、有限的存储空间和有限的数据带宽。由于不同行业的应用具有不同的特点,基于传感器和远程服务器之间应用层通讯控制协议很难具有统一标准,这就给不同行业的物联网数据传输控制带来了较大的挑战。
高速公路机电系统(监控系统、收费系统、通信系统、防雷系统等)由大量的机电设备构成,及时、有效地获取设备运行状态参数,是建设数字化采集体系和网络化传输体系的目标和要求。机电系统设备运行状态具有其自身特点,表现为:运行状态正常或状态变化在允许范围属于常态化现象,而状态异常或状态变化超出允许范围属于极小概率事件,因此,状态数据在长时间基本保持不变或微小变化,状态数据冗余度很大。
高速公路机电设备运行状态等基础数据的传输控制普遍采用以下两种模式,一种是传感器作为客户端,主动周期性获取数据上传远程服务器端;另外一种是传感器作为服务器端,接收远程或本地客户端查询并进行数据反馈。这两种模式存在共同的特点,传感器无论作为客户端或服务器端,利用底层传输协议(如TCP、UDP或GPRS等)上传数据,其应用层不进行传输控制,即所谓的透明传输,应用层传输控制均交由上位机进行。采用以上两种数据传输模式,虽然传感器运行负荷大大减小,但数据传输的控制、处理、存储等交由上位机进行,势必会造成以下问题的出现:
(1)有悖于分布式系统策略,网络各节点运行负荷不均衡,系统稳定性存在潜在隐患。
(2)加重了上位机运行负荷,对其软硬件性能提出了更高要求。
(3)在传感器节点软硬件性能较大提高的情况下,没有充分挖掘和利用其资源,是对资源的浪费。
(4)固定周期数据查询,难以兼顾既要能够及时获取异常状态数据,又要减少数据冗余度。
基于分布式网络系统策略,利用传感器节点软件件资源,在充分研究高速公路防雷设备运行状态特点的基础上,本文提出了一种基于UDP/IP协议的应用层数据传输控制协议,较好地解决了当前高速公路普遍采用的数据传输模式带来的诸多问题,即兼顾及时获取异常状态数据,又大大降低了数据冗余度,网络节点运行负荷更加均衡,系统性能显著提高。
将数据轮询、分析判断功能前移致传感器,减小轮询周期,以保障异常状态数据及时获取。异常状态数据在一个轮询周期内能够及时获取并上传,而相邻2个周期状态数据未变化或状态数据变化在允许范围内的,可以不进行上传,即所谓“及时上传”和“定时上传”机制。
及时上传:传感器依照轮询周期进行数据查询,当本次状态数据与前次发生变化或超出阈值,则立即上传;数据未变化或未超出阈值,不上传。
定时上传:在定时上传时间,无论数据是否变化都须上传。
2.2.1 协议初始化
传感器运行参数(轮询周期、定时上传周期、数据判断门限等)由服务器端配置,传感器启动运行连接服务器,服务器下发传感器配置信息(参见2.2.3节)。
(1)若传感器未收到配置信息,则以“延迟重发周期”循环发送“请求配置信息”,直至获取到配置信息。
(2)若传感器收到服务器下发的“无配置信息”(参见2.2.6节),传感器停止数据查询,依照(1)进行。
图1 协议初始化
2.2.2 协议实现
(1)传感器首次数据查询,数据本地保存,并上传服务器。
(2)传感器依照“轮询周期”查询数据。
开关量查询:若前后两次数据有变化,则上传,否则不上传,本地保存。
模拟量查询:若任意一路模拟量数据超出门限值,则上传,否则不上传,本地保存。
开关量和模拟量查询:判断开关量是否有变化,有变化则上传;若无变化,判断任意一路模拟量数据是否超出门限值,若超出则上传,否则不上传,本地保存。
(3)“定时上传”时不进行数据判断,数据直接上传,并本地保存。
(4)若查询数据,采集器未反馈,则清除本地数据,不上传数据,依照步骤(1)进行。
(5)网关解析配置信息成功后,上传“解析成功”数据包,依照最新配置信息运行;网关解析配置信息失败后,上传“解析失败”数据包,继续依照前次配置信息运行。
(6)服务器在运行过程中会主动下发配置信息,网关接收到下发的配置信息后,覆盖原配置信息,然后依照步骤(1)进行。
图2 协议实现
2.2.3配置信息数据结构
报头轮询周期定时周期门限1门限2门限3心跳周期重发周期数据长度数据报尾1Byte2Byte2Byte1Byte1Byte1Byte1Byte1Byte2ByteNByte1ByteF2xx xxxx xxxxxxxxxxxxxx xxxx ……DD
报头标识:0xF2,长度1字节。
轮询周期:传感器数据查询时间周期,长度2字节。
定时周期:传感器固定数据查询并上传周期,长度2字节。
门限1、门限2、门限3:模拟量及时上传数值门限,长度1字节。
重发周期:传感器未收到配置信息,重新发送“请求配置信息”时间周期,长度1字节。
数据长度:数据段字节数量,长度2字节。
报尾标识:0xDD,长度1字节。
2.2.4 状态信息数据结构
报头模块地址数据长度数据报尾1Byte2Byte1byteNByte1ByteFFxx xxxxxx xx ……DD
报头标识:0xFF,长度1字节。
模块地址:传感器模块标识,系统范围内数值唯一,长度2字节。
数据长度:数据段字节数量,长度1字节。
报尾标识:0xDD,长度1字节。
2.2.5 申请配置信息数据结构
报头模块地址报尾1Byte2Byte1ByteF1xx xxDD
报头标识:0xF1,长度1字节。
模块地址:传感器模块标识,系统范围内数值唯一,长度2字节。
报尾标识:0xDD,长度1字节。
2.2.6 无配置信息数据结构
报头模块地址标识报尾1Byte2Byte1Byte1ByteF2xx xxEEDD
报头标识:0xF1,长度1字节。
模块地址:传感器模块标识,系统范围内数值唯一,长度2字节。
标识:固定“EE”,表示该传感器模块无配置信息。
报尾标识:0xDD,长度1字节。
2.2.7 配置信息解析成功数据结构
报头数据报尾1Byte(N)·Byte1ByteFA配置信息去除报头(F2)和报尾(DD)DD
报头标识:0xFA,长度1字节。
数据:配置信息去除报头(F2)和报尾(DD)后的数据。
报尾标识:0xDD,长度1字节。
2.2.8 配置信息解析失败数据结构
报头数据报尾1Byte(N)·Byte1ByteFB配置信息去除报头(F2)和报尾(DD)DD
报头标识:0xFB,长度1字节。
数据:配置信息去除报头(F2)和报尾(DD)后的数据。
报尾标识:0xDD,长度1字节。
针对高速公路防雷设备运行特点,在研究当前机电状态数据传输控制模式的基础上,充分利用传感器软件资源,提出了一种物联网应用层数据传输控制协议。该协议已在云湛高速公路防雷监测系统等多个项目得到实践应用,应用结果表明,该协议既均衡了网络节点负荷,又兼顾了数据及时获取和数据冗余度问题,使系统运行的稳定性得到较大提高,达到了应用要求。