基于NB-IoT+WSN 技术的智能路灯通信架构研究
2018-02-28潘俊虹
潘俊虹,吴 薇,彭 涛
(1.武夷学院数学与计算机学院,福建 武夷山 354300;2.苏州大学计算机科学与技术学院,江苏 苏州 215006;3.认知计算与智能信息处理福建省高校重点实验室,福建 武夷山 354300)
引 言
现有的路灯通信模式多为电力载波通信,存在信号衰减快、工频谐波干扰大、不能跨变压器通信等缺点[1]。文献[2-5]等提出使用通用分组无线业务( General Packet Radio Service,GPRS) 与局部的无线传感器网络( Wireless Sensor Network ,WSN) 相结合,路灯终端组网采用 ZigBee 无线网络的智能路灯系统,然而IEEE802.15.4 复杂的路由协议适用于网络拓扑结构容易动态变化的场景,对于路灯相对固定的组网方式并不合适,且ZigBee 协议开发难度较大,导致网络的稳定性不高[6]。此外,GPRS 技术由于附着核心时间长、唤醒时间长,导致功耗较高[7]。相比较GPRS 技术而言,窄带物联网( Narrow Band Internet of Things,NB-IoT) 具有海量连接、广覆盖、深穿透、低成本和低功耗的优势[8-10],可直接部署于现有的GSM 网络、LTE 网络或UMTS 网络,其建设成本低、网络升级方便快捷。NB -IoT 平台开放标准接口也有利于应用灵活快速部署,因此基于NB -IoT 的通信架构更适合用来构建智能路灯通信网络[11]。
针对无线智能路灯网络出现的诸多问题,本文提出了一套基于NB -IoT +WSN 的新型智能路灯通信组网方案。该通信架构以面-线-点的控制方式实现城市路灯管理方式的智能化,使得路灯系统可实时智能监测和控制路灯工作状态,改变目前有线路灯网络建维成本高、灵活性差、能源消耗大的现状,以低成本、高可靠以及绿色节能的方式解决传统城市路灯存在的问题,提升了城市公共照明设施管理水平。该新架构不仅可以应用于常规路灯,也可以用于新型LED 路灯,同时,还可以为智能交通、环境监测、局部气象服务等提供基础信息“高速公路”。
1 基于NB -IoT +WSN 技术的智能路灯通信架构
基于NB-IoT +WSN 的智能路灯通信架构如图1所示,主要由路灯终端节点无线自组网、主控器网关、NB-IoT 公网、客户应用服务器和客户应用终端组成。
路灯终端节点带有传感器和控制模块,传感器负责采集路灯的状态信息和环境信息,通过无线发射模块发送给主控器主控器接收查询和控制命令,并通过控制模块实现对路灯状态的改变。
主控器是整个系统通信的网关枢纽,主要负责路灯终端自组网和NB-IoT 公网之间的无线数据转发。
NB-IoT 公网包含基站和远程管理服务器,通常是电信运营商或者第三方机构的基础设施,实现主控器网关和应用服务器之间的双向数据透传。
图1 基于NB-IoT+WSN 技术的智能路灯通信架构图
客户应用服务器( User Application Server,UAS) 是运行在Internet 网络上的一台或者多台计算机,通过接受管理服务器转发来的路灯终端数据信息,并根据路灯管理特定的业务逻辑对数据进行分析和处理,为客户应用终端提供数据业务访问服务,同时将客户应用终端发送来的控制命令发送至路灯终端,实现对路灯的控制和管理。
客户应用终端是运行人机交互系统的计算机、笔记本电脑、智能手机等设备,通过友好的可视化界面进行人机交互操作。客户应用服务器和客户应用终端一起构成了基于NB-IoT 系统的应用终端。
2 路灯终端设计
2.1 路灯终端硬件设计
路灯终端单灯控制器主控模块采用恩智浦公司的MKW01Z128[12]( 以下简称KW01) 芯片,其内部集成了超低功耗的Kinetis KL26 MCU 与SX1231 -RF 无线收发器。KW01 内含的SX1231 -RF 无线发射空阔区域最大传输距离可达500 米。主控硬件最小系统通过UART、IIC、SPI 等通信接口连接路灯节点外设。SX1231 - RF无线发射使用SPI 与主控模块通信。单灯控制器结构如图2 所示。
图2 路灯终端单灯控制器结构图
2.2 路灯终端WSN 组网协议
一般而言,路灯一旦安装其位置基本不会改变,拓扑结构也就相对稳定,路灯控制多为批量进行,从节省成本的角度出发,也没有必要为每一盏路灯配置一个NB-IoT 通信模块。
根据大多数路灯并行排列的特点,采用三链路由[13]( Three Linked Route,TLR) 协议对路灯终端进行组网,如图3 所示。组网方式如下:将公路的每一侧路灯设为一级链路。一级链路按照路灯路数N 进行编号Xi( i =1,2,3,…,N) 。二级链路则根据单灯的有效通信半径进行设定。假设单灯有效通信半径为r,灯间距离为d,那么就有Q = [r/d]个单灯构成一个自组网络,作为二级链路通信单位。假设此侧路灯总数为SUM,那么这一侧二级链路单位即为M =[SUM/Q]+1 个。二级链路编号为所在一级链+二级链编号即[Xi][Yj],( j =1,2,3,…,M) 。三级链即为单灯节点,编号为[Xi][Yj][Zk]( k =1,2,3,...,Q) 。每一条路灯都有一个主控器节点与其对应,放置在路灯的一端,负责这条路两侧路灯的通信。路灯终端节点通过主控器接收和转发数据。
图3 三链路组网示意图
终端节点根据TLR 协议进行编址,网络层主要功能是在收到数据后,判断目标地址和网络号是接收还是转发,不是自己的数据就将其转发,如果是自己的数据就交给应用层处理,然后从应用层接收处理完毕的数据并进行封装,在添加了源地址和目标网络地址后将数据通过无线射频收发模块发送出去。
2.3 路灯终端网络通信优化
在以无线方式组网的路灯终端运行过程中,经常会遇到各种环境干扰因素,引起通信链路质量不稳定以及路灯节点之间互相干扰碰撞等问题,导致丢包等情况出现,影响路灯终端和主控协调器网关之间的通信质量,因此需进一步采取措施对网络通信进行优化:
(1) 使用硬件地址过滤非本网关数据包。当同一地区存在其他不同功能的网关及KW01 通信节点时,通过硬件地址来区分不同系统。当主协调器网关接收到一个数据包时,先判断其硬件地址是否与本网关相匹配,是则接收,否则丢弃数据包,这样就可屏蔽不同通信系统之间的通信干扰。
(2) 添加无线通信看门狗功能。每个路灯终端节点每分钟都需与所在网段主协调器网关进行数据包交换,如果节点长时间接收不到网关数据包,那么就主动使路灯终端节点复位。
(3) 优化节点轮询方式。轮询周期内先轮询一遍所有节点,标记所有未回复节点,再次轮询,直到所有节点都应答为止。
2.4 三链路由协议终端组网优势
路灯终端节点采用三链路由协议进行组网有以下几个优点:
(1) 算法实现难度低。由于每个路灯节点都有与MAC 对应的固定地址,网络拓扑结构相对比较稳定,且无需路由表存储网络信息,也不必计算网络路由的最短路径,路由算法简单,因此实现算法的编码和测试也相对较容易。
(2) 网络健壮性好。在网络通信过程中某个路灯出现故障时,相邻节点在发送信息几次都得不到回复的时候,便自动绕开当前路灯节点,重新确定下一跳链接,保证数据能传送到主控器网关节点。
(3) 可维护性强。一旦有路灯终端节点工作不正常,网络可根据路灯节点编号迅速确定故障节点位置。而且在整个网络中,每个路灯节点功能都相同,如需更换路灯,那么只需将更换的新路灯的地址设为故障路灯节点的地址即可,其他均不需做任何改动。
(4) 网络负载均衡。三链路路由算法按照路灯物理结构均匀地组织网络,形成多层次、均衡的网络结构,使得任一网络单位都只在固定的跳数和路径内传输信息,不会出现拥堵的情况。
3 主控器网关设计
3.1 主控器网关硬件设计
路灯终端通过主控器与远程服务器进行通信。主控器与远程管理服务器之间采用NB -IoT 窄带物联网通信协议进行连接。主控器由3 个相互独立的模块组成,如图4 所示。主控模块采用与终端MCU 同系列、基于ARM® CortexTM-M0 +处理器的超低功耗的KL36微控制器; 通信模块采用与路灯终端相同的KW01 芯片;NB-IoT 无线通信模块采用上海移远生产的高性能、低功耗的LTE BC95 -B5 模组。
图4 主控器结构
主控MCU 与KW01 无线收模块以及NB -IoT 通信模组采用UART 串口进行通信,路灯终端通过LTE BC95 -B5 NB-IoT 通信模组与NB -IoT 公网进行数据交换。主控器网关将数据分析并重新封装以后,通过NB-IoT 网络发送给远程Internet 管理服务器,同时也接收来自远程服务器的查询和控制指令。
3.2 主控器网关NB-IoT 通信构件设计
主控器网关与路灯终端之间的数据收发同样采用KW01 模块,其数据收发过程类似于路灯终端单灯控制器软件的设计思想。主控模块通过UART 串口与两个无线收发模块进行通信。主控器网关通过LTE BC95 -B5 通信模组实现与远程NB - IoT 公网的通信。MCU 利用串口向NB -IoT 通信模组发送一系列的AT 指令,根据通信模组的返回结果来进行相应的结果判断。
主控网关通信逻辑封装在TEcom 通信构件中,在TEcom 通信构件中实现网关与NB -IoT 公网的通信,构件使用需要连接的远程公网的IP 地址和端口号初始化通信模组,通信模组连接基站时,可获得连接的基站号、信号强度、信噪比以及基站分配的IP 地址等。通信模块成功附着核心网后,主循环开始,每间隔一定时间,利用CoAP 协议或UDP 协议发送数据。TEcom 通信构件利用串口接收中断来接收数据,将数据存入comData 数据结构体中备用。为了保持主控器与远程NB -IoT 公网的链接,主控器需在一定时间间隔内发送心跳包来保证自己和NB-IoT 公网之间的链接状态。TEcom 通信构件工作流程如图5 所示。
图5 主控器与NB-IoT 公网通信流程图
4 NB-IoT 管理服务器程序设计
路灯终端要和路灯客户应用端通信必须借助有固定IP 地址的中间设备来交换数据。课题组向第三方申请了一个具有固定IP 地址的Internet 服务器( 付费服务,实际应用中也可接入第三方提供的物联网平台) 作为NB-IoT 公网的管理服务器来运行转发程序。
管理服务器根据不同的端口号,来判断数据来自路灯终端还是客户应用服务器。路灯终端向管理服务器发送的每一帧数据都带有自己的IMSI 号,NB-IoT 公网管理服务器根据此IMSI 号来确定数据来自哪个终端设备。客户应用服务器发给管理服务器的每一帧数据中也都带有IMSI 号,这样管理服务器就知道客户应用服务器是要与哪个路灯终端通信。每当路灯终端和客户应用服务器向管理服务器程序发送一帧数据时,管理服务器程序都会更新地址来映射表中相应的IMSI 号,并向对应的连接转发数据。
//TE 与UAS 地址映射
private class Mapping
{
public string IMSI; //路灯终端IMSI 号
public Socket TESocket; //与TE 的连接
public Socket UASSocket; //与UAS 的连接
}
5 客户应用服务器侦听程序设计
5.1 客户应用服务器与管理服务器通信流程
客户应用服务器与管理服务器建立连接,并将要监听的IMSI 号发送给管理服务器进行注册,以完成应用终端人机交互系统与路灯终端的匹配。用户将对终端的操作信息保存在数据库中,客户端程序扫描数据库,取出操作命令,并将其按照通信协议封装成帧后发送给路灯终端,路灯终端接收到上层命令,对数据帧进行解析,之后执行相应的操作。同时客户端程序也会收到路灯终端发送的数据,将其解析后存放在数据库中供客户端程序处理使用。为保持数据传送的安全性,在通信层收发数据过程中,需对数据进行加密处理后再收发。
5.2 客户应用服务器UAS 通信构件设计
客户应用服务器与具有固定IP 的NB -IoT 公网管理服务器建采用Socket 建立传送数据的链路。客户应用服务器通信层的Socket 通过指定的IP 和Port 与NB-IoT 公网管理服务器进行绑定来建立链接。应用服务器在一定时间间隔内发送心跳包,保持与NB -IoT 公网管理服务器之间的链接状态。
路灯客户应用服务器和NB -IoT 公网之间建立数据传送的通信链路后,两者之间即可进行数据通信。当链路建立成功后,若频繁传送数据,则通信链路会一直保持链接状态。如果客户服务器在规定时间内没有发送心跳包,则该通信链路将被自动拆除。另外当客户应用服务器端关闭程序或取消监听后,也会主动拆除链路。客户应用服务器侦听程序功能封装在UAS 通信构件中,其流程如图6 所示。
图6 通信链路建立/拆除流程
5.3 系统测试
根据前文所述思想开发了一个智能路灯通信测试系统,并在实验室模拟路灯环境对其进行了测试,运行至今已有数个月,结果表明,只要NB-IoT 基站信号强度达到30%以上,系统即能正常进行数据的收发。信号强度保持60%以上时,服务器可在5 秒以内接收到终端数据。应用服务器侦听程序运行结果如图7所示。
图7 基于NB-IoT+WSN 技术的智能路灯通路测试
6 结束语
本文结合智能路灯网络拓扑结构和无线通信的特点,提出了基于NB-IoT 结合三链路终端组网协议的智能路灯系统通信框架,给出了框架中各层软、硬件设计的基本要点。实验测试表明该框架在信号稳定的环境下通信顺畅,运行良好,能较好地满足无线智能路灯的通信需求。由于NB - IoT 技术广覆盖、深穿透、低成本和低功耗的特点,基于该技术的通信框架就能够实现智能路灯的低成本建设、高可靠运行以及绿色节能的目的。该通信框架虽然是针对智能路灯设计的,但其基于NB - IoT 的通信架构具有远程无线通信系统的一般通用性,因此若将路灯终端作为环境信息采集终端,并结合WEBGIS 等地理信息系统,则该通信框架就可以为环境及局部气象监测、智能交通等提供信息传送通路,这就能大大提高通信设施的利用率,降低市政公共设施的建设和维护成本。