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



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

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

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

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

目前,我们能够在0,5秒内开始收集数据。因此,我们的设置中存在某种时间戳问题。 似乎 XBee 端点 1 在 XBee 端点 2 之前接收给定的命令。

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

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

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

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

最新更新