APP下载

农村地区供水管网自组网无线通信方法研究

2022-06-25李晓琴贾燕南杨彭卫李江华

中国农村水利水电 2022年6期
关键词:数据包链路路由

李晓琴,贾燕南,李 珊,杨彭卫,李江华

(1.中国水利水电科学研究院,北京 100048;2.国家节水灌溉北京工程技术研究中心,北京 100048)

0 引 言

供水管网数据组网设备相对于水厂其他自动监控部分来说,有着很大的差异和特殊性,通常管网监测点距离水厂较远、在室外安装、运行环境恶劣,组网通常采用无线通信方式。组网通信是管网监控系统运行的关键,决定了底层的压力、流量等感知数据是否能实时上传,常用的通信方式包括使用GPRS或4G通信模块、NB-IOT、无线传感器网络等。

(1)使用GPRS 或4G 通信模块。当前已经有很多管网监控系统使用GPRS(General Packet Radio Service,通用分组无线业务)模块或4G 模块进行组网通信,每个监测节点都需要配置一个流量卡,并且每个月产生固定的通信费用。这种通信方式往往比较方便获得、信号稳定、传输速率高可达到115 kb/s,但需要定期缴纳一定的通信费用[1]。

在一些靠近末梢用户的管线监测点,可以利用周边的供电条件和设备房屋条件(事实上协调安装的实施难度大)进行安装。而在主干管网分叉点附近,反而由于住户少,供电和设备安装难度极大。通常需要在监测点附近建立一个防护设施,并且要从电网中专门拉线供电,或者使用大面积的太阳能板配合大容量电池进行供电支持。单个监测点的设备及实施成本非常高。

(2)使用NB-IOT 组网通信。近些年,由于NB-IOT 通信技术的兴起到流行,一些仪器仪表都可以支持NB-IOT。而这个通信解决方案也是管网监控系统可以利用的技术。

相对于GPRS 等可以支持监测点长链接发送数据,NB-IOT则是基于短链接方式提交数据。并且在功耗上也比GPRS 低。在极低的数据发送频度上(如一天发送一次数据),NB-IOT 可以配合电池实现多年持续运行。这个机制非常适用用水户水表数据上传。

而供水管网监控往往要求实时上传数据(比如每分钟采集一次数据),才能更好地分析管网监控点瞬时变化情况和掌握运行状况,这种情况NB-IOT 的优势就不存在,虽然NB-IOT 比GPRS 联网峰值功率低,对比分析如图1[2],但也达到200 mA 这个电流级别,从供电角度还是需要和GPRS 同样的机制才能有效运行。

图1 NB-IOT和GPRS功耗比对图

(3)无线传感器网络。无线传感器网络(Wireless Sensor Network,WSN),是一种廉价、具有通信、计算能力的微小传感器节点,通过无线方式连接形成一个多跳自组织网络[3-5]。

无线传感器网络的研究起步于20世纪年代末期,引起了世界范围内广泛的关注,欧美等发达国家相继启动了多个无线传感器网络研究计划。美国自然科学基金委员会、国防部、国家实验室、能源部和各大高校等多渠道投入资金开展项目研究[6-11]。同时,各大IT 公司包括IBM、Intel|、Honeywell、Nokia 等也致力于医学、环境监测、森林灭火乃至海底板块调查、行星探查等领域应用的研究。其他很多国家的研究机构也加入了无线传感器网络的研究。迄今为止,己经开发出了一些实际可用的传感器节点,Mica 系列节点、Intel mote 以及传感器操作系统MANTIS、Tinyos等[12,13]。

在国内,中国科学院微系统所、电子所、计算所、自动化所等研究机构较早开展了无线传感器网络的相关研究,中科院北京计算所开发了GAINS[14]系列传感器节点。国内许多重点大学如清华大学、哈尔滨工程大学、北京邮电大学、国防科技大学、西北工业大学等院校也都积极地开展了无线传感器网络的相关研究[15]。

最早的无线传感器网络采用230 MHz 频段(超短波)无线电台进行通信,但是这种方式的系统容易受外界信号干扰,而且存在通信速率低、误码率较高、信号覆盖范围有限的问题。电台有效通信距离短,一般20 W 的电台有效通讯距离只有20 km,遇到较高的障碍物,通讯距离还会缩短,数据传送速率也较小[16]。超长距离的发送需要大功率发射,因此需要提供大功率电源,这一特性决定了数传电台的应用只能限定在一定的区域范围内。

