手把手教你如何设计智能汽车域控制器

博世将汽车电子电气架构进行了划分如图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、波特率等等。其中波特率计算公式如下:
上式中为时间份额,为预分频系数,为CAN模块的时钟频率。
图片
图10 CAN初始化流程图
(2)CAN通信接收与发送函数
在完成初始化之后,需要进行CAN数据的接收过程和发送过程。对于CAN通信的接收过程,本文设计步骤如下图11。
‍图11  CAN数据接收过程
上图中需要配置的缓冲区是调用底层库文件can_pal.h来进行实现的过程,其中can_buff_config_t为底层库文件自带的结构体,该结构体包含了数据周期(enableFD)、位率框架(enableBmatchRS)、指定帧格式(idType)、指定帧(isRemote)和填充值(fdPadding),本文所设计的CAN通信模块底层库文件只进行调用不进行详细说明。CAN_ConfigRxBuff其配置包含了通道、和已经配置好的缓冲区。而对于CAN_Receive在选择好通道之后需要接收数据,其中数据报文CAN0RecMsg_Buff同样设置为一个结构体,包含有报文的ID、CAN报文数据字节数和数据长度。
在CAN接收报文数据之后,需要对报文数据进行解析,解析报文即读取报文对其进行识别,识别过程相对简单本文不做过多赘述。在进行数据报文解析之后,接下来需要设计发送报文函数,如图12所示需要设定状态激活,并且判断其状态是否处于忙线状态,然后激活CAN发送配置,在读取到报文数据信息之后,进行报文发送。
图片
图12CAN发送流程图
基于以上硬件设计、可靠性分析和软件设计本文所设计的域控制器,如图13所示。
图片
图13 域控制器实物图
智能驾驶域控制器及避障控制算法验证
为了进一步验证本文所开发的ADCU是否可以实现CAN通信功能以及验证避障控制算法能否在本文所开发的ADCU上应用,本文以现代化汽车常见的V模式开发作为本文的ADCU开发流程。搭建ADCU开发实验平台和摄像头硬件在环测试平台,对本文最为核心目标场景识别算法和避障控制算法进行实验验证。
ADCU的V模式开发流程
基于汽车V模式开发流程越来越受到广大汽车开发商的青睐。它对于汽车上大部分项目开发都是相当适用的,诸如整车控制项目、智能驾驶项目、BMS项目、插电式混合动力汽车整车热管理项目等等。它可以提高开发流程的效率,可以让开发控制策略更加通俗易懂,而且对于自动生成的代码无需调整可直接使用。汽车的V型开发流程如图14所示,它包含了功能需求分析、系统架构设计、功能设计、模型集成算法开发、自动代码生成、嵌入式软件测试、硬件在环测试、标定。
图片
图14 ADCU的V模式开发流程
ADCU测试实验
实验平台搭建
在实现CAN通信功能时,需要搭建如图15所示的ADCU开发测试平台。稳压电源提供12V,1.5A左右的直流电,用于给ADCU进行供电,利用USB-CAN适配器来调试CAN报文的接收和发送,在S32 Design Studio for Power Architecture Version 2017.R1中通过调用底层库文件并设计开发CAN通信模块,硬件的CAN通信接口用DB9接头进行连接。
图片
图15 ADCU测试实验平台
CAN通信模块测试
完成集成环境下CAN通信模块的开发之后,需要对CAN通信模块的可行性对其进行测试,其中本文所涉及到CAN通信的工具如图16所示,其中左图为Kvaser USBcan Pro CAN总线分析仪,右图为USB-CAN适配器。
图16 CAN通信工具
本文在测试CAN通信的过程时,Kvaser USBcan Pro CAN总线分析仪测试了ADCU中CAN通信的发送报文功能,而USB-CAN适配器测试了ADCU中CAN通信的接收报文功能,部分截取测试结果如图17所示,其中本文所设计的CAN通信模块在测试过程中表现良好。
图片
图17 CAN报文数据接收发送测试
摄像头硬件在环实验测试
实验平台搭建
完成CAN通信模块测试之后,即ADCU便有了CAN通信功能。本文应用CAN通信功能模块其目的主要是为了接收Prescan换道避障场景中摄像头所发送的数据以及Prescan所提供的车辆动力学信息,然后利用所采集到信息,完成智能车在结构化道路上进行换道避障控制算法的设计,并求解实时换道避障过程中计算所需的方向盘转角,最后利用已开发CAN通信的发送功能,再回传给Prescan来帮助完成车辆的换道避障过程,其实验测试平台如图18所示。
图片
图18 硬件在环测试平台
硬件在环实验验证
在进行硬件在环实验开始之前,首先要进行CAN通信的测试工作,确保已经开发完成的ADCU可以实现CAN通信功能,待测试完成之后,即可进行算法验证实验。
(1)目标场景识别实验验证
为了验证车辆在直道弯道行驶过程中目标场景识别的准确性和硬件在环平台在实际使用过程中的可行性,本文设计了三种不同的测试工况。
工况1:车辆在直道行驶过程中共有5组实验,每组实验又有 5次直道目标场景识别过程,共计25次换道实验。路径长度,单车道路宽度,假设本车与前方目标障碍物车辆车速相同均为,且两车距离为,实验采样周期为0.01s,各周期所需回归系数拟合点。
工况2:车辆在弯道行驶过程中共有5组实验, 每组实验又有 5次弯道目标场景识别过程,共计25次弯道实验。转弯半径为,其余相关参数与直道参数相同。
工况3:车辆在弯道换道行驶过程中共有5组实验,每组实验又有 5次弯道换道目标场景识别过程,共计25次弯道换道实验。转弯半径为,其余相关参数与直道参数相同。
针对上述三种测试场景,本文对直道目标场景识别、弯道目标场景识别和弯道换道目标场景识别分别做了5组实验,每组实验又有5次目标场景识别过程。下表2是对三种场景进行数计统计得出的识别结果,其中包含了准确率(车辆在识别过程中不发生漏报的概率)、错误率(车辆在识别过程中出现了误报的概率)和延时时间(车辆理论时刻与实际时刻的对比)组成。
表2三种目标场景识别统计结果表
图片
注:实际时刻值比理论时刻值晚为正,否则为负。
CIPV有无切入切出、入弯出弯等动作是判断车辆进行换道避障的重要前提,当判断出前方CIPV车辆有切入切出或入弯出弯的动作意图时,本车会立刻终止换道避障行为,以防止发生碰撞风险。
(2)换道避障实验验证
利用已经完成测试的硬件在环平台,进行换道避障实验验证。本次实验主要针对第三章中避障控制算法,选取结构化道路的两种道路工况和两种速度工况分别进行了换道避障的实验验证,直道车辆换道避障选取车速为10m/s和15m/s,以及弯道车辆换换道避障时选取车速为10m/s和15m/s。 
测试场景1
本文验证场景1选用笔直的结构化交通主干道,如图19所示。下图表示表示的是车辆在直道上进行换道避障的过程图,在换道避障过程中主车与CIPV车辆保持一定的横向间距且无碰撞风险。本文主要以车辆在换道避障过程中的安全性、稳定性、舒适性主要参考指标,其中安全性为最重要的参考指标,稳定性次之,最后是舒适性。分别以上述两种车速为主要测试工况。
图片
图19 直道换道过程
测试场景2
本文验证场景2选用弯曲的结构化交通道路,弯道道路半径为330m左右,实验过程中周期为0.01s。如图20所示。下图表示表示的是车辆在弯道上进行换道避障的过程图,在未触发决策模型之前,本车一直进行车道保持状态,当触发决策模型之后,主车开始进行向左换道过程,在换道避障过程中主车与CIPV车辆保持一定的横向间距且无碰撞风险,在换道完成之后车辆沿着旁边左车道继续进行车道保持。在弯道场景实验过程中同样选用车速为10m/s和车速为15m/s来测试车辆在横向运动过程中的安全性、舒适性以及稳定性。
图片
图20 弯道换道避障过程
小结
本文主要针对ADCU从硬件设计到软件设计的开发流程进行详细阐述,主要包含了需求场景、关键硬件电路、电路可靠性、AUTOSAR架构、CAN通信简介、CAN通信软件设计等。最后基于以上硬件技术和软件技术开发出一款产品级智能驾驶域控制器。
本文首先介绍了ADCU的V模式开发,包括功能需求分析(智能驾驶的车辆换道避障需求)、系统架构(AUTOSAR)、功能设计(CAN通信功能)、模型开发(避障控制算法)、自动代码生成(matlab搭建模型)、嵌入式软件测试(s32集成环境)、硬件在环测试(摄像头在环测试)、标定(实车标定)等。搭建了ADCU测试平台,对开发的CAN通信模块进行测试和嵌入式代码进行集成。搭建了摄像头和控制器硬件在环测试平台,对目标场景识别和换道避障进行了实验验证,结果表明:本文所设计的目标场景识别算法可对车辆在不同场景下进行精准的识别,所设计的换道避障控制算法可有效的对障碍物车辆进行避障且保证本车的安全性、舒适性和稳定性。