来源 | 焉知智能汽车
智库 | 云脑智库(CloudBrain-TT)
云圈 | 进“云脑智库微信群”,请加微信:15881101905,备注您的研究方向
声明 | 本号聚焦相关知识分享,内容观点不代表本号立场,可追溯内容均注明来源,若存在版权等问题,请联系(15881101905,微信同号)删除,谢谢。
对于整个自动驾驶系统的时钟同步来说,因为各个传感器时钟源都有钟漂,而且每个时钟源钟漂不同,所以即使把各个传感器时间戳在初始时刻对齐,运行一段时间之后,之前对齐的结果仍会偏离。因此,为了统一各个传感器或芯片的时钟,需进行时间同步。同步过程需要设置相应的同步时钟源。当前,常见的时间同步主要有以下几种方式:
以上同步源中,大家可能对GNSS的定位功能比较熟悉,其实它的授时功能是和定位同等重要的功能,在自动驾驶的传感器配置里,GNSS是一个必备的传感器,它自带秒脉冲发生器,所以可以直接使用。而且GNSS信号能够达到定位要求时,自身时钟也会受到卫星上原子钟的校正,从而进一步提高精度。
其余时钟同步原理我们将在如下章节中进行详细介绍。
域控与传感器时间同步
在当前分布式架构中,通常的时间同步信号式通过can/canfd进行传输,而下一代自动驾驶系统则基本采用以太网进行信号传递。对于融合需要的信息,需要在报文中打上相关的时间戳来进行匹配,时间戳应尽量接近目标被探测到对的实际时刻。
实例:以最通用分布式架构5R1V1D为例说明各个传感器在时间同步上的原理。
方案一:由其中一个传感器融合另外一个传感器数据,将接收时间点在对应位置打上时间戳,然后整体发给域控制器。域控制器在接收到相应的融合目标后,在对应接收点上打上时间戳。
临时时间同步方案:
Tcan:表示通过can总线发送信息到摄像头的时间间隔;
t1:摄像头在本地时间接收到的时间点信息;
T1:摄像头的发送时间-接收测量时间;
t_v:摄像头本地时间测量点;
t_r:雷达本地时间测量点;
t_vs:摄像头发送时间点为融合目标本地时间;
T_abs:最后由传感器发送到域控制器的时间差值;
方案二:基于域控制器底层基础软件Autosar的时间同步解决方案。AUTOSAR 解决方案,ADS 中的时间Master,每个传感器中的时间Slave。带有时间主控的 ECU 将在一个公共时基内同步所有其他从属 ECU。传感器将发送时间戳以告知“何时测量目标对象”。由于所有 ECU 在公共时基通信,域控制器会直接将所有传感器数据置于公共时间坐标中,然后重新计算到其本地时间供其使用。
T_global_V:公共时基中的摄像头测量时间点;
T_global_R: 公共时基中的雷达测量时间点;
Tmeasure: 公共时基中的环境目标测量时间点;
基础GNSS+PPS的组合时间同步原理
本节主要讲解基于组合惯导接收GNSS的授时和PPS时间同步的原理。由于激光雷达通常使用PPS进行同步,高精定位普遍预留PPS。在开发阶段的数据采集中,可考虑使用此方法与域控同步。
1、GNSS授时
一般地,卫星(GPS/北斗…)中会有精准的时间信息(一般为UTC时间)。高精定位系统通过接受多颗卫星的信号,可以获取精准的UTC时间,此过程一般与定位过程一起进行(可能需要时间信息来提高定位精度)。此方式的另外一个可能应用是卫星向数采设备授时。
2、PPS时间同步
在GNSS完成授时的同时需要通过GPIO将相应的PPS信号从组合惯导系统ECU发送给中央域控制器HPC,两者进行过程会存在一定的时间差。如上图所示,ECU过CAN/ETH发送当下的UTC时刻给HPC,随即ECU通过GPIO发送PPS给HPC,每次脉冲上升沿为当前秒数开始时间。随后,HPC用PPS信号对UTC时间进行修正,从PPS精度获知能达到10ns。
基于NTP和PTP的时间同步
NTP即Network Time Protocol,网络时间协议。是通过时钟同步服务器从GPS卫星上获取标准的时间信号,将这些信号通过各种接口传输给自动化系统中需要时间信息的设备(计算机、保护装置、故障录波器、事件顺序记录装置、安全自动装置、远动RTU),这样就可以达到整个系统的时间同步。NTP常用于Windows操作系统的时间同步,在局域网中精度在10ms左右。可用于精度要求不高的数采设备同步(供应商方案)。
PTP 是一种高精度时间同步协议,可以到达亚微秒级精度,有资料说可达到30纳秒左右的偏差精度,但需要网络的节点(交换机)支持PTP协议,才能实现纳秒量级的同步。一般在实际使用中,现有的NTP可以达到5ms以内的精度,对一般的应用都是满足的;对于超高精度设备,可以使用PTP设备提高同步精度。
与NTP主要区别:PTP是在硬件级实现的,NTP是在应用层级别实现的。PTP 是主从同步系统,一般采用硬件时间戳,并配合一些对NTP更高精度的延时测量算法。
NTP时间同步过程如下:
Step1:t1时刻Master(Router A)发送NTP报文,该报文数据在t2时刻被Slave(Router B)收到;
Step2:随后,Router B在t3时刻返回NTP报文,并加入t2/t3值。
Step3:Router A在t4时刻收到并记录t4时刻值。
Step4:Router B可计算传输延时△t=[(t2-t1)+(t4-t3)]/2(默认往返延时相同)。
Step5:同时Router B可校准时钟偏差offset=t4-t3- △t
PTP时间同步过程如下:
Step1:t1时刻Master(Router A)发送同步报文信号Sync,该报文数据在t2时刻被Slave(Router B)收到;
Step2:几乎同时,Router A发送跟随报文FUP,将时刻t1时间值告知Router B。
Step3:随后,Router B在t3时刻发送DelayReq报文,该报文数据在t4时刻被Router B收到。
Step4:几乎同时,Router A随后发送DelayResp报文,将时刻t4时间值告知Router B。
从钟根据 t1 、 t2 、 t3 、 t4 计算时间偏移 (offset) 以及传输延时 ( delay) ,即 t2 -t1 = offset + delay t4 - t3 = delay - offset 计算出 delay = ( t4 - t3 + t2 - t1) / 2 offset = ( t2 - t1 - t4 + t3) / 2 ,从中根据 offset 从钟可以调整自己的时钟。
基于Autosar的时间同步
在Autosar的软件架构中进行同步的过程需要理清两个比较重要的术语。其一是时间主站Time Master是一个实体,它是某个时基的主站,并将该时基传播到通信网络某个段内的一组时基,作为该时基的源。如果时间主站也是全局基准时间的所有者,所有其他时基都来自该时基,那么它就是全局时间主站。时间网关通常由一个连接到一个或多个时间从站的时间主站端口组成。当将时间实体映射到真实的 ECU 时,必须注意,一个 ECU 可以是一个时基的时间主站(甚至全局时间主站)和另一个时基的时间从站。
总体来说,AUTOSAR完全通过CAN/ETH通讯进行,假设在Autsosar软件架构下通信的两个终端ECU分别为两大不同域端控制器,其一是自动驾驶域控制器HPC,其二是车身区域控制器PDC,假设由自动驾驶域控制器HPC接收世界时钟,并对PDC进行时间同步。
其中进行时间同步的原理需要满足如下过程:
Step1:HPC在t0时刻HPC接收发送当下的UTC时间,并于t1时刻发送给PDC,PDC于t2时刻收到该时间戳信息;
Step2:然后HPC计算跟随时间戳信息FUP并发送Δt=t1-t0给PDC;
Step3:PDC于t3时刻收到该时间戳信息,并计算两次报文的时间差Δt’=t3-t2;
Step4:PDC在时间戳t3时刻通过计算当下的时间=(t3-t2)+t1,随机每隔一段时间进行一次同步;
如上简单描述了整个Autosar简单的同步过程,后续文章将单独针对这一块进行详细的过程说明。
域控内部芯片时间同步
域控内部芯片的时间同步通常是将域控区分成各种不同功能的模块进行,比如针对SOC来说,主要是负责进行相应的图像智能识别和处理,其中包含深度神经网络。这里我们举出一种简单的例子进行说明。
假设我们在下一代自动驾驶系统中,设计成了相应的行泊一体控制器。其中包含智能行车处理芯片单元,这里假设我们采用英伟达已经量产的较大算力Xavier来进行深度神经网络处理,采用英飞凌MCU芯片TC397来进行逻辑算力的计算,而对于泊车模块可采用德州仪器的TDA4来进行相应的泊车信息处理。
如上如表示了目前在研的高阶自动驾驶系统的域控传输信息同步过程内部架构,其中主要包含摄像头、毫米波雷达、激光雷达、高精地图、超声波雷达几类。各个传感器在对目标检测和发送过程中存在时间延迟,到达域控制器芯片的传感器信号需要在芯片上进行时间同步。
- The End -
版权声明:欢迎转发本号原创内容,转载和摘编需经本号授权并标注原作者和信息来源为云脑智库。本公众号目前所载内容为本公众号原创、网络转载或根据非密公开性信息资料编辑整理,相关内容仅供参考及学习交流使用。由于部分文字、图片等来源于互联网,无法核实真实出处,如涉及相关争议,请跟我们联系删除。我们致力于保护作者知识产权或作品版权,本公众号所载内容的知识产权或作品版权归原作者所有。本公众号拥有对此声明的最终解释权。
投稿/招聘/推广/合作/入群/赞助 请加微信:15881101905,备注关键词
“阅读是一种习惯,分享是一种美德,我们是一群专业、有态度的知识传播者.”
↓↓↓ 戳“阅读原文”,加入“知识星球”,发现更多精彩内容.
分享💬 点赞👍 在看❤️@以“三连”行动支持优质内容!