终端入网
新手求教,如何操作终端入网,有无例子可供参考呢?LoRaWAN 终端入网原理,请参考《LoRaWAN介绍7 入网》
DevNonce和AppNonce
1 用途:这 2 个参数用于 LoRaWAN Node 的 OTAA 入网认证,它们保证了协议的“安全”。
详情请参考:《LoRaWAN介绍9 安全》 https://blog.csdn.net/jiangjunjie_2005/article/details/54410085
2 来源:AppNonce 由 server 生成随机数;
DevNonce 由 node 生成的随机数。
3 可靠:node 生成的 DevNonce 是“真正的随机数”-- 它由提取了 RF 的实时 RSSI 值的“最低位”。
代码如下:
LoRaMacDevNonce = Radio.Random( );
/*-------------------------------------------------------------------------*/
uint32_t SX1278Random(void)
{
int8_t chCnt;
uint8_t byIrqMask;
uint32_t ulRandVal;
/* Save the state of IRQ mask of LoRa as well as disable all IRQ. */
byIrqMask = SX1278Read(REG_LR_IRQFLAGSMASK);
SX1278Write(REG_LR_IRQFLAGSMASK, 0xFF); /* Bit=1 to masks IRQ */
/* Set radio in continuous reception. */
SX1278SetOpMode(RF_OPMODE_RECEIVER);
ulRandVal = 0;
for (chCnt = 0; chCnt < (8 * sizeof(ulRandVal)); ++chCnt)
{
DelayMs(1); /* Disperse sampled time. */
/* Unfiltered RSSI value reading. Only takes the LSB value */
ulRandVal |= ((uint32_t)SX1278Read(REG_LR_RSSIWIDEBAND) & 0x01) << chCnt;
}
SX1278SetOpMode(RF_OPMODE_SLEEP);
/* Restore the state of IRQ mask of LoRa */
SX1278Write(REG_LR_IRQFLAGSMASK, byIrqMask);
return ulRandVal;
}
BeyondDream 发表于 2018-9-12 09:39
DevNonce和AppNonce
1 用途:这 2 个参数用于 LoRaWAN Node 的 OTAA 入网认证,它们保证了协议的“安全” ...
十分感谢耐心解答!
页:
[1]