一种域控制器片内及片外时间同步的方法

本文由凤良山,李俊联合创作

摘要

目前整车 E/E 架构由于面临来自不同控制器和传感器的数据交互需求而变得愈加复杂,所需要解决的问题包括:功能复杂性,通信带宽,计算能力,灵活性,可拓展性等。其中域控制器上层应用算法对获取数据的同步尤其敏感,数据融合需要针对同一时间点获取到的数据做融合处理。因此,对域控制器内部的异构多核、外部控制器数据以及传感器数据时间同步的研究尤其重要。基于此,文章详细介绍了域控制器片内及片外时间同步的方法,解决了域控制器内外部数据时间不同步的技术缺陷。

1 时间同步概念的介绍

时间同步是指一个系统的各个模块都要同步到系统的主时钟源,整个系统的运行基于同一个时间基点。以高级辅助驾驶、自动驾驶系统为例,系统包含环境感知、数据融合、路径规划和应用执行,其中系统正确运行的一个重要问题就是要保证获取的数据精确时间同步,算法的基准是所有的数据都是在同一时间点获取的,否则应用功能无法保证做出正确的预判,可能造成自动驾驶的严重事故。

随着 L2 和 L3 级别自动驾驶需求的设计,域控制器的架构越来越复杂,一个典型的域控制器可能包含多个 SoC 和 MCU 来处理大量的数据。本文研究的时间同步系统架构如图 1 所示,域控制器内包含一个 MCU 和两个 SoC,其中 MCU 和 SoC 1 通过以太网交换机和外部的以太网关相连,域控制器内部 MCU 和 SoC 2 通过 GPIO 和 SPI/UART 接口交换数据,外部传感器节点和 MCU 通过私有 CAN 相连。整个系统时间同步包含域控制器和外部主时钟源控制器的时间同步(MCU/ SoC 1 和网关节点之间的同步),域控制器片内异构多核的时间同步(MCU  和 SoC  2 之间的时间同步),域控制器和外部传感器控制器的时间同步(MCU 和外部传感器节点之间的时间同步)。

一种域控制器片内及片外时间同步的方法_第1张图片

图 1 时间同步系统架构

2 域控制器和外部主时钟源

控制器的时间同步

域控制器和外部主时钟源控制器的时间同步如图 2 所示,包含域控制器内的 MCU,SoC 1 和外部网关之间的同步,其中 MCU 和 SoC 1 通过以太网switch 和外部的以太网关相连,该同步以外部网关作为主时钟源提供基准时间,MCU 和 SoC 1 根据提供的基准时间校准各自的时钟时间,实现和主时钟源的时间同步。其中 MCU 和 SoC 分别运行 gPTP 协议, 该协议是基于数据包的时间同步协议。数据传输和时间同步使用同一网络,它描述了如何在基于数据包网络(比如以太网)上分配同步时间(相位、频率和绝对时间)的机制,时钟精度达到亚微秒级。如图 2 所示,其中 MCU 端基于 Autosar 软件架

构开发,涉及的模块包括以太网驱动(EthernetDrv)、时间同步处理模块(EthTSyn)、时间同步基准控制模块(StbM)和上层时间触发任务调度模块(SWC); SoC 1 端基于 Linux 平台开发,涉及的模块包括以太网驱动,协议栈的开发(TCP/IP, gPTP)和上层时间触发任务调度模块(SWC)。

一种域控制器片内及片外时间同步的方法_第2张图片

图 2  域控制器和主时钟源同步

主要模块的具体功能描述见表 1:

一种域控制器片内及片外时间同步的方法_第3张图片

如表 1 所示,域控制器内部的 MCU 和 SoC 1 根据时间戳可以计算出与主时钟源的时间偏差,通过时间补偿可以保证 MCU,SoC 1 和主时钟源处于相同时间环境。

MCU 和 SoC 1 的时钟延迟计算机制如下:

(1) 主时钟源以太网关主节点向从节点 MCU和 SoC 1 发送 Sync 消息,并记录发送时间 T1;

(2) 从节点收到该报文后,记录接收时间 T2;

