在论坛搜索很多相关的帖子之后,看到大部分的解决方案都是使用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台)之间数据冲突还有别的解决方案吗?
问题有点多,希望工程师可以帮忙解答一下,现在产品在量产中,发现设备多了数据冲突问题比较严重,因为设备上传的时间间隔比较小,结果就是各节点之间上传的数据包数量差距有点大。