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.

CC1310如何有效的解决多设备之间的数据冲突问题?

在论坛搜索很多相关的帖子之后,看到大部分的解决方案都是使用LBT,但是对Listen Before Talk机制是如何运行的有部分疑问。

1.信道评估最多会评估几次?(假设信道一直繁忙)

2.信道每次评估之间的间隔大约为多长时间?

<-----------------------------第一次修改---------------------------------------------------->

backOffTime = (getRN() & ((1 << be++)-1)) *
                        EasyLink_us_To_RadioTime(EASYLINK_CCA_BACKOFF_TIMEUNITS);

也就是说,实际影响评估间隔的是产生的随机数?(第4点问题)

<-----------------------------第一次修改---------------------------------------------------->

3.下面这部分代码具体是什么作用?

            /* Set Tx absolute time to current time + 100ms */
            if(EasyLink_getAbsTime(&absTime) != EasyLink_Status_Success)
            {
                // Problem getting absolute time
            }
            lbtPacket.absTime = absTime + EasyLink_ms_To_RadioTime(100);

发送等待?EasyLink_getAbsTime()得到的时间是什么时间?

4.EasyLink初始化的时候

easyLink_params.pGrnFxn = (EasyLink_GetRandomNumber)HalTRNG_GetTRNG;

上面这个随机数具体作用是什么?以及这个随机数是否影响着信道评估的时间间隔,还有这个随机数的范围大约是多少?

5.多台设备(>100台)之间数据冲突还有别的解决方案吗?

问题有点多,希望工程师可以帮忙解答一下,现在产品在量产中,发现设备多了数据冲突问题比较严重,因为设备上传的时间间隔比较小,结果就是各节点之间上传的数据包数量差距有点大。