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、如何改进?
谢谢。