关于cc1310下TI15.4协议栈 collector与 sensor中断连接问题

TI大神,你好!

请教问题如下

问题背景:

1、应用TI15.4协议栈LRM 模式 5k速率,每半小时sensor向collector发送一次数据,collector接收到sensor信息并串口打印;

2、collector与 sensor距离很近,经过实地测量平均信号强度为-87dbm;

3、collector配对6个sensor。

问题描述:

1、所有设备上电,系统正常稳定工作5小时左右,collector串口输出:

!Responding: 0x1
!Responding: 0x2
!Responding: 0x3
!Responding: 0x4
!Responding: 0x5
!Responding: 0x6

然后串口无信息输出。

2、故障出现几小时后,sensor不重启,重启collector后,sensor能够重新入网,并正常工作。

3、已经排除内存溢出的可能性、

4、怀疑会不会是串口引发的问题?

望大神不吝赐教!

  • 发送Responding: 0x1是由于 tracking message 没有成功的原因,或者是tracking 失败。
    The application calls this function to indicate that a device is no longer active in the network


    在过高的 polling time可能存在一些问题。当你的collector 想要下发一些信息给到sensor时,很有可能因为你的sensor在poll 间隔期无法发出。

    Responding 通常时由于没有发出,然后collector 决定了判读sensor 是否存在,所以发出了 tracking ,
    当 tracking message 没有在TRACKING_DELAY_TIME收到了rsp 则认为该设备为非alive状态,因为它从未回复跟踪消息。从而触发Csf_deviceNotActiveUpdate。

    请问你是否对demo进行了修改,特别是下面的参数:

    #define CONFIG_REPORTING_INTERVAL 2000
    /*!
    Polling interval in milliseconds to be set on connected devices using
    configuration request messages. Must be greater than or equal to default
    polling interval set on sensor devices
    */
    #define CONFIG_POLLING_INTERVAL 500
    /*!
    Time interval in ms between tracking message intervals
    */
    #define TRACKING_DELAY_TIME 2000

    Best Regards

    Alvin Chen

  • 回复 Alvin Chen:

    Alvin Chen,你好!

    感谢你的帮助!

    关于传感器网络的参数,我们只修改了信息传送间隔,其余全部沿用了demo的配置(传感器、集中器参数相同),如下:

    #define CONFIG_REPORTING_INTERVAL 1800000
    /*!
    Polling interval in milliseconds to be set on connected devices using
    configuration request messages. Must be greater than or equal to default
    polling interval set on sensor devices
    */
    #define CONFIG_POLLING_INTERVAL 60000
    /*!
    Time interval in ms between tracking message intervals
    */
    #define TRACKING_DELAY_TIME 300000

    我们分析:

    1、如果单次tracking message无响应,collector 认为目标传感器!Responding: 0x1,那么过一段时间以后,collector再次发出tracking message理论上应该可以正常接收,但是本例中后续没有任何重新tracking成功的迹象,并且重启collector后所有传感器能够迅速入网,说明无线信道的连通性应该没有问题。

    2、本例问题中collector 是在某一时刻出现全部传感器 tracking message失败,这个现象很奇怪,并且是否有助于分析错误原因。

    3、本问题属于偶发问题,有时可以持续工作很久,有时几小时就出现问题,并且现象相同,由于在办公室环境下从未出现问题,而在野外部署则有可能出现问题,是否能够怀疑环境因素有影响?

    再次感谢!

  • 回复 user5153918:

    也是有可能的不好说,你都说了是偶然现象。

    Best Regards

    Alvin Chen

  • 回复 user5153918:

    你把TRACKING_DELAY_TIME 加大到和你的CONFIG_REPORTING_INTERVAL一样测试一下。

    Best Regards

    Alvin Chen

  • 回复 Alvin Chen:

    还有一种情况可以恢复网络通信:
    在不下电的情况下,将传感器和集中器分开到保证没有信号通信的地方,然后再放回原位,这时,可以重新连接
  • 回复 user5153918:

    这种是正常的rejoin 操作。

    Best Regards

    Alvin Chen

  • 回复 Alvin Chen:

    在demo中:
    collector 的 CONFIG_REPORTING_INTERVAL 是 300000,我们改为1800000
    sensor 的 CONFIG_REPORTING_INTERVAL 是 600000,我们同样改为1800000

    两个问题:
    1、demo 中collector 和 sensor 的CONFIG_REPORTING_INTERVAL 是不相同的,经过测试demo中,实际的CONFIG_REPORTING_INTERVAL 应该是300000。为什么这么配置?
    2、我们应用中将collector 和sensor 的 CONFIG_REPORTING_INTERVAL改位相同的1800000,会不会存在问题?

    另外:还有一种情况可以恢复网络通信:
    在不下电的情况下,将传感器和集中器分开到保证没有信号通信的地方,然后再放回原位,这时,可以重新连接。
  • 回复 user5153918:

    sensor加入collecotor後會先用自己本身的CONFIG_REPORTING_INTERVAL ,但是如果收到collector 的 CONFIG_REPORTING_INTERVAL 封包去更動sensor的report interval,就會改用collector 的 CONFIG_REPORTING_INTERVAL

    YK Chen

  • 回复 Alvin Chen:

    但是,当上述故障出现后,不这么操作的时候,传感器无法rejoin
  • 回复 user5153918:

    collector与 sensor距离很近,经过实地测量平均信号强度为-87dbm;

    你用的是TI的開發版,還是你自己的硬件?如果是你自己的硬件,看來你硬件RF 設計有問題,要先詳查這部份

    YK Chen