APAUTOSAR硬核技术(11):时间同步TimeSync

原创 汽车电子与软件 2025-02-19 09:20
全文约8,100字,建议收藏阅读

作者:刘向
出品:汽车电子与软件


 引言和功能概述

  

时间同步在不同应用程序和电子控制单元(ECU)之间至关重要,特别是在需要跨分布式系统关联不同事件的情况下。无论是为了跟踪这些事件的时间,还是为了在特定时间点触发它们,准确的时间同步都是实现系统协同工作的基础。

为此,AUTOSAR提供了一个时间同步API,使应用程序能够获取与其他实体或ECU同步的时间信息。有关所使用时间同步协议的格式、消息序列和语义的详细信息,请参阅AUTOSAR时间同步协议的协议要求规范(PRS)。

时间同步功能通过不同的“时间基础资源”(Time Base Resource,TBR)提供,这些资源根据其特性被分类为以下几种类型:

  • 同步主时间基础:用于提供标准时间源的主时间基础。

  • 偏移主时间基础:提供基于主时间基础的偏移时间。

  • 同步从属时间基础:从主时间基础中获取时间信息的从属时间基础。

  • 偏移从属时间基础:提供基于从属时间基础的偏移时间。

与Synchronized Time Base Manager(StbM)中的情况类似,时间同步模块(TS)提供的TBR与分布式系统中其他节点上的时间基础进行同步。应用程序通过TBR消费和管理时间信息,因此,TBR充当时间基础的代理,提供对同步时间基础的访问。这种抽象使得TS模块能够从“真实”的时间基础提供者中分离出来。   

时间同步作为自适应平台基础设施中的一个功能集群,通过一个库向应用程序提供C++ API,与应用程序链接,以便访问时间同步功能。

缩写/缩略词

描述

backupTimestamp

存储在持久性内存中的全局时间值,用于在启动时计算时间基准的初始值。

Clock Update Counter

表示时间基准更新的计数器值。

DST

夏令时,也称为日光节约时间,是在夏季月份将时钟提前的做法,使得傍晚的日光持续更长,同时牺牲正常的日出时间。

gPTP

通用精确时间协议(Generalized Precision Time Protocol)

NTP

网络时间协议(Network Time Protocol)

OS

操作系统(Operating System)

Pdelay

传播/路径延迟,如IEEE 802.1AS所述

PdelayReq

传播/路径延迟请求消息(Propagation / path delay request message)

PdelayResp

传播/路径延迟响应消息(Propagation / path delay response message)

PdelayRespFollowUp

传播/路径延迟后续消息(Propagation / path delay Follow-Up message)

Sync

时间同步消息(Time synchronization message)

PTP

精确时间协议(Precision Time Protocol)

roc

通过速率适应消除时间偏移的速率(Rate for time offset elimination via Rate Adaption)

rrc

校正时间基准本地实例的当前速率(Current rate for correcting the local instance of the Time Base)

StbM

同步时间基准管理器(Synchronized Time Base Manager)

TBR

时间基准资源(Time Base Resource)

TG

接收到的全局时间值(Received value of the Global Time)

TGStart

全局时间基准Time Master的当前时间(Current time of the global Time Base Time Master)

TGStop

全局时间基准Time Master的当前时间(Current time of the Global Time Base Time Master)

Timesync

时间同步。指通过时间同步协议/总线/消息进行时间同步的行为。

TLSync

在应用全局时间的新值之前,Time Base本地实例的值(Value of the local instance of the Time Base before the new value of the Global Time is applied)

TOStart

由关联Time Base的本地实例提供的当前校正时间(Current corrected time provided by the local instance of the associated Time Base)

TOStop

作为函数参数给出的偏移时间基准的当前偏移(Current Offset of the Offset Time Base given as function parameter)

TS

时间同步(Time Synchronization)

TSP

特定总线的时间同步提供者(A bus specific Time Synchronization Provider)

TSStart

由关联Time Base的本地实例提供的当前校正时间(Current corrected time provided by the local instance of the associated Time Base)

TSStop

由关联Time Base的本地实例提供的当前校正时间(Current corrected time provided by the local instance of the associated Time Base)

TV

虚拟本地时间的当前值(Current value of the Virtual Local Time)

TVStart

关联Time Base的虚拟本地时间的当前时间(Current time of the Virtual Local Time of the associated Time Base)

TVStop

关联Time Base的虚拟本地时间的当前时间(Current time of the Virtual Local Time of the associated Time Base)

TVSync

虚拟本地时间的值(Value of the Virtual Local Time)

UTC

协调世界时(Coordinated Universal Time)




