【问题标题】:How accurate is Explicit Synchronization of Schedule Tables?计划表的显式同步有多准确?
【发布时间】:2021-10-21 15:00:07
【问题描述】:

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

我理解它的方式(来自操作系统规范“AUTOSAR_SWS_OS”),这样做的方法是将任务放在调度表中,然后隐式显式同步表

隐式同步我理解:较低级别的代码/硬件会整理出物理时钟的同步,然后调度表只是使用基于此时钟的计时器。

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

AUTOSAR 中的同步级别是否预计不会达到亚微秒级?

【问题讨论】:

    标签: autosar


    【解决方案1】:

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

    1. 通常您会从总线接收 PTP 全球时间。
    2. 然后 STBM 将使用全局时间值并管理内部定时器以从最后收到的总线值开始计数。一段时间后,您将在内部时间和总线的主时钟之间产生偏移。 当收到新值时,此偏移量将始终得到纠正,但您始终会有小偏移量。
    3. 内部计时器将保持同步调度表,是的,从硬件寄存器读取时间到将其发送到操作系统进行同步,需要几纳秒的时间。
    4. 即使在同步命令之后,OS 可运行事件也会因 CPU 负载而产生偏移。

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

    【讨论】:

    • 是的,如果它是纳秒级的,那很好。我认为错误会更高,以微秒为单位。
    猜你喜欢
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多