被告知从XBee协调器(连接到PC)收集数据时,两个XBee端点(连接到RPi)之间的延迟

时间:2018-04-05 08:33:24

标签: raspberry-pi delay latency xbee

目前有3个XBee S1模块正在运行。

一个设置为协调器(API模式),并通过USB适配器连接到笔记本电脑。 另外两个设置为端点(AT模式)并连接到2 Raspberry Pi的Model 3B。

为了收集振动数据,两个RPi都附有一个ADXL345加速度计。 对于我们的模型而言,RPi开始同时(在彼此的10毫秒内)开始收集数据非常重要。

我们在XCTU中设置了一个帧列表,因此我们通过我们的协调器可以通过RPi上的python脚本开始收集数据。

目前,我们可以在相隔0.5秒内开始收集数据。所以我们的设置中存在某种时间戳问题。 似乎XBee End-Point 1在XBee End-Point 2之前接收到给定的命令。

所以我们的问题是从终点1收集的数据总是比终点2提前0.4-0.6秒。 当我们开始和停止数据收集时都会发生这种情况。因此,终点1也会在终点2之前0,4-0.6秒停止。

如果需要,我可以提供更多信息。请告诉我!

1 个答案:

答案 0 :(得分:0)

除了您的设置之外,您还需要在应用层实现另一个协议,该协议在每个设备上同步时钟,然后为两个PI定义一个起点。一种常见的方法是使用NTP将节点上的时钟与外部时钟同步(可能您可以使用笔记本电脑的时钟)。除此之外,您还拥有PI和镭拓之间的通信时间。例如,从PI发送同步请求。然后在笔记本电脑上收到此消息并以当前时间发回。您需要考虑此延迟。

这很难精确计算。您在当前设置中可以执行的操作是通过在PI和笔记本电脑之间发送消息来运行一些实验,以估计通信延迟。通过运行大量实验,您可以估算平均值和标准偏差。您可以使用这些值来提高同步的准确性。在此步骤之后,可以在某个时间点启动开始记录感测值的命令。