TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1312R: 15.4协议栈 收集器断电后,sensor没有进入孤立模式

Part Number:CC1312R

Ti大神好:

我使用两块cc1312 最新sdk 15.4协议栈, 使用collector 和sensor 的默认例程进行通讯:

当sensor已经连上collector之后, collector断电且在sensor进入孤立节点之前重新上电,此时sensor没有进入孤立节点并且还在发送数据,但是collector收不到;

此时重启sensor和重启collector之后都无法恢复.只能将collector断电且等待一段时间(sensor进入孤立节点之后)再重新上电,才能恢复,请问这个情况是哪块配置的问题?

我这边使用sdk提供的例程 

修改点:

1. 打开sensor和collector 的 -DAUTO_START宏,以便于自动启动

2. collector 启动后自动开启允许网络加入

此外没有修改例程

faker wang:

并不是每次都出现,概率触发

,

Galaxy Yue:

你好,

1.请问使用的是sensor_sm&collector_sm例程吗

2.概率触发的频次是?

,

faker wang:

collector 和sensor_oad_offchip_secure例程,触发概率不定, 只要是 collector短时间内断电重新上电,如果sensor没有进入孤立节点的情况下,容易导致这种情况

,

faker wang:

麻烦帮忙尽快确认一下,需要移植的已经做完了,最后一个bug,马上要转量产了

,

Galaxy Yue:

这种情况可能是由于collector重新上电后被看作一个新的网络节点,而sensor仍然保留着旧的网络信息,因此造成了不匹配。

你可以按照以下思路(任一)尝试一下:

1.修改sensor使其在断联之后重新寻找并加入新的网络,而不仅仅是等待进入孤立节点。

2.都在collector断电且等待一段时间 这样可以达到同步 有测这个时间大概是多久吗

3.在collector节点上电时,设置一个恢复机制,让collector能够识别出已经存在的sensor节点并加入

,

faker wang:

1. sensor端目前并不会断开,仍然再发送数据,所以这个方案可能不太行

2.现场使用的时候无法避免collector的短时间反复上电, collector断电后,sensor全部进入孤立节点大概3-5秒左右,具体应该跟sensor配置的孤立检测时间有关

3.恢复机制,应如何实现,才能使collector知道sensor未发送数据,如果维护一个数组或者在flash中存储所有节点并进行计时,似乎对内存消耗特别严重主要我们的现象是 sensor认为自己还在和collector连接并没有进入孤立模式,collector 也不认为sensor已经掉线,但是却无法收到sensor的数据, 个人猜测应该是双方互相还能收到ack(因为sensor都未进入孤立),只是有些问题导致了没有收到数据

,

Galaxy Yue:

还有一种可能是,CC1312有一种特性是,当设备断电时自动进入低功耗,所以可能导致数据收不到

你可以尝试修改电源管理模式或者是调整唤醒时间

,

Galaxy Yue:

或者是

collector定期发出信标以表示其存在,然后sensor定期进行主动扫描以确认连接的collector是否存在,如果不存在,就让sensor重启连接

,

Galaxy Yue:

也有可能是collector时序不同步的问题,可能会影响双方通信,

Galaxy Yue 说:collector断电且等待一段时间 这样可以达到同步

,

faker wang:

这几个方案有没有比较具体的修改示例,这个似乎比较复杂

,

Galaxy Yue:

Galaxy Yue 说:,然后sensor定期进行主动扫描以确认连接的collector是否存在,如果不存在,就让sensor重启连接

没有示例

伪代码可以看一下思路

while True:# 这一步可以通过检查收到的ACK或者网络状态标志来完成if not network.isConnected():   #此时假设有sacnNetworks函数,会返回所有可见的collector的列表  visible_networks = network.scanNetwork()  #检查连接的collector是否可见   if desired_collector not in visible_networks:  #如果collector不可见,等待一段时间   sleep(1000);
   continue   #如果collector可见,试图连接它  network.connect(destired_collector)#等待一段时间再进入下一次循环 sleep(1000);

比较拙劣,大致看一下思路

赞(0)
未经允许不得转载:TI中文支持网 » CC1312R: 15.4协议栈 收集器断电后,sensor没有进入孤立模式
分享到: 更多 (0)