最新的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抓包如下:
Aries Lord:
zgPreConfigKeys改成FALSE试试。
miffy:
回复 Aries Lord:
按你这样改是可以的,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 给确认一下
VV:
回复 miffy:
你可以看下BDB_TC_LINK_KEY_EXCHANGE_FAIL这个错误是在什么情况下发生的
user4958201:
回复 miffy:
你尝试过3.0不加密怎么设置吗?我看开发手册是必须加密的。
另外,对于你说的“ 这就解释了为什么以前有人说defaultkey设置不同,也可以加入网络,这个是网络层的加密,和入网时候的TC link key是两个截然不同的东西,一个是用来加密传输的,一个是用来入网认证的,当然互不影响了。”
感觉有点问题,VV在其他帖子上说的事link key是用来加密传输nwk key的,传输完NWK key,之后确实有link key和confirm过程,必须success了才确定入网。
最近被密钥设置这个问题搞得头大,3.0里面有几个机制也没说清楚组合起来怎么用
user4958201:
回复 miffy:
比如预配置的nwk key和预配置的 link key,也不想让 link key一直变化,或者说不让每一个入网设备都生成一个link key,到底该怎么设置一些全局变量和宏,没有明确说明,只能尝试,好苦逼
YiKai Chen:
回复 user4958201:
预配置的 link key是固定不變的、network key是組網時ZC亂數產生的、你用預配置的例程照理來說是一定會運作正常、是不是你改到什麼設置了、要不要重新安裝一分心的協議棧再測試一次
user4958201:
回复 YiKai Chen:
我就加了400+实验的宏定义不知道和3.0机制是否有冲突的地方
YiKai Chen:
回复 user4958201:
據我所知是沒有冲突的,如果不加400+实验的宏定义,例程是可以正常運作的嗎?
user4958201:
回复 YiKai Chen:
这个还真没有纯例程跑实验过很多节点组网,因为我们是自己做的板件,协议栈有改动