【ZigBee】JN5169 ZigBee3.0设备入网过程

硬件平台:JN5169

SDK:JN-SW-4170

参考文档:ZigBee-Base-Device-Behavior-Specification.pdf 

概要:分析设备首次入门的流程(bdbNodeIsOnANetwork属性为FALSE),设备入网规范遵循ZigBee-Base-Device-Behavior-Specification 8.3小节

1  节点首先将bdbcommitoningstatus设置为IN_PROGRESS,将vDoPrimaryScan设置为TRUE,将vScanChannels设置为bdbPrimaryChannelSet

BDB_PRIMARY_CHANNEL_SET = 0x02108800;
BDB_SECONDARY_CHANNEL_SET = 0x07FFF800 ^ 0x02108800;

BDB_eNsStartNwkSteering(void)
{  
        //有省略
        sBDB.sAttrib.ebdbCommissioningStatus = E_BDB_COMMISSIONING_STATUS_IN_PROGRESS;
        bDoPrimaryScan = TRUE;
        u32ScanChannels = sBDB.sAttrib.u32bdbPrimaryChannelSet;
        u8ScanChannel = BDB_CHANNEL_MIN;
        bAssociationJoin = FALSE;
        vNsDiscoverNwk();
}

进入vNsDiscoverNwk()函数后,跳到12步进行判断

2  节点应进行信道扫描,以发现其无线电范围内的一组信道上有哪些网络可用

void vNsDiscoverNwk()
{
        //此函数有省略
        eNS_State = E_NS_WAIT_DISCOVERY;    //状态机状态,注意
        ZPS_eAplZdoDiscoverNetworks(u32ScanChannels & (1<<u8ScanChannel));
        8ScanChannel++;
}

ZPS_eAplZdoDiscoverNetworks()函数调用最终都会在终端设备或路由器上导致生成堆栈事件ZPS_EVENT_NWK_DISCOVERY_COMPLETE 

bdb_taskBDB(); 
        BDB_vNsStateMachine(&sZpsAfEvent);
                case E_NS_WAIT_DISCOVERY: 
                        case ZPS_EVENT_NWK_DISCOVERY_COMPLETE:
                            //有省略

3  如果NLME-NETWORK-DISCOVERY确认原语的状态参数不等于SUCCESS,表明通道扫描不成功,则节点从步骤2继续。

意思就是判断sStackEvent.uEvent.sNwkDiscoveryEvent.eStatus状态不等于MAC_ENUM_SUCCESS,继续执行下面函数:

vNsDiscoverNwk();

4  节点通过分析NetworkCount和NetworkDescriptor参数,判断是否有设置为TRUE的permit join flag合适的网络。

eNS_State = E_NS_WAIT_JOIN;
vNsTryNwkJoin(TRUE, &(psZpsAfEvent->sStackEvent.uEvent.sNwkDiscoveryEvent));

        //以下位于vNsTryNwkJoin()函数,有无关代码省略
         if(
              
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值