(4)无线RF433/315 传输。是管网数据组网一种比较好的方式,一类是采用中间基站方式将多个点连接起来通信,比无线电台通信稳定、覆盖范围广,而且低功耗、低成本,通过基站接力方式可以实现一定范围的数据组网。另一类是多跳无线Ad Hoc 网络,也称移动自组网(Mobile Ad Hoc Network,MANET)[17]。自组织无线网是一种没有固定基础设施(没有固定路由和固定基站)网络,无基础设施的移动网络[18,19],终端节点带有无线通信收发装置,形成多跳、临时性无中心的网络,各网络节点地位相等。

一般供水工程从水厂到用水户距离最远可以达到几十公里。这么远的距离,能够使用的通信手段很有限。对于农村地区尤其是山区、高寒区、牧区等地方,GPRS、4G、NB-IOT 网络受限,经常发生信号中断的情况,数据时有时无,无法保证正常的数据组网,而且后期都会有相关的运行成本,同时存在设备采集发送频度高和低功耗要求的矛盾。如果模型要对管网运行的压力进行实时的漏损分析,则需要每个监测点相关指标采集和数据传输频度也很高,这要求设备能够尽可能地不间断运行,这也使得监测节点不可能低功耗运行。相比较而言,采用自组织无线网络是一种经济、高效的选择。

现有的无线组协议为了能够适应大多数情景实现复杂,针对农村供水管网监控距离远、监测点数量多等特点,难以支持太阳能和电池组合供电,依托周边电源导致现场安装实施困难,对设备要求较高难以支持低端芯片从而导致成本较高,传统的无线传感器网络还需要购买基站接力设备。因而传统的路由协议不能直接应用于无线传感器网络,需要设计专门适用于自组网的协议,Mac 协议和路由协议都是自组织无线网络研究的重点和主要技术难点[20,21],网络的稳定性、功耗等性能都依赖所采用的协议。

1 专有自组网无线通信协议设计思路

1.1 专有自组网无线通信协议实现需求

结合农村管网数据组网协议监测实际情况,对协议能够支持的最基本要求进行分析。

(1)监测节点数分析。根据调研分析,大部分农村供水工程管网末梢(入村)监测点不超过30个,水厂到用水户最远端大多不超过30 km。按照末梢-中间枝干管-主干管-水厂中心,分4 级配置监测节点。每一级对上一级监测点数量折半(实际大部分达不到这种高密度),由此节点数为30-15-7-3-1,总共56个。

(2)节点监测数据量分析。单个管网监测点一般有压力、流量2 个指标,大多仅压力1 个指标,加上设备自身的一些参数,如电池电压(1~2个值)、温度等。总监测指标设计不超过10个,每个指标2 个字节(2 bytes),每次采集产生的数据包负载不超过20个字节。

(3)监测数据采集发送频度分析。传统管网只需要监测累计流量,一段时间内采集2 个数据就可以获取这个时间段内的累计差值。所以,基本上每天采集一次即可。

而基于管网模型分析的监测要求就比较高,比如,压力,在用水高峰根据用水人数的变化,不同管网节点压力波动就比较大。此时需要分钟级甚至秒级的压力变化数据。

(4)国内对无线通信管理要求。单信道使用。国家要求中心专用的网关设备只能使用单信道,多信道不被允许。而本协议实现时不需要专门的中心网关设备。

单次发射不超过1 s。本协议负载数据包不超过20 个字节,同时也不使用专门的组网网关(减少了必要的组网数据包协议内容),配合使用合适的扩频因子(比如6),就算使用比较低的空中波特率2 400,单次发射不会超过1 s。

(5)灵活组网。在一些特殊场合,中心水厂的地理位置不适合做中心节点。此时,要求在其他位置设置中心节点,并且中心节点可能并不能限定一个。

因此,协议中任何节点都可以作为中心节点,并且通过合适的外围供电和通信转换配置,使得一个水厂管网数据组网,可以根据需要设定多个中心节点。每个中心节点可以利用本地的网络,进行周边节点的数据汇总,并上传到上位(云端)的农村供水管网监控系统。

1.2 专有自组网无线通信协议层

专有自组网无线通信协议由三层组成,自下而上分别为Mac 层、链路(Link)层和应用(App 或者上位机管理软件)层,最下面是基于通用异步收发器(Universal Asynchronous Receiver/Transmitter,UART)、串行外设接口(Serial Peripheral Interface,SPI)和无线模块的物理层支持。

Mac层主要定义了数据包在两个相邻设备一次发送或接收的具体格式和要求。

Link 链路层以Mac 层为基础,提供了数据包在节点路由条件下的数据转发相关要求。链路层提供了基于节点地址的链路路径信息,并且每个节点在这个层级基于这些链路信息,形成数据包的链路转发功能。这样节点间能够通过互相接力方式,达到更远距离的数据传输。中心节点路由策略位置在Link层之上,路由计算和规划都在此支持。

应用层,则基于Link层实现相关应用指令和数据定义。