#01
 什么是时间同步?

在自动驾驶汽车中,多个 ECU 需要协同工作以确保车辆的安全和高效运行。例如,摄像头 ECU 负责捕捉道路图像,雷达 ECU 负责检测障碍物,制动 ECU 负责控制刹车系统。这些 ECU 需要精确的时间同步,以确保它们能够在同一时间点共享和处理数据。   

假设摄像头 ECU 和雷达 ECU 的时间不同步,摄像头捕捉到的图像和雷达检测到的障碍物数据之间存在时间差异。这可能导致制动 ECU 接收到不一致的信息,从而无法正确判断何时刹车,最终可能导致交通事故。

通过时间同步,所有 ECU 的时钟都保持一致,摄像头捕捉到的图像和雷达检测到的障碍物数据能够在同一时间点被处理。这样,制动 ECU 可以准确地判断何时刹车,确保车辆的安全运行。



#02
 时间同步的目的

时间同步功能集群旨在确保分布式汽车系统中不同的电子控制单元(ECU)维护同步时间。这对于协调操作、准确记录事件和确保系统可靠性至关重要。
         

 

时间同步(Time Synchronization)是自适应平台基础中的一个功能集群。作为一个功能集群,时间同步通过库向应用程序提供统一的 C++ API,该库(rb-tsync-lib)通常作为 AP 工具链的一部分提供,并与应用程序链接以访问功能,以便其能够获取与其他实体/ECU 同步的时间信息。
         

 



#03
 时间同步模块的职责


在自适应平台中,时间同步功能集群支持跨多个目标 ECU 和/或自适应应用程序的功能分配,通过时间上的事件协调。协调可以包括事件的跟踪(在时间上)和在不同目标 ECU 上同时触发事件。
         

 

时间同步建立一个或多个时间基准资源(Timebase Resources),这些资源通过标准化网络协议 gPTP 与其他目标 ECU 进行同步,形成主或从时间参考。使用提供的 C++ API,自适应应用程序可以访问时间基准资源,因此可以协调其活动。   
         

 



#04
 间同步的架构 

ARA::TIME专注于解决车辆内部时间同步的核心难题,旨在为各类应用程序和电子控制单元(ECU)提供精准的时间一致性。这一能力对于确保车辆各项功能的协调运作及满足严格的时间要求至关重要。


具体而言,ARA::TIME提供以下关键服务:   

1. 分布式ECU时间同步(Time Synchronization across  distributed ECUs):确保车辆内部所有分布式ECU和应用程序的系统时间保持高度一致,从而消除时间差异带来的潜在问题。

2. 时钟管理(Clock Management):提供对系统时钟的全面访问权限,并允许在系统内部进行灵活的时间管理,以满足不同应用场景的需求。

3. 时间测量(Time Measurement):实现高精度的时间间隔测量,这对于监控软件组件的执行效率以及调度具有严格时间要求的任务至关重要。

4. 全局时间概念(Global Time):在涉及车对车(V2V)或车对基础设施(V2I)通信的场景中,ARA::TIME 推广全局时间概念,为这些功能提供一个共同的时间基准,确保通信的准确性和可靠性。

通过克服时间和同步方面的挑战,ARA::TIME 确保车辆的高级功能能够以协调、可靠且高效的方式运行,这是安全关键型汽车应用不可或缺的基础。



#05
 关键组成部分
       

 

一个时间同步网络由一个时间主节点和一个或多个时间从节点组成。时间主节点使用标准化的时间分配协议将全局时间基准(Global Timebase)分配给从节点。时间从节点使用接收到的时间值来更新和维护自己的本地时间(Local Time),随后可以通过时间同步 API 提供给自适应应用程序。

系统可以由多个时间主节点组成——每个节点服务于独立同步的网络。此外,可以配置时间网关节点在一个时间分配网络上作为从节点,在第二个网络上作为主节点,从而转发同步时间。
         

 

  • 全局时间主节点:该组件作为网络中时间同步的参考时钟。它生成同步消息,供其他 ECU(从节点)调整其本地时钟使用。   

  • 全局时间从节点:这些组件接收来自主节点的同步消息,并相应地调整他们的本地时钟。

  • 通信连接器:将时间同步组件绑定到底层通信网络(例如,Ethernet)。
         

 

  

#06
 通用精确时间协议 Generalized Precision Time Protocol
       

 

AUTOSAR 时间同步使用通用精确时间协议(gPTP)来同步时间主节点与从节点之间的时钟。

gPTP通过同步主节点(Time Master)和从节点(Time Slave)的时钟,实现全局一致的时间参考。

