LoRa网络信道检测与失败重发机制

1.1基本思想

本网络防碰撞算法主要基于非时隙CSMA/CA算法,非时隙CSMA/CA算法中没有RTS-CTS消息机制,在数据帧较短的情况下能够提高网络传输效率,因此较适用于对于网络的传输效率和实时性有一定要求的LoRa™无人机网络。

在本网络的防碰撞机制中,首先要进行空闲信道活动检测(Clear Channel Assessment, CCA),信道活动检测会检测无线信道上的LoRa™数据包前导码,如果没有检测到LoRa™前导码,则说明信道空闲,可以开始数据传输。反之,如果检测到了前导码,则说明当前信道已被其他设备占用,此时,当前设备会进行随机延迟退避,然后继续进行CCA检测,直到数据包成功发送或者超出最长退避时间,在超出最长退避时间后,会再进行一次随机退避,然后进行重试,直到重试次数为零方认为发送失败。整体流程如图1-1所示。

LoRa网络信道检测与失败重发机制_第1张图片

图1-1 LoRa™无人机网络防碰撞算法流程图

 

1.2信道检测机制

在LoRa™通信中,由于采用了扩频调制技术,在存在低于接收机底噪声的信号在使用信道时,使用RSSI值来判断信道是否干净无疑是行不通的,为了解决这个问题,可使用信道活动检测器来检测其他LoRa™信号。

信道活动检测(CAD)是以尽可能高的功耗效率检测无线信道上的LoRa™前导码,在CAD模式下,SX1278快速扫描频段,以检测LoRa™数据包前导码,它与RSSI值无关,即使信号强度低于接收机底噪,仍然能够将LoRa™信号检测出来,因此其对于信道检测的可靠性要远远高于直接检测RSSI的方式,其处理流程图如图1-2所示。

LoRa网络信道检测与失败重发机制_第2张图片

图1-2 信道活动检测(CAD)流程图

1.3发送失败重发机制

    如果在超出CCA重试次数之后信道检测仍然失败,则认为本次发送失败,会将待发送数据写入发送失败缓冲区,由主程序按一定的时间周期进行重发(每一次重发过程仍然会先进行CCA检测)。写入到发送失败缓冲区中的数据会由RTC控制,在每隔一秒的延迟后进行重发,每进行一次数据重发,重发次数(现固定为4次)减一,直到重发次数为零才会最终认为发送失败,丢弃此数据帧,发送失败后的处理流程如图1-4所示。

LoRa网络信道检测与失败重发机制_第3张图片

图1-3 发送失败处理流程

你可能感兴趣的:(LoRa网络信道检测与失败重发机制)