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、如何改进?
谢谢。
Aries Lord:
看看gMIN_TREE_LQI的值设置正确没
da qin zheng sheng:
如果不修改reqTxPower = 0xF5; 效果如何?
user1999055:
回复 Aries Lord:
罗总,是默认值MIN_LQI_COST_3
// Minimum lqi value that is required for associationuint8 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
user1999055:
回复 da qin zheng sheng:
好的,我现在去楼下实验一下。
user1999055:
回复 da qin zheng sheng:
没有差别,和reqTxPower自动调节距离没有明显区别。
user1999055:
回复 Aries Lord:
更改成 MIN_LQI_COST_1 之后距离明显变短了,但是改成了MIN_LQI_COST_7之后最远的rejoin还是和之前一样,没有明显的改善。
MarS:
回复 user1999055:
请问 所谓 修改了一些MAC_SPEC_ED_MIN_DBM_ABOVE_RECEIVER_SENSITIVITY什么的参数 具体是修改了什么????
默认的 参数 传输距离就不行吗?
PA 是 采用什么型号 ?
TI中文支持网