以下是gPTP实现主从时间同步的详细过程:

6.1 gPTP时间同步过程 


初始状态:主节点(Master)和从节点(Slave)的时钟起初是不同步的,也就是说它们之间没有任何时间关系。   

         

 

1. 同步请求(Sync Request)

1) 主节点发送同步请求消息给从节点,要求从节点进行同步(Sync)。

2) 从节点记录接收到同步请求的时间(t2),t2是从节点的本地时钟(未同步)。
         

 

2. 跟踪消息(Follow-up Message)

1) 主节点紧接着发送一个跟踪消息(Follow-up)给从节点,包含了主节点发送同步请求时的时间戳(t1)。

2) 从节点接收到跟踪消息后,记录下主节点发送同步请求的时间(t1)和自己接收到同步请求的时间(t2),然后计算两者之间的时差c,并执行初步同步。
         

 

3. 延迟请求(Delay Request)   

1) 为了测量消息的传播延迟,从节点向主节点发送延迟请求(Delay Request)消息,并记录下发送时的时间(t6)。

2) 主节点接收到延迟请求后,记录下接收时的时间(t7),然后将这个时间发送给从节点。
         

 

4. 延迟响应(Delay Response)

从节点接收到主节点的延迟响应消息后,利用t6t7的时间差计算消息传播延迟p。由于从节点的时钟已经因之前的同步引入了传播时间p,因此t6t7之间的差异实际上是2p(因为在发送延迟请求时又引入了一个p)。
         

 

         

 

   

计算与同步 


初始同步

  • 时间差计算:c=t2-t1在初始同步过程中,从节点利用t1和t2计算主从节点的时间差

  • 图中从节点接收到主节点发来Follow-up Message的时间是从节点自己本地时t3old(未同步)

  • 初步同步:t3new = t3old+c(初步同步时间 t3new = 从节点本地时间t3old +主从节点的时间差C )

  • 初步同步时间与实际的同步时间之间差了一个消息传播延迟时间P
         

 

传播延迟

  • 传播延迟计算:通过p=(t7-t6)/2计算传播延迟,这里的 t6和 t7 是从节点接收到消息的时间点。

总时间同步

  • 从节点通过考虑初始时钟差异和消息传播延迟进行准确同步:
    t_slave = t_master +C +C 主从节点的时间差,P传播延迟)

  • 完成同步时间:更新从节点的时间为t8new = t8old +P  (完成同步时间t8new= 初步同步时间t8old+传播延迟P)
         

 

周期性重新同步

  • 漂移校正:随着时间的推移,主节点和从节点的时钟会自然漂移。为了避免漂移变得显著,gPTP协议包含定期重新同步过程,确保主节点和从节点时钟保持同步。  
 
gPTP通过上述步骤实现了主从时间的精确同步,使分布式系统中的多个节点能够以统一的时间基准进行协调和操作。
         

 

         

 

         

 

#07
实  施
       

 

如前所述,不同自适应应用程序和/或ECUs之间的时间同步对于在分布式系统中关联不同事件至关重要,无论是为了能够跟踪这些事件的时间,还是为了在准确的时间点触发它们。因此,AUTOSAR为自适应应用程序提供了一个时间同步API,使它们可以获取与其他ECUs同步的时间信息。这个API由TSync客户端库(librb-tsync.so)实现,任何想要使用同步时间的应用程序都必须链接这个库。
         

 

   

 

7.1 rb-aptpd2 


RTA-VRTE 包含一个 PTP 守护进程 rb-aptpd2,它是基于 IEEE Std 1588-2008 定义的 PTP 版本 2 的实现。rb-aptpd2 负责同步一组局域网(LAN)连接的目标 ECU 的时间基准。因此,每个需要同步的目标 ECU 都需要运行一个 rb-aptpd2 实例。

每个 rb-aptpd2 实例需要使用一组特定的参数来配置其功能。以下表格列出了基本的 rb-aptpd2 配置选项:

命令行选项

描述

-i –interface [dev]

使用的接口(必需)

-d –domain [n]

PTP 域号,链接到配置的全局时间域 ID

-s –slave only

仅从模式

-m –master slave

主模式,当不是最佳 GM 时为从模式

-M –master only

主模式,当不是最佳 GM 时为被动模式

-y –hybrid

混合模式

-U –unicast

单播模式

-u –unicast-destinations [ip/host, …]

单播目标列表

-E –e2e

端到端延迟检测

-P –p2p

点对点延迟检测

–bosch:autosar=

启用 AUTOSAR 支持

–bosch:globaltimepropagationdelay=

静态路径传播延迟(秒)


