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.

关于zstack 加密后的通讯问题

Other Parts Discussed in Thread: CC2530

通讯设备:coordinator, end-device

协议栈: zstack HA 1.2

加密设置:-DSECURE=1,  -DZG_SECURE_DYNAMIC=1

End Device 设置: -DPOLL_RATE=0,  -DQUEUED_POLL_RATE=0,  -DRESPONSE_POLL_RATE=0

NV编译选项:NV_INIT, NV_RESTORE

问题描述:第一次上电,通讯正常,可通过协调器串口看到end device上报的数据。第二次上电,通讯不正常,串口无数据,通过sniffer抓包,确认end device数据包发出,协调器有ACK返回,断点调试确认协议栈没有实际意义上的处理收到的包。8-10 分钟左右之后,通讯恢复正常,串口有数据。

麻烦请看看这是什么原因造成的,如何改进?

谢谢!

  • 为什么要把ZG_SECURE_DYNAMIC=1,加密的Key需要动态变化吗?

    -DPOLL_RATE=0,节点无法收到协调器发给节点的数据了,为什么要这样做?

  • VV你好,

    ZG_SECURE_DYNAMIC=1 是因为 仅仅-DSECURE=1 的话,压根就没法通讯,设备没法入网。原因不明。

    顺带一提,两个设备是在同一协议栈下编译,其余设置是一样的。


    -DPOLL_RATE=0,是为了把功耗降到最低,电池很小,所以只能做最低功耗设计。

  • VV你好,

    问题已解决,设置ZG_SECURE_DYNAMIC=0 即可,但奇怪的是之前这样设置是无法通讯的,而且通过抓包确认设备在入网的时候是被拒绝了的。现在又可以了,百思不得其解。

    不过既然能通讯了就行了,话说zstack越用越深入,发现的各种奇怪问题也越来越多。想要稳定耐用不是很容易。

  • 为什么不愿意把你的转包文件share出来呢?

  •  QUEUED_POLL_RATE 和 RESPONSE_POLL_RATE可以设置为10~100,这样可以保证节点需要接收数据时,先向协调器发一个数据包就能收到协调器数据。


    ZG_SECURE_DYNAMIC设置为1,可以动态设置加密等级,加密有4个等级

    #define ZG_SECURITY_NONE 0
    #define ZG_SECURITY_RESIDENTIAL 1
    #define ZG_SECURITY_PRO_STANDARD 1 // For now, same as residential
    #define ZG_SECURITY_SE_STANDARD 4


  • 您好:

    为什么配置了加密后还是没有产生加密的感觉

    然后让协调器和路由器通信,修改协调器的key后为什么二者还可以通信,理论上是不行的。

    不清楚应该修改哪个key才能测试是否加了密

    这个?

    这个?

    还是这个?

    谢谢指导

  • 您好,问一下,如何扩大cc2530可以挂载的路由数量。本来官方上第一级只能挂载6个,第二级也是6个。若想第一级挂10个行不行?

    如何在路由下面再挂路由?如何配置呢?谢谢VV大神。