本文来源:
智能运载装备研究所
(ID:
IIV15281063684)
智能驾驶域控制器研究现状
随着汽车智能网联化时代的到来,汽车电子电气架构也在随着时代不断升级。
同时随着汽车电子化程度的不断提高,
作为域控制器前身的(Electronic Control Unit,ECU)电子控制器单元也逐渐占领了汽车全身。
无论是从汽车传统的发动机引擎控制、防抱死系统、电子助力转向系统、空调、娱乐影音系统等都需要ECU控制。车身电子控制单元不断增多,有的车辆甚至高达100多个。
博世将汽车电子电气架构进行了划分如图1所示。汽车上的ECU不断增加使得车辆线路过于复杂,同时随着智能驾驶时代的到来,车载传感器也不断增多,传感器与ECU一一对应之后使得ECU性能会大幅下降,同时ECU应用到智能驾驶将会面临许多技术难题,
此时域控制器(DCU,Domain Control Unit)便应运而生了。
其概念最早由博世、大陆、德尔福为首的Tier1所提出,将整车划分为车身与便利系统(Body and Convenience)、娱乐影音系统(Infotainment)、底盘与安全系统(chassis and safety)、动力系统(powertrain),以及高级辅助驾驶系统(ADAS)等五个大域。其中智能驾驶域控制器(Automated Driving Control Unit,ADCU)是专为车辆智能驾驶系统而开发设计,可接收多个传感器数据,例如摄像头、毫米波雷达、激光雷达、及云数据传输V2X等,通过VCU获取车辆动态数据(车辆速度、踏板信号等)。ADCU支持所有输入定制控制策略和执行决策,输出用于驾驶状态反馈,执行车辆上各种智能驾驶功能。
图1 汽车电子电气架构演进
Kim H等利用CPU+GPU架构的Nvidia ARM 平台,实现了一种DNN调度框架DART。Soh J等为了简化开发和提高嵌入式应用程序之间的可移植性,使用硬件Zynq-7000 XC7Z045平台,提出一种无迹卡尔曼滤波器软硬件协同设计方法。Lai Y K等利用NVIDIA Jetson TX2硬件平台实现了目标检测功能,该硬件平台可符合目标检测算法选择目标检测配置以及给定帧率和检测精度等要求。Lin Z等研究用于执行交通标志分类和检测的现场可编程门阵列(FPGA)部署,并验证了FPGA会比GPU获得更高的功率效率。
不仅仅高校对智能驾驶域控制器进行了深入的研究,同时企业更为看重智能驾驶域控制器的发展如图2所示。
图2 部分智能驾驶域控制器行业概况
英伟达在芯片上始终处于领跑地位,从2015年进入车载计算平台以来为智能驾驶提供基础算力,目前已经推出了4款产品,分别是Drive PX,Drive PX2,Drive AGX Xavier/Pegasus以及 Drive AGX/Orin。同时在2019年推出新一代SoC芯片Orin,相对于Xavier采用全新Amphere架构,算力进入智能驾驶域控制器前200名。恩智浦在2016年推出Blue-BOX装有NXP S32V汽车视觉处理和LS2088A内嵌式计算机处理器,对传感器进行模块化管理。英特尔在2017年发布Inter GO搭载两个Mobilieye EQ5摄像头芯片一个用于视觉感知,一个用于信息融合,Inter GO采用FPGA做加速硬件,同时支持5G通信。
如图3(a)所示,
博世所开发的“DASy”,
它将成为集中式汽车架构组件,无论软件合适硬件都可以依据客户需求。
大陆的ADC以瑞萨为硬件架构。对于高配置,采用英伟达硬件架构,ADC可支持L2到L5级别智能驾驶。2019年上海车展,采埃孚推出Pro AIRobotThink,可适用于L4级智能驾驶,它可以对对应场景所需进行配置。如图3(b)所示,华为所推出的MDC平台,可通过底层软硬件一体化调优,在时间同步、最小化底噪、低功耗、快速启动等方面现在已经处于行业领先水平。MDC作为一套开放性平台,可提供标准开放的API和SDK开发包。地平线所推出的Matrix 2支持23线分割,在复杂环境下,它的单目视觉方案在极端环境下可输出较为稳定的感知结果。弘景智驾的ADCU通过优化软硬件系统,使得整机功耗最高不超过100W,其高效低耗具有十分广泛的适配性,可适用于多种车型。
图3(a) 部分国际智能驾驶域控制器
图3(b)部分国内智能驾驶域控制器
智能驾驶域控制器设计
一款性能良好的智能驾驶域控制器(Automated Domain Control Unit,ADCU)不仅仅需要适应长时间、高频率、高强度的环境,为了适应较为复杂的逻辑算法,需要选择性价比高的微控制器芯片。因此针对ADCU适应不同工况和环境,本文从产品级域控制器设计理念出发,对ADCU设计开发流程、应用场景需求、ADCU微控制单元简介、硬件电路设计、PCB可靠性分析和关键软件通信模块开发等多个方面进行设计。
ADCU开发流程
控制器开发流程主要是针对整个控制器开发全过程进行科学分解。其中包含了产品需求分析、功能方案设计、可靠性分析,同时包含了对产品硬件电路设计,产品系统的调试以及最后产品的封存归档等多个环节。其中不同环节顺序进行需要对上一环节进行不断完善和不断校验。本文主要设计一款智能驾驶域控制器,其主要功能不仅仅可以读取车辆动态信息、环境感知传感器信息,而且还可以针对已知信息进行数据解算,从而可以对已完成避障控制算法进行验证的功能。本文主要从ADCU整体开发流程的角度,针对产品的硬件电路设计、部分关键软件通信模块的开发、以及电路可靠性分析进行详细阐述。
图4 系统开发与过程设计流程图
(1)产品需求分析
针对一款产品的需求分析是ADCU在开发过程中必不可少的关键一环,其中涵盖了产品功能需求、产品应用范围、产品定位分析、产品成本、系统技术指标等,是针对一款性能良好的域控制器设计重要的参考指标。其中硬件需求涵盖了ADCU工作环境、安装空间、基本功能需求及性能指标、输入输出电气特性等。
(2)ADCU系统设计及开发
ADCU硬件设计及软件开发如图4所示,主要包含了对ADCU设计的关键工作内容,根据本文中智能驾驶避障控制算法需求,对ADCU整体功能方案进行关键电路详细模块设计、可靠性分析、PCB电路板设计及加工、ADCU关键通信模块开发及调试,最终对本文设计的ADCU进行归档导出等环节。
应用场景需求
明确产品应用场景需求是实现ADCU设计的关键步骤之一,针对ADCU所需功能需求的有效信息可大大缩短产品的设计开发周期,从而减少产品开发成本。本文以ADCU产品为例,主要应用于智能驾驶场景,需要外接环境感知传感器,例如摄像头传感器、毫米波雷达、激光雷达以及IMU等设备如图5所示。
图5 ADCU应用场景图
ADCU微控制单元简介
微控控制单元主要是由微控制器和微控制器外围电路组成,其中微处理器作为算法程序的主要载体,实现控制指令、信息处理与采集以及信息交互等一系列关键功能,微控制器的选型工作直接决定一款产品能否实现系统指定的功能。因此在选型过程中需要从以下几方面综合考虑:①微控制器所提供资源是否可以达到产品的使用需求,其中包含了微处理器的Flash、SRAM、存储模块、ADC、CAN通讯等资源;②微控制器内核数量多少以及主频频率大小;③微处理器安全等级以及诊断保护;④微控制器开发工具以及市场使用率等。
为了满足ADCU产品系统功能需求以及综合微控制芯片在市场的应用情况,微控制芯片内部的安全诊断保护以及工具链的完整性。本文采用恩智浦(NXP)半导体公司的32位MCU平台,选用MPC5744P微处理器作为ADCU的主控芯片,该芯片采用32位嵌入式 Power Architecture®,可满足汽车ASIL-D功能安全标准。MPC5744P主要资源特征如下表所示。
表1 MPC5744P主要资源概述
ADCU关键电路模块设计
ADCU测试及应用场景具有一定不确定性,而在真正的实际应用中电压变化范围也很大,并夹杂着大量的干扰信号,本文以电源电路模块、时钟电路、数字信号电路、CAN通信模块为例进行原理图设计,并为各个电路模块添加滤波电路、调节电路以及接地防静电电容等,从而提高ADCU电路的稳定性。
——电源电路设计
对于一般车辆来说,通常可提供12V的直流电源,而本文设计的ADCU中微处理器以及其他外设电路通常需要5V电源供电,因此电源电路设计对于ADCU尤为重要。本文选择电源调节器芯片为德州仪器(Texas Instruments)公司的TPS54362-Q1,其工作电压范围为3.6V至48V,负载电流最大高达3A,具有一定的欠压、过流、过温等保护能力。
ADCU在低压电源设计时,需要尽可能的对干扰源进行消除,并且使得低压电源一定抗干扰能力。一般提升低压电源抗干扰能力主要可以通过吸收尖峰滤除和消除脉冲干扰,一般采用元器件有TVS(Transient Voltage Suppressor)管、压敏电阻等;利用二极管拦截负向脉冲。本文中的低压电源电路利用S4二极管来防止电源正负极反接;AL1电感来进行滤波、筛选信号等抑制电磁波干扰作用;还有一系列电容来进行静电过滤,如图6所示。
图6电源模块电路原理图
——时钟和JTAG电路设计
本文设计的ADCU时钟电路主要作用是控制芯片
的工作频率,保证设计的控制算法程序时钟频率有条不紊的进行工作。
如下图7(a)所示,本文的时钟电路是芯片内部振荡器与外部晶振共同作用从而产生时钟信号,其中芯片内部的锁相环来保证系统时钟稳定性,图中8pF的电容对40M的晶振具有良好效果。
微控制器MPC5744P集成JTAG控制器,可通过外部仿真器连接JTAG控制器引脚从而实现程序的调试和下载,图7(b)为JTAG接口电路原理图。
图7(a)时钟模块电路原理图
图7(b)JTAG引脚电路引脚图
——CAN通信模块电路设计
现如今,车辆电子装置已经成为汽车上不可或缺的一部分,而CAN总线已然发展成汽车电子装置总线通信最为重要的一种之一。
如图8所示,本文采用德州仪器具有故障保护的CAN收发器TJA1051,该款CAN收发器符合ISO1189-2 CAN物理层标准,电压范围支持3.3V到5V;总线故障保护:±58V(非H型)和±70V(H型);温度范围在:-55℃到150℃;采用SOIC(8)封装,具有自动光学检查功能,同时本文为了CAN通讯电路的抗干扰能力,加装了ACT45B共模抑制器。
图8 CAN通讯模块电路设计
关键通信模块设计
——嵌入式软件架构
本文为了简化ADCU的开发过程和缩短软件开发周期,基于汽车开放电子系统软件架构 (Automotive Open System Architecture,AUTOTSAR)作为本文的嵌入式软件开发架构。AUTOSAR软件架构可从底层部分到上层部分共分为3层:基础软件层、实时运行环境层和应用上层。
其中基础软件层BSW(Basic Software)主要用于服务上层软件,包含了一些已经标准化的功能软件接口,它主要由微控制器抽象层、复杂驱动、服务层以及ECU抽象层构成;运行实时环境RTE(Runtime Environment)主要针对虚拟功能总线接口的实现,它服务于应用层组件之间的通信并且是基础软件层和应用层之间的桥梁;应用层(Application Software)是汽车最为核心的功能软件,它由多个软件组件集成而来,组件会将功能接口显示出来。设计避障控制算法属于应用层部分。标准接口利用C语言定义,标准接口可在操作系统、运行环境、基础软件层之间进行函数调用;标准AUTOSAR接口完全由AUTOSAR标准进行定义,如图9所示。
图9 标准AUTOSAR架构图
——CAN通信模块设计与实现
在域控制器硬件设计完成之后,为了更高效快捷的实现域控制器功能。本文基于AUTOSAR架构开发了CAN通信模块,可使得域控制器实现CAN通信功能。其中包含了底层驱动程序和应用层解析CAN报文程序。在设计底层驱动程序之前需要对CAN模块进行配置即CAN节点初始化。
(1)CAN通信初始化函数
在CAN通信程序中设置H_CAN0Init函数进行初始化设置,其中具体CAN初始化流程如图10所示,主要步骤为:
1)设置计数器(0,1,2),用于判断CAN初始化过程中的状态(初始化成功、初始化超时和回调函数初始化超时);
2)通过调用底层文件status.h中的status_t作为状态码;
3)判断CAN模块是否处于未初始化状态;
4)回调函数初始化设置;
在CAN通信初始化结束后,需要对CAN通信参数进行设置其中包含数据长度、ID、波特率等等。其中波特率计算公式如下:
上式中
为时间份额,