# 时间与同步
当在具有连续通信/记录时间戳数据的不同设备的系统中工作时,设备时钟的同步对于能够整合数据至关重要。
在本文中,我们将首先确定 FDI INS 中的不同计算延迟,然后了解 FDI INS 如何将自己的时钟与 GNSS 时间同步,然后我们将重点介绍可用于在多个设备之间同步时钟的工具。
# INS 输出延迟
输出延迟是实时控制应用中的一个重要方面,较高的输出延迟可能会降低控制环路的性能。FDI INS嵌入式软件旨在最大限度地减少输出延迟:一旦对传感器数据进行采样,扩展卡尔曼滤波器(EKF)在生成输出之前执行小的恒定时间计算。
通常,观察到的输出延迟小于1毫秒。
请注意,在所有串行输出之后可能会收到CAN日志,因为CAN协议无法保证CAN总线上流量的输出延迟。
如果要获得总延迟,则应将处理延迟添加到数据传输延迟中。此传输延迟因接口而异。
例如,在UART接口上以115200bps发送的50字节消息将需要4ms才能完成传输。考虑更高的波特率以最大程度地减少输出延迟。
# 事件Events
# 事件输入
惯性传感器可以包括多达 5 个同步输入,可用于不同的目的:
- 事件触发日志:接收的所有脉冲都会生成可以生成特定日志输出的事件。任何输出日志都可以由事件脉冲触发。
- 事件标记:每次接收脉冲时都可以发送事件标记日志,以便对每个事件进行时间标记。
- PPS 输入:当连接到外部 GNSS 系统时,PPS 信号用于重新对齐内部时钟并将其同步到 GPS 时钟。
- 其他辅助输入时间戳: 如果特定的辅助传感器生成的脉冲会标记以下输出,则相应的事件输入可用于数据同步。
# 事件触发日志
在这种工作模式下,惯性器件在自己的时钟上运行,以对传感器数据进行采样并计算输入。
一旦准备好发送新输出,系统将简单地检查在上次处理循环期间是否收到事件输入,并相应地发送输出消息。
由于内部时钟和主机时钟同步,这种工作模式可能会产生长达 5ms 的输出抖动。
警告
FDISYSTEMS传感器可处理高达200Hz的输入。对于频率较高的事件,消息触发器将仅考虑最后收到的事件。
# 事件标记处理
事件标记允许您精确测量事件的时间,例如相机快门时间,精度可达微秒级。收到后,事件输入将精确地加盖时间戳并堆叠在系统中,并且在下一个消息输出窗口期间将发送标记输出消息。 此日志将包括上一个循环期间接收的所有事件。
FDISYSTEMS传感器可处理高达1kHz的事件标记输入。发送超过 1KHz 的事件可能会使内部 CPU 过载。
# 事件输出
INS可用于通过在同步输出引脚上产生脉冲来同步其他器件。
这些脉冲可以根据以下模式生成:
- 主环路分频器: 在 INS 环路开始时(在传感器采样时间)发送事件。可以配置分频器以降低其频率。例如,如果分频器设置为4,则脉冲输出频率将为200Hz / 4 = 50Hz。
- PPS 在 INS 环路开始时(在传感器采样时间)以 1Hz 频率发送事件。如果系统与 UTC 输入时间同步,则此输出在 UTC 时间的每个秒顶部提供。
- **虚拟里程表:**每次行驶可配置的距离时都会生成一个事件(我们的高性能产品,如 EPSILON 提供的功能)。
# 时间同步 Time synchronization
# 内部时钟和时间
# PPS 的时钟偏差和增益估计
FDISYSTEMS传感器能够通过使用来自GNSS接收器的PPS信号或高精度时钟源来提高其内部晶体精度。
不同的时钟模式列在下面
- 自由运行模式 : 在此模式下,时钟自由运行,仅基于内部晶体
- 时钟转向模式:一旦时钟参考可用,例如 GNSS PPS,第一步用于将主环路重新对齐到参考时钟。内部循环将快速转向,将处理循环对齐到一秒的顶部。在此阶段,两个数据样本之间的增量时间可能不是恒定的。一旦时钟偏置稳定,时钟增益也将得到估计。
- 时钟有效 :在此模式下,时钟已正确对齐到 GNSS PPS 时钟。可提供相对于外部时钟的恒定和精确定时。
所有具有内部 GNSS 的 FDISYSTEMS都会自动将其时钟与 GNSS PPS 同步。所以,如果使用外部接收器,则连接PPS信号与通信线路非常重要。
# 内部时间 vs UTC时间
上电时,内部时钟从 0 开始,UTC 时间标记为无效。
一旦内部或外部 GNSS 接收器具有位置定位,并且接收到一致的 PPS 信号,UTC 时间将生效,并实现与其他设备的精确同步。
在 GNSS 定位可用之前,在某些产品线中,UTC 时间可能从配置的无效日期和时间开始。 当 GNSS 可用时,将提供 UTC 的第一个值(基于 GNSS 时间),但它可能与实际 UTC 时间相差几秒钟,当“闰秒”信息可用时,可以观察到跳跃以重新对齐实际 UTC 时间的输出。
一组标志通知用户 UTC 时间有效性。
# 与外部设备同步
与外部设备同步有三种主要解决方案。
- PPS + 时间消息输出。此模式与常见的 GNSS 接收器操作非常相似,可实现小于1μs的精度。 请参阅本文档的事件输出部分。
- 网络时间协议 (NTP) 允许在本地网络上以1 ms精度进行同步。
- 精确时间协议 (PTP) 允许以150ns至 1μs的精度进行同步。但是,它需要特定的硬件,因此并不总是可用。
# 网络时间协议 (NTP)
NTP 是一种分布式服务,它基于 TCP/IP 网络将设备的时钟同步到协调的世界时 UTC。
该协议使用时间源的分层(主从拓扑),每个级别称为层。最高级别(第0层)是原子钟,例如GNSS卫星中的原子钟。可以添加其他层以同步特定网络上的设备。
NTP 仅在第 1 层中实现,以将时间分配给其他设备。在内部 UTC 时间可用之前,时间将标记为未同步。
NTP 在端口号 123 上使用 UDP 协议。
# 网络时间协议 (PTP)
与NTP一样,PTP是一种用于在整个TCP / IP网络中同步时钟的协议。但是,它旨在提供比NTP更好的精度。
为了达到此精度级别,该协议具有硬件依赖性,因此不适用于所有设备。所有具有以太网连接的FDI惯性器件都支持PTP时间服务器,测量的平均时间精度为150ns。
PTP 实现会生成一个标记为错误的时钟,以防 UTC 时间在内部不可用。
一旦UTC时间可用,我们的PTP系统就可以作为主时钟运行(如果网络上有更高精度的时间参考,则可以作为被动模式运行)。
PTP 在端口号 319 和 320 上使用 UDP 网络协议进行操作。