LoraWAN论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5995|回复: 3
打印 上一主题 下一主题

终端入网

[复制链接]

103

主题

462

帖子

5283

积分

论坛元老

Rank: 8Rank: 8

积分
5283
楼主
发表于 2018-4-8 14:28:06 | 显示全部楼层
LoRaWAN 终端入网原理,请参考《LoRaWAN介绍7 入网


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

103

主题

462

帖子

5283

积分

论坛元老

Rank: 8Rank: 8

积分
5283
沙发
发表于 2018-9-12 09:39:47 | 显示全部楼层

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;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|LoraWAN论坛  

GMT+8, 2024-5-16 21:40 , Processed in 0.125662 second(s), 8 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表