注意:为了兼容 AUTOSAR,还需要–ptpengine:transport=ethernet 选项。

示例 


以主模式(masteronly,)、多播模式启动 rb-aptpd2 实例,使用虚拟接口 eth1 并链接到全局域 "42":


以仅从模式(slaveonly,)、单播模式启动 rb-aptpd2 实例(指定目标地址:192.169.56.13, 192.169.56.14 和 192.169.56.15),使用虚拟接口 eth1 并链接到全局域 "42":   

         

 

7.2 rb-tsyncd 


时间同步模块提供一个守护进程rb-tsyncd。这个进程管理包含配置的时间基准的共享内存区域。通常 rb-tsyncd 需要通过 ARXML/FlatCFG 文件进行必要的配置。

如果配置不可用或 rb-tsyncd 无法访问配置文件,它将无法启动。这会影响所有提供或使用时间基准资源的进程。

如果 rb-tsyncd 没有创建包含时间基准数据的共享内存文件,这些进程在尝试通过提供的 API 访问这些资源时将会中止。同样,如果这些进程缺乏访问时间同步共享内存文件的必要权限,也会出现相同的问题。

7.2.1 配置 


需要在/AR-PACKAGES/AR-PACKAGE/ELEMENTS/MACHINE/MODULE-INSTANTIATIONS 下定义一个 TimeSyncModuleInstantiation。这个模块实例主要由称为时间基准(Time Bases)的元素组成,这些元素可以是两种类型:同步时间基准提供者(Synchronized Time Base Provider)和同步时间基准消费者(Synchronized Time Base Consumer)。   

同步时间基准提供者需要引用一个全局时间以太网主设备(Global Time Eth Master)作为网络时间提供者参考(Network Time Provider Ref),该主设备定义在要用于该提供者的全局时间域中。同步时间基准提供者的短名称(Short Name)将用于提供者应用程序的 API。

同样,同步时间基准消费者需要引用一个全局时间以太网从设备(Global Time Eth Slave)作为网络时间消费者参考(Network Time Consumer Ref),该从设备定义在要用于该消费者的全局时间域中。同步时间基准消费者的短名称将用于消费者应用程序的 API。

可以在时间同步校正(Time Sync Correction)下为同步时间基准提供者添加额外的配置。此配置包含以下元素:

  • 允许提供者速率校正(Allow Provider Rate Correction):定义是否可以使用SetRateCorrection 方法设置时间基准的速率校正值。

  • 偏移校正适应间隔(Offset Correction Adaptation Interval):定义在此间隔(秒)内,自适应速率校正会消除速率和时间偏差。

  • 偏移校正跳跃阈值(Offset Correction Jump Threshold):定义校正方法的阈值(秒)。低于此值的偏差将通过线性减少在定义的时间跨度内校正。等于或大于此值的偏差将通过立即设置正确的时间和速率来校正。

  • 每测量持续时间的速率校正次数(Rate Corrections per Measurement Duration):用于确定当前速率偏差的同时速率测量次数。   

  • 速率偏差测量持续时间(Rate Deviation Measurement Duration):用于计算速率偏差的时间跨度(秒)。

以下是 ARXML 时间基准配置的示例:

   
下一步是在 /AR-PACKAGES/AR-PACKAGE/ELEMENTS 下定义全局时间域(Global Time Domain)。该元素由域 ID(供 rb-aptpd2 使用)、全局时间主设备和从设备的配置以及以下与循环冗余校验(CRC)相关的一般元素组成:

  • 目标物理地址:定义以太网时间同步消息通信的 MAC 多播地址。

  • FUP Data Id Lists:用于计算 CRC 的 FUP 消息的 DataIDList。只有在定义了所有十六个值时,DataIDList 才有效。

  • Message Compliance:定义以太网时间同步消息对特定标准的合规性。

  • VLAN Priority::定义在使用 VLAN 标签发送消息时应分配给时间同步消息的 VLAN 优先级。

  • CRC Correction Field:CRC 标志,定义是否在 CRC 计算和验证中考虑消息的 CRC 校正字段。

  • CRC Domain Number:CRC 标志,定义是否在 CRC 计算和验证中考虑消息的 CRC 域号。

  • CRC Message Length:CRC 标志,定义是否在 CRC 计算和验证中考虑消息的 CRC 消息长度。

  • CRC Precise Origin Timestamp:CRC 标志,定义是否在 CRC 计算和验证中考虑消息的 CRC 精确原始时间戳。

  • CRC Sequence Id:CRC 标志,定义是否在 CRC 计算和验证中考虑消息的 CRC 序列 ID。

  • CRC Source Port Identity:CRC 标志,定义是否在 CRC 计算和验证中考虑消息的 CRC 源端口标识。

