LoraWAN论坛
标题: LoRaWAN是否有重入机制? [打印本页]
作者: vippirate 时间: 2017-6-23 08:49
标题: LoRaWAN是否有重入机制?
我最近也在研究LoRaWAN协议,但有个问题没有明白,一、协议里没有定义设备离场么?比如gateway断电了,那么终端怎么确认自己连接不上gateway了?二、设备是否有重新入网机制? 我在看协议,但没有发现上述两个问题是怎么解决的。 多谢!
作者: BeyondDream 时间: 2017-6-23 11:22
本帖最后由 BeyondDream 于 2017-6-23 11:23 编辑
1) 终端发送 UPLINK 数据帧时,可以选择 confirmed data frame(要求 Server 确认),这样一来,如果终端没有收到 ACK,那么它知道通信失败。 如下图所示,终端第一次发送 Confirmed Data0,接收 ACK 失败;它再次重传 Confirmed Data0,直到接收 ACK 帧。
更详细的原理,请参考《LoRaWAN Specification 102》 Chapter 18 Page-61
[attach]17[/attach]
2) 设备一般在“上电”时,重新入网;
因为入网是 MAC 层的一个原语操作,如果有需要,调用以下代码,即可申请 OTAA 入网:
l_tMlmeReq.Type = MLME_JOIN; l_tMlmeReq.Req.Join.DevEui = chip_GetDevEUI();
l_tMlmeReq.Req.Join.AppEui = s_stNetSettings.a_byAppEUI;
l_tMlmeReq.Req.Join.AppKey = (uint8_t *)s_abyAppKey;
l_tMlmeReq.Req.Join.NbTrials = 3;
LoRaMacMlmeRequest(&l_tMlmeReq);
作者: vippirate 时间: 2017-6-23 11:36
非常感谢回复,可能我没有表述明白
举个例子,设备连上gateway之后,已经可以正常通信了;
下一步gateway突然断电,设备还是继续发送信息,只是收不到ACK了(对于需要ACK的消息而言);
这时候设备肯定会重传消息,但对于设备而言,它是怎么判断出是gateway出问题了?出问题后会不会再重新触发入网?
作者: vippirate 时间: 2017-6-23 11:37
代码里我可以重新调用入网操作,问题是LoRa协议里是否定义了这种重新入网的机制?
作者: BeyondDream 时间: 2017-6-23 13:54
1)终端无法”判断“出 Gateway 是否正常工作,这属于”网络维护“的范畴;
打个比方,您的手机(终端)无法打电话了,是”通信基站“挂了?还是”服务器“挂了?还是。。。。
解决这个问题,是由”电信运营商“来操作的。
2)出问题,为什么要”重新入网“呢?它能解决什么呢?
欢迎光临 LoraWAN论坛 (http://lora.timeddd.com/) |
Powered by Discuz! X3.3 |