本文转载于: https://www.keneuc.cn/hangye/6809.html
参考数目:LoRa物联网通信技术-- 甘泉
LoRaWAN协议虽然有诸多优点,但是也存在一定的不足,需要不断地更新和发展。本节针对LoRaWAN协议的一些受限应用而展开讲述。由于LoRa是一个非常优秀的底层调制技术,许多低延迟或点对点应用都希望通过LoRa调制来实现,而LoRaWAN协议使用在这类方案中不合适,但是使用私有协议又太封闭而无法把行业和市场做大。因为上述原因,许多LoRa联盟企业着手开发LoRaWAN的扩展协议,在得到广大LoRa联盟会员认可后,可以变为正式标准。而有的公司针对一些特殊应用,利用LoRa的调制特点和LoRaWAN的网络优势衍生自己的协议,并努力推广为LoRa联盟的分支协议。扩展标准的优势是可以在LoRaWAN协议上直接增加,向下兼容,而衍生标准的特点是无法与LoRaWAN兼容,形成独立的一支标准流派。
本节根据LoRaWAN的几个局限点展开讲解:
(1)LoRaWAN单跳结构限制了LoRa传输的距离,在极端环境下需要中继的方式将信号从深度室内覆盖的区域传出来。从而引出了LoRaWANRelay协议。
(2)如果LoRaWAN的两个终端设备需要完成通信和互控,由一个终端设备发起,通过网关到网络服务器和应用服务器,再下行到网络服务器、网关,最后到达被控终端设备。即使这两个设备非常靠近,在LoRaWAN标准中也需要按照此流程,即使网络状况良好,其通信时长也要0.5s。一旦上行通道遇到丢包,下次重传需要2s之后,实时性和效率太差。为此,阿里巴巴开发了基于LoRaWAN协议的终端设备与终端设备通信的协议,命名为LoRaWAND2D。
(3)智能家居等应用,对节点有高稳定性及高实时性要求,还需要具备群组广播功能。甚至当系统断网后,依然可以实现自动化互控智能家居的需求,同时还需要满足低成本、小尺寸等要求。根据如上需求,Yosmart公司开发了YoLink智能家居协议。
在许多的LoRa应用中,都存在由于墙太厚,终端设备无法与网关通信的问题。而为此额外增加多个网关,无论是在施工难度还是整体成本上都是很麻烦的一件事。如果有一个中继器,那么这个问题就可以解决了,如图6-7所示。在许多水表和气表的LoRa私有协议应用中,都采用电池供电的中继器方案。采用中继器的方案可以节省网关和施工,在表计行业很常见。在5.1.3小节中LoRa的Mesh网络架构就是使用中继 实现抄表的案例。但是LoRaWAN协议在建立之初规定了必须单跳的星状网络结构,限制了此类中继的应用。单跳规定限制严格的原因是
LoRaWAN标准制定时初期,标准制定者对LoRa的信心太足,认为再恶劣的环境LoRa都能传出信号。主要原因是中国的建筑更密集,且表计放置环境恶劣,国外的标准专家没有意识到。为了弥补这个硬伤,多家LoRa联盟会员开发了Relay协议。
图6-7 中继方案应用示意图
这个中继器必须具备安装方便(不接外部电源),维护方便(稳定且低功耗),而且协议兼容(所有的LoRaWAN用户可以使用),低成本。
(1)兼容性:
(2)Class支持种类:
(3)安全性:
(4)设计总则:
根据上述中继器的要求,其硬件实现的方式为一个最简单的LoRa模组,其带有一个大电池,电池要求大于或等于2A·h。如图6-8所示,此种方案是成本最低,功耗最低,安装也方便的中继器实现方式。
图6-8 中继器硬件模块图
当中继器架设后,信息流的流程如图6-9所示。
(1)原有的终端设备发起正常的入网申请。
(2)由于终端节点的信号被厚墙阻挡,信号太弱,网关无法解调,则无法收到入网应答,入网失败。
(3)终端设备发起Relay唤醒帧,中继器被唤醒。
(4)终端设备发起入网申请,中继器接收到入网申请数据。
(5)中继器将收到终端设备的入网申请转发,信息传递到网关。
(6)网关下行接受入网应答信息。
(7)中继器将网关的下行信息转发给终端设备。
(8)终端设备发起Relay唤醒帧,中继器被唤醒。
(9)终端设备发送上行信息,中继器接收到上行信息。
(10)中继器将收到终端设备的上行信息转发,信息传递到网关。
(11)网关发送下行应答信息。
(12)中继器将网关的下行信息转发给终端设备。
在上述通信过程中,中继器一直以该终端设备的身份对着网关“传话”,所以LoRaWAN网关不能解析出收到的数据是Relay传来的还是终端设备直接传来的。在LoRaWAN网关“眼中”,只有一个终端设备按照正常的LoRaWANClassA方式与网关进行通信。这就是Relay协议对于LoRaWAN兼容的优势。
图6-9 Relay入网流程图
Relay还可以代表多个终端设备与网关通信,同样网关收到的数据解析为多个终端设备通信,并不能意识到Relay的存在。
Relay为了省电,不能一直处于监听状态,只能间歇性地处于监听状态。图6-10所示为一种Relay的方案,在两个不同唤醒频道(与LoRaWAN的上行与下行通道不同专门开辟的两个信道),采用 SF=7、BW=125kHz或者SF=8、BW=500kHz作为LoRa调制模式。Relay在每个信道每秒监听2ms时间,采用CAD模式。中继器一旦检测到有对应扩频因子和带宽的信号会唤醒接收窗口,接收后面的数据。Relay模式下间隔时间和扩频因子是可以设置的,跟系统的延时和功耗要求相关。监听时间是跟扩频因子和带宽的配合相关的,一般采用SX126X系列最少需要完全接收一个码元长度,常用的监听长度为2个码元,监听时间越长误唤醒率越低,功耗越高。这里设置的2ms就是按照LoRaWANSF=7模式下2个码元长度设置的。
图6-10 Relay唤醒信道时序图
而终端设备唤醒采用可变长度前导包唤醒的方式,针对同步唤醒和异步唤醒采用不同的前导Preamble长度唤醒包。图6-11所示为长前导唤醒包,应用于异步唤醒模式,而短前导应用于同步唤醒模式。可以类比5.1.2小节中同步下行主动模式和异步下行主动模式。
图6-11 Relay长前导包示意图
在终端设备第一次入网时,必须使用异步(Unsynchronized)设备Relay上行模式。图6-12所示为Relay异步唤醒的上行链路示意图。终端节点通过一个带有上行数据长前导的唤醒包在唤醒信道2唤醒中继器,中继器将上行数据按照标准LoRaWAN的通信方式在LoRaWAN标准信道与网关通信进行数据交互。中继器完成上行数据传输后,会在刚刚通信的唤醒信道2给终端设备一个ACK,确认数据已经发往网关。
图6-12 Relay异步唤醒上行链路示意图
设备还存在同步(Synchronized)唤醒Relay的模式。图6-13所示为Relay同步唤醒的上行链路示意图。终端设备已经与Relay建立通信后,可以保持这种同步关系。在下次数据传输时可以采用短前导包唤醒方式。除此之外其信息传递流程都与异步唤醒方案相同。
图6-13 Relay同步唤醒上行链路示意图
一次完整的Relay唤醒通信的传输图如图6-14所示,当中继器在RX1接收窗口或RX2接收窗口收到网关的下行数据后,会回到原来唤醒信道传输网关的下行信息,此时终端设备会在唤醒信道打开一个接收窗口RX3用于下行数据的接收。由于RX1窗口和RX2窗口前的等待时间是可以设定的(系统默认分别为1s和2s),RX3前的等待时间为17s。
图6-14 Relay唤醒通信的传输
在完成终端设备与中继器的连接后,选择同步唤醒方案还是异步唤醒方案主要看该终端设备的发包频次,当发包比较频繁时一般采用同步唤醒方案,采用同步唤醒的特点如下。
(1)结构简单,且知道终端设备的连接状况。
(2)省电要求:假定每小时终端设备需要发包一次,则时钟偏移约为200ms(假设设备和Relay晶振的频率偏移都是30×10-6,1h最大的时间偏移为3600s×30×10-6×2,乘以2是因为存在网关和终端节点频率偏移方向相反的情况)。那么,采用200ms的唤醒前导即可实现。对比原有的1s的异步长前导唤醒包节约80%的功耗。
如果终端设备每天只发一个通信数据,那么应该采用异步唤醒的方案更省电。
在一些LoRaWAN的兼容项目中,原来的项目已经部署了大量含有私有协议的终端设备和少许网关。现在需要这些设备都接入已经部署好的LoRaWAN网络中,这时候就可以使用上述Relay功能的扩展方式。这些私有协议的网关构造与中继器的结构是完全相同的,可以把原有的私有协议网关改造成LoRaWAN的中继器,对原有的终端设备继续使用 原有的LoRa私有协议,而增加一个新的链路对LoRaWAN网关通信即可。这样在NS端看起来是无数个私有协议的终端设备变为了LoRaWAN设备。
早期LoRaWAN着眼于城域网或大型的运营商场景,大规模的核心网供应商都是与运营商合作,提供服务。随着物联网发展,室内或小场景的应用市场崭露头角,大量的室内小场景应用采用LoRa与ZigBee技术,用在智能单品、家居、园区等。若LoRaWAN可以进入此应用场景,可以带来新的市场影响力。
目前LoRaWANClassA/B/C三种模式无法很好地覆盖上述使用场景。该场景对功耗和响应时间都有一定要求(功耗低、响应时间快),同时本地控制也有需求。所以需要设计一种新型的LoRa设备与设备通信的快速模式支持上述场景,推动行业发展。D2D为设备到设备(DevicetoDevice)的意思,代表设备与设备的通信,也可以理解D2D是在Relay协议上的延伸。
D2D协议实时性较高,需要实现亚秒级响应。在传统的LoRaWAN协议中由于需要NS和AS数据处理,无法保证实时性。
D2D协议要求较低功耗,不能持续打开接收窗口,因此低功耗和实时性是相互矛盾的。D2D整体功耗是介于ClassB和ClassC之间,实时性同样介于ClassB和ClassC之间。功耗说明,ClassB和D2D功耗依赖于pingslot周期以及D2D唤醒周期。整体上ClassB采用4s/8s开窗周期功耗接近于D2D采用0.5s/1s周期功耗。
D2D要求数据可在本地流转,无须上云,设备间互相通信是D2D的初衷。
D2D协议整体采用空中唤醒机制。
无线唤醒也可以理解为空中唤醒(WakeonRadio),顾名思义,通过无线的手段唤醒处于休眠的节点模块。
其原理为,唤醒方在发射有效数据前加一段较长的前导码;被唤醒方周期性地起来监听空中的无线信号,一旦捕捉到正确的LoRa前导码,则进入接收数据状态;若监听时间内未收到正确的LoRa前导码,则立即进入休眠,等待下一次的唤醒监听。为了保证每次都能正常唤醒,唤醒方发射前导码的时间应略大于被唤醒方的时间间隔,如图6-15所示。
图6-15 无应答无线唤醒示意图
若被唤醒方需应答数据或确认帧,则在完整地接收数据包后,发射应答数据,如图6-16所示。
图6-16 唤醒应答无线唤醒示意图
目前D2D模式只使用无应答无线唤醒机制,应答处理仍通过对下行确认回复ACK。其系统交互图如图6-17所示。
D2D协议是LoRaWAN和Relay协议的延展,其入网机制与LoRaWANRelay几乎一致。重点在于设备与设备间的主动互控,不需要通过网关。
D2D模式具有如下优点:
D2D的设备仅需升级节点SDK。
图6-17 D2D系统交互图
同样D2D存在一些缺点:
在D2D协议推出之前,LoRa在室内小场景和智能家居等场景中几乎没有任何声音,虽然有不少使用LoRa做智能家居的企业,但是一直没有一套统一的标准。当D2D的标准提出后,得到了市场的广泛认可。
从应用场景看,D2D的场景与ClassB的场景很相似,只是增加了终端设备间的互控和异步下行唤醒功能。
YoLink协议来自一家专注于智能家居的科技公司Yosmart。Yosmart公司的几位创始人都有十几年的智能家居领域经验,曾经使用多种无线技术开发智能家居产品。Yosmart吸收Z-wave、Dash7、LoRaWAN等多种协议优势,并利用LoRa技术特点开发了YoLink协议。
图6-18所示为YoLink的构成框架,包括终端设备、网关、网络服务器、应用服务器,完全与LoRaWAN相同。除了终端设备互控部分外,YoLink协议的通信流程和安全算法与LoRaWAN也完全相同。其特点如下:
图6-18中YoLink协议的网络架构与LoRaWAN的网络架构完全相同,都是包括终端设备、网关、网络服务器和应用服务器这4部分,且其网关的功能和LoRaWAN网关功能也完全相同,只是实现LoRa数据解析发射的透传。与LoRaWAN最大的不同是云讯终端设备内部通信,且增加了终端设备组网的安全性。
YoLink网络设备通信图如图6-19所示。
图6-18 YoLink协议网络及安全示意图
图6-19 YoLink网络设备通信图
YoLink的D类设备唤醒采用与LoRaWANRelay相同的方式,虽然单信道网关只能支持一个通道解调和发送,但是依然将上行、下行、唤醒三个信道分开,如图6-20所示。这样的好处是减小误唤醒和相互干扰。
图6-20 YoLink的D类设备唤醒示意图
从上述YoLink协议中我们看到了YoLink不仅具有智能家居的常见互控特点,而且学习了LoRaWAN的网络管理方案。对于需要快速处理的事件放在本地互控操作,对于应用层下行事件以及本地操作完成的事件通过网络服务器操作。当多家用户都采用YoLink协议后,相当于无数个小型的LoRaWAN网关布置在每家每户,同样的数据可以通过自家和邻居的网关到达网络服务器和应用服务器。
如图6-21所示,当发生火灾等意外情况时,即使自家的网络受损,邻居家的网关依然可以通过家中的以太网将数据传到应用服务器,进行报警。
YoLink的优点非常明显,可以实现没有网关时的互控功能,具有非常好的安全性和网络扩展性。YoLink协议的ClassD定义与D2D协议非常相似,都是采用异步下行控制方式。与D2D最大的不同是YoLink协议主要针对智能家居的应用,是一个封闭的LoRa私有协议。
图6-21 YoLink网关共享案例