• 105查看
  • 0回复

[Autosar] Autosar——CAN时间同步

[复制链接]


该用户从未签到

发表于 5 天前 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


1.引言

时间同步在汽车嵌入式系统中扮演着非常重要的角色,尤其是在高级驾驶辅助系统(ADAS)中。它确保了不同组件之间的协调运作,对于提高车辆的安全性、可靠性和整体性能至关重要。智能网联汽车技术发展中,无论是传感器的数据融合、实时通讯、定位服务还是功能安全与冗余设计,对时间同步的要求也越来越高。

2.CAN时间同步原理

CAN时间同步模块CANTSyn通过CAN总线分发时间信息。但是由于CAN特有的仲裁延迟以及BSW的接收方式,会导致主节点Time Master直接向从节点Time Slave广播的时间信息会不准确。

Autosar提供了CanTSyn模块来提高时间同步的准确性,但是需要注意的时,只是提高精度,即使使用了CANTSync,还是会有时间的误差,仅仅只是提高精度。

Autosar——CAN时间同步w1.jpg

①同步消息 Sync Message

Autosar——CAN时间同步w2.jpg

主节点(Time Master)首先发送一个包含时间信息的报文,并记录当前时刻 t0r,之后主节点利用CAN驱动的机制(CAN在发送成功后会触发TxConfirmation机制,通知上层报文已经成功发送)来记录实际发送消息的时间点t1r;

从节点(Time Slave)在接收到SYNC消息时,记录实际接收到该消息的时间点t2r;

②Follow-Up消息(FUP)

Autosar——CAN时间同步w3.jpg

主节点(Time Master)将t1r-t0r的差值(SYNC报文从发送到发送确认之间的时间偏移量),当做FUP报文发出;

从节点(Time Slave)在接收到FUP报文时,记录时间t3r。

③工作原理

Autosar——CAN时间同步w4.jpg

通过上述公式,

即使存在网络延迟和其他通信相关的延迟,Time Slave也能相对准确地与Time Master保持时间同步。这种方法减少了单次消息传递带来的不确定性和误差,考虑到了消息从发送到接收过程中发生的延迟,从而提高了整个系统的时间同步精度。

3. 代码分析

时间同步通过CANIF层调用CANDRIVE层发送报文,接收反之亦然。ECU自身的时间戳通过STBM模块获取。

Autosar——CAN时间同步w5.jpg

①主节点(Time Master)

Autosar——CAN时间同步w6.jpg

主节点在SYNC消息需要发送的周期到时,通过stbm获取此时的时间节点t0r,调用CanTSyn_Prepare_Sync_Message()组包SYNC报文后调用CanIf_Transmit()发送报文;

在中断接收到报文发送成功时,调用CanTSyn_TxConfirmation()获取此时的时间戳记录为t1r;

在设定的deboucetime到时,获取此时的时间戳t1,t1-t0即获得FUP的纳秒时间差,并发送FUP报文;

②从节点(Time Slave)

Autosar——CAN时间同步w7.jpg

在接收到主节点发送过来的SYNC报文后,记录从节点的接收时间t2r,并调用CanTSyn_process_Sync_message和CanTSyn_unpack_store_sync解析SYNC报文的时间t0r;

在接收到主节点发送的FUP报文时,记录从节点的接收时间t3r,并计算出偏移过的时间 = t0r+t1r+(t3r-t2r)

4.ISOLAR配置

Autosar——CAN时间同步w8.jpg

时间同步的配置比较少,黄框是主函数的周期,主函数是用于对主/从节点的报文状态机管理;

蓝框是配置主/从节点的报文相关参数,周期、FUP报文贱哥、CRC选项、confirm超时周期;

红框是stbm的ID配置;

5. 其他

一些关于ETAS代码的思考或者疑问

①关于sequence counter

主节点的逻辑是rc++,

Autosar——CAN时间同步w9.jpg

而从节点的接收逻辑是判断不等于

Autosar——CAN时间同步w10.jpg

②关于时间的差值

(这里代码里的t5实际上是t3r,接收到FUP报文的时间戳)

t3r与t2的差值是纳秒级别的直接想减,这里有没有可能会是负数呢?

Autosar——CAN时间同步w11.jpg


该用户从未签到

发表于 5 天前 | 显示全部楼层
关于Autosar的CAN时间同步

引言:在汽车嵌入式系统中,时间同步至关重要,特别是在高级驾驶辅助系统(ADAS)中。为确保不同组件间的协同工作,对时间同步的要求愈发严格。

一、关于CAN时间同步原理简述如下:
CAN时间同步模块(CanTSyn)通过CAN总线传播时间信息。但由于CAN特有的仲裁机制和网络延迟,以及BSW的接收方式,可能导致时间信息的不准确。为解决此问题,Autosar为CanTSyn提供了精确的同步机制。该机制结合了硬件和软件层面的优化,确保时间信息的准确传输和同步。这一功能不仅提高了系统的实时性,还增强了车辆的安全性、可靠性和性能。

二、未来发展趋势:随着智能网联汽车技术的不断进步,对时间同步的精确性和稳定性要求越来越高。Autosar的CanTSyn解决方案将持续优化和完善,以适应汽车行业的快速发展需求。
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 4-4-2025 19:12 , Processed in 0.527590 second(s), 35 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.