Mesh1.0.0传输距离问题,实测比2.5.1a差一倍,求解。
TI的工作人员早上好,昨天我测试了一批Zigbee节点,发现两个不同版本的协议栈传输的距离相差一倍,下面是我的实验条件:
实验条件:
1、5个不带PA的终端节点+1个不带PA的协调器。
2、空旷可视的测试环境。
3、终端每隔500ms发送一次数据给协调器,协调器接收并打印。
实验结果:
1、使用Mesh1.0.0协议栈,传输距离点对点大概40米左右,终端节点就无法再rejoin到协调器了。
2、使用2.5.1a,传输距离点对点大概70米左右,终端节点就无法再rejoin到协调器了。
补充说明:
1)两次测试的硬件和测试环境均相同。
2)2.5.1a未修改任何协议栈底层部分。
3)Mesh1.0.0我只修改了mac_radio.c中如下红色字体部分,其余部分未做修改:
MAC_INTERNAL_API void macRadioUpdateTxPower(void)
{
halIntState_t s;
reqTxPower = 0xF5;
/*
* If the requested power setting is different from the actual radio setting,
* attempt to udpate to the new power setting.
*/
HAL_ENTER_CRITICAL_SECTION(s);
if (reqTxPower != macPhyTxPower)
{
/*
* Radio power cannot be updated when the radio is physically transmitting.
* If there is a possibility radio is transmitting, do not change the power
* setting. This function will be called again after the current transmit
* completes.
*/
if (!macRxOutgoingAckFlag && !MAC_TX_IS_PHYSICALLY_ACTIVE())
{
/*
* Set new power level; update the shadow value and write
* the new value to the radio hardware.
*/
macPhyTxPower = reqTxPower;
MAC_RADIO_SET_TX_POWER(macPhyTxPower);
}
}
HAL_EXIT_CRITICAL_SECTION(s);
}
问题:
1、造成这样大的差距的原因有可能是什么造成的?
2、如果暂时不能判断原因,我需要做哪些实验获取哪些数据来分析?
3、如何改进?
谢谢。
看看gMIN_TREE_LQI的值设置正确没
如果不修改reqTxPower = 0xF5; 效果如何?
罗总,是默认值MIN_LQI_COST_3
// Minimum lqi value that is required for association
uint8 gMIN_TREE_LQI = MIN_LQI_COST_3;
等下我试试最小的吧。貌似在2.5.1A里面没有这个全局变量。
// LQI to Cost mapping
#define MIN_LQI_COST_1 12 //24
#define MIN_LQI_COST_2 9 //20
#define MIN_LQI_COST_3 6 //16
#define MIN_LQI_COST_4 4 //12
#define MIN_LQI_COST_5 2 //8
#define MIN_LQI_COST_6 1 //4
#define MIN_LQI_COST_7 0 //0
好的,我现在去楼下实验一下。
没有差别,和reqTxPower自动调节距离没有明显区别。
更改成 MIN_LQI_COST_1 之后距离明显变短了,但是改成了MIN_LQI_COST_7之后最远的rejoin还是和之前一样,没有明显的改善。
已经找到原因了,修改了一些MAC_SPEC_ED_MIN_DBM_ABOVE_RECEIVER_SENSITIVITY什么的参数之后距离明显提升。不加PA的情况下能达到115米的距离的样子。
请问 所谓 修改了一些MAC_SPEC_ED_MIN_DBM_ABOVE_RECEIVER_SENSITIVITY什么的参数 具体是修改了什么?
默认的 参数 传输距离就不行吗?
PA 是 采用什么型号 ?