基于BLE-Mesh与NB-IoT技术的远程抄表系统设计
2022-04-12赵永志
赵永志
(上海电力大学 电子与信息工程学院,上海,201306)
0 引言
近年来,随着我国电子技术和网络通信技术的高速发展,越来越多的新技术,特别是无线数据传输技术,已经应用于自动抄表系统中[1]。在老旧小区升级改造中,采用无线数据传输技术进行远程抄表可有效降低重新布线升级成本过高的问题。目前市面上大多数无线远程抄表方案大多使用4G、NBIoT、Lora方式,在电表中内置无线通讯模块,升级改造时需更换电表,成本较高。且上述无线通信方式需缴纳一定的网络通信资费,电表数量较多时网络维护费用较高[2]。并且根据远程抄表工作特点,抄表时同一区域内大量通信模块需要并发通信,存在网络阻塞的问题,降低集抄成功率。
2017年蓝牙技术联盟发布了新的蓝牙Mesh网络协议。全新的Mesh网络打破了传统的一对一、一对多的连接方式,以广播中继的方式提供设备间多对多传输,最大可容纳65535个设备节点。并特别提高构建大范围网络覆盖的通信能力,适用于楼宇自动化、无线传感器网络等需要让数以万计个设备在可靠、安全的环境下传输的物联网解决方案[3]。窄带物联网(Narrow Band Internet of Things, NBIoT)是物联网(IoT)领域一个新兴的技术,具有低成本低功耗的特点,可降低通讯方面维护成本,已成为支撑用电信息采集系统数据采集的另一种技术方案[4]。基于Ble Mesh和NB-IoT网络技术,设计了一个远程抄表系统,采用免费的蓝牙Mesh网络传输数据,仅保留一个NB-IoT模块进行数据上传,降低了网络资费,避免了抄表时并发导致的网络阻塞的问题和传统抄表方式的轮询时延。实验表明,该系统的单跳有效通信距离达到150m,能够很好地满足实际需要。
1 系统组成
本系统的硬件组成主要包括采集节点、中继节点、带NB-IoT的汇聚节点和配网设备4个部分。
配网设备用于组建Mesh网络。配网设备可为安装特定APP的智能手机或其他类似功能的嵌入式设备,用以认证设备入网,设置网络密钥、应用密钥、TTL值和模型发布/订阅地址等内容。
汇聚节点负责接收和下发抄表指令并收集Mesh网络内数据并上传。在成功建立网络后,通过NB-IoT模块接收管理中心抄表指令并在网络内向采集节点订阅的组地址发布查询命令,等待采集节点返回收集的用电数据,并将用电数据校验、压缩,通过NB-IoT网络将数据回传到管理中心。利用免费的蓝牙Mesh网络去传输用电信息,并在每个区域内只使用一个NB-IoT模块对抄表指令和用电数据进行传输,和以往在每个电表上安装NB-IoT模块的抄表方案,能有效降低网络运行费用,降低成本[5]。
中继节点用来扩展网络的覆盖范围,增加网络传输的稳定性。虽然新版本的蓝牙协议已经支持上百米的传输距离,但在一些节点间距过大、信号阻隔的场景下,如地下室、天井等,汇聚节点的单跳广播传输半径无法囊括所有采集节点,此时就需要中继节点进行数据包的中继和转发,保证抄表指令和用电数据能够准确到达。同时,蓝牙Mesh网络采用采用洪泛机制进行数据传输,即使某个节点出现问题,数据还可通过其他路径到达目标节点,保证了抄表系统的稳定性。
采集节点用来采集用户电表数据。通过M-Bus协议对用户的电表数据进行读取,并将用电数据打包发送至汇聚节点单播地址,经中继节点转发后,最终传输至汇聚节点。为保障采集节点的长时间工作,采用定时中断唤醒机制,在收到中继节点转发的抄表指令后,进行用电数据采集和上传。
系统整体框图如图 1 所示。
图1 系统整体框图
2 网络结构
Mesh 模型是蓝牙 Mesh 协议中基础业务单元,定义了特定功能的实现及交互流程。在本系统中,采用标准Sensor模型用来传输数据,仪表数据作为Sensor模型数据,通过标准模型指令进行读取控制。采用客户端、服务端架构,其中汇聚节点作为Sensor Client,用来发布查询指令。Mesh网络内的采集节点作为Sensor Server,用来响应查询信息。
蓝牙Mesh网络中支持三种地址,分别为单播地址、组地址和虚拟地址。在本系统中,每个节点都有其自身单播地址,整个抄表系统设置一个抄表组地址。在配网时,汇聚节点发布地址设置为抄表组地址,采集节点订阅地址为抄表组地址,保证下发采集指令时,网内采集节点都可以接收到采集指令。同时采集节点发布地址为汇聚节点单播地址,保证电表数据仅能由拥有对应APP Key的汇聚节点进行解析,保证用户数据的隐私性。
3 硬件设计
在硬件节点的设计过程中,蓝牙模块选用了Nordic公司推出的低功耗片上系统nRF52833蓝牙芯片。nRF52833是业界领先的nRF52系列SoC系列中的第五款产品,围绕带有浮点运算单元(FPU)的64MHz Arm Cortex-M4而构建,并具有512KB Flash、128KB RAM内存和+8dBm输出功率,适用于需要强大覆盖范围的先进智能家居应用。
3.1 汇聚节点硬件模块设计
汇聚节点主要目的是接收管理中心的抄表指令、下发和收集采集节点数据上传至管理中心。其主要结构包括nRF52833蓝牙模块、NB-IoT模块、电源模块。nRF52833蓝牙模块为节点控制和数据处理核心,运行BLE Mesh协议栈,作为Mesh网络内节点用来收发网内数据。NB-IoT模块采用有人物联网的WH-NB75-BA模块,最大数据长度512字节,内嵌了CoAP协议,提供透传模式,易于开发,并支持PSM模式自动切换,降低功耗。在本系统中用以接收电力管理平台的指令,和蓝牙模块间通过UART串口进行连接,通过AT指令进行数据交互,用来收取管理中心指令和将汇聚节点收集到的仪表数据上传至管理中心。其硬件结构如图2所示。
图2 汇聚节点硬件框图
3.2 采集节点硬件模块设计
采集节点用来读取电表数据并上传。目前大多数电表都预留485接口,支持M-Bus协议进行数据交互。而蓝牙芯片所用电平为TTL电平,与电表进行交互需进行电平转换。采用MAX485驱动电路完成电平转换,并通过M-bus协议进行数据交换,将收集到的电表数据作为Sensor Server模型数据,待收到抄表指令后,将模型数据发送至汇聚节点对应的Sensor Client模型中。其硬件结构如图3所示。
图3 采集节点硬件框图
中继节点用来将收到的数据包进行广播中继,扩大传输范围。硬件方面结构较为简单,即在采集节点的基础上去除电平转换接口。另靠近汇聚节点的中继节点将会进行大量的广播中继,能量损耗较高,电源模块采用双供电模式,即采用3.7V锂电池供电和市电供电,其中市电供电为主供电,若市电供电故障,则自动切换至锂电池供电。
4 系统软件设计
配网设备负责组建BLE-Mesh网络,认证设备入网、保存网络的配置信息和删除节点等。以nRF mesh APP为例,通用流程包括网络密钥和应用密钥的分发、设备的认证入网,节点的单播地址分配等内容。在本系统中,还需新建抄表组地址,并将汇聚节点的Sensor Client模型的发布地址、采集节点Sensor Server模型的订阅地址设置为该组地址,并且将采集节点Sensor Server模型的发布地址设置为汇聚节点单播地址。
4.1 汇聚节点软件设计
当配网设备构建Mesh网络成功后,管理平台通过NBIoT网络下发抄表指令,汇聚节点通过NB-IoT模块接收对应指令,并根据指令向Mesh网络内组地址发布抄表指令。当采集节点数据返回后,汇聚节点将采集到的本区域的仪表数据打包,采用“AT+NMGS+数据长度+用电数据”的AT指令传输至NB-IOT模块,通过NB-IoT网络将其发送到管理中心。若成功发送则会收到“OK”指令回复,若在发送后2s内未收到回复指令,且重发次数小于3次,则会重新发送采集数据,保证用电数据的准确到达。汇聚节点程序设计流程如图4所示。
图4 汇聚节点程序流程图
4.2 中继节点软件设计
中继节点经配网设备配置入网后,便会周期性地侦听无限电收发范围内的数据包,并解析数据包的目的地址、序列号和TTL值。若收到目的地址非本节点的数据包,则根据缓存序列号判断是否为已中继信息,若未中继且TTL值大于1,则将此数据包进行广播中继,并将其TTL值减1。中继节点程序设计流程如图5所示。
图5 中继节点程序流程图
4.3 采集节点的软件设计
采集节点经配网设备配置入网后,等待中继节点转发的数据采集指令,根据指令向电表发送查询命令,等待电表返回用电数据。信息交互遵循M-Bus协议,通过约定波特率向电表查询特定地址的寄存器信息,包括瞬时电压、瞬时电流、有功总电能等数据。采用接收中断方式等待返回数据,并进行CRC校验,判断数据的准确性。当采集数据完成以后,将用电数据发送到汇聚节点的单播地址,完成本次数据采集过程。采集程序设计流程如图 6 所示。
图6 采集节点程序流程图
5 实验结果
为验证系统的可靠性,设置1个汇聚节点、2个中继节点和4个采集节点,所用电表为正泰DDSU666单相式485电能表。通过BLE Mesh网络传输采集的用电数据,并由NB-IoT网络发送至管理平台。经测试,单跳传输距离可达100米,Mesh网络中抄表四个节点时延在200ms以内,时延瓶颈主要在NB-IoT网络传输时,在网络稳定情况下,一次集抄时延约在5s左右。经测试,第一次集抄成功率为98%,第二次集抄成功率达到99.9%。
6 结束语
本文提出并设计了一种基于BLE-Mesh与NB-IoT技术的远程抄表系统。该系统提供了一种资费低、容量高、延时短的远程抄表方案,具有一定的实用价值和经济价值。但是,实验所用的节点数量过少,无法评估在大节点数量场景中的表现,且BLE-Mesh采用泛洪方式进行数据传输,存在数据包重复、资源浪费等情况[6],在今后的研究中会致力于解决这些问题。