如果需要 CRC,则必须定义FUP Data Id Lists和Message Compliance元素。   

全局时间主设备由全局时间以太网主设备(Global Time Eth Master)元素组成,这些元素通过以下元素进行配置:

  • Communication Connector Ref:全局时间以太网主设备需要绑定到以太网通信连接器。

  • Immediate Resume Time:定义“立即”消息和下一条周期消息之间的最短时间。

  • Is System Wide Global Time Master:如果设置为 true,则全局时间以太网主设备将作为全局时间信息的根。

  • Sync Period:表示同步周期(秒)。

  • CRC Secured:定义是否支持 CRC。

  • OFS Sub TLV:子 TLV 配置标志,定义是否在时间同步消息中包含 OFS 子 TLV 字段。

  • Status Sub TLV:子 TLV 配置标志,定义是否在时间同步消息中包含状态子 TLV 字段。

  • Time Sub TLV::子 TLV 配置标志,定义是否在时间同步消息中包含时间子 TLV 字段。

  • User Data Sub TLV:子 TLV 配置标志,定义是否在时间同步消息中包含用户数据子 TLV 字段。

从设备由全局时间以太网从设备(Global Time Eth Slave)元素组成,这些元素通过以下元素进行配置:

  • Communication Connector Ref:全局时间以太网从设备需要绑定到以太网通信连接器。

  • Follow Up Timeout Value:跟随消息的接收超时。

  • Time Leap Future Threshold:定义当前本地时间基准值与新接收的全局时间基准值之间允许的最大正差异。

  • Time Leap Healing Counter:定义在时间基准被认为恢复之前,时间差异必须保持在时间跳跃未来阈值和时间跳跃过去阈值范围内的更新次数。   

  • Time Leap Past Threshold:定义当前本地时间基准值与新接收的全局时间基准值之间允许的最大负差异。

  • CRC Validated:定义是否支持 CRC 验证。

  • Status Sub TLV:子 TLV 配置标志,定义是否在时间同步消息中包含状态子 TLV 字段。

  • Time Sub TLV:子 TLV 配置标志,定义是否在时间同步消息中包含时间子 TLV 字段。

  • User Data Sub TLV:子 TLV 配置标志,定义是否在时间同步消息中包含用户数据子 TLV 字段。

注意:由于偏移时间基准正在从 AUTOSAR 时间同步协议规范中移除。

Sub-TLV字段 STATUS 与网关用例相关,目前不在 AUTOSAR 时间同步协议规范的范围内。这些可能会在未来某个时候得到支持。

以下是 ARXML 配置的示例:   

   
         

 

此外,以太网配置必须包含在/AR-PACKAGES/AR-PACKAGE/ELEMENTS/MACHINE DESIGN 下,如下所示:

   


#08
时间同步的使用
       

 

  

8.1 创建 SynchronizedTimeBaseProvider 


打算消费配置的时间基准资源的时间基准信息的进程必须引入时间同步库,并使用在 ECU 配置中找到的实例说明符(Instance Specifier)实例化 `SynchronizedTimeBaseConsumer` 类型,作为同步时间基准消费者的短名称。因此,在创建消费者之前,必须构建一个实例说明符。


传递给构造函数的实例说明符唯一标识了 `SynchronizedTimeBaseConsumer` 实例应使用的时间基准。

SynchronizedTimeBaseProvider provider(rs.Value()); 

这些类型的接口允许进程更新时间基准资源的时间基准信息。可以使用 SetTime 或 UpdateTime 方法提供时钟和用户数据的新时间值。使用 SetTime 还会触发总线上的传输,而使用 UpdateTime 则仅在本地更新时钟值,总线上的传输将在下一个周期发生。   


8.2 创建 SynchronizedTimeBaseConsumer 


打算消费配置的时间基准资源的时间基准信息的进程必须引入时间同步库,并使用在 ECU 配置中找到的实例说明符(Instance Specifier)实例化 SynchronizedTimeBaseConsumer 类型,作为同步时间基准消费者的短名称。因此,在创建消费者之前,必须构建一个实例说明符。


传递给构造函数的实例说明符唯一标识了 SynchronizedTimeBaseConsumer 实例应使用的时间基准。

现在可以使用这个实例说明符构建
SynchronizedTimeBaseConsumer:

SynchronizedTimeBaseConsumer consumer(rs.Value());
 
这种类型的接口允许进程根据时间基准资源获取当前时间等信息。可以使用 GetCurrentTime 和 GetTimeWithStatus 方法获取时间:


这个类的方法的返回值没有使用 ara::core::Result 类型包装,这意味着无法通过此 API 报告错误状态。

8.3 实例展示: 


通过使用rb-tsyncd在同一以太网网络中同步由两台ECU 组成的集群,以访问存储时间基准数据的共享内存区域,并使用rb-aptpd2实现精确时间协议(PTP)来更新网络时间基准。ECU1(蓝色)将运行rb-tsyncd、以主模式运行的rb-aptpd2实例,以及以提供者模式运行的自适应应用tsync-e2e_test。


该应用程序将创建一个ara::tsync::SynchronizedTimeBaseProvider类的对象,通过该对象向网络提供公共时间戳和用户数据,使用UpdateTime方法进行更新。
         

 

第二台ECU2将运行rb-tsyncd、以从模式运行的rb-aptpd2实例,以及以消费者模式运行的自适应应用tsync-e2e_test。在这种情况下,tsync-e2e_test将创建一个ara::tsync::SynchronizedTimeBaseConsumer类的对象,利用GetCurrentTime和GetTimeWithStatus方法分别获取网络时间戳和用户数据。   
         

 

具体来说,在ECU1上将运行一个rb-tsyncd实例和一个作为已配置时间基准sysclock_provider主设备的rb-aptpd2实例,以及每5秒提供时间基准时间戳和用户数据的e2e_qnx_provider。而ECU2将运行一个rb-tsyncd实例和一个作为已配置时间基准sysclock_consumer从设备的rb-aptpd2实例,以及每1秒对齐时间基准时间戳和用户数据的e2e_linux_consumer。
         

 

下图展示了ECU2的日志(左侧)和ECU1的日志(右侧)。需要注意的是,此示例可以在不同机器上运行多个时间域从设备的实例。此外,该示例中的配置可以通过更改SoftwareCluster_0(主设备)和SoftwareCluster_1(从设备)中的进程,来在不同架构上运行时间域主设备和从设备。
         

 




#09
间同步过程梳理
       

 

  
1. 主节点初始化:   

  • Global Timebase主节点配置通信连接器和同步参数。

  • 它开始按定义的间隔广播同步消息。
         

 

2. 从节点初始化:

  • Global Time从节点配置为监听来自主节点的同步消息。

  • 他们设置跟随超时值和时间跃迁修正的阈值。
         

 

3. 消息交换:

  • 同步消息:主节点发送包含其当前时间的同步消息。

  • 跟随消息:主节点发送跟随消息以提供额外的时间信息。

  • 延迟请求:从节点向主节点发送延迟请求以测量往返延迟。

  • 延迟响应:主节点响应延迟请求的时间。
         

 

步骤 5:时间调整

  • 每个从节点使用同步消息和延迟请求中的信息计算其本地时钟和主节点时钟之间的时间差。

  • 从节点根据计算的偏移量调整它们的本地时钟,确保它们与主节点保持同步。
         

 

步骤 6:处理时间偏差

  • 时间跃迁未来/过去阈值:这些阈值定义了可接受的时间差限制。如果从节点接收到的时间超出这些阈值,它将启动修复过程以重新同步。

  • 修复计数器:该计数器计算在阈值范围内成功更新的次数,直到认为该时间基准被视为已修复。
         

 

   
步骤 7:持续同步

  • 定期的同步确保主节点和从节点之间的任何偏差随着时间的推移而得到纠正。

  • 系统持续监控同步状态,并根据需要调整参数。
         

 

步骤 8:自适应应用中的实现

1. 创建 SynchronizedTimeBaseProvider:

  • 需要提供时间的应用程序必须使用唯一实例说明符实例化`SynchronizedTimeBaseProvider`。

  • 使用 `SetTime` 和 `UpdateTime` 等方法来管理时间基准。
         

 

2. 创建 SynchronizedTimeBaseConsumer:

  • 消费配置信息的时间基准资源的应用程序必须实例化`SynchronizedTimeBaseConsumer`。

  • 他们可以使用 `GetCurrentTime` 等方法检索当前时间和状态。
         

 

步骤 9:错误处理和通知

  • 系统未使用结果类型包装返回值,这意味着错误处理必须由应用程序显式管理。

  • 可以注册通知,以在新时间数据可用时通知应用程序。
    
 

#10
小  结
       

 

  
AUTOSAR 中的时间同步功能集群提供了一种结构化的方法来维护多个 ECU 之间的同步时间。该过程包括设置全球时间主节点和从节点、交换同步消息、调整本地时钟以及通过定期更新确保持续同步。通过使用通用精确时间协议(gPTP)和自适应平台的时间同步 API,系统能够实现高精度的时间同步,从而提高车辆的安全性和可靠性。   
         

 

         

 