(3) 主节点通过将时间戳 T1 嵌入到 Follow_Up 报文中传递给从节点;

(4) 从节点向主节点发送 Delay_Req 报文,用于发起反向传输延时的计算,并记录发送时间 T3;

(5) 主节点收到 Delay_Req 报文之后,记录接收时间 T4;

(6) 主节点将 T4 嵌入到 Delay_Resp 消息中,从而传递给从节点;

(7) 此时,从节点便拥有了 T1—T4 这四个时间戳,假设网络对称,由此可计算出从节点相对于主节点的时钟延迟:Delay=(T4−T3+T2−T1)/2。

一种域控制器片内及片外时间同步的方法_第4张图片

图 3 gPTP 同步机制计算图

3 域控制器片内异构的时间同步

当域控制器片内 SoC 2 不带以太网接口或不支持 gPTP 协议时,MCU 和 SoC 2 的时间同步方案需要 GPIO 接口和能携带 MCU 时间戳信息的通信接口(SPI 通信等),以 MCU 为主时钟 Master,同步 SoC 2 时钟。如图 4 所示,MCU 和 SoC 2 的时间同步机制如下:

(1) MCU 记录当前的时间 Tx,并通过 GPIO 通知 SoC(MCU 和 SoC 2 之间的时间同步通过使用GPIO 进行中断通知,以保证 MCU 和 SoC 2 的时间基准点尽可能相近)。

(2) SoC 2 响应 GPIO 的请求,并记录 SoC 2当前的时间 T1。

(3) MCU 通过 SPI 将记录的当前时间 T1 发送给 SoC 2(GPIO 中断请求和 SPI 传送时间戳信息尽可能短,以保证同步的精度)。

(4) SoC 2 接收到 Tx 时刻的 SoC 2 系统时间为T2,立即更新 SoC 2 的系统时间(T2-T1+Tx)。

一种域控制器片内及片外时间同步的方法_第5张图片

图 4 域控制器片内异构同步机制计算图

4 域控制器和外部传感器

控制器的时间同步

在自动驾驶系统中,获取的传感器数据之间时间同步至关重要。上层应用算法会根据传感器数据做最终的决策判断,获取的传感器数据时间不同步会造成最终决策的误判或漏判的发生。本文研究的系统中外部传感器(Camera/Radar)通过私有 CAN 连接到域控制器的 MCU 端,在 MCU 的内部完成数据融合的处理后将数据传给决策模块。MCU 和外部传感器的时间同步方案需要 MCU 节点通过私有CAN 发送同步帧到外部传感器节点,以 MCU 为主时钟 Master,同步外部传感器节点。如图 5 所示, MCU 和外部传感器的时间同步机制如下:

(1) MCU 发送全局时间 CAN 同步报文。

(2) 外部传感器接收节点采用最高优先级处理全局时间 CAN 同步报文,并记录外部节点当前的时间 T1。

(3) MCU 在发送全局时间同步报文时填写计时器,以一定的周期发送同步报文,时间同步报文中携带时间戳信息。

(4) 接收节点根据全局时间戳并加载计算本地时间戳,更新接收节点的系统时间(CAN:Tx-CAN:T1+MCU:Tx)。  

一种域控制器片内及片外时间同步的方法_第6张图片

图 5 CAN 同步机制计算图

5 结论

本文在分析域控制器复杂架构的基础上,结合应用算法对获取数据时间同步的要求,详细介绍了一种域控制器片内及片外时间同步的方法,以外部以太网关作为整个域控制器的时钟源主节点,通过运行 gPTP 协议,使域控制器内部具有以太网接口的MCU 和 SoC 1 同步了外部主时钟源控制器的基准时间,以 MCU 为时间同步的主节点,通过在 SPI 协议中增加时间戳等信息,完成 MCU 和 SoC 2 的时间同步,同样以 MCU 为时间同步的主节点,通过在私有CAN 协议中增加时间戳、同步报文等信息,完成和外部传感器节点的时间同步,基于以上步骤,为复杂的域控系统时间同步提供了很好的解决方案,这样可以保证整个域控系统的运行基于同一个时间基点。 

END

你可能感兴趣的:(汽车,人工智能)