本协议也可以在其他有着和管网监测类似运行要求和条件的领域应用,在Mac 层和Link 之上根据业务需求定义自己的应用层。协议层次如图2所示。

图2 专有自组网无线通信协议层次图

1.3 中心链路规划法

本文研究提出了中心链路规划法,所有的采集节点数据都向中心节点汇总。每个节点都不需要考虑网络路由策略,所有的数据包路由都由中心节点决定。即所有的路由策略都由中心节点来完成,并且这个路由策略不仅可以在设备芯片中完成,还可以使用上位强计算能力的嵌入设备或计算机(Personal computer)来完成。采集网络拓扑结构如图3。

图3 中心链路规划法

2 数据包定义

本节基于中心链路规划法,在不同层级定义数据包格式。

2.1 节点地址

所有节点地址使用1 字节无符号整数,有效范围0~255,其中0,协议上设定为哑(dummy)节点,此节点可以监听周边的无线信号,但不会做出任何应答,255为广播地址。那么一个同频网络,节点数最大值是254,满足目前国内农村供水工程管网监测的需要。

2.2 Mac数据包格式

Mac 数据包只考虑相邻的两个节点(各自都有自身的1 字节地址)直接通信的数据包格式(见表1)。由于通信模块使用透明传输方式,底层的无线频点、空中波特率、扩频容错机制、数据校验(如CRC)和安全性都直接由无线模块支持,所以,本协议的Mac 层只需要使用5 个字节的包头信息,就可以满足两个节点之间的基础通信。

表1 Mac数据包格式表

2.3 Link数据包格式

链路层数据包基于Mac 层的Data(后续)数据内容建立,以Data第0位为起始(Mac包的第5字节位)(见表2)。

表2 节点消息包格式表

当Mac 层的数据包类型为3-link 时,低4bit 对应的链路消息包类型如表3。

表3 低4bit对应的链路消息包类型表

3 消息转发机制与节点关系获取

3.1 Mac层发送接收流程

对于Pk Count 计数,协议上一层每发送一个新数据包,则做一次累加,当计数达到255时,下一次计数变成0。

Mac层支持可靠发送和非可靠发送两种机制。发送数据包时,可以设定发送尝试次数,在超过发送次数之后,没有收到应答,可以认为发送失败。接收端接收到数据包后,根据Target address 判断是否需要处理,如果发现Target address 是自身地址或者是广播地址,进行处理。

(1)根据包类型Mac pack type,判断是否需要应答,如果需要则生成一个应答类型的包,Data_len=0,并进行应答发送。

(2)提交给上一层协议进行处理。

(3)对于包类型=1 查找周边类型的情况,则Mac 层需要根据自身的地址,计算应答延迟时间,以避免发送者周边多个节点同时应答尝试冲突。并且每个节点Mac 层需要建立一个周边节点地址表,定时发送查找周边指令进行更新。

Mac 层具体实现流程包括发送数据包(如图4)、接收数据包(如图5)。

图4 发送数据包流程图

图5 接收数据包流程图

Mac层还需要实现周边节点发现更新。①更新周期。每个节点Mac 层需要定时发出查找周边数据包。更新周期可以由协议参数来设定。对于管网监测系统来说,更新周期可以设定为一天一次甚至更长时间。②新加入节点或刚启动节点。对于新加入或刚通电启动的节点,则可以立即发送查找周边数据包,这样可以尽快使自己获取周边的节点情况。③节点响应查找周边节点,流程如图6。

图6 节点响应查找周边节点流程

3.2 Link层消息转发策略

链路层消息转发策略是本协议的核心,节点发送一个数据包到另一个节点时,链路层在数据包前加入起始节点地址-中间转发节点的地址-目标节点地址列表。

当中间节点收到数据包时,查看自己在数据包链路中的位置,定位下一个节点地址(或者最终接收者地址)。如果节点发现此数据包需要转发到下一个地址,则生成Mac 层需要的数据并推给Mac 进行发送处理。链路层转发包括起始节点发送消息和中间节点转发/接收过程,见图7。

图7 中间节点转发/接收流程图

(1)起始节点发送消息。起始节点发送消息时,需要提供自身起始节点地址、目标地址、中间经过的转发地址和需要发送的数据包(有长度限制)。调用Mac 层发送接口,Mac 层的目标地址是链路的下一个节点地址。

(2)中间节点转发/接收过程。中间转发节点Mac层收到并解析消息包之后,采用协议栈反向调用链路层的接收处理,判断自身在链路中的位置,如果自身是转发节点,则查找下一个节点地址,如果自身是目标节点,则返回Mac 层处理给予应答。

3.3 节点关系获取

