(window.webpackJsonp=window.webpackJsonp||[]).push([[447],{771:function(v,_,t){"use strict";t.r(_);var s=t(10),a=Object(s.a)({},(function(){var v=this,_=v._self._c;return _("ContentSlotsDistributor",{attrs:{"slot-key":v.$parent.slotKey}},[_("h1",{attrs:{id:"时间与同步"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#时间与同步"}},[v._v("#")]),v._v(" 时间与同步")]),v._v(" "),_("p",[v._v("当系统中存在多台设备、且需对带时间戳的数据进行连续通信或记录时,设备时钟同步对于后续数据融合至关重要。")]),v._v(" "),_("p",[v._v("本文将首先说明 FDI INS 中的各类计算延迟,再介绍 FDI INS 如何将自身时钟与 GNSS 时间同步,最后概述可用于多设备时钟同步的工具。")]),v._v(" "),_("h2",{attrs:{id:"ins-输出延迟"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#ins-输出延迟"}},[v._v("#")]),v._v(" INS 输出延迟")]),v._v(" "),_("p",[v._v("输出延迟是实时控制应用中的重要因素;较高的输出延迟可能降低控制环性能。FDI INS 嵌入式软件旨在最大限度减小输出延迟:传感器数据一经采样,扩展卡尔曼滤波器(EKF)即以较短且恒定的计算时间生成输出。")]),v._v(" "),_("p",[v._v("通常,观测到的输出延迟小于 1 ms。")]),v._v(" "),_("p",[v._v("请注意:CAN 日志可能在全部串行输出之后才收到,因为 CAN 协议无法保证总线上流量的输出延迟。")]),v._v(" "),_("fdi-img",{attrs:{width:"52.5%",alt:"MEMS",src:"/knowledge-base/05/050401.png"}}),v._v(" "),_("cite-panel",{attrs:{title:"补充说明"}},[_("p",[v._v("若需得到总延迟,应将处理延迟与数据传输延迟相加。传输延迟因接口而异。")]),v._v(" "),_("p",[v._v("例如,在 UART 接口上以 115200 bps 发送 50 字节消息,约需 4 ms 才能完成传输。可采用更高波特率,以最大限度减小输出延迟。")])]),v._v(" "),_("h2",{attrs:{id:"事件"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#事件"}},[v._v("#")]),v._v(" 事件")]),v._v(" "),_("h3",{attrs:{id:"事件输入"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#事件输入"}},[v._v("#")]),v._v(" 事件输入")]),v._v(" "),_("p",[v._v("惯性传感器最多可包含 5 路同步输入,可用于不同目的:")]),v._v(" "),_("ul",[_("li",[_("strong",[v._v("事件触发日志")]),v._v(":收到的每个脉冲都会产生事件,并可据此生成特定日志输出。任意输出日志均可由事件脉冲触发。")]),v._v(" "),_("li",[_("strong",[v._v("事件标记")]),v._v(":每次收到脉冲时均可发送事件标记日志,以便为每个事件打上时间戳。")]),v._v(" "),_("li",[_("strong",[v._v("PPS 输入")]),v._v(":连接外部 GNSS 系统时,PPS 信号用于重新对齐内部时钟,并将其同步至 GPS 时钟。")]),v._v(" "),_("li",[_("strong",[v._v("其他辅助输入时间戳:")]),v._v(" 若某辅助传感器会在输出前产生标记脉冲,相应事件输入可用于数据同步。")])]),v._v(" "),_("h4",{attrs:{id:"事件触发日志"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#事件触发日志"}},[v._v("#")]),v._v(" 事件触发日志")]),v._v(" "),_("p",[v._v("在该工作模式下,惯性器件在自身时钟上运行,对传感器数据进行采样并计算输入。")]),v._v(" "),_("p",[v._v("一旦准备好发送新输出,系统会检查在上一次处理循环期间是否收到事件输入,并据此发送输出消息。")]),v._v(" "),_("p",[v._v("由于内部时钟与主机时钟同步方式的影响,该工作模式可能产生最长约 5 ms 的输出抖动。")]),v._v(" "),_("p",[v._v("警告")]),v._v(" "),_("p",[v._v("FDISYSTEMS 传感器可处理高达 "),_("strong",[v._v("200 Hz")]),v._v(" 的输入。对于更高频率的事件,消息触发器将仅考虑最后收到的事件。")]),v._v(" "),_("h4",{attrs:{id:"事件标记处理"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#事件标记处理"}},[v._v("#")]),v._v(" 事件标记处理")]),v._v(" "),_("p",[v._v("事件标记可用于精确测量事件时刻(例如相机快门时间),精度可达微秒级。收到后,事件输入会被精确打上时间戳并在系统中排队;在下一个消息输出窗口期间发送标记输出消息。该日志将包含上一循环期间收到的全部事件。")]),v._v(" "),_("fdi-img",{attrs:{width:"52.5%",alt:"MEMS",src:"/knowledge-base/05/050402.png"}}),v._v(" "),_("cite-panel",{attrs:{title:"警告"}},[_("p",[v._v("FDISYSTEMS 传感器可处理高达 1 kHz 的事件标记输入。发送超过 "),_("strong",[v._v("1 kHz")]),v._v(" 的事件可能导致内部 CPU 过载。")])]),v._v(" "),_("h3",{attrs:{id:"事件输出"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#事件输出"}},[v._v("#")]),v._v(" 事件输出")]),v._v(" "),_("p",[v._v("INS 可通过在同步输出引脚上产生脉冲,用于同步其他器件。")]),v._v(" "),_("p",[v._v("这些脉冲可按以下模式生成:")]),v._v(" "),_("ul",[_("li",[_("strong",[v._v("主环路分频器:")]),v._v(" 在 INS 环路开始时(传感器采样时刻)发送事件。可配置分频器以降低频率。例如,若分频器设为 4,则脉冲输出频率为 200 Hz / 4 = 50 Hz。")]),v._v(" "),_("li",[_("strong",[v._v("PPS:")]),v._v(" 在 INS 环路开始时(传感器采样时刻)以 1 Hz 发送事件。若系统已与 UTC 输入时间同步,则该输出对应 UTC 每秒整秒时刻。")]),v._v(" "),_("li",[_("strong",[v._v("虚拟里程计:")]),v._v(" 每行驶一段可配置的距离即生成一次事件(由 EPSILON 等高性能产品提供)。")])]),v._v(" "),_("h2",{attrs:{id:"时间同步"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#时间同步"}},[v._v("#")]),v._v(" 时间同步")]),v._v(" "),_("h3",{attrs:{id:"内部时钟与时间"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#内部时钟与时间"}},[v._v("#")]),v._v(" 内部时钟与时间")]),v._v(" "),_("h4",{attrs:{id:"基于-pps-的时钟偏差与增益估计"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#基于-pps-的时钟偏差与增益估计"}},[v._v("#")]),v._v(" 基于 PPS 的时钟偏差与增益估计")]),v._v(" "),_("p",[v._v("FDISYSTEMS 传感器可利用 GNSS 接收机的 PPS 信号或高精度时钟源,提高内部晶体精度。")]),v._v(" "),_("p",[v._v("不同时钟模式如下:")]),v._v(" "),_("ul",[_("li",[_("strong",[v._v("自由运行模式:")]),v._v(" 时钟自由运行,仅依赖内部晶体。")]),v._v(" "),_("li",[_("strong",[v._v("时钟驯服模式:")]),v._v(" 一旦时钟参考可用(例如 GNSS PPS),首先将主环路重新对齐至参考时钟。内部环路将快速驯服,使处理循环对齐到整秒。在此阶段,相邻数据样本之间的时间增量可能非恒定。时钟偏差稳定后,还将估计时钟增益。")]),v._v(" "),_("li",[_("strong",[v._v("时钟有效:")]),v._v(" 在此模式下,时钟已正确对齐至 GNSS PPS 时钟,可提供相对于外部时钟的恒定、精确计时。")])]),v._v(" "),_("cite-panel",{attrs:{title:"说明"}},[_("p",[v._v("所有内置 GNSS 的 FDISYSTEMS 产品都会自动将其时钟与 GNSS PPS 同步。因此,若使用外部接收机,"),_("strong",[v._v("务必")]),v._v("同时连接 PPS 信号与通信线路。")])]),v._v(" "),_("h4",{attrs:{id:"内部时间-vs-utc-时间"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#内部时间-vs-utc-时间"}},[v._v("#")]),v._v(" 内部时间 vs UTC 时间")]),v._v(" "),_("p",[v._v("上电时,内部时钟从 0 开始,UTC 时间标记为无效。")]),v._v(" "),_("p",[v._v("一旦内部或外部 GNSS 接收机获得位置定位,并收到一致的 PPS 信号,UTC 时间即生效,从而实现与其他设备的精确同步。")]),v._v(" "),_("cite-panel",{attrs:{title:"说明"}},[_("p",[v._v("在 GNSS 定位可用之前,部分产品线中的 UTC 时间可能从配置的无效日期与时间开始。当 GNSS 可用时,将提供 UTC 的首个值(基于 GNSS 时间),但它可能与实际 UTC 相差数秒;当“闰秒”信息可用时,可能观察到跳变,以将输出重新对齐至实际 UTC 时间。")])]),v._v(" "),_("p",[v._v("一组标志用于通知用户 UTC 时间的有效性。")]),v._v(" "),_("h3",{attrs:{id:"与外部设备同步"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#与外部设备同步"}},[v._v("#")]),v._v(" 与外部设备同步")]),v._v(" "),_("p",[v._v("与外部设备同步主要有三种方案:")]),v._v(" "),_("ul",[_("li",[_("strong",[v._v("PPS + 时间消息输出。")]),v._v(" 该模式与常见 GNSS 接收机操作非常相似,可实现"),_("strong",[v._v("小于 1 μs")]),v._v(" 的精度。请参阅本文“事件输出”部分。")]),v._v(" "),_("li",[v._v("网络时间协议("),_("strong",[v._v("NTP")]),v._v(")可在本地网络上实现约 "),_("strong",[v._v("1 ms")]),v._v(" 精度的同步。")]),v._v(" "),_("li",[v._v("精确时间协议("),_("strong",[v._v("PTP")]),v._v(")可实现约 "),_("strong",[v._v("150 ns 至 1 μs")]),v._v(" 的同步精度。但需要特定硬件,因此并非始终可用。")])]),v._v(" "),_("h3",{attrs:{id:"网络时间协议-ntp"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#网络时间协议-ntp"}},[v._v("#")]),v._v(" 网络时间协议(NTP)")]),v._v(" "),_("p",[v._v("NTP 是一种分布式服务,基于 TCP/IP 网络将设备时钟同步至协调世界时 UTC。")]),v._v(" "),_("p",[v._v("该协议采用时间源分层(主从拓扑),每一级称为层。最高级(第 0 层)为原子钟,例如 GNSS 卫星中的原子钟。可增加其他层,以同步特定网络上的设备。")]),v._v(" "),_("p",[v._v("NTP 仅在第 1 层实现,用于向其他设备分发时间。在内部 UTC 时间可用之前,时间将标记为未同步。")]),v._v(" "),_("p",[v._v("NTP 在端口号 123 上使用 UDP 协议。")]),v._v(" "),_("h3",{attrs:{id:"精确时间协议-ptp"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#精确时间协议-ptp"}},[v._v("#")]),v._v(" 精确时间协议(PTP)")]),v._v(" "),_("p",[v._v("与 NTP 一样,PTP 用于在整个 TCP/IP 网络中同步时钟,但旨在提供优于 NTP 的精度。")]),v._v(" "),_("p",[v._v("为达到该精度,该协议具有"),_("strong",[v._v("硬件依赖性")]),v._v(",因此并不适用于所有设备。所有具备以太网连接的 FDI 惯性器件均支持 PTP 时间服务器,测得的平均时间精度约为 150 ns。")]),v._v(" "),_("p",[v._v("若内部 UTC 时间不可用,PTP 实现会生成标记为错误的时钟。")]),v._v(" "),_("p",[v._v("一旦 UTC 时间可用,我们的 PTP 系统即可作为主时钟运行(若网络上存在更高精度的时间参考,也可作为被动模式运行)。")]),v._v(" "),_("p",[v._v("PTP 在端口号 319 与 320 上使用 UDP 网络协议运行。")])],1)}),[],!1,null,null,null);_.default=a.exports}}]);