-end-

本专栏是由汽车电子与软件打造的中立性技术科普专栏,将系统地阐述软件定义汽车下的关键挑战和工程实践。欢迎订阅本专栏!



汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论 (0)
  • 贞光科技代理的品牌-光颉科技高精密薄膜电阻凭借0.01%的超高精度,在AI服务器电源模块中实现了精确电压分配、优化功率因数和减少热损耗,显著提升系统能效和可靠性。在当今的数字时代,人工智能(AI)服务器已成为数据中心的核心。随着AI应用的激增,服务器的性能和能效需求也在不断提高。电源模块作为服务器的关键组件,其性能直接影响整个系统的效率和可靠性。本文将探讨光颉科技高精密薄膜电阻,特别是其0.01%的精度,如何在AI服务器电源模块中提升能效。电源模块在AI服务器中的重要性电源模块负责将输入电源转换
    贞光科技 2025-03-20 16:55 112浏览
  • PCIe 5.0应用环境逐步成形,潜在风险却蠢蠢欲动?随着人工智能、云端运算蓬勃发展,系统对于高速数据传输的需求不断上升,PCI Express(PCIe)成为服务器应用最广的传输技术,尤其在高效能运算HPC(High Performance Computing)及AI服务器几乎皆导入了最新的PCIe 5.0规格,使得数据传输的双向吞吐量达到了128GB/s,让这两类的服务器能够发挥最大的效能。不过随着PCIe 5.0的频率达到16GHz,PCB板因为高频而导致讯号衰减加剧的特性,使得厂商面临很
    百佳泰测试实验室 2025-03-20 13:47 69浏览
  • 本文内容来自微信公众号【工程师进阶笔记】,以工程师的第一视角分析了飞凌嵌入式OK3506J-S开发板的产品优势,感谢原作者温老师的专业分享。前两周,有一位老朋友联系我,他想找人开发一款数据采集器,用来采集工业现场的设备数据,并且可以根据不同的业务场景,通过不同的接口把这些数据分发出去。我把他提的需求总结了一下,这款产品方案大概有以下功能接口,妥妥地一款工业网关,在网上也能找到很多类似的产品方案,为啥他不直接买来用?再跟朋友深入地聊了一下,他之所以联系我,是因为看到我在公众号介绍过一款由飞凌嵌入式
    飞凌嵌入式 2025-03-20 11:51 102浏览
  • 近日,保定飞凌嵌入式技术有限公司(以下简称“飞凌嵌入式”)携手瑞芯微电子股份有限公司(以下简称“瑞芯微”)正式加入2025年全国大学生嵌入式芯片与系统设计竞赛(以下简称“嵌入式大赛”),并在应用赛道中设立专属赛题。本次嵌入式大赛,双方选用基于瑞芯微RK3588芯片设计的ELF 2开发板作为参赛平台,旨在通过此次合作,促进产教融合,共同推动嵌入式系统创新人才的培养。全国大学生嵌入式芯片与系统设计竞赛是一项A类电子设计竞赛,同时也是被教育部列入白名单的赛事,由中国电子学会主办,是学生保研、求职的公认
    飞凌嵌入式 2025-03-20 11:53 62浏览
  • 在电子制造领域,PCB(印刷电路板)的使用寿命直接决定了产品的长期稳定性和可靠性。捷多邦作为全球领先的PCB制造商,始终将质量放在首位,致力于为客户提供高可靠性、高性能的PCB解决方案。以下是捷多邦如何确保PCB使用寿命超过20年的核心技术与优势。 1. ​高品质原材料:从源头保障耐用性捷多邦采用国际认证的优质基材,如FR4、高频材料和高TG板材,确保PCB在高温、高湿等极端环境下的稳定性。通过严格的原材料筛选和入库检验,捷多邦从源头控制质量,避免因材料缺陷导致的失效问题。 
    捷多邦 2025-03-20 11:22 92浏览
  • 全球领先的光学解决方案供应商艾迈斯欧司朗(SIX:AMS)近日宣布,凭借AS1163独立智能驱动器(SAID)成为中国领先的智能集成系统产品汽车制造商宁波福尔达智能科技股份有限公司(“福尔达”)环境动态照明应用的关键供应商。此次合作标志着汽车技术发展的一个重要时刻,充分展现了AS1163在优化动态照明应用系统成本方面的多功能性和先进性能。该产品支持传感器集成,拥有专为车顶照明设计的超薄外形,并能提升车内照明系统的性能。AS1163是一款先进的智能LED驱动器,能够与开放系统协议(OSP)网络无缝
    艾迈斯欧司朗 2025-03-20 14:26 73浏览
  •         在当今电子设备高度集成的时代,电路保护显得尤为重要。TVS管(瞬态电压抑制二极管)和压敏电阻作为一种高效的电路保护器件,被广泛应用于各种电子设备中,用以吸收突波,抑制瞬态过电压,从而保护后续电路免受损坏。而箝位电压,作为TVS管和压敏电阻的核心参数之一,直接关系到其保护性能的优劣。箝位电压的定义        箝位电压指瞬态保护器件(如TVS二极管、压敏电阻)在遭遇过压时,将电路电压限制在安全范围内的
    广电计量 2025-03-20 14:05 71浏览
  • 流感季急诊室外彻夜排起的长队,手机屏幕里不断闪烁的重症数据,深夜此起彼伏的剧烈咳嗽声——当病毒以更狡猾的姿态席卷全球,守护健康的战争早已从医院前移到每个人的身上。在医学界公认的「72小时黄金预警期」里,可穿戴设备闪烁的光芒正穿透皮肤组织,持续捕捉血氧浓度、心率变异性和体温波动数据。这不是科幻电影的末日警报,而是光电传感器发出的生命预警,当体温监测精度精确到±0.0℃,当动态血氧检测突破运动伪影干扰……科技正在重新定义健康监护的时空边界。从智能手表到耳机,再到智能戒指和智能衣物,这些小巧的设备通过
    艾迈斯欧司朗 2025-03-20 15:45 129浏览
  • 如同任何对我们工作方式的改变,新的工作方式必然会遇到许多必须面对的挑战。如果不解决组织在实施精益六西格玛过程中面临的障碍以及如何克服它们的问题,那么关于精益六西格玛的讨论就不算完整。以下列举了组织在成功实施精益六西格玛时常见的几个障碍,以及克服它们的方法:1)对精益六西格玛方法论缺乏理解。抵触情绪通常源于对精益六西格玛方法论的不了解,以及不相信它能真正发挥作用。这种情况在所有层级的人员中都会出现,包括管理层。虽然教育培训可以帮助改善这一问题,但成功的项目往往是打消疑虑的最佳方式。归根结底,这是一
    优思学院 2025-03-20 12:35 78浏览
  • 为有效降低人为疏失导致交通事故发生的发生率,各大汽车制造厂及系统厂近年来持续开发「先进驾驶辅助系统」ADAS, Advanced Driver Assistance Systems。在众多车辆安全辅助系统之中,「紧急刹车辅助系统」功能(AEB, Autonomous Emergency Braking)对于行车安全性的提升便有着相当大的帮助。AEB透过镜头影像模块与毫米波雷达感测前方目标,可在发生碰撞前警示或自动刹车以降低车辆损伤以及乘员伤害。面临的挑战以本次分享的客户个案为例,该车厂客户预计在
    百佳泰测试实验室 2025-03-20 15:07 72浏览
  • 家电“以旧换新”政策的覆盖范围已从传统的八大类家电(冰箱、洗衣机、电视、空调、电脑、热水器、家用灶具、吸油烟机)扩展至各地根据本地特色和需求定制的“8+N”新品类。这一政策的补贴再叠加各大电商平台的优惠,家电销售规模显著增长,消费潜力得到进一步释放。晶尊微方案为升级换代的智能家电提供了高效且稳定的触摸感应和水位检测功能,使得操作更加便捷和可靠!主要体现在:水位检测1健康家电:养生壶、温奶器、加湿器的缺水保护安全2清洁电器:洗地机、扫地机器人的低液位和溢液提醒3宠物家电:宠物饮水机的缺水提醒/满水
    ICMAN 2025-03-20 15:23 106浏览
  • 4月8-11日,第91届中国国际医疗器械博览会(CMEF)将在国家会展中心(上海)举办。这场全球瞩目的医疗科技盛宴以“创新科技,智领未来”为主题,旨在全方位展示医疗科技的最新成果,与来自全球的行业同仁一道,为全球医疗健康领域带来一场科技与商贸交融的产业“盛宴”。飞凌嵌入式作为专业的嵌入式技术解决方案提供商,一直致力于为医疗器械行业提供丰富的、高可靠性的嵌入式硬件主控解决方案。届时,飞凌嵌入式将为来自全球的观众带来适用于IVD、医疗影像、生命体征监测等医疗设备的嵌入式板卡、显控一体屏产品以及多款动
    飞凌嵌入式 2025-03-20 11:46 33浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