微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > ZLL开发套件中Target模块向Remote模块发送Inter-PAN的ZCL信号,为什么将disableDefaultRsp设置为TRUE时能达到100%的发送成功率,反之成功率下降

ZLL开发套件中Target模块向Remote模块发送Inter-PAN的ZCL信号,为什么将disableDefaultRsp设置为TRUE时能达到100%的发送成功率,反之成功率下降

时间:10-02 整理:3721RD 点击:

问题背景:

         在Target模块中调用下面函数向Remoter周期发送信号:

ZStatus_t zcl_SendCommand( uint8 srcEP, afAddrType_t *destAddr,
                           uint16 clusterID, uint8 cmd, uint8 specific, uint8 direction,
                           uint8 disableDefaultRsp, uint16 manuCode, uint8 seqNum,
                           uint16 cmdFormatLen, uint8 *cmdFormat )

当其他参数不变,只改变disableDefaultRsp的情况下出现下面两种差异明显的场景:

场景1:disableDefaultRsp设置为TRUE时,Remoter能100%接收到Target端发送的数据包;

场景2:disableDefaultRsp设置为FALSE时,Remoter随着时间的推移接收到的数据包比例下降,最后接近于0。

        Target模块发送周期为200ms、400ms、600ms、800ms、1000ms和10s时都出现场景1和场景2两种形式。

问题1:按我自己的理解是disableDefaultRsp赋予FALSE时,接收端在接收到数据包后会调用zcl_SendDefaultRspCmd()而反馈回响应的反馈信息。如果在一定的时间内没有信息反馈回来则发送端(即Target模块)会进行重发,因此会降低丢包率。但是现在怎么得到相反的结果?

问题2:disableDefaultRsp=FALSE时,是否能开启ZCL层的重发机制?重发次数和时间间隔在哪设置?默认值是多少?

       

default response 没有收到,也不会有重发的。这个跟ACK不一样。

Remote是低功耗设备,平时是休眠的。 你的Target怎么给Remote一直发数据的?

我用Remote周期性的给Target发送ON/OFF命令,当Target收到ON/OFF命令时等待18ms再给Remote发送反馈信息。此时Remote还没有休眠,所以能接受到发送的数据包。请问下怎样启动MAC和NWK层的重发机制呢?

这个机制本来就是开启的,当发送出去的数据没有MAC ACK回来的时候,就会重发的。

NWK重发1次,MAC从发3次。所以一个包最多发送2*4=8次。

了解了,非常感谢!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top