This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Z-Stack 3.0 已经有Device announce,但是最后TC link key exchange失败一直导致节点不断beacon request是什么原因?

Other Parts Discussed in Thread: CC2530, Z-STACK

最新的3.0协议,CC2530芯片,一个coordinator,一个router,是通过TC link key方式入网的,已经能收到Device Announce,说明入网成功了吧,编译信息如下。

uint8 zgPreConfigKeys = TRUE;

uint8 zgApsLinkKeyType =  ZG_UNIQUE_LINK_KEY;

已经在f8wConfig.cfg里面配置了/* Default security key. */
-DDEFAULT_KEY=

此处key暂时保密。

为什么仍会产生BDB_TC_LINK_KEY_EXCHANGE_FAIL,导致节点发出Leave,然后5S后又重新Beacon request入网-> Device Announce,然后又Leave,然后一直反反复复这样,ubiqua抓包如下:

  • zgPreConfigKeys改成FALSE试试。

  • 按你这样改是可以的,TI ZigBee有很多各种key,结合如下链接:我的理解如下,不知道正确不正确

    Deyisupport:  为什么defaultKey设置不一样的节点还是可以加入网络?

    1、zgPreConfigKeys 这个变量是network layer,也就是网络层的加密key的开关,如果为TRUE,就打开网络层的加密,否则就关闭加密传输;

        如果打开网络层加密传输,那么配合的就要设置defaultKey,就是macro definition DEFAULT_KEY in f8wConfig.cfg

        这就解释了为什么以前有人说defaultkey设置不同,也可以加入网络,这个是网络层的加密,和入网时候的TC link key是两个截然不同的东西,一个是用来加密传输的,一个是用来入网认证的,当然互不影响了。

    2、再说说TC_LINKKEY_JOIN,这个宏在Z-Stack 3.0协议栈里面几乎所有的示例工程都定义了,作用应该就是使能TC link key的,如果去掉这个宏,那么就是所谓的Unsecure方式入网了;

    相应的defaultTCLinkKey,这个key想必就是所谓的TC link key了,用在加入网络的认证用的。

    烦请@VV 和 @Susan Yang 给确认一下

  • 你可以看下BDB_TC_LINK_KEY_EXCHANGE_FAIL这个错误是在什么情况下发生的

  • 收到BDB_COMMISSIONING_STATE_TC_LINK_KEY_EXCHANGE 消息,didSuccess失败,好像是ZR重刷固件之后再次入网,TC校验不通过,被踢出网络了,3.0协议默认TC Link key好像会发生变化,用ubiqua,看到每次入网都会自动添加新的Trust Center Link key

    If the joining device does not pass the TC policy validations, it will be kicked out of the network with a network leave command.

  • 你尝试过3.0不加密怎么设置吗?我看开发手册是必须加密的。
    另外,对于你说的 “ 这就解释了为什么以前有人说defaultkey设置不同,也可以加入网络,这个是网络层的加密,和入网时候的TC link key是两个截然不同的东西,一个是用来加密传输的,一个是用来入网认证的,当然互不影响了。”
    感觉有点问题,VV在其他帖子上说的事link key是用来加密传输nwk key的,传输完NWK key,之后确实有link key和confirm过程,必须success了才确定入网。
    最近被密钥设置这个问题搞得头大,3.0里面有几个机制也没说清楚组合起来怎么用
  • 比如 预配置的nwk key 和预配置的 link key,也不想让 link key一直变化,或者说不让每一个入网设备都生成一个link key,到底该怎么设置一些全局变量和宏,没有明确说明,只能尝试,好苦逼
  • 预配置的 link key是固定不變的、network key是組網時ZC亂數產生的、你用預配置的例程照理來說是一定會運作正常、是不是你改到什麼設置了、要不要重新安裝一分心的協議棧再測試一次

  • 我就加了400+实验的宏定义 不知道和3.0机制是否有冲突的地方
  • 據我所知是沒有冲突的,如果不加400+实验的宏定义,例程是可以正常運作的嗎?
  • 这个还真没有纯例程跑实验过很多节点组网,因为我们是自己做的板件,协议栈有改动
  • 應該是你协议栈有改动到什麼造成的,有抓包看看問題嗎?
x 出现错误。请重试或与管理员联系。