下一代自动驾驶系统需要采用多激光雷达、多毫米波雷达、多摄像头等各类传感器,传感器从采集数据到处理到发送到域控制器内部,存在延时,且延时的时长不稳定。为了提高自动驾驶的传感器融合、决策规划和融合定位等性能,自动驾驶高级域控制器HPC与其关联的传感器均需要做时间同步,实际过程就是需要定义清楚传感器输入数据的时间戳信息(包括打时间戳的时刻及精度要求),同时也需要定义整体时间同步方案和同步精度要求。
要讲清楚时钟同步原理需要首先解释清楚两种时钟同步类型:数据时钟和管理时钟。首先,整体上是组合惯导提供的UTC时间通过PPS+GPRMC给时间同步服务器授时。该时间同步服务器将相应的时间信息通过PTP协议和中央网关,给各类传感器数据采集主机授时。HPC则需要实现好内部SOC和MCU之间的时间同步过程。
HPC的SOC和MCU之间的数据面时间通过gPTP协议时间同步,其中SOC为主master;HPC的SOC和MCU之间的管理面时间通过HPC私有协议进行同步,SOC为主Master,通过以太链路进行同步。SOC和MCU同步过程中,管理时钟和数据时钟都会做同步,数据面用gPTP协议,在其时间同步精度要求250微妙内,管理时钟用私有协议,也通过以太网,精度是10ms。其内部的管理时间和数据面时间就需要对齐,HPC要保证数据时钟的连续性,不允许有异常跳变。因为异常跳变会引起很严重的数据误传和误解析。每次域控制器冷启动时,域控制器会尝试与提供主时钟的节点持续进行一定时间(该时间可以根据实际情况按需标定)的通信以进行初始同步。如果同步成功,则数据时钟会采用当前管理时间,以同步获取到的绝对时间;对应的驱动程序可以随其启动,并调用对应的应用软件进行运算。如果同步不成功 ,域控制器会一直尝试同步。整个同步分类主要包括中央域控制器与网关、各类传感器及执行器之间的同步。HPC的绝对时间通常通过中央网关CGW作为整车所有控制器提供统一时间源,将整体的同步时间戳输出给所有关联的控制器端(如车身域控制器PDC、整车域控制器VDC、座舱域控制器CSC等)。在下一代自动驾驶系统架构中,整车域控制器VDC不仅承担着控制整车执行器端运行的功能,还同时兼任着中央网关CGW的功能,承载着HPC与其他域控制器信息交互和协议转化的功能。如下图表示了自动驾驶控制器HPC与其关联域控制器的连接关系。前述讲到VDC可作为中央网关功能,因此以HPC为中心的控制器间同步过程着重在于HPC与VDC之间的同步过程。通过VDC的信息中转可以实现各域控制器之间的同步及通信功能。各控制器主要通过以太网直连,采用基于以太网gPTP协议。HPC与VDC的同步过程需要考虑与HPC直连的GNSS输入绝对时间为主时钟,该时间误差比较小(通常在10ms内)。考虑智驾大数据云端分析精度,及 gPTP协议精度通常要求在250微妙内,HPC和VDC定周期可采用其整数倍精度(如125毫秒)做同步。HPC局部网络节点同步过程是指其与传感器之间的同步过程。在自动驾驶私有内部网络均以域控制器为主节点Master,采用其相应的数据端时间做时间源。HPC通过局部内网单独给传感器(激光雷达、毫米波雷达、行车摄像头、环视摄像头和组合惯导等)提供统一时间源。过程中,分别通过以太网连接激光雷达、组合惯导(预留1PPS),同时通过CANFD/以太网连接毫米波雷达、超声波盒子PDC,通过GSML/LVDS连接摄像头(包含行车/环视摄像头)。该类不同的网络连接形式均作为从节点与网关做时间同步。- 视觉传感器:以行车控制和泊车控制的摄像头进行区分。
行车摄像头主要包括前视摄像头、侧视摄像头、后视摄像头为代表,泊车摄像头主要指环视摄像头;采用集中式方案后的摄像头通常不再是一体机,而是简单的传感器而已,输入的是原始图像。HPC和摄像头通过视频数据线缆如GSML或LVDS进行数据传输,HPC利用其数据时钟(即系统时间,非绝对时间)作为时间源,定时发送触发信号Trigger Signal给摄像头,摄像头基于实时触发信号调整曝光时刻。由于单相机内无法直接记录对应的时间戳,因此使用多相机同步触发的方式进行同步,并以记录域控内的触发信号的时刻作为图像的初始时间戳。摄像头其成像中间(如下计算方式)时刻打时间戳,且时间精度要求在10ms内。Tmidtime成像中间=Ttrigger(触发时刻)+1/2*Texposure(曝光时间);由于触发时刻位于整帧图像的曝光末尾,为了提高时间戳的精度,需要对曝光时长进行补偿以获取中间行曝光结束点时刻,来代表整帧图像的曝光中间时刻;通常采用如下公式进行时间补偿。Tcompensate(补偿时间)=每行长度×总行数/2 域控制器记录时刻包括如下5个时刻:摄像头成像中间时刻、图像进感知模块的时刻、图像感知结果进融合模块的时刻、感知融合结果发送时间、下游模块接收时刻。
HPC和激光雷达通常也是基于以太网gPTP协议结合千兆以太网直连,HPC为主节点Master,激光雷达为从节点Slave。HPC同步时间源采用的是绝对时间(即系统时间)作为数据时钟,时间同步精度要求仍旧是250微妙内。HPC和激光雷达采用同步时间精度的整数倍周期(比如可以是125毫秒、也可以是250ms)做同步,激光雷达需要按照该同步过程实时更新时间。此外,激光雷达需要在发出每帧点云中每个点的时间作为传感器打时间戳的时刻要求(精度要求为1ms内)。同样,域控制器需要基于激光雷达返回时间记录激光点云发送点时刻(即激光雷达在接收到反射信号时可以记录到每个点的时刻);输入域控制器时间戳(通常此时激光雷达已带有相应的时间信息,HPC则不用再打时间戳);激光感知模块时间戳(一般则由激光雷达供应商进行原始点云信息处理,如果是集中式方案则由HPC中的SOC负责进行前端点云感知,并由专有的SOC进行感知后端融合);感知结果带上时间戳发送给下游模块接收;且此时需要打上最后一个时间戳。域控制器的数据时钟针对激光点云感知而言主要用于感知算法设计(这类算法可以是车端,也可以是云端),而绝对时间主要涉及本地时间,主要用于数据记录和存储业务。通常前毫米波雷达单独对信息进行同步,而角毫米波雷达群本身会存在一个主雷达对其所有的信息进行进一步过程同步。通常以上一代自动驾驶来说,毫米波雷达输入数据通常采用的是目标级数据,而下一代域控制器采用集中式方案后,对于将3D毫米波雷达更新换代为4D毫米波雷达,即直接处理毫米波雷达点云的呼声越来越高。这个过程中,毫米波雷达不再具备计算单元,而是简单输入点云数据。但由于毫米波雷达的微波信号处理仍旧存在较高的难度,对于下一代自动驾驶系统来说,很多OEM仍旧采用目标级数据进行直连,时间同步精度通常要求叫激光雷达更加宽泛些,通常为1ms以内。点云毫米波雷达发出和收到回波的中间时刻作为标记打上时间戳,要求精度1ms内。同时,HPC和毫米波雷达通过设定1-2秒的周期间隔进行同步,该时间段内毫米波雷达实时更新对应的时间。同样的,域控制器基于毫米波雷达返回时间支持记录包含以下五个时刻的时间戳:回波反射点生成时间戳、回波输入至域控制器时间戳(当然对于目标级数据记录,其毫米波雷达已带时间戳信息,华为不再打时间戳);毫米波雷达输出的目标物信息是由原始反射点聚类过滤得到,为了获取更加精准的时间戳,通常需要获得原始反射点生成时刻的时间戳,如下图红色部分。感知结果发送专门SOC/MCU并与其他传感器做大融合时间戳。同样的,域控制器的数据时间(或本地时间)用于算法设计运行,而绝对时间用于数据记录和存储业务。HPC需要对智能camera和radar的报文需额外打上对应报文进入时刻的时间戳,对数据进感知模块时刻打时间戳,作为备份使用与毫米波雷达确认,尤其角雷达,通过时间同步信息才能确定角雷达是否可发出目标。下一代自动驾驶系统中,不同的OEM对于惯导使用的类型有所不同,通常根据其自研能力分为组合惯导和独立惯导两种类型。由于组合惯导内置卫惯组合算法,根据实际应用情况,这里我们只针对较为简单的组合惯导的直连进行说明。HPC作为主节点Master而组合惯导为从节点,通过100兆以太网与组合惯导直连。其中,以太网仍旧是基于gPTP协议进行的。HPC同步时间源仍旧采用数据时钟(即系统时间,非绝对时间)进行同步。要求时间同步精度要求:250微妙内,同步周期为同步精度要求的整数倍时间间隔(如1毫秒或125毫秒)。其间,组合惯导根据RTK和IMU信息基于最近一次IMU采样,打时间戳。其精度限制在1ms内。此外,IMU的采样时刻、进入HPC时刻、进入后端融合模块这三个时刻均会被打上时间戳。除开内部网路节点时间同步外,对于下一代自动驾驶系统来说,其与相关联的执行器之间(如集成制动控制系统EPBi、电子转向系统EPS、动力控制系统VCU)均存在大量外部信息交互。参考阶段性集中控制方式,这类整车控制端口通常通过整车控制器VDC进行连接和同步控制。如前述,VDC实际亦可看成中央网关,除开对各类域控制器的信息转发外,其还承担着整个同步时间戳的定义和发送。因为对于整车系统,整个绝对时间是自动驾驶系统的域控制器HPC连接的GNSS/GPS所获得的。关联系统通常是通过整车域控端口(VDC)进行单独的时间同步控制,因此HPC和ESP、EPS、VCU之间通常是不存在直接的主从节点这类型的时间同步关系,而是在执行指令过程中直接将各自时间戳发送给VDC控制器,在执行过程中进行时间对齐即可。对于整个自动驾驶系统来说,在时间同步过程中仍旧需要考虑相应的失效控制逻辑。考虑到其内所包含的AI芯片SOC和逻辑芯片MCU所承载的不同的功能。通常在两者出现故障的不同时刻会存在一定程度的功能降级。这类功能降级我们称之为局部功能降级。局部功能降级期间,若部分SOC失效时,MCU通过晶振维护时间和传感器做同步。期间,仍可接收Radar及其余SOC传递过来的摄像头目标数据信息,并保持输出时间戳的稳定。因此,可以说局部功能降级后系统在短时间内仍旧使用原时间戳做应对,MCU仍可保持原时间数据稳定(其时间同步过程可参照MCU中的管里面时钟进行),支持功能的运行。因为短时间内误差很小,所以该时间内不做时间同步风险也很小。当然,如果整个HPC失效,则需要另外一个备份控制器(可以是另外一个低配版本的HPC,也可以是额外增加的智能摄像头Smart Camera)进行安全控制。此过程中,则需要重新建立该备份控制器与对应传感器之间的时间同步关系。另外一种失效模式为供电失效引起的功能降级。这里需要说明,域控制器存在两种睡眠模式:深度睡眠和浅度睡眠。该睡眠模式主要与是否掐断整体供电有关。如果控制器处于深睡眠,则数据时钟直接使用上一次下电时存储的管理时钟,不再进行重新计时。如果控制器处于浅睡眠,则直接利用本次下电的管理时钟进行计时。相对于深度睡眠来说,浅睡眠同步的时钟结果更加准确。当然无论睡眠深浅,该时间段内控制器时钟始终是无效的,且各软件均无法正常运行。当然,由于整个浅睡眠转化到深睡眠的时间是可以自定义的(如12小时)。本文详细的讲解了下一代自动驾驶系统的各个控制单元的时间同步原理,并对同步过程中的各个模块提出了精度要求,涉及局部网络节点同步、全局网络节点同步。其中,局部网络节点同步主要是针对自动驾驶系统内部的传感器与域控之间的同步关系。全局网络节点同步主要是针对自动驾驶系统与外部关联系统(如控制制动、转向、动力、车门、车灯、网关等)进行的时间同步关系。对于整体计算精度而言,局部网络节点同步是至关重要的,因为涉及的传感器单元比较多,需要各自针对自身实际情况打上对应的时间戳,并最终由域控进行总同步。全局网络节点同步则实际参照各分域控与HPC之间的信息交互简单的进行时间信息交换即可。这里需要注意的是,整体系统的绝对时间均来自于GNSS系统,通常可由HPC或CSC进行连接输入。带不带功能安全(IS26262)的区别,功能安全要做啥?分享不易,恳请点个【👍】和【在看】