, ,
(重庆邮电大学 移动通信技术重庆市重点实验室,重庆 400065)
LoRa(Long Range)是一种基于扩频技术的无线传输方案,作为最近几年刚刚兴起的低功耗广域网技术,其以覆盖范围广、功耗低、使用免授权频段等特点而广受关注[1]。与传统的ZigBee、WiFi、蓝牙等短距离无线通信技术相比,LoRa更适合用在对数据传输速率要求较低,能量受限且节点分布范围较广的传感网络中。利用LoRa技术低功耗长距离的特性,设计人员可以用较少的节点部署实现更大范围的通讯,同时还可以免去多频次的电池更换和大量的中继部署成本[2]。目前,全球已有多个国家和地区基于LoRa组建了全国或者全区域性的网络,中国亦有基于LoRa技术组建的局域网络已投入运行[3]。与同为低功耗广域网技术的NB-IoT相比,LoRa工作在免授权频段会更受欢迎,因其不但适合由运营商主导建立大范围的网络,同样适合私人企业或者个人部署专用小型网络,同时LoRa在满足行业客户协议细节上也更为灵活[4]。因此,LoRa已广泛应用于环境监测[5]、家庭安全防护[6]等领域。本文也将通过LoRa技术的应用实现远程自动抄表系统。该系统可在不打扰用户的情况下自动读取用户智能表中的数据并通过LoRa上传至网关,再由网关通过网络通信上传至远端的服务器,不仅免去需要专人抄表打扰客户的麻烦,而且节省电力、自来水、燃气、热力等公司的运营成本。
本系统的架构如图1所示,本系统由服务管理中心、网关、中继、终端组成。一个服务管理中心下可接入多个网关,每个网关下可以接入最多6万多个终端,中继节点只在有些信号衰减较快,需要增加网关覆盖范围的场景中适当架设,即本系统采用较为灵活的网络架构。可以采用由服务管理中心、网关、中继、终端组成四级架构,也可以采用由服务管理中心、网关、终端组成的三级架构。其中网关与终端节点、网关与中继节点以及中继节点与终端节点之间使用LoRa无线扩频通信,网关与服务管理中心之间通过以太网进行网络通信。
图1 系统架构
终端节点采集完用户电表数据后通过LoRa将用户数据上传至网关,不能直接接入网关的终端节点通过中继转发至网关。网关将接收到的各终端节点数据通过串口转以太网后通过网络通信发送给远程的服务管理中心,最终由服务管理中心将数据进行相关处理后分类储存,以供用户进行查询、缴费等操作。
因LoRa具有远距离通信的能力,故LoRaWAN采用单跳的星型网络架构[7]。但课题组在进行实际的测试结果表明,LoRa在建筑物内部墙壁较多的场景中,存在因信号衰减过快导致覆盖范围不足的问题。针对该问题,本系统采用相对灵活的网络架构,使原本的星型组网可以兼容中继节点的存在。为了保留LoRaWAN协议方案的部署便捷、拓扑简单、时延较小、便于维护等特点[8],本系统的一个中继节点只为单个终端节点提供中继服务。采用以单跳为主,两跳为辅的策略,中继只为个别节点无法直接入网而单独架设。
由于LoRaWAN的主体Class A采用纯Aloha无线通信协议[9],在省电和简单的同时,却无法避免信号之间冲突和由此导致的低效率。为解决此问题,本系统将类TDMA的超帧机制引入LoRa节点间的自组网及数据通信过程,通过网关给每个终端节点分配专有的数据传输时隙达到避免消息传输碰撞和降低节点空闲监听时长目的[10]。
本系统将采用意法半导体推出的基于8位内核的超低功耗微处理器STM8LC8T6作为控制芯片,与32位的MCU相比,8位MCU功耗更低、体积更小,更适合无线传感网络。该芯片的最高工作频率为16MHz,同时拥有4KB的RAM和64KB的ROM,低功耗出色且性能稳定,这些参数都能满足本系统对工作环境的要求。无线通讯部分采用意法半导体推出的带扩频技术的SX1278射频模块,该模块是半双工传输的中低频收发器。工作频段为137~525MHz,设计者可在允许范围内自定义扩频调制带宽、扩频因子、纠错率,支持标准的GFSK、FSK、OOK、GMSK调制模式。其具有高效的循环交织纠错编码、接收灵敏度高、抗干扰能力强、发射功率可调等特性[11],非常符合系统设计要求。
3.1.1 终端节点与中继节点
终端节点的硬件模块主要包括采用STM8L151C8T6单片机的MCU模块、射频模块和UART转RS-485接口模块,其中射频模块包含SX1278、TCXO和SWITCH。SX1278实现LoRa无线信号的接收与发送,TCXO为SX1278高频电路提供高精度的时钟,SWITCH用来切换半双工的SX1278输入或输出状态。为了匹配用户家庭中四表合一的智能表所提供的RS-485接口[12],终端节点提供了UART转RS-485接口模块,该模块内置ADM3485芯片用来将单片机的UART电平转换为RS-485电平,从而实现与用户智能表的互联互通。中继节点与终端节点相比只是少了UART转RS-485接口模块,本节内容不在累述。
3.1.2 网关节点
网关节点主要负责节点的自组网,管理网内其他节点。组网后负责将终端节点及中继节点上传的用户数据通过网络通信上传至远端的服务管理中心,同时将服务管理中心的指令下发给终端。网关的MCU模块同样为STM8L151C8T6单片机、射频模块也与终端相同包括SX1278射频收发器、TCXO高精度晶振和SWITCH状态切换器,只是UART转RS-485接口模块被串口转以太网模块所代替,该串口转以太网模块可将UART接口转为RJ45接口,同时该模块内置数据转换协议能够将串口数据打包成网络数据包发送至指定的服务器。
本系统软件基于物联网操作系统contiki开发实现,contiki是一个开源的、易于移植的多任务操作系统。该操作系统是专门为无线传感网开发设计,支持进程阻塞机制,特别适合于内存受限的无线传感网系统中的节点使用[13]。单板开机后,系统首先调用硬件初始化函数进行硬件初始化,包括调用chip_Init()函数初始化主控芯片、调用SX1278Init()函数初始化射频芯片、调用clock_init()函数初始化系统时钟等。然后进行系统的初始化,包括调用process_init()函数初始化系统进程、调用etimer_Init()和ctimer_init()函数初始化对应的定时器以及自定义进程函数的初始化等。为实现系统的网络拓扑,本系统在LoRa的MAC层上方设计了LoRa的MAC子层通信协议,该协议可以避免节点数据传输过程中的碰撞问题,有效提高了数据传输的成功率。
3.2.1 MAC子层通信协议
MAC子层的引入使得本系统可以实现对中继的兼容,解决了LoRa在有些场景下覆盖范围不足的问题,同时在该子层引入TDMA也解决了LoRa纯Aloha协议数据传输碰撞导致的低效率问题。MAC子层通信协议通过网关主导组网过程实现对网络拓扑的控制,应用本协议的网内节点通过数据帧的形式进行数据传输,同时在接收端对数据帧进行循环冗余校验,以保证接收数据的准确性。
本MAC子层通信协议通过引入超帧机制来实现节点间的时分复用。网关通过周期性的广播信标(Beacon)帧来控制超帧的开始,即终端节点将收到网关广播Beacon帧的时刻视为超帧的开始时刻。信标使能的超帧传输机制可由竞争接入时段(CAP)和非竞争传输时段(CFP)构成[14]。在CAP时段,终端节点以Aloha的方式向网关发送Request消息,直至收到网关回复Accept消息。Accept消息中包含终端节点的入网地址字段,该字段的地址信息同时也是终端节点在CFP时段进行数据发送的时隙序列号。如果终端节点已经获得入网地址,则在之后超帧的CAP时段不再发送Request消息。终端通过解析Beacon帧获取的超帧信息和时隙信息与时隙序列号进行相关运算即可确定本节点该何时向网关发送User_data消息。除了这种广播抄表方式外,协议还提供了单播的抄表方式。即如果网关在一个超帧内没有收到某节点上传的用户数据,则在下一个超帧的该节点的时隙内向该节点下发Cmd_up指令,要求其上传用户数据。如果在连续两个超帧内都下发指令且都没有收到该节点上传的用户数据信息,则视该节点发生故障脱离网络,收回其入网地址与发送时隙,该节点经修复正常后需重新入网。
本协议消息采用变长模式,以Beacon帧格式为例如图2,其中帧头部分为7字节,包含1字节的Mtype字段,1字节的版本号字段,2字节的目的地址字段和2字节的源地址字段以及1字节的数据长度字段。帧尾为1字节的标志位,其中帧头和帧尾之间的部分为数据字段,不同的消息放入不同的内容且长度可变。系统工作中的Mtype字段及对应的消息类型见表1。
图2 Beacon帧格式
表1 Mtype对应的消息类型
3.2.2 节点软件设计
网关的工作流程图如图3所示,网关首先广播Beacon帧并进入超帧的CAP时段,终端节点收到Beacon帧后,向网关发送Request消息请求入网地址及时隙,网关收到Request消息后,单播Accept消息给该节点,终端节点收到Accept消息后完成入网。在超帧的CFP时段,网关接收终端上传的用户数据并发送至服务管理中心。
图3 网关工作流程图
中继节点只是在个别场景下起到辅助节点数据传输的作用,其在收到网关广播的Beacon帧并开始超帧进入CAP时段后,先进行解析获取超帧及时隙信息,然后再中继广播,收到终端节点的Request消息后获得被中继节点的设备地址,然后再向网关单播该Request消息。收到网关发的Accept消息后获取被中继节点的发送时隙的时序,然后再转发给终端节点。在上述这个过程中,如果CAP时段在某一时刻结束则立即中断该过程等待下一个超帧后继续上述过程。完成中继入网并进入CFP阶段后,等待终端发送时隙到来,准备中继终端上传的用户数据信息。
终端节点在收到Beacon后,先判断是否已经入网,如果没有入网则需要先发送请求入网。如果已经入网,则只需等待本节点在本次超帧的发送时隙到来,待发送时隙到来后读取用户表数据并上传至网关。在此过程中,网关可能会因为噪声干扰的原因没有正确接收到用户数据而向终端下发数据上传命令,终端如果收到网关下发的上传命令,则需要再次上传用户表数据。
为了测试本方案在相较LoRaWAN协议方案进行改进后的系统性能,本文进行了两种不同的测试方案,第一种测试方案用来测试新机制的覆盖范围;第二种测试方案用来测试数据传输成功率及网关吞吐量。两种测试方案中设置的LoRa射频工作参数均相同,工作频段为470 MHz,发射功率为20 dbm,扩频因子为10,带宽为62 500 Hz,前向纠错码率4/5。并就这两种测试方案分别搭建了两种不同的测试场景。
第一种测试方案搭建了由一个网关节点、一个中继节点、一个终端节点以及一台安装有数据库管理软件的个人电脑组成的测试系统。为了贴近系统方案真实的工作环境,测试场景选择在一座居民楼内进行。测试中每次的发包数为100,每个包长度为14字节,首先测试终端直接发数据包到网关的数据丢包率及最大信号强度值(RSSI)与穿透楼层的关系见表2。
表2 终端直接与网关通信场景
无信号由表2可知,终端与网关之间随着相隔楼层的增加,丢包率也随之增高而最大RSSI随之降低,当两节点之间相隔不超过两层的时候丢包率较低。因而将中继节点固定在与网关相距两楼层的距离较为合适。此时测试终端经过中继给网关发送数据的丢包率与穿透楼层的关系见表3。
由表3可知,终端经中继与网关节点之间在相隔不超过四层时丢包率仍然较低,一个网关上下最多可覆盖九个楼层相比LoRaWAN协议方案的单跳机制有着更大的覆盖范围。本方案灵活的网络架构在保持LoRaWAN协议方案拓扑简单、易于维护、时延较小等优点的同时提高了在个别场景下的覆盖范围,能够支持更多的应用场景。
第二种测试方案搭建了由一个网关,五个终端以及一台安装有数据库管理软件的个人电脑组成的测试系统。本测试方案在空旷的环境下进行,五个终端分别以LoRaWAN协议机制和本方案的超帧机制的方式向网关发送数据包,每个数据包大小为10字节。其中在超帧机制下,每个终端的数据传输时隙为12ms,每轮的周期为60ms,测试进行100轮。LoRaWAN协议机制下的测试需要在同样的时间内将100个数据包发送完。两种不同机制下网关成功接收到每个终端发送的数据包个数见表4。
表4 两种机制下网关接收包数
由表4知,LoRaWAN机制下数据传输的成功率为43.8%,而本方案的超帧机制数据传输成功率为95.4%,远高于LoRaWAN协议方案。同时可以计算出LoRaWAN机制下网关的吞吐量为0.365 kbps,而本方案的网关吞吐量为0.795 kbps,同样高于LoRaWAN协议方案。从上述测试结果可知,本方案在数据传输成功率和网关吞吐量方便较LoRaWAN协议方案有着较为明显的优势。
综合以上测试结果表明,本方案系统保留了LoRaWAN协议方案网络拓扑简单、便于维护、时延较小的特点,同时相较于LoRaWAN协议方案具有更广的覆盖范围、更高的数据传输成功率、更大的网关吞吐量等优势。为四表合一的智能表提供了更为可行的远程自动抄表方案。为电力、自来水、热力、燃气等单位提高了工作效率和服务质量的同时降低了运营成本。
本文将LoRa无线扩频通信技术与以太网相结合,自主设计LoRa的MAC子层协议,同时在该MAC子层协议引入TDMA机制并实现对中继的兼容。文章从系统架构、网络拓扑、软硬件平台及节点工作流程等方面进行了较为详细的分析。并针对本方案的改进机制进行测试,搭建了两种不同的测试方案分别测试本方案增加对中继兼容的改进和在MAC子层引入超帧机制的改进效果。经过两种测试方案的测试结果表明,本系统方案针对LoRaWAN协议方案存在问题的改进措施在各项参数上均有所提高,达到了设计本系统方案的目的,具有较为广泛的应用价值和应用前景。