王韦刚,丁 良,曹祥春
(1.南京邮电大学 电子与光学工程学院 微电子学院,江苏 南京 210046; 2.江苏赛达电子科技有限公司,江苏 句容 212400)
随着城市化和村镇建设的不断发展,抄表计量日趋增加,人工抄表既损耗了大量的人力、物力和财力,也容易发生漏抄和错抄的情况[1],传统的人工抄表方式已不能满足当今社会的需求。远程抄表不需要工作人员到现场就可以做到数据的抄取以及表端状态的实时监测,且相较于有线抄表需铺设大量长距离线路、维护成本高等缺点[2],具有非常明显的优势,这将会大大提高工作效率和资源利用,因此具备广泛的应用前景。
目前常见的无线抄表方案有:基于Zigbee的无线抄表方案和基于LoRa自组网的抄表方案。Zigbee技术具有高可靠性、低成本、低功耗以及安全性好等特点,因此被广泛应用在无线通信领域[3]。由于Zigbee的通信频率高,传输过程中信号衰减得较快,同一频段下还有WiFi和蓝牙信号的使用,因此通信距离较短[4],且Zigbee组网复杂,网络很容易产生同频干扰进而影响传输,穿透障碍物的能力也差[5]。
基于LoRa自组网的抄表方案一般采用星型网络结构,与网状结构相比,不需要采用复杂的多层网络结构因而结构比较简单[6]。此方案虽然弥补了Zigbee抄表的缺点,但由于其网络结构导致其工作效率低。为此,本文提出了一种基于LoRa的新型远程抄表方案,该抄表系统工作效率高、传输距离远、功耗低[7],通过中继路由将无线信号中继转发,建立了可靠的传输路径,能够很好地满足无线抄表系统的需求。
基于LoRa的远程抄表系统由普通节点、路由节点和汇聚节点组成。普通节点实现对表端的管理以及数据的抄读,普通节点相互之间不能通信;路由节点只负责对周围普通节点的管理,路由节点不负责对表端数据的直接读取;汇聚节点负责对所有路由节点直接管理,网络数据的出口在汇聚节点。所有普通节点抄得的数据通过路由节点上传至汇聚节点,汇聚节点可与上位机连接以实现整个系统的管理。对于距离汇聚节点较近的路由节点,路由节点可与汇聚节点直接通信,对于距离较远且无法与汇聚节点直接通信的路由节点,路由节点与汇聚节点之间的通信可以通过近端区的路由节点中转完成通信。网络拓扑图如图1所示。
图1 系统网络的拓扑图
本文抄表方案采用的微控制器是由意法半导体公司采用超低漏电工艺和优化的体系结构研发的超低功耗8位微控制器STM8L151C6[8]。最高工作频率为16 MHz,拥有64 KB的大容量闪存、2 KB的E2PROM以及4 KB高速RAM[9],能满足无线集抄系统对性能和功耗的要求。抄表系统的MCU外围电路图如图2所示。
图2 MCU芯片及外围电路
SX1278芯片是SEMTECH公司设计开发的低功耗长序列收发芯片,工作频段为137~525 MHz[10]。它利用了先进的扩频调制技术和编解码方案,增加了链路预算,具有更好的抗干扰性,同时对多路径衰落和多普勒频移具有更高的稳定性[11-12]。最大接收灵敏度为-148 dBm,最大发送功率为+20 dBm,总的链路预算是168 dB[13]。LoRa在最大发射功率及开阔无遮挡的地理环境条件下,LoRa芯片的最远通信距离为2~5 km,即使是在地形复杂、需要多次绕射的居民区,也可以达到百米,正是因为LoRa的各种优势,才被广泛应用在无线抄表、自动化、农牧业及工业检测等领域。由于SX1278是半双工收发器,因此收发数据时要进行模式切换[14],设计中使用PE4259切换发送和接收电路,Ctrl2用于控制天线接通发射和接收电路。通信开关切换电路与SX1278外围电路如图3和图4所示。
图3 通信收发切换电路
图4 SX1278芯片与外围电路
除了采用的晶振不同,系统中各种节点的硬件设计基本相同,主要通过软件将普通节点、路由节点和汇聚节点三者区分开,在抄表系统运行过程中,表端与普通节点通过UART相连接,完成数据的采集以及指令的下发,实现对整个系统的控制。采用符合行业标准的锂电池给普通节点和路由节点供电。
由于系统的主控芯片均采用了STM8L系列,其功耗为同类中最低。该芯片共用5种工作模式:等待模式、低功耗运行模式、低功耗等待模式、活动暂停模式和暂停模式。系统或电源复位后,微控制器处于运行模式。器件支持5种低功耗模式的切换,以实现低功耗之间的最佳折衷消耗。电路板上设计了2种晶振,采用了低速振荡器(LSI或LSE)时,闪存和数据EEPROM可及时通过电压调节器配置为关闭状态。
最终,系统的节点休眠时功耗最低在4 μA左右;在唤醒后接收功耗为16 mA左右;数据上传时功耗约为100 mA。
系统采用自主研发的通信协议SD1. 0,普通节点采用休眠—唤醒—休眠的循环工作模式,有效降低了传输过程中的功耗。数据传输方式采用数据帧模式,传输序列为二进制字节流。为了减少无线传输所受到的干扰,保证数据的正确性,数据传输中对数据进行循环冗余校验CRC 校验[15]。在招测过程中,汇聚节点向路由节点发出招测指令,近端区路由节点下发至各自管理的普通节点以及远端区的路由节点。普通节点将数据集中返回上级路由节点,再集中传至汇聚节点。抄表系统的方式可分为簇抄、单抄和全抄,簇抄是指抄取某一个路由节点下所有普通节点的数据,其数据帧类型值为0x01;单抄是指抄取某一路由节点下某个或者某几个普通节点的数据,其数据帧类型值为0x02;全抄则是抄取所有普通节点的数据,其数据帧类型值为0x05。系统实现了一对多的映射关系,为网络远程管理提供了便利。另外,抄表报文格式统一,但长度不统一,不同抄表方式的长度可以不一样。例如,簇抄时,除了格式中的帧头、帧尾、类型位、数据位和校验位以外,还需说明所抄的路由ID;而单抄时,需要另说明所抄路由ID以及普通模块的TNI号。
普通节点通过UART与表端相连,获取数据,再由LoRa网络上传数据和接收指令。模块上电后,首先搜寻附近的信号,普通节点在规定时隙内收到来自路由节点的同步广播,向路由节点回送LOGIN_ACK并等待ACK回应,路由节点收到后回应ACK并将分配好的TNI发送给普通节点,普通节点实现登录网络完成。登陆后普通节点会在每个周期接收路由节点转发的同步广播,该广播从汇聚节点发起。如果若干周期后都没有接收到路由节点转发的同步广播,就会退回初始状态,重新搜索路由节点。如果没有接收到招测帧,则发送时延后4个时隙睡眠。普通节点工作流程如图5所示。
图5 普通节点工作流程
路由节点的登录有一定的优先级,如果接收的同步广播帧是来自汇聚节点,立刻将该路由节点置为一跳路由;如果接收到的广播帧是来自其他路由节点的广播帧,则暂时保存,继续接收其他广播帧;如果接收到的所有广播帧里没有汇聚节点的广播帧,则选取跳数最小的路由模块为父节点,将该路由节点的跳数加一。
路由节点的主要职责包括:
① 式在接收时隙,接收上一跳节点的同步广播,执行,需要时转发;接收上一跳路由的招测信令,执行或转发,有转发任务时,产生唤醒消息;有消息(数据或节点信息)要向上一跳路由发送时,立即转发(来自下一跳路由);在睡眠监视和睡眠操作时,如果有转发,还需处理转发引起的唤醒,否则处理正常接收时隙睡眠。
② 在发送时隙,转发来自上一跳路由的同步广播或招测信令;睡眠时间处理时,如果无招测,发送后延时4个时隙睡眠;有本地招测信令时,根据命令性质,产生睡眠时间;接收来自下一跳路由或普通模块发来的信息。
路由节点工作流程如图6所示。
图6 路由节点工作流程
汇聚节点是整个抄表网络的汇聚中心,负责建立和维护抄表网络[16]。它通过UART与上位机直接相连,以实现路由节点传递过来的数据入库。汇聚节点每接收到上位机通过UART发来的指令,就会解析指令内容,然后向下级路由节点发出解析后的命令。汇聚节点上电后,会周期的发出同步广播帧。接收到路由节点分配请求,它会为每一个登录的路由节点生产一个路由ID,ID存储在路由表中,方便上位机查看。每次路由节点登录时都会先检查路由表,如果有路由节点掉线,那么该节点在路由表中的位置就会空出来,当给新登录的路由节点分配ID时,就会优先分配空出来的ID。
搭建实验测试环境,验证该抄表方案的有效性和可行性。测试搭建了4跳网络,共使用汇聚节点1个、路由节点3个和普通节点12个,每个路由节点周围放置4个普通节点。考虑到实际情况,招测的数据都是预先写入普通节点,且每个普通节点写入的数据都不一样,用来验证招测的准确性。先后进行了簇招、单招和全招的测试,将簇招接收到的数据整理成簇招结果如表1所示,单招测试为随机招测3个路由中的1~2个节点,结果返回正确,全招测试返回也正确。最后验证系统的稳定性,在3 h内按10 min一个周期进行自动全招,对比接收数据个数和值,能够准确无误地招回数据。
表1 簇招结果
测试结果表明,基于自主研发的通信协议SD1. 0,能准确无误地完成各种招测命令。
LoRa技术非常适合应用于远距离无线抄表系统中,系统采用了SD1. 0自主协议,实现了高效率、低功耗、自组网的远距离无线抄表系统,完成了管理中心远程抄取表端数据的功能。本文对系统整体设计结构、硬件设计、节点软件设计和通信协议设计进行了详细分析,从实验结果可知,系统运行稳定、通信距离远、功耗低、组网快速方便,很好地满足了无线抄表系统的需求。