杨振 张珣
摘 要:目前物联网智能设备种类繁多,但设备性能缺乏统一标准,对多物联网终端互联与控制造成了一定困难。因此提出MCMI与双路径并发的自动跳频Mesh组网方案,结合用户控制端,设计基于双向Sub-G的无线MESH智能家居控制系统。Mesh结构为3层终端间通信,第一层与第二层构成星形拓扑,第二层与第三层构成多连接树形,较之一般Mesh结构,更加简洁且降低了硬件要求。通过MCMI与双路径并发的信号传输方式,消除了无线网络信道干扰,信号稳定性提高50%。为应对各厂商协议不统一难以成为一个完整系统的问题,设计上层专有协议以克服技术差異化。该系统经过测试,运行稳定、性能优秀、可信赖度高,并且协议还预留自定义接口,拥有一定的拓展能力。
关键词:Sub-G频段;智能照明;Mesh组网;网状拓扑;自动跳频;差分加密
DOI:10. 11907/rjdk. 201176
中图分类号:TP319文献标识码:A 文章编号:1672-7800(2020)010-0209-05
Abstract:There are many types of IoT smart devices on the market today, and there is no certain uniform standard, which has caused some difficulties in the interconnection and control of IoT terminals. This system proposes a scheme of MCMI and dual-path concurrent automatic frequency hopping Mesh networking. Combined with the user control end, a wireless MESH smart home control system based on two-way Sub-G is designed. The Mesh structure in this paper is communication between three layers of terminals. The first layer and the second layer form a star topology, and the second layer and the third layer form a multi-connection tree. Compared with the general Mesh structure, it is more concise and reduces the hardware requirements. MCMI and dual-path concurrent signal transmission methods eliminate channel interference in wireless networks and increase signal stability by 50%。 In order to cope with the inconsistency of the protocols of various manufacturers and become a complete system, a proprietary protocol at the upper layer was designed to solve the technical difference. This system has been tested and runs stably, with excellent performance and high reliability, and the protocol also reserves custom interfaces, which has certain expansion capabilities.
Key Words:Sub-G frequency band; intelligent lighting; Mesh networking; Mesh topology; automatic frequency hopping; differential encryption
0 引言
近年来,随着无线通信技术的快速发展,模块成本大幅降低,物联网和智能家居产业蓬勃兴起,用户对控制系统的品质要求越来越高。建立将智能家居终端连接起来的智能设备组网控制系统,可实现设备点对点或集群控制[1],提高设备性能。便捷、高效且成本合理的无线组网系统应用价值较大。
在已有研究的基础上,考虑到家庭结构中智能家具设备分布情况,选用穿墙能力和功耗更有优势的Sub-G频段。薛文艳[2]分析无线自组织网络节点发现,可根据路径长度、稳定性、状态寻找一条最优路径,因此将各智能设备以一定的拓扑网络进行组网,使设备间通信更有结构性;胡雷等[3]对Mesh控制性能进行了研究,通过三级拓扑的Mesh网络技术,加强了信号数据传递准确性,为确保整个组网系统准确性、动态性可靠性和安全性,引入MCMI与双路径并发的信号传递方式,以保证信号高效性稳定性。因此组网结构由投放节点、运输节点和目标节点三节Mesh结构组成,并加入MCMI与双路径并发,消除信道干扰,避免通信延时与无线链路不稳定带来的问题。根据李明明[4]对差分分析的研究,出于安全考虑使用Manchester差分加密算法,且计算储存资源开销小,可以安全高效地进行无线数据传输。
家庭智能家居设备种类繁多,难以统一控制不同品牌的产品。为实现便捷化控制,本文提出基于双向Sub-G芯片的无线MESH软件系统,解决不同品牌智能设备控制方式差异化问题,提高用户便捷性与设备高效性。
1 系统结构概况
本文系统采用MESH组网系统,该通信网络基于Sub-G频段,在网关与终端之间可自动组网形成网状拓扑网络,通过移动端或PC端页面进行交互,使用户端与设备通信,以实现对智能家居、开关系统等的控制。控制流程如图1所示。
2 系统硬件设计
2.1 系统主控电路
本文对照市场上不同的射频芯片,搭建控制系统,考虑到实际使用时设备数量与精确度对成本的影响,系统以低成本、计算效率高的BQ3905作为系统主芯片。BQ3905是一款低功耗的宽频带FSK 单芯片无线收发器,主要针对304-316、430-440、470-510、860-880和900-930MHz的Sub-G频段。BQ3905使用时分双工收发器,进行设备交替发送和接收数据,并支持数据流模式或数据包模式。该芯片具有高集成度的特点,芯片工作电压范围在1.9~3.6之间,其低电流的特点使芯片非常适应于便携式应用。本文系统选用BQ3905的433MHz频段进行无线组网通讯,BQ3905无线模块电路设计如图2所示。
2.2 节点控制模块
该模块利用UTF87001芯片,获取输入信号,并输出状态数据反馈给控制器。电路如图3所示。
2.3 网关控制模块
系统采用松翰公司的BQ3905芯片,该芯片拥有强大的性能与数据处理能力,因为需连接Wi-Fi网络,所以网关控制模块选择USR-C322芯片,该芯片作为Wi-Fi控制芯片,除可转化串口电平使其符合Wi-Fi无线网络通信标准,还连接运营商网络。控制芯片采用SN8F5708,用于串口通信。
2.4 灯控测试模块
本文系统选用LM78Wi-Fi灯控模组用于测试,该模组相比于其它产品封装尺寸更佳,同时带有PWM 调制技术。该智能灯模组在LED灯屏、灯珠控制、数字显示网屏上有较多应用,并拥有丰富的语音控制接口。
3 系统软件设计
3.1 软件控制流程
打开开关后,各节点设备初始化进行故障自检,等待接收客户端控制信号。在接收到控制信号后,通过本文系统采用的通信协议,读取信号报文信息[5],判断该信号是否为有效信号。若为有效信号,则寻找一级运输节点,即投放节点,此时设置广播数据包延时为20ms,并设置接收模式的延时为2s,开始持续接收返回的应答信号;若未接收到应答包,则持续等待应答数据[3]。软件主要控制流程如图4所示。
3.2 组网构建
将组网各个节点分为3级,即第一级投放节点、第二级运输节点、第三级目标节点。三级组网结构如图5所示。
组网结构为树形拓扑结构,第二层(运输层)各节点之间又构成星形拓扑结构[5],星形结构由中心节点进行信息支配,使终端设置适应性更强且更加灵活;而第三层(目标层)采用多连接树形结构,该结构拥有完整的普通树形结构的父子层级管理,又兼具星形拓扑广度,在实际路由过程中可减少进行三级路由的最佳路径算法运算量,在各设备具有强链接节点且集中执行的情况下[6],兼顾成本与传输性能。
为了使通信结构简洁、稳定、灵活度高[7],因此3层深度的组网协议每层节点等级不同,按照等级高低,严格控制当前层级功能。第一层节点通过接收到的客户端控制信号,下达组网建立消息,并收集子节点反馈信息;第二层节点负责转发控制信号,其中包括投放节点、同级节点信号的传递,本级节点状态对上级节点的回馈以及向目标节点下发信号,属于组网协议中最核心的信息中转传递层;最底层目标节点只有信息接收处理、同级信号传递与向上级发送反馈信息3种转发方式。
3.3 专有协议设计
本文根据物联网设备无线通信的数据模式,结合已有协议,设计一套严格的管控标准[8]协议。协议包括语法(数据包结构与格式)、语义(通讯时约定应答编码)、时序(解析顺序)3要素。
数据包由包头和数据负载构成。数据包包头和负载结构均为4字节,每个字节长度8位,结构如图6所示,4个字节分别存放不同信息。在包头部分规定数据包验证信息,作为节点数据通信时校验规则,以此防止接收方与发送方因不同步而导致丢包;数据负载则依次是用户在发送端的控制指令编码,接收设备反馈信息或终端传感器状态编码。
系统协议中的头尾序列与大部分协议在一帧报文中的一致,均用于报文同步;设置上一跳、下一跳的地址,用于当前节点与其它节点之间的报文传递;报文携带源地址和目标地址信息,用于定位来源与传递的目的地;通过数据申明与描述符,判断数据类型。
除此之外,协议中加入了对同一报文转发次数的限制,以此限制报文转发次数上限,避免“三角转发”。若转发次数达到上限,则将该报文丢弃[5],视作不可达。
3.4 Floyd最佳传送距离算法
本文系统通过用户端发送信息,通过投放节点、运输节点逐级传递到目标节点,由于系统采用网状拓扑,所以可根据信息传递路径规划,获取最佳传递方案,增加控制效率。
因为用户所处位置不同,所以负责信息传递的一级节点也不一定相同。将系统投放节点视为彼此不同源。传统Dijkstra算法[9]仅针对点对点的单源最短路径规划,非同源出发的路径规划无法采用该算法,因此本文采用针对多源路径进行动态规划的Floyd算法。Floyd可以看做多次从不同源分别进行一次Dijkstra路径规划。
Floyd算法需求出某点到达任意一点的最短距离,将其视为通过变换得到的最优协调路径[10]。首先根据节点分布情况,利用邻接矩阵建图,如图7所示[11]。
map[i][j]表示点i到点j的距离,将map[i][i]设为0,倘若有i无法到达的点,则将距离设置为∞(无穷大),若要令图上任意一个顶点(如a顶点)到另一个顶点(如b顶点)的路程更短,需引入第3個顶点k,再经过所引入的节点k进行中转,即a->k->b,便可缩短从顶点a到顶点b所需的路程。在a顶点和引入的k节点之间与引入的k节点与b顶点之间,如果还存在可使路程更短的中转点时,即可以此递归,引入多个节点,即a->k1->k2->b或a->k1->k2…->ki…->b。如图4号顶点到3号顶点(4->3)的路程map[4][3]原为24。若经过1号顶点中转(4->1->3),路程将缩短为23(e[4][1]+e[1][3]=11+12=23)。与此同时,1号到3号顶点经过2号顶点中转后,也使得1号到3号顶点的路程缩短至11(e[1][2]+e[2][3]=4+7=11)。因此在通过1号和2号两个顶点中转之后,从4号顶点到3号顶点的路程会进一步缩短为22。由此可以推测,每个节点均有可能使另外两个顶点的距离变短。假设先以1号顶点为例,只有一个中转点。将建好的图用表格表示,如图8所示。
此时,两点间最短距离的路程发生变化。因此,只需判断:
map[i][1]+map[1][j]