调度表的显式同步有多准确?

How accurate is Explicit Synchronization of Schedule Tables?

我正在阅读 AUTOSAR 中的时间同步。具体来说,如何使用 global/PTP 时间在 ECU 上实际执行时间敏感的工作。

按照我的理解(来自OS 规范“AUTOSAR_SWS_OS”),这样做的方法是将任务放在计划表中,然后同步 table s 隐式显式

隐式同步我的理解是:lower levelcode/hardware整理出一个物理时钟的同步,然后scheduletables就使用一个基于这个时钟的定时器

然而,我对显式同步有点困惑: table 的同步方式似乎是定期调用 SyncScheduleTable()。这告诉调度程序“现在的 PTP 时间是 X”。
但是,检索当前 PTP 时间然后更新 table(在软件中...)的过程不会在时间同步中引入错误吗?我认为这至少需要几微秒?

A​​UTOSAR 中的同步级别预计不会是亚微秒吗?

软件模块之间总是会有小的偏移。

  1. 通常您会从总线接收 PTP 全球时间。
  2. 然后 STBM 将使用全局时间值并管理内部定时器从最后一个从总线接收到的值开始计数。一段时间后,您将在内部时间和总线的主时钟之间产生偏移。 当收到新值时,将始终更正此偏移量,但您将始终有小偏移量。
  3. 内部计时器将继续同步时间表 table 是的,从读取 HW 寄存器的时间到将其发送到 OS 进行同步,将花费几纳秒的时间。
  4. 即使在同步命令之后,由于 CPU 负载,OS runnables 事件将以偏移量触发。

到底几纳秒真的会伤害你的设计吗?在我见过的大多数项目中,如此小的偏移量都是acceptable.