LoRa class A, class B, class C三种工作模式

class A

Class A 是 LoRaWAN 强制要求所有 LoRa 终端设备必须支持的通信模式。在Class A中,终端设备只在有数据需要处理或发送的时候才从休眠模式中醒来,并且一切通信都只能由发送终端设备主动发起,网关一直处于侦听模式。当发送终端设备进行一次发送(TX)之后,会等待时间T(RX_DELAY1)之后初始化一个接收窗口RX1,若RX1内发送终端设备未收到任何数据,则会在T_(RX_DELAY2)时间后再初始化一个接收窗口RX2,继续等待接收数据,窗口关闭后则进入睡眠模式。网关可在此窗口时间内向终端设备发送数据

接收窗口RX1一般是在上行后1秒开始,接收窗口RX2是在上行后2秒开始

终端有数据了,就上报,顺便收一下服务器下发的指令。终端没数据的时候,服务器下发不了指令

class B

Class B 为需要双向交互的应用设计。在 Class A 的基础上增加了可以由网关主动唤醒发送终端设备的机制,网关每隔 T_Beacon 时间会发送一个 Beacon 来主动唤醒终端设备,在两个 Beacon 之间,终端设备的通信模式和 Class A 相同。通过 Class B 主动唤醒节点的方式,网关可以定期开启终端设备的下载和上传功能。相比 Class A,Class B 降低了数据的传输时延,但也增加了终端设备的能耗

有一个同步时隙beacon,还有一个固定周期的接收窗口ping时隙。(隔几十秒收一个数据。其他时候都在休眠)

终端和基站约定一个时间下发数据,终端和基站依靠beacon信号校对时间,确保约定的时间不会错位

ClassB的目的是使得节点具有在预定时间打开接收窗口(称之为ping slot)的能力。一个支持ClassB的网络,所有的网关都必须同步发送beacon

class C

Class C 用于时延要求高的应用,发送终端设备再发送完成之后会立即初始化接收窗口,若未收到任何数据,则会一直开启随后的RX2窗口持续侦听信道,用于接收网关返回的数据

在class A的基础上,在class A休眠期间,一直打开接收窗口RX2(几乎随时可以接收数据)

Beacon

LoRa一旦约定好了时间,基站就默认设备一定会在那个时间点接收,所以需要严格的时间同步。Beacon则是时间同步的最关键的地方

节点由ClassA切换到ClassB之前必须收到beacon,进入ClassB之后还需要周期搜索/接收beacon,从而同步时钟。Class B节点可能临时收不到beacon,此时节点要逐渐加宽beacon和ping的接收窗。如果收到beacon后2小时收不到新的beacon,节点需使用内部时钟保持同步