基于链路消息转发,链路层有专门获取其他节点的周边节点地址的信息包。中心节点可以定时发起节点关系获取和更新,并在自身建立所有节点之间周边节点关系表(见表4)。中心节点可以从中心开始,通过链路层的转发机制,逐层向外获取周边节点地址,以此为基础获取所有节点的关系表。中心节点可以以最短路径访问任意一个节点。

在链路层,虽然能够支持通过链路消息指令,获取网络中另一个节点的周边节点列表,但链路层并不对其他节点的周边节点信息做任何存储和后续处理。相关API预留给应用层或上位机管理软件使用。

节点关系获取/更新过程,以表4节点关系表为例,进行说明。

表4 节点关系表

(1)节点关系获取由中心节点开始,中心节点1查找自身节点Mac 层定时更新的周边节点列表2、3,并返回给上位机管理软件。

(2)上位机管理软件根据中心节点的周边节点地址2、3,按顺序发送对应节点的周边节点查询数据包(link_tp=2 和link_tp=3)。由于2,3 为直接的周边节点,不需要通过中间转发即可实现。

(3)中心节点继续查找节点4的周边节点,此时需要上位机管理软件根据已有的节点关系表,选择链路。很明显,节点4的链路可以有1-2-4、1-3-4 两种选择。上位机管理软件只需要选择其中一个即可。此时,链路层自动生成带链路信息的周边节点获取数据包,数据包通过链路转发到达节点4,节点4 的链路层收到数据包之后,获取本地的周边节点数据,形成应答数据包,并且使用相同的链路返回。

(4)继续上面(2)、(3)过程,经过一定的时间,就可以完整建立或更新节点关系表。

一般来说,一个供水工程所有监测节点安装完备之后,所有的节点地址都已经确定。中心节点可以预先设定组网内部的全部地址信息。如果节点关系表建立完成,则可以和全部的节点信息进行比较。如果发现有一些节点没有在关系表中,则说明这些节点由于一些故障原因而无法到达,由此,中心节点应该产生故障报警。

3.4 中心路由统一管理

中心发起的数据包自带链路信息,目标节点或链路中的中间节点可以根据数据包的链路信息做转发或应答,中心节点通过节点关系表,实现统一路由管理。

中心路由可以选择每个节点到达的链路,并且在运行过程中,根据实际的丢包情况,进行链路切换、重新尝试等复杂的路由策略。由于无线信号受地形等因素影响,节点间的周边节点关系并不一定符合地理位置的远近。

4 自组网无线通信协议的优点

(1)单字节地址和小数据包。单个字节(byte)扣除0 和255两个特殊值,可以为一个网络提供254个设备地址,远远满足以上分析的单个管网监测节点需要。同时,每次监测节点发送的数据负载不超过20 字节,配合协议要求的数据,单个数据包可以不超过50 字节。协议可以轻松运行在低端8 位单片机上,16位或32位中高端单片机实现就更没有压力,可以降低设备研发成本,同时运行更加可靠。

(2)满足国内无线通信管理要求。中心路由可以选择每个节点到达的链路,并且在运行过程中,根据实际的丢包情况,进行链路切换、重新尝试等复杂的路由策略,从而实现自组网无线通信。国家要求中心节点专用的网关设备只能使用单信道,本协议实现时不需要专门的中心网关设备。单次发射不超过1 s。本协议负载数据包不超过50 个字节,同时也不使用专门的组网网关(减少了必要的组网数据包协议内容),配合使用合适的扩频因子(比如6),就算使用比较低的空中波特率2 400 B/s,单次发射不会超过1 s。

(3)应用范围广,能够支持当前已有点对点无线技术和模块。通过利用现有的点对点无线技术和模块,可以使得监测节点的实现更加灵活,同时降低研发和材料成本。此外,利用先进的无线技术和对应的模块可以减少底层协议实现的复杂度,在容错能力、安全性等方面快速获得基础支持。

5 结 语

针对农村供水管网数据组网的特点和需求,基于中心链路规划法,提出了一种专有自组网无线通信协议,基于此协议的硬件设备能够低功耗运行,只需要小体积电池和小型太阳能板就可以有效运行,现场安装不需要依赖周边电源。节点关系表和中心路由统一管理策略实现了中心节点可以以最短路径访问任意一个节点,最终达到组网不需要中间基站,在合法合规前提下实现稳定、高效、经济的管网数据组网和传输。

猜你喜欢

数据包链路路由
基于时隙ALOHA与NOMA的通信系统性能分析
一种移动感知的混合FSO/RF 下行链路方案*
基于Android设备的异构无线链路聚合软件①
数据通信中路由策略的匹配模式
一种用于6LoWPAN的多路径路由协议
OSPF外部路由引起的环路问题
C#串口高效可靠的接收方案设计
一种IS?IS网络中的链路异常检测方法、系统、装置、芯片
网络数据包的抓取与识别