AUTOSAR进阶图解==>AUTOSAR_SWS_TimeSyncOverCAN

AUTOSAR CAN时间同步规范

1. 引言与功能概述

AUTOSAR CAN时间同步(CanTSyn)模块是一个专用于CAN总线时间信息分发的基础软件组件。它通过精确的两阶段机制解决了由于CAN总线特性(如仲裁)和BSW特定延迟导致的时间信息不准确问题。

在这里插入图片描述

1.1 CAN时间同步机制

CAN时间同步采用两步机制实现精确的时间传输:

  1. SYNC消息:主节点发送包含时间戳(t0r)的广播消息,通过CAN低级机制检测消息实际发送时间(t1r)。从节点接收此消息并记录接收时间(t2r)。

  2. FUP消息:主节点在第二条广播消息中发送前一条SYNC消息的实际发送时间与消息中时间的偏移量。从节点结合SYNC消息信息、FUP消息中的偏移信息以及自身接收SYNC消息的时间戳,可以更精确地确定时间值。

这种两步机制能有效补偿CAN总线传输过程中产生的延迟,提供更为精确的时间同步。

1.2 模块状态流转

CanTSyn模块具有完整的状态管理机制,确保时间同步过程的可靠性和稳定性。

在这里插入图片描述

CanTSyn模块状态转换包括:

  • 未初始化(UNINIT):模块尚未初始化,无法处理任何时间同步功能
  • 已初始化(INIT):模块已通过CanTSyn_Init()函数初始化,准备就绪但尚未开始同步
  • 同步状态(SYNC):模块正常运行,根据配置执行主节点或从节点功能
  • 错误状态(ERROR):检测到配置错误、通信错误等异常情况

错误状态需要通过重新初始化来恢复正常运行。

2. CAN时间同步详细流程

2.1 时间同步交互流程

时间同步过程涉及多个模块之间的复杂交互,主要包括StbM(同步时基管理器)、CanTSyn、CanIf(CAN接口)和Can驱动等模块。

在这里插入图片描述

主要流程步骤包括:

  1. StbM请求CanTSyn发送时间信息
  2. CanTSyn主节点准备SYNC消息(t0r)并通过CanIf请求发送
  3. 消息通过CAN总线传输到从节点
  4. CanTSyn主节点接收传输确认,记录实际发送时间(t1r)
  5. CanTSyn从节点接收SYNC消息并记录接收时间戳(t2r)
  6. CanTSyn主节点计算时间偏移(t1r - t0r)
  7. CanTSyn主节点发送包含偏移量的FUP消息
  8. CanTSyn从节点接收FUP消息,结合之前记录的时间戳,计算准确的时间信息
  9. CanTSyn从节点更新StbM中的全局时间

这种两阶段机制能有效补偿CAN总线传输延迟,确保时间同步的准确性。

2.2 消息格式设计

CAN时间同步使用四种不同类型的消息进行通信,每种消息具有特定的格式和功能。

在这里插入图片描述

四种消息类型:

  1. SYNC消息:包含初始时间戳(t0r),由时间主节点发送,接收方记录接收时间(t2r)

    • 消息类型(1字节) + 域ID(1字节) + 时间戳(6字节) + 可选CRC(最多1字节)
  2. FUP消息(Follow-Up):包含SYNC消息的实际传输时间与消息中时间的偏移量(t1r-t0r)

    • 消息类型(1字节) + 域ID(1字节) + 时间偏移量(2字节) + 时间戳(6字节) + 可选CRC(最多1字节)
  3. OFS消息(偏移同步):用于调整时钟偏移,进行时间校准

    • 消息类型(1字节) + 域ID(1字节) + 偏移量(4字节) + 符号位(1位) + 可选CRC(最多1字节)
  4. OFNS消息(偏移调整):用于调整时钟偏移和斜率,提供更精确的时间校准

    • 消息类型(1字节) + 域ID(1字节) + 调整偏移量(4字节) + 符号位(1位) + 斜率(2字节) + 可选CRC(最多1字节)

这些消息格式的设计确保了时间同步的准确性和可靠性,能够处理各种时钟调整需求。

3. 模块结构与配置

3.1 CanTSyn模块结构

CanTSyn模块采用分层设计,与AUTOSAR标准软件架构保持一致。

在这里插入图片描述

CanTSyn模块主要组件包括:

  • CanTSyn核心模块:提供初始化、反初始化、版本信息获取等基础功能
  • CanTSynGlobalTimeDomain:全局时间域配置,支持多个时间域,包含CRC校验与即时同步选项
  • CanTSynGlobalTimeMaster:主节点配置,包含发送周期、发送偏移等参数
  • CanTSynGlobalTimeSlave:从节点配置,包含跟随超时等参数

模块与StbM和CanIf密切协作,共同实现时间同步功能。

3.2 关键配置参数

CanTSyn模块的配置参数主要包括:

  • CanTSynGlobalTimeDomainId:全局时间域ID
  • CanTSynSynchronizedTimeBaseRef:同步时基引用
  • CanTSynCrcValidated:是否启用CRC校验
  • CanTSynImmediate:是否启用即时同步
  • CanTSynDebounceTime:防抖时间配置
  • CanTSynGlobalTimeTxPeriod:主节点发送周期
  • CanTSynGlobalTimeTxOffset:主节点发送偏移
  • CanTSynGlobalTimeFollowUpTimeout:从节点跟随超时时间

这些参数可以根据具体应用场景进行调整,以满足不同的时间同步精度要求和系统性能需求。

4. 总结

AUTOSAR CAN时间同步规范定义了一套完整的机制,用于在CAN总线上传输精确的时间信息。通过两阶段消息传输机制,CanTSyn模块有效解决了由于CAN总线特性和系统延迟导致的时间不准确问题。

通过严格遵循AUTOSAR规范实现CanTSyn模块,可以为分布式汽车电子系统提供可靠的时间基准,支持需要精确时间同步的功能,如诊断、日志记录和分布式控制等。
集成,确保了时间同步功能在AUTOSAR软件架构中的无缝运行。

autosar_sws_timesyncovercanAUTOSAR标准中定义的基于CAN总线的时间同步服务。 在汽车电子系统中,不同的控制单元(ECU)需要按照统一的时间基准进行操作,以确保各个控制单元之间的协调和同步。autosar_sws_timesyncovercan就是为了满足这个需求而被定义的。 autosar_sws_timesyncovercan使用了CAN总线作为通信的介质,通过CAN总线将时间同步消息发送到各个控制单元。通过时间同步消息,各个控制单元可以获取精确的时间信息,并根据这个时间信息进行各种操作,例如数据传输、事件触发等。 autosar_sws_timesyncovercan实现了基于Master-Slave架构的时间同步机制。其中,Master节点负责发送时间同步消息,而Slave节点则负责接收并进行时间同步。Master-Slave架构确保了整个系统中所有控制单元之间的时间保持一致。 autosar_sws_timesyncovercan定义了不同的时间同步模式,包括周期同步模式和非周期同步模式。周期同步模式适用于需要周期性执行任务的应用场景,而非周期同步模式适用于一次性任务的应用场景。 autosar_sws_timesyncovercan还规定了时间同步消息的格式和传输方式,确保消息的可靠性和准确性。同时,还定义了时间同步相关的接口和API,方便控制单元的开发和集成。 总之,autosar_sws_timesyncovercan是一种以CAN总线为基础的时间同步服务,通过统一的时间基准来协调和同步汽车电子系统中的各个控制单元,实现系统的高效运行和协作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KaiGer666

慧眼~施主!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值