1 整车控制器概述

新能源汽车三电控制系统,包括整车控制器VCU(Vehicel Control Unit,),电机控制器MCU(Motor Control Unit)和电池管理系统BMS(Battery Management System)。

新能源汽车中用于控制整车运行逻辑的电控单元称为整车控制器VCU,作为整车控制系统的大脑,VCU主要功能有以下几点:

  1. 获取加速踏板、制动踏板、档位等各类信号,实现人机交互。

  2. 实现各个控制系统之间的协调。

  3. 管理并提高整车能源利用率。

  4. 提高整车驾驶的舒适性。

  5. 采集并记录整车故障,用于故障诊断。

  6. 确保整车控制系统持续正常运行从而保证车辆行驶安全可靠。

VCU作为新能源汽车整个控制系统的核心控制单元,能够实时检测电机及电池状态,采集加速踏板、制动踏板、档位等传感器信号,在综合分析数据后,明确驾驶人的意图,执行相应的操作。VCU实时监控车辆行驶状况下能量回馈、驱动电机、动力电池等状态,对各个子网进行网络管理,对各个电控单元进行故障诊断及处理,从而保证整车正常稳定的工作。可以说整车控制器性能的好坏直接决定了整车系统的稳定性。

VCU硬件由电路板、接插件、外壳、透气阀等部件构成。其中电路板上带有车规级单片机,VCU软件在单片机中存储与运行。

1.1 VCU知名产品

VCU行业知名产品有联合电子VCU8系列控制器、华海科技RapidECU-U系列控制器等。

1.2 VCU产品开发方案

VCU产品的开发普遍使用V型开发模式,如下图V模型示意图表明开发中存在的不同级别以及测试过程各阶段和开发过程各阶段的对应关系。

国内当前的主流开发方案是VCU供应商给主机厂技术团队提供软件开发环境。主机厂技术团队主导开发VCU软件,过程中VCU供应商提供技术支持。对于不具备VCU软件开发能力的部分主机厂,则可以委托VCU供应商或者第三方开发软件。

V模型是一个汽车领域广泛使用的开发模型,也是在软件测试中最具代表性的测试模型之一。

V 模型从左到右,描述了基本的开发和测试过程,明确标注了项目过程中不同级别的开发测试阶段。图中箭头代表了时间方向,左边下降的过程属于开发阶段,右边上升的过程属于测试阶段。

在VCU系统开发中,最有影响力的汽车行业标准之一是ISO 26262《道路车辆功能安全》。ISO 26262是适用于汽车用电子、软件企业的电气产品功能安全的国际标准。目前最新ISO 26262标准是2018 年12月发布的第二版。

ISO 26262《道路车辆功能安全》国际标准是针对总重不超过3.5吨八座乘用车,以安全相关电子电气系统的特点所制定的功能安全标准,基于IEC 61508 《安全相关电气/电子/可编程电子系统功能安全》制定,在2011年11月15日正式发布。

ISO 26262是史上第一个适用于大批量量产产品的功能安全(Functional Safety)标准。特别需要注意的是,ISO 26262仅针对安全相关电子电气系统,包含电机、电子零件与软件,不应用于非电子电气系统(如机械、液压等)。

ISO 26262为汽车安全提供了一个生命周期(管理、开发、生产、经营、服务、报废)理念,并在这些生命周期阶段中提供必要的支持。该标准涵盖功能性安全方面的整体开发过程(包括需求规划、设计、实施、集成、验证、确认和配置)。

ISO 26262标准根据安全风险程度对系统或系统某组成部分确定划分由A到D的安全需求等级(Automotive Safety Integrity Level 汽车安全完整性等级ASIL),其中D级为最高等级,需要最苛刻的安全需求。伴随着ASIL等级的增加,针对系统硬件和软件开发流程的要求也随之增强。对系统供应商而言,除了需要满足现有的高质量要求外还必须满足这些因为安全等级增加而提出的更高的要求。

ISO 26262提供了一套非常缜密的管理方法、流程、技术手段和验证方案,称之为安全管理生命周期。

各阶段的作用如下所示:

  1. 项目定义。根据项目的各种重要信息,描述本次项目的功能需求、接口定义、环境条件、功能安全等。

  2. 安全生命周期初始化。根据项目定义,确定安全生命周期的划分。

  3. 危险分析和风险评估。确定功能安全ASIL的等级。

  4. 功能安全概念。根据项目架构,确定每个环节具体的功能安全要求。

  5. 系统级产品开发。参照V模型,对产品软硬件进行开发、测试、集成、验证。

  6. 产品硬件研发。遵循ISO 26262-5 按照V模型进行硬件研发。

  7. 产品软件研发。遵循ISO 26262-6 按照V模型进行软件研发。

  8. 生产计划和操作计划。ISO 26262-6 定义了生产和操作的具体要求。

  9. 产品发布。ISO 26262-4 规定了产品发布的具体要求。

  10. 操作、服务和拆解。应该符合ISO 26262-7的具体要求。

  11. 可控性。危险分析和风险评估中,要考虑所有相关人员的危险控制能力。

  12. 外部措施。除开车辆本身的安全措施外,还需要考虑,例如护栏、隧道消防系统等安全保护措施。

  13. 其他技术。项目以外的,不同于E/E设备的技术,如机械和液压技术。

通过以上具体的生命周期的各个阶段和标准中对每个阶段所必须考虑的措施方法和具体技术的要求,将各个阶段的要求和如何满足要求的措施都进行逐一落实,这样才能设计、制造出满足功能要求的安全产品。

2 VCU硬件的设计与开发

在整车控制系统中,VCU需要与不同的电控单元、传感器、执行器交互,在硬件方面需要丰富的输入输出资源支持控制需求,VCU硬件一般需要满足以下几个要求:

  1. 能够采集加速踏板、制动踏板、换档开关等车载部件的信号。

  2. 能够通过PWM信号、高/低端功率驱动开关控制冷却水泵、电子真空泵、散热风扇等负载部件工作。

  3. 与MCU、BMS等控制器进行CAN通信,与部分传感器、执行器进行LIN通信等。

为了实现VCU与周边电器件的正常交互,VCU系统应支持模拟量输入、数字量采集、PWM输入/输出、低端驱动、高端驱动、CAN、LIN 等通道。VCU上给主芯片供电的电源可采用系统基础芯片 (SBC)。VCU通常需要配置监控芯片,即硬件看门狗功能。

VCU的硬件设计开发包括原理图的设计、电路功能仿真、印制电路板 (PCB)设计与检测(包括布线、布局规则的检测和信号完整性分析)等。电路原理图和PCB设计尤为重要,其设计合理性对VCU的运行性能有较大影响。

原理图设计、电路仿真、PCB设计均需要用到EDA工具软件。

2.1 关键元器件的选型

VCU的关键元器件需满足“车规级”要求,根据ISO 26262的规定,为了达到一定的功能安全等级,需要选择ASIL D级的主控芯片。根据初步计算得到的需求参数选择电源芯片、驱动芯片、收发器等。元器件选型过程中最主要最关键的是单片机的选型。

2.2 VCU硬件模块介绍

整车控制器是一个多输入、多输出、模数电路共存的复杂系统,其各个功能电路相对独立。因此,按照模块化思想设计了硬件系统的各个模块,主要包括 MCU最小系统、电源管理、开关量输入、频率量输入、模拟量输入、高/低端驱动模块、PWM驱动、CAN通信模块、LIN通信模块等。典型的VCU硬件框图如下图所示。

2.2.1 MCU最小系统

MCU最小系统为VCU的核心,内含小型 CPU 负责运算。MCU 最小系统由主控芯片及其周边的复位电路、晶振电路组成。 单片机复位电路类似计算机的重启部分电路,当计算机在使用中出现“死机”情况时,按下重启按钮,计算机内部的程序从头开始执行,实现软件功能复位。

晶振是晶体振荡器的简称。如下图所示为串联型振荡器,晶振Y1与单片机的引脚EXTAL、XTAL构成振荡电路,此时会产生谐波,降低电路时钟振荡器的稳定性,因此需要在晶振的两引脚处接入两个10~50pF 的瓷片电容接地,以减小谐波对电路稳定性的影响。

3A1B2F25-8CAF-4915-BDD0-78CA2DEAA6DC.jpg

2.2.2 传感器电源输出

电源电路将外部电源输入转换为平稳的3.3V和5V电源,可以为VCU板上电路和外部传感器供电,如下图所示。

电源芯片具备过流及短路保护,对5V电源输出电压具有采集监控功能。电源芯片需具备外部使能信号,可实现硬线唤醒。

2.2.3 模拟量输入

电压 (或电流电阻) 随时间连续变化的信号称为模拟信号。模拟量输入模块的作用就是将各种模拟量信号变换成单片机能够识别处理的信号。 常见的VCU模拟量输入信号有加速踏板、制动踏板、蓄电池电压、各类温度传感器信号等。 模拟量输入信号分为电阻信号和电压信号两种。

2.2.4 开关量输入

开关量输入信号分为高电平有效信号及低电平有效信号,电压范围为0~32V。VCU中常见的开关量信号有档位信号、制动开关信号等。

2.2.5 频率量输入

VCU上常见的频率量输入信号有真空泵PWM输入信号、水泵PWM反馈输入信号等。在设计频率量输入电路时,主要考虑信号的幅值与频率范围。通常情况下,频率量输入端口与开关量输入端口可以复用管脚。比如U34控制器中的频率量输入端口与开关量输入端口均复用管脚。

2.2.6 低端功率驱动输出

VCU可通过低端功率开关驱动负载。负载一端接电瓶正极或者用于低端功率驱动负载的电源正极UBR,另一端接VCU低驱实现驱动负载工作。根据驱动负载能力需求,如500mA、1A、2A等,来选择不同的驱动芯片,同时芯片应具有过流、短路保护功能及故障判断功能。

2.2.7 高端功率驱动输出

VCU可通过高端功率开关驱动负载。负载一端接电瓶负极,另一端接VCU高驱实现驱动负载工作。根据驱动负载能力需求,如500mA、1A、2A等,来选择不同的驱动芯片,同时芯片应具有过流、短路保护功能及故障判断功能。

2.2.8 频率量输出

频率量输出可变化的频率或占空比信号,调节负载工作状态,从而实现控制功能。例如冷却水泵PWM控制。通常情况下,频率量输出端口与功率驱动输出端口可以复用管脚。比如U34控制器中的频率量输出端口与功率驱动输出端口均复用管脚。

2.2.9 H桥模块

H桥是一个典型的直流电机控制电路,因为它的电路形状酷似字母H,故得名“H桥”。设计H桥电路主要考虑直流电机的电压、功率与PWM频率。   

2.2.10 CAN通信模块

CAN通信模块能够实现VCU与其他电控单元的通信,波特率一般设定为250kbps或者500kbps(CAN FD数据域常用2Mbps),通信目标有电机控制器MCU、电池管理系统BMS、充电机、仪表盘等。根据需求配置总线唤醒功能。 CAN协议已经由国际标准化组织(ISO)标准化,即ISO 11898。

电阻R1和R2为终端电阻,阻值为62Ω,如果总线上已经有两个以上的电控单元接入了终端电阻,那么R1和R2可以拆除。

图中D1为TVS二极管,U1为共模滤波器(可选),U2为CAN收发器。

2.2.11 LIN通信模块

LIN通信主要用于数据交互频率较低的传感器或执行器,在满足信号需求的同时可降低成本。常见的信号交互零部件有智能水泵、智能风扇等。 

2.3 PCB设计

PCB基本设计流程如下:准备→PCB结构设计→PCB布局→布线→铺铜和丝印→网络和DRC(设计规则检查)检查及结构检查→制板。

2.3.1 准备

首先需要准备原理图元件库和PCB元件库(封装),开始设计原理图。 元件库可以用EDA软件自带的库,但是最好根据实际所选的元件尺寸制作对应的元件库。通过原理图生成网络表文件,PCB设计环境使用网络表文件。

2.3.2 PCB结构设计

根据已经确定的电路板尺寸和机械定位,在PCB设计环境下绘制PCB板面,按定位要求放置所需的接插件、按键/开关、螺钉孔、装配孔等,并且考虑是否与布线区域冲突。

2.3.3 PCB布局

布局就是在电路板上放置元器件,布局是否合理,会影响后续PCB走线的可行性,根据原理图生成网络表,然后在PCB图上导入网络表。各引脚之间还有飞线提示连接。然后就可以对器件进行布局了。布局主要考虑电磁兼容性、生产过程可行性等方面的管控,下面给出一些具体规则:

  1. 按电气性能合理分区,例如:供电、数字电路(既受干扰影响、又产生干扰)、模拟电路(受干扰影响)、功率驱动(干扰源)、通信。

  2. 完成同一功能的电路,应尽量靠近放置,并调整各元器件以保证连线最为简洁。同时,调整各功能块间的相对位置,使功能块间的连线最简洁。

  3. 对于质量大的元器件,应考虑安装位置和安装强度,发热元件尽量远离对温度敏感的元件,必要时还应考虑热对流措施。

  4. I/O驱动模块尽量靠近印制电路板的边、靠近引出接插件,减少外部干扰信号进入电路板。

  5. 晶振应尽量放置在主控芯片附近。

  6. 在每个集成电路的电源输入管脚和地之间,需加一个去耦电容。

  7. 布局要均衡,疏密有序。

2.3.4 PCB布线

布线是整个PCB设计中最重要的工序,直接影响着PCB性能的好坏。

  1. VCU一般采用四层以上电路板,将电源层和地层分开各占一层,起到了很好的隔离作用,另外两层顶层和底层用于排布信号线。

  2. 预先对要求比较严格的线(比如高频信号线)进行布线,输入端与输出端的边线应避免相邻平行,以免产生干扰。

  3. 时钟布线应远离I/O电路,时钟振荡电路推荐使用地线保护。

  4. 尽可能采用135°的折线布线,避免使用90°折线,以减小高频信号的辐射。

  5. 任何信号线都不应形成环路,若不可避免,环路应尽量小。

  6. 信号线的过孔要尽量少。

  7. 电源线或者功率驱动的线尽量短而粗。

  8. 关键信号应预留测试点,例如(5V,3.3V,Reset等),以方便生产和维修检测使用。

2.3.5 铺铜和丝印

PCB布线之后就可以铺铜了。铺铜优先铺地线,多层板时还需要铺电源。 对于丝印,要注意不能被器件挡住或被过孔和焊盘去掉。底层的丝印需要做镜像处理,以免混淆层面。

2.3.6 网络和DRC检查及结构检查

将所生成的PCB网络文件与原理图网络文件进行物理连接关系的网络检查,并根据输出文件结果及时对设计进行修正,以保证布线连接关系的正确性。 网络检查正确通过后,对PCB设计进行DRC检查,并根据输出文件结果及时对设计进行修正。 最后需进一步对PCB的机械安装结构进行检查和确认。

2.3.7 制板

制板时需要根据需要规定制板要求,如PCB板的层数、材料、铜厚、板厚等。

2.4 硬件功能测试

PCB制板与元器件焊接完成后,需要先进行硬件功能测试,再进行软件开发调试(总体顺序,实际的硬件测试与基础软件调试往往是交叉进行的)。

硬件测试设备有信号发生器、万用表、示波器、直流负载仪、手工检测台、制动灯、继电器等,针对CAN信号的测试,可以使用ZCANPRO、MeCa等CAN总线相关软件。

  1. 电源测试。通过给VCU供电9~32V输入(以控制器参数为准),测试PCB各电源测试点5V、3.3V等。

  2. 模拟量输入测试。

    电阻式:使用滑动变阻器调节阻值,模拟传感器输入。

    电压式:输入电压信号进行测试。

  3. 开关量输入测试。

    低电平有效:信号接地和悬空两种类型。

    高电平有效:信号接电瓶正极和悬空两种类型。

  4. 数字量输入测试(频率量)。使用信号发生器测试。

  5. 低端/高端功率驱动模块测试。通过指示灯判断驱动的开启与关闭,通过设置功率负载,测试驱动负载的能力。

  6. CAN信号测试。测量CANL与CANH之间的终端电阻,上升与下降沿时间测试,总线电压测试等。

  7. 过压、反向电压、开路及短路测试。通过整车控制器电源供电反接、过压,VCU针脚短地、短电源进行测试。

2.5 设计失效模式及后果分析

FMEA 潜在失效模式与后果分析(Failure Mode and Effects Analysis),在产品/过程/服务等策划设计阶段,对构成产品的各子系统、零部件,对构成过程,服务的各个程序逐一进行分析,找出潜在的失效模式,分析其可能的后果,评估其风险,从而预先采取措施,减少失效模式的严重程序,降低其可能发生的概率,以有效地提高质量与可靠性,确保顾客满意的系统化活动。经过这一系列的分析,评估出严重度、频度和探测度等级,三者的乘积即为风险顺序数RPN。

DFMEA的标准表头如下图所示。

2.5.1 寻找失效点

对应表格中的项目/功能一栏。填入项目的设计意图,实现该功能的前提条件等。如果存在多个潜在失效模式功能,则需要将每一个功能单独列出。

2.5.2 潜在失效模式

潜在失效模式是指过程中可能不满足设计要求的状况或者出现功能故障。一个项目或者功能可能存在多个潜在失效模式,需要逐一列出。

2.5.3 潜在失效后果

可以理解成能够被预见的功能故障,由失效模式导致的功能错误。

2.5.4 严重度S

严重度是失效模式发生时,对失效后果影响程度的大小,在DFMEA中用S(Severity)表示,等级分为1~10级,1级最低,10级最高。严重度与失效后果相关,想要降低严重度级别数值,只能通过修改设计完成,减少潜在失效模式,降低失效后果的严重性。

2.5.5 级别

级别用来评价当前失效点的质量特性,一般划分为三种,即关键特性、重要特性和一般特性。凡是识别为特殊特性的项,需要以对应符号在此栏中标注。

  1. 关键特性。例如,可能出现人身事故或者对环境产生严重污染的故障,在DFMEA中失效严重度S≥9或RPN≥100。安全类关键特性用“[AS]”表示,其他关键特性用“[A]”表示。

  2. 重要特性。例如,可能影响产品性能或者降低产品使用寿命的故障,在DFMEA中严重度7≤S<9,用“[B]”表示。

  3. 一般特性。例如,对产品的性能以及使用寿命不会产生太大影响的故障,在DFMEA中严重度S<7,不标注。

2.5.6 潜在失效原因/机理

潜在失效原因/机理表示可能引起失效模式的设计环节或者未考虑到的使用场景。分析途径通常有5wy法、失效树分析法(FTA)、头脑风暴、应用失效链分析法等。

2.5.7 频度O

频度用来描述当前失效原因/机理发生的可能性大小,在DFMEA中用O(Occurrence)表示,等级分为1~I0级,1级最低,10级最高。频度依附于失效原因。降低频度的唯一途径就是修改设计,消除或控制失效原因/机理。

2.5.8 现行设计控制

这一列主要列举当前已经采用的失效预防措施,如设计评审、尺寸链计算、样件试验等。现行设计控制的方法可以分成两种类型,即控制预防和控制探测。

控制预防是指预防原因/机理的发生,或失效模式/后果的出现,或降低频率。

控制探测是指查出原因/机理,并提出纠正措施。优先使用控制预防,而控制探测是在控制预防不起作用时的后期补救措施。

2.5.9 探测度D

探测度是指设计控制被探测出来的可能性。在DFMEA中用D(Detection)表示,等级分为1~10级,1级最低,表示几乎肯定探测到,10级最高,表示无发现的机会。可探测性随着数值的增加而降低。

2.5.10 风险顺序数RPN

风险顺序数是一项设计风险指标,它为严重度S、频度O和探测度D三者的乘积,取值在1~1000之间。RPN值为解决问题的优先顺序提供了参考。当RPN值接近,优先注意S大的失效模式及S和O都较大的失效模式,如果RPN值很高,设计人员必须采取纠正措施,无论RPN的值多大,只要S等级高,就需要引起特别注意。

2.5.11 建议措施

对消除失效原因/机理给出的建议措施,需要按照严重度、频度和探测度的顺序逐一降低它们的级别。可以从试验验证、设计修改、材料更换等的角度考虑措施。

3 VCU结构的设计与开发

3.1 VCU的结构组成

根据整车工作环境要求,VCU需要满足在温度-40~+85℃,相对湿度10-90%的环境下工作的条件,防尘防水等级满足IP67要求。

VCU主要由透气阀、上壳体、PCB(含接插件)总成、下壳体、螺钉组合而成。 VCU接插件选择PCB 板端连接器标准件。壳体材质为铝,上、下壳体缝隙间采用密封胶+螺钉的固定方式,可靠性高,再加上一颗透气阀,即可完成IP67的防尘防水要求。

透气阀是可以起到气压平衡防水防尘作用的器件。它允许气体的自由进出,阻止液态水、雾状水以及盐雾颗粒的通过。

VCU使用透气阀的原因如下:

  1. 长期承受内外压差,会导致密封材料和壳体的老化,压差过大会导致密封材料失效,从而失去对PCB的防护效果。通过透气阀解决VCU内外压差问题。可能导致内外压差的原因,例如:工作过程中元器件产生的热量使VCU内部气体热胀;车辆行驶在不同的海拔;夏季时,汽车在地表温度相对较高时行驶;突然下雨等。

  2. 帮助VCU散热,气体可以通过透气阀自由进出,有助于VCU散热冷却。

  3. 方便密封性检查。在实际生产过程中,不能对所有产品进行浸泡试验,如果出现密封问题,会导致PCB板与元器件损坏。通常采用气密检测的方式来检测VCU的密封性能。检测完成后,使用透气阀堵上透气孔。

透气阀具有耐温度变化,抗紫外线、跌落、盐雾及遇湿透气等特性。选用聚碳酸酯为主体材料,防水透气膜采用膨体聚四氟乙烯(e - PTFE),总体耐温范围为-40~+125℃。

3.2 VCU在整车上的布局

整车环境不同,VCU在整车上的布局也会有所不同,VCU布置区域要求如下:

  1. 拆装方便性。VCU布置要考虑拆装方便性,不受其他部件干涉,VCU接插件能够在不拆解其他零部件的情况下也能插拔。

  2. 空气流通。VCU安装位置需要保证空气流通来满足必要的散热需求。一般要求,在环境温度>85℃时,空气流通速度>2m/s;环境温度≤85℃时,对空气流通速度没有特殊要求。

  3. 避免潮湿环境。VCU不应布置在车上易进水的位置,例如底盘。安装方向推荐线束端向下,控制器垂直于地面安装。如果安装时线束受阻,允许水平安装或者倾斜安装,倾斜角度尽量≤45°,如图3.2-1所示。如此安装可以避免因接插件中积水而导致的硬件损坏。

  4. 避免过热区域。VCU不能布置在过热的位置,推荐安装在驾驶室内和前舱内这类低温区域,环境温度为-40~+85℃。

  5. 安装高度。VCU安装在驾驶室外时,一般要求安装位置高于地面500mm,以免泥浆、水等溅入VCU。

  6. 避免强电磁干扰区域。VCU不能布置在电磁干扰大的区域。

  7. 安装支架强度。一般要求VCU的安装支架牢固可靠即可,底部镂空,用于散热。

  8. 避免强烈振动区域。VCU不能布置在容易遭受外力冲击或机械振动剧烈的位置,避免VCU在工作中与周边部件擦碰造成损伤,与周边固定零部件的间隙应≥10mm。

4 VCU基础软件的设计与开发

基础软件主要实现基于主控芯片和外围电路的驱动开发,以及Bootloader,实时操作系统/任务调度系统,存储管理,故障诊断,通信等基础功能。

4.1 VCU基础软件开发工具链

尽管汽车行业有部分主机厂开始使用AUTOSAR工具链作为VCU基础软件开发工具链,但是由于AUTOSAR工具链过于昂贵,本文并不推荐用户使用AUTOSAR工具链。文本推荐的工具链是适用于全行业的具备较高性价比的软件开发工具链。

4.1.1 集成开发环境IDE

对于大部分单片机,芯片厂家一般都会提供集成开发环境IDE。IDE一般都带有编译与调试(Debug)功能,配合JTAG或者JLink仿真器使用,也支持变量查看、断点调试等功能。

以NXP的S32K344为例子,使用S32 Design Studio for S32 Platform 3.5作为IDE。

4.1.2 静态代码评审工具

静态代码分析是指在程序未运行的状态下,分析检查程序的语法、结构、过程、接口等来判断程序的正确性。主要检查代码和设计的一致性,代码逻辑表达的正确性,代码结构的合理性等。能够发现违背程序编写标准的问题,例如,参数不匹配、不适当的循环嵌套和分支嵌套、未使用过的变量、数据超范围、空指针引用等。在整个软件开发生命周期中,30%~70%的代码逻辑设计和编码缺陷是可以通过静态代码分析来发现和修复的。

市面上主流的C代码静态测试工具有HelixQAC(QAC/QAC++)、PC-lint等。

4.1.3 单元测试工具

单元测试(Unit Testing)是指对软件中的最小可测试单元进行检查和验证。通常而言,一个单元测试用于判断某个特定条件(或者场景)下某个特定函数的行为。单元测试是在软件开发过程中进行的最低级别的测试活动,在与程序的其他部分隔离的情况下进行测试。 单元测试的目的是发现各模块内部可能存在的各种错误,主要包括以下几个方面:

  1. 验证代码是否与设计相符合。

  2. 发现设计和需求中存在的错误。

  3. 发现在编码过程中引入的错误。

单元测试主要是针对系统最基本的单元代码进行测试,测试时主要从接口测试、独立路径、出错处理、边界条件和局部数据结构五个方面进行测试,如下图所示。通过这五个方面来检查模块内部是否存在错误。

常用的嵌入式软件单元测试工具有Tessy、IBM Rationl Test RealTime等。

4.2 VCU基础软件的系统架构

在汽车行业,基础软件和应用软件的整体系统软件架构中,应用最广泛的是AUTOSAR系统架构。在AUTOSAR架构中,对于基础软件有很详细的设计,所以汽车行业中控制器的开发在基础软件架构设计上很多都参照或者参考AUTOSAR。

AUTOSAR,全称为Automotive Open System Architecture,即汽车开放系统架构。它是由整车厂、零配件供应商,以及软件、电子、半导体公司联合成立的一个组织,建立了一个开放的汽车控制器(ECU)标准软件架构。其核心思想在于“统一标准、分散实现、集中配置”。

  1. 统一标准。是为了给各厂商提供一个开放的、通用的平台。

  2. 分散实现。要求软件系统高度的层次化和模块化,同时还要降低应用软件与硬件平台之间的耦合。

  3. 集中配置。不同公司开发完成的模块,统一进行配置管理,集成到一个系统中。

在汽车行业中,电子控制系统一直在高速发展,面临的挑战也越来越多,主要体现在以下几个方面:

  1. 汽车的电气化电子(E/E)系统日益复杂,控制器数量增加,网络复杂度增加。

  2. 硬件平台多样化,软件可复用性差。

  3. 软件功能数量急剧增加,软件成本占比增加。

AUTOSAR框架使得不同结构的电子控制单元的接口特征标准化,应用软件具备更好的可扩展性及可移植性,能够实现对现有软件的复用,从而减少重复性工作,缩短开发周期。 AUTOSAR计划目标主要有三个:

  1. 建立独立于硬件的分层软件架构。

  2. 为实施应用提供方法论,包括制定无缝的软件架构堆叠流程并将应用软件整合至ECU。

  3. 制定各种车辆应用接口规范,作为应用软件整合标准,以便软件组件在不同汽车平台复用。

AUTOSAR软件体系结构包含了应用软件(Application Software)和基础软件(Basic Software),并在两者中间设立了一个运行时环境(RTE),从而使两者分离,形成了一个分层体系架构。

基础软件架构设计能够让代码逻辑更加清晰,在编写功能逻辑时能够最大限度的复用代码,方便软件的移植,将硬件驱动与功能封装成一个个模块,能够快速拼装成实现不同功能的模型。

VCU基础软件架构的思路也是如此,即功能模块化设计、分层设计。将收集到的需求进行归类、总结和分析,将这些需求概括为一个个单独的功能,每个功能做成一个单独的功能模块。 基础软件主要用于提供基础软件服务,包括标准化的系统功能及功能接口,并且由一系列的基础服务软件组件构成,包括系统服务、存储服务、通信服务等。

基础软件层的组件及其功能如下所示:

微处理器驱动

  1. 初始化微处理器各部件(PLL、A/D、DIO、SPI等);

  2. 响应硬件中断,调用相应的中断服务程序;

  3. 产生任务调度的时钟。

非易失性数据存储驱动

  1. 对内部FLASH的初始化、擦除、读写操作;

  2. 对外部EEPROM、FRAM通过IIC或SPI接口进行读写操作。

CAN驱动

  1. 初始化CAN各个通道;

  2. CAN通道的接收中断服务;

  3. 向各个CAN总线发送报文。

I/O驱动

  1. 初始化微处理器的数字I/O端口;

  2. 读取I/O输入端口的采样值;

  3. 控制I/O输出端口;

  4. 对A/D端口定时采样;

  5. 读取PWM输入端口的频率和占空比采样值;

  6. 控制PWM波输出端口的频率和占空比。

硬件输入输出统一接口

  1. 映射硬件输入端口到逻辑上的输入。

  2. 硬件与逻辑接口映射,只需要调整硬件接口与逻辑的输入输出的关系即可。

  3. 对从硬件输入端口读取到的数据进行滤波处理,滤除硬件干扰。

CAN标定协议(CCP)

  1. 支持CCP协议的在线标定功能。

  2. 数据采集(DAQ)功能。

统一诊断服务(UDS)

  1. 支持基于IS015765和IS014229的UDS服务。

  2. 将故障相关的信息保存到非易失存储器中,例如FLASH、EEPROM、FRAM等。

Bootloader

基于CAN总线的控制器Bootloader程序,满足了控制器不开盖即可进行应用程序升级的要求,具有较大的实用价值。

4.3 VCU基础软件的主要模块

4.3.1 系统服务

系统服务提供实时操作系统服务,包括中断管理、资源管理、任务管理、通信管理、ECU状态管理、看门狗管理、同步时钟管理、基本软件模式管理等服务,其中最基础的是实时任务调度系统服务。

中断管理是实时系统中一个很重要的部分。例如,程序在顺序运行时,接收到特定外部信号,需要执行特定的操作,此时需要中断当前任务,跳转至中断服务执行相应的操作,完成后再回到当前任务继续向下执行。一些实时性较强的操作需要系统通过中断服务及时处理,实时操作系统的功能一般要通过若干任务和中断服务程序共同完成。任务与任务、任务与中断、中断与中断的服务程序之间必须协调动作、互相配合。

任务管理决定了操作系统的实时性能。它通常包含优先级设置、多任务时间调度机制等。

任务调度是协调各个任务占用计算机资源的时间,直接影响系统的实时性能。通常任务调度机制分为基于优先级抢占式调度(中断管理)和时间片轮转调度(任务管理)。

系统采用优先级抢占方式进行调度,可以保证重要的突发事件及时得到处理。时间片轮转调度是让优先级相同的任务按照时间片使用CPU,以防止同优先级的某一任务长时间独占CPU。 一般情况下,系统采用基于优先级抢占式调度与时间片轮转调度相结合的调度机制,优先级高的任务先运行,相同优先级的任务按照轮转方式进行调度。

4.3.2 存储服务

单片机运行时的数据都存于RAM(随机存储器)中,在掉电后RAM中的数据是无法保留的,若需要在掉电后储存数据,则需要扩展对应的非易失性数据存储空间,即FLASH、EEPROM、FRAM存储器等。在传统的单片机系统中,一般是在片外扩展存储器,单片机与存储器之间通过I2C或SPI等接口来进行数据通信。 FLASH的存储功能按扇区操作,EEPROM则是按字节操作,若需要频繁地改写某些小量数据,EEPROM非常适合,FLASH更适合不需要频繁写入的数据。

FLASH一般为主芯片MCU的一块FLASH区域,以扇区为单位,写入前需要先擦除扇区,再写入数据,不同的MCU一次最少擦除的扇区大小也不同,所以在MCU中的FLASH结构适用于不需频繁改写的数据,一般会在硬件上没有配备EEPROM时,用这种方式模拟EEPROM。

根据整车技术规范及需求,存储服务模块应该提供如下功能:

  1. 满足UDS功能需要读、写的DID数据。

  2. 满足UDS功能需要存储的故障状态和冻结帧信息。

  3. 满足UDS功能读取故障状态和冻结帧的接口。

  4. 下电时在合适的时机存储应用层模块需要保存到NVM(非易失性存储器)的数据,保证数据的正确性。

  5. 上电时读取应用层模块存储的数据(历史数据和续航数据),提供给应用层使用。

存储服务模块的性能需要满足如下需求:

  1. 充分利用存储空间,减少NVM写入次数。

  2. 充分考虑片内FLASH和片外EEPROM的读写时间限制,分页机制。

  3. 保证存储数据的正确性。

  4. 实现数据安全。

数据安全设计需要达到的目的是在读取UDS配置数据或者应用数据时,都能够检查出数据是否被损坏,并采取合理的处理措施对此,VCU分别对UDS配置数据和应用数据做一致性检查,检查不通过,则报相应故障警示以保证整车驾驶安全。

当前一种新型的存储器FRAM也逐渐应用到VCU上,不再需要下电写入,它在VCU运行过程中即可完成数据的写入工作,与EEPROM、FLASH相较而言,具有读写更快、寿命更长、低功耗、抗辐射等优点,但是制造成本偏高,储存的空间更小。

4.3.3 通信服务

VCU提供的通信服务主要是基于CAN总线的通信服务。

5 VCU应用软件的设计与开发

应用软件的英文是 Application Software,VCU应用软件在行业内也称为VCU控制算法。

5.1.VCU应用软件开发工具链

VCU应用软件开发通常使用基于模型的设计MBD,应用软件开发工具链MATLAB、Simulink、Stateflow与ECUCoder。

5.2.VCU应用软件的主要模块

VCU 的定位是整车控制系统的大脑,应用软件主要负责控制整车运行,协调各个电控单元间的通信、故障诊断等。优秀的控制策略能够提高整车驾驶的舒适性,这通常通过转矩管理策略和相关的驾驶性标定来实现。

5.2.1 上下电和模式管理

在电动汽车中,上下电和模式管理实现整车动力系统中各控制器低压、高压上下电过程中的协同和自检,目的是在上电自检过程中验证各控制器和整车动力系统的健康状态,保障后续车辆使用中的安全。由 VCU 主控整车的上下电和模式管理是当前业内主机厂通用的设计方案。 一般情况下,与动力系统密切相关的整车电源档位分为OFF、ON和START三个。三个档位的功能可以根据整车控制系统的要求进行定义。

例如:

  1. OFF档为整车下电休眠。

  2. ON档为整车进入低压待命状态,整车控制器唤醒动力域相关控制器,并且在规定时间内完成低压自检,进入低压待命状态。若自检失败则上报故障,仪表显示相应的故障灯或者故障码。

  3. START档为整车进入高压激活状态,整车控制器通知与高压相关的控制器进入高压激活状态,监控它们的响应状态,确保所有控制器在规定时间内完成高压上电,整车高压系统正常工作,若高压上电失败,则上报故障,仪表显示相应的故障灯或者故障码。

如此操作,可以最大程度将可能出现的故障暴露在上电自检过程中,而非行车过程中。

5.2.2 交/直流充电

交流充电和直流充电会唤醒VCU,VCU 进行上下电管理、充电条件判断及整车故障诊断并执行系统响应。控制整车进入交/直流充电流程,并在上下电和充电过程中对控制器进行故障诊断,确保安全充电。

5.2.3 能量管理

电动汽车的能量管理主要分为以下三个部分:

  1. 功率计算与能耗计算

功率计算与能耗计算是指VCU对整车的主要功率器件进行实时的功率计算与能耗计算,计算得出的数据将传输给仪表显示,并且用于其他模块的计算。

整车瞬时能耗和平均能耗常输出至仪表显示。而外部消耗高压功率的计算结果会发送给电池管理系统 BMS,用于BMS在充电时计算需要向充电桩请求的充电功率。

  1. 功率分配与功率限制

整车在行驶过程中,电池的最大可用输出功率是有限的,如果此时整车的各个功率器件请求的总功率超过了电池的最大允许输出功率,那么 VCU 就要通过功率分配策略来决定优先满足哪些器件的功率请求,而对其他的优先级低的器件则进行功率限制。 例如,电池电量低时,电池的最大允许输出功率会降低,如果此时电机和空调同时请求功率,且请求的总功率超过了电池的最大允许输出功率,此时 VCU 按照预定的功率分配策略,通常会保证电机能够正常运行,切断空调的制冷制热功能,保证整车的用电安全。

  1. SOC与剩余里程计算

电池续航里程和充电速度在还未得到突破性提升的前提下,纯电动汽车特有的“里程焦虑”受到了广泛的关注。纯电动汽车与传统汽油车相比,存在着续航能力低,“充电”比“加油”时间长,快充无法适配等问题。若用户发现车辆在没有到达充电桩之前就会将电能耗尽,便会产生“里程焦虑”。 通过科学的预测方法,给用户提供可靠的剩余里程提示,告诉用户当前的操作对于剩余里程的影响,降低用户遭遇“里程焦虑”的概率。但是剩余里程表达的是当前时刻,预测车辆在不充电的情况下剩余可行驶的距离,作为一个预测结果,它受到电池剩余电量、用户的驾驶习惯、路况、其余用电设备(如空调)等因素的影响。只能参考机器学习的算法,提高预测剩余里程数的准确程度。

5.2.4 热管理

电动汽车的整车热管理大致可分为以下三个部分:

  1. 电驱动系统冷却管理

电驱动系统冷却管理指的是对动力域相关零部件的热管理,主要包括 MCU、电机、OBC 及 DC/DC 等。需要使它们工作在安全的温度范围内,保证车辆行驶的安全性。同时,尽可能地降低冷却系统的能耗,保证车辆的续驶里程。 电驱动系统的散热量较大,一般采用液冷的方式,通过一条共用的冷却水路将MCU、DC/DC、OBC、电机等器件串联起来,接入水泵使水流通过发热部件,带走部分热量,通过车辆前端的散热器,使冷却液降温,再回到发热部件处,以此循环。

一般在冷却回路的散热器上还装有冷却风扇,当车辆爬坡或者高速行驶时、MCU和电机的热量增加,此时提高水泵转速,打开冷却风扇并调高风扇的转速,可以增加散热器的散热量。

  1. 动力电池热管理

动力电池相当于传统燃油车的汽油,属于新能源车的特有零件,电池在充电或放电的过程中也会产生大量的热量,如果不能把这些热量及时释放出去,电池的温度持续上升,温度过高会影响电池的工作性能,降低电池寿命,甚至引发电池爆燃等安全风险。

电池在工作时也需要保持在一个最佳的温度范围内,过高过低的温度都会影响电池的电量损耗,例如冬天电池的续航里程远远低于夏天。

目前,电池的散热方式主要有风冷和液冷两种。

一般小型或微型车,电池容量小、工作电流不大的情况下,会采用风冷。如果充电时温度太低,可以通过内置的电加热器加热,达到预设温度后再进行充电。 一般中高端车型,会选用液冷,通过电池冷却器进行制冷。相较于风冷,液冷的散热能力更强、安全性更高、储电量更大。电池对冷却液的温度范围要求较严,一般不与电驱动系统的冷却回路串联。在温度较低的情况下,一般通过水热加热器进行加热。

在一些特殊情况下,电池也会接入电驱动系统的冷却回路,例如充电或低温环境下缓慢行驶时,这时会通过一些三通阀或四通阀将电驱动系统的冷却液导入电池系统,可以在给电池保温的同时,提高整车的能量利用率,延长车辆的行驶里程。在冬天温度较低的情况下,甚至可以利用电机代替水热加热器,给电池加热。

  1. 乘员舱热管理

乘员舱热管理是指对乘员舱的温度进行控制,从而提高驾乘人员的舒适性。不同的是燃油车一般用发动机废热进行乘员舱加热,用发动机带动空调压缩机进行乘员舱制冷。而电动汽车没有发动机,电机的效率很高,废热很少,一般采用加热器或热泵等进行乘员舱加热,采用效率较高的电压缩机进行降温。

因为电池的容量有限,而加热器/热泵和压缩机都要消耗大量的电能,因此对乘员舱热管理的主要目标是和整车能量管理相互配合,尽可能地延长车辆续航里程。

5.2.5 远程控制

远程控制系统包括车载信息服务终端T-BOX、汽车电器系统(如VCU、空调系统等命令处理和执行器)和移动终端。其中,T-BOX通过CAN总线与整车控制器进行通信,移动终端和T-BOX通过无线信号进行通信。

如下图所示,以远程开启空调为例,当用户通过移动终端应用程序发送控制命令到车载T-BOX,T-BOX将相应指令发送到CAN总线,由VCU响应执行启动空调的指令,完成远程控制。在冬季驾驶人上车前可以提前除霜、除雾和采暖;夏季驾驶人上车前可以提前降温。以此提高用户的车辆使用舒适性。

在远程控制功能中,VCU必须参与,以确保指令的合理性。

5.2.6 故障诊断

车辆行驶过程中,任何零部件都有可能发生故障,从而导致器件损坏甚至危及车辆安全,VCU需要对车辆各种可能出现的故障进行分析处理,保证汽车行驶安全。

故障诊断管理负责对硬件(传感器、继电器等)输入和CAN信号的监控,确认是否有故障发生。如果确认故障发生,判断故障原因,及时做出相应的保护措施,提示司机车辆异常,储存故障代码,用于后续的诊断分析。如下图所示。

VCU故障诊断DTC设计应符合ISO 15031和ISO 14229 标准。VCU不仅要实时诊断自身的故障,还要接收整车控制系统中的各个ECU单元上报的故障,动力系统尤为重要,根据预先定义的故障处理策略,控制整车按处理策略执行。目的是在整车出现故障的情况下,保证车辆和驾乘人员的安全。 VCU 会严格按整车故障等级划分进行故障处理,如下表所示。

故障等级

车辆状态

动力

高压

0

无故障

无限制

保持

1

轻微性能限制

无限制

保持

2

严重性能限制

根据具体故障决定处理策略

保持

3

车辆停止

停止输出

正常下电

4

车辆停止

停止输出

紧急下电

5.2.7 转矩管理架构

新能源汽车上高压成功后处于可行驶状态,驾驶人将档位挂入D(Drive)档或R(Reverse)档,即可通过加速踏板和制动踏板来控制车辆行驶。

VCU将根据加速踏板、制动踏板及整车实际状态来进行转矩计算并使车辆按照驾驶人意图来驱动的过程称为转矩管理。转矩管理主要分为需求转矩分析(TQD)、转矩限制 (TQR)、转矩滤波(TQF)三个部分。

5.2.7.1 需求转矩分析 (TQD)

根据驾驶人的意图进行模式识别(例如,加速踏板控制、蠕动、能量回馈、定速巡航等),对相应的输入信号进行解析,计算出需求转矩值,输出驾驶人需求的转矩。还需要判断当前车辆是否处于可行驶状态。

5.2.7.2 转矩限制(TQR)

对输出转矩进行比例限制,制定上下限位的过程。车辆对于转矩的限制有很多种情况,例如车辆最高时速、车辆故障时速,都需要对转矩做出限制。当车速接近设定的最高时速是,需要按照比例减小扭矩输出,并且维持最大车速不再上升。在车辆出现故障后,通过故障诊断系统设定一个跛行车速,仅允许车辆以低速行驶。

5.2.7.3 转矩滤波 (TQF)

由于整车控制器实时计算出的转矩数值变化较大,直接发送给动力系统执行会造成车辆的剧烈抖动,为了兼顾舒适性,需要对需求转矩进行滤波处理,让不同工作模式下的转矩按照一定斜率和步长去增加。转矩滤波部分会根据整车工作模式、转矩变化情况设计滤波因子,需求转矩在滤波因子的基础上增减,使转矩输出相对平顺,最终输出给动力系统执行。

5.2.8 转矩模式管理

为了使车辆能够更好地响应驾驶人的需求,同时也能保证人员、车辆的安全,VCU会对所有存在的工作模式进行排列,确保车辆驾驶状态更加合理。转矩模式管理原则的优先级依次为禁止行驶状态、驾驶安全、辅助驾驶、转矩较大者优先。

5.2.8.1 禁止行驶状态

车辆驱动状态一般只存在可行驶和禁止行驶两个状态。在车辆控制中,车内人员的人身安全为最高原则,根据车辆各个模块的工作能力、优先级等实际情况响应车辆禁止行驶的状态。处于禁止行驶状态下,车辆将无法切换工作模式,禁止扭矩输出。

5.2.8.2 驾驶安全

当车辆处于可驾驶状态时,若触发驾驶安全功能,应优先响应这些功能。驾驶安全功能主要包括防抱死 (ABS)、车身稳定控制 (ESP)制动力分配(CBC)、紧急制动 (AEB)等。

5.2.8.3 辅助驾驶

常见的辅助驾驶功能有自适应巡航 (ACC)、定速巡航(CC)、陡坡缓降(HDC)、坡道辅助 (HAC)、自动泊车 (APA)等,这些功能需要驾驶人通过按键等开关设置来触发。

5.2.8.4 转矩较大者优先

实际车辆驾驶中,可能会遇到工作模式冲突,给出了多个不同的扭矩输出,若此车辆处于可驾驶状态,则遵循扭矩较大者优先的原则,为了能够及时响应驾驶人的需求。

5.2.9 档位控制逻辑

当车辆处于可驾驶状态时,驾驶人操作档位开关进行换档,整车控制器通过硬线信号识别出驾驶人的换档意图并根据整车实际情况进行档位判断,执行对应的档位逻辑操作,最后通过CAN总线将档位信息发送给仪表,供驾驶人确认档位切换是否成功。档位一般分为以下几档:

  1. D档(前进档位)。在此档位下,踩加速踏板会驱动车辆向前行驶。

  2. R档(后退档位)。在此档位下,踩加速踏板会驱动车辆向后行驶。

  3. N档(空档位)。基本用于暂时停车,防止误操作导致的车辆运行,长时间停车时,须换至驻车档位。

  4. P档(驻车档位)。停车后,挂P位,防止出现“溜车”的情况,一般车辆是具有P位按键的,如果没有P位按键,则停车时挂N位拉起驻车制动器手柄即可。

VCU结合驾驶人换档信号、车速信号、制动踏板信号及加速踏板等信号条件判断是否允许换档,如果不满足档位切换的要求,VCU 会向仪表发送换档失败信号,以提示用户重新切换档位。

5.2.10 能量回馈

在汽车总电量保持不变的情况下,如何提高能量利用率,增大续驶里程,一直是用户关注的焦点。能量回收功能可以提高能量利用效率,也是新能源汽车区别于燃油汽车的一大特点。

传统燃油汽车制动时,制动系统摩擦生热,将车辆动能转化成热能释放到空气中。而电动汽车能够将制动和滑行时的动能转换成电能,并将其存储在动力电池中。电动汽车在能量回馈时,驱动电机运行在发电状态,将汽车的部分动能回馈给动力电池以对其充电,能够延长电动汽车的续驶里程。

能量回收分为滑行能量回收与制动能量回收两种模式,分别适用于滑行与制动两种工况。

当车辆处于滑行工况时,能量回收系统向车辆施加一定制动力矩,使车辆缓慢减速;当驾驶员踩下制动踏板时,制动系统与能量回收系统相互协调,合理分配制动力,达到驾驶人预期的制动效果。

一般在仪表盘附近会增设能量回馈开关,用于设定是否启动能量回馈功能,也有为其添加几个能量回馈档位的情况,用来调节能量回馈的力度。 VCU根据驾驶人信息与车辆信息判断是否能够进入能量回馈模式,并根据驾驶人设置的能量回收等级,向电机请求不同的制动转矩,并在制动转矩介入与退出时做平滑处理,兼顾车辆驾驶舒适性与经济性。 所以,在电动汽车上,适时地运用能量回收系统,不仅能为汽车提供辅助制动功能,还可将制动能量重新转化为电能,进行二次利用,能量回收贡献率最大可达20%左右,是提升整车续驶里程的重要方法。

5.2.11 蠕行

蠕行指的是汽车处于可行驶状态,在不需要踩下加速踏板的情况下车辆可以自行提速至某一恒定车速,并稳定行驶的功能,属于低速巡航辅助驾驶。

5.2.12 防溜坡功能

当车辆行驶到坡上,未能及时踩下制动踏板出现车辆后溜时启动的一种安全保护措施,让车辆短时间驻停,给驾驶人足够的反应时间踩制动踏板、拉驻车制动器手柄或踩加速踏板继续行驶等。 当车辆处于坡道上准备起步时,脚离开制动踏板而踩加速踏板的一瞬间,ESC系统会自动地保持制动油压2、3s,相当于制动踏板仍被踩着的状态,所以车不会往下溜。当脚踩下加速踏板时,ESC 系统的制动控制就自动结束了,逐步地减小制动力量,车辆也随之起步行驶。

然而,当前新能源汽车中存在很多价格较低的经济性车型,为了控制成本没有配置ESC系统,无法通过机械制动做到车辆防溜坡。很多车型在没有增加其它底盘部件的情况下通过控制电机输出转矩使车辆在坡道上维持零转速实现防溜坡的功能。

5.2.13 定速巡航

在驾驶人不踩加速踏板的情况下,控制车辆按照设定的目标巡航车速行驶。当车辆在高速公路上长时间行车时,驾驶人激活定速巡航功能,则无需控制加速踏板,减轻了疲劳程度,同时也减少了不必要的车速变化,起到节省电量的作用。

定速巡航功能用于控制汽车以恒定的速度行驶,车辆一旦被设定为巡航状态,VCU控制输出巡航转矩。VCU根据道路状况和汽车的行驶阻力不断地调整巡航转矩,使车辆始终保持在设定的车速行驶。目前,巡航控制系统已成为中高端新能源汽车的标准配置。

5.3 VCU应用软件的MiL测试

模型在环仿真测试即MiL(Model in the Loop)测试的目的是对模型进行动态仿真,对预期结果和仿真结果进行比较,检测出模型中潜在的问题,验证控制模型的功能逻辑。

MiL测试首先应根据软件需求和功能建立MiL测试大纲,测试用例的输入主要是来源于软件的功能需求分析,测试用例需覆盖全部功能点。同时应考虑边界值、异常值等条件,以检测模型的鲁棒性。测试结束后对模型仿真结果进行确认,若测试未通过,需详细分析错误原因,修改模型后再进行回归测试。

5.4 VCU的HiL硬件在环仿真测试

MiL测试只能对应用软件进行测试,HiL硬件在环仿真测试则可以对VCU硬件、基础软件与应用软件进行比较全面的功能测试,是VCU产品开发过程中不可或缺的重要环节。

HiL硬件在环仿真测试最主要的工作是开发测试用例,开发测试用例涉及的工作包括测试需求分析,测试用例设计方法,测试覆盖度统计,故障诊断测试等。

5.4.1 测试需求分析

测试需求是开发测试用例的依据,是衡量测试覆盖率的指标。测试需求有助于保证测试的质量与进度。

需求分析的过程如下图所示:

  1. 需求采集。将软件开发需求中的具有可测试性的需求或者特性提取出来,形成原始测试需求。

  2. 需求分析。对每一条需求进行细化,明确各个测试要点,是否需要与测试机柜交互,数值范围是否符合质量需求,需要实施的测试类型等。列出测试跟踪需求矩阵。

  3. 需求评审。应保证所描述的内容能够得到相关方的一致理解,各项测试需之间没有矛盾和冲突。每一项测试需求都用作测试用例设计的依据。

5.4.2 测试设计方法

测试用例是为了验证 VCU 功能,测试用例质量决定了测试执行的深度、广度与测试结果的质量,合适的测试用例能够提高测试效率和测试覆盖率,可有效验证VCU的功能,及时发现VCU的设计缺陷。 测试用例的设计方法可以分为等价类划分法、边界值法、因果关系法等。

我们以等价类划分法为例,测试车辆的倒车灯控制功能:VCU唤醒后检测到R档信号,点亮倒车灯。如下表所示:

输入

有效类

无效类

VCU上电状态

Key ON
Key ACC

Key LOCK

档位信号

R档

N档
P档
D档

倒车灯信号

点亮

未点亮

根据上表功能,使用等价类划分法,设计的测试方法如下表。

VCU状态与档位信号为输入项,倒车灯信号点亮为动作项,最后得出测试结果。

VCU状态

档位信号

倒车灯信号

测试结果

Key ON

R档

点亮

Y

Key ON

N档

未点亮

N

Key ON

P档

未点亮

N

Key ON

D档

未点亮

N

Key ACC

R档

点亮

Y

Key LOCK

R档

未点亮

N

根据上表,仅有两条测试设计点亮了倒车灯。根据该测试设计,设计测试用例,覆盖所有有效等价类,未点亮的组合也需要测试。得到的测试用例如下表所示。

编号

测试步骤描述

预期结果

Case_001

VCU状态Key ON,挂入R档,观测倒车灯状态

倒车灯点亮

Case_002

VCU状态Key ON,挂入N档,观测倒车灯状态

倒车灯未点亮

Case_003

VCU状态Key ON,挂入D档,观测倒车灯状态

倒车灯未点亮

Case_004

VCU状态Key ON,挂入P档,观测倒车灯状态

倒车灯未点亮

Case_005

VCU状态Key ACC,挂入R档,观测倒车灯状态

倒车灯点亮

Case_006

VCU状态Key LOCK,挂入R档,观测倒车灯状态

倒车灯未点亮

上述测试用例结合其他功能的测试用例可以构成一套完整测试用例,尽可能使覆盖度达到100%,最终实现VCU功能的完整测试。

5.4.3 测试覆盖度统计

测试覆盖度是度量测试完整性的一个指标,目标是保证测试可以覆盖每个功能需求,以保证软件产品的质量。HIL测试基于测试用例进行测试,实现对整车控制系统的验证工作。在测试用例库编写完成后,需要由测试人员对其进行评审,确认测试用例能否完整地覆盖测试需求。在通过相关人员认可后,才能对测试用例库进行发布。

5.4.4 故障诊断测试

5.4.4.1 测试目的

确保在车辆发生故障时能够保障驾乘人员的人身安全及防止车辆产生进一步的损失,对车辆实施的一种强制处理措施。与驾驶人的主观驾驶意识不同,故障诊断属于车辆控制器通过一系列参数自主判断,自我保护的一种行为。

通常情况下,故障诊断主要涵盖了以下三个步骤:

  1. 检测设备状态特征信号。

  2. 在所检测的信号当中提取故障征兆。

  3. 根据征兆及其他诊断信息对设备状态进行识别。

故障诊断功能在设计时,需要考虑以下两个方面:

  1. 保证在车辆出现异常时,VCU能准确及时地检测到发生了哪一种故障并且做出合理的动作,记录故障发生时的数据,以便进一步查找故障原因。

  2. 防止车辆行驶中因为信号抖动超出某个安全阈值,导致控制器误报故障的行为,不能给驾驶人造成紧张或者恐慌,影响驾驶体验。

对于故障诊断相关功能的测试,就是为了检查以上两方面功能是否完全实现。

5.4.4.2 故障分类

为了区分不同的故障,控制器应该做出何种动作,便于测试数据的组织管理。从功能验证的维度方面,可以将故障诊断测试分为正向测试、反向测试、边界测试、滤波测试等。

  1. 正向测试。在满足所有故障条件的前提下,将故障注入后VCU能够迅速动作,例如降功率、降车速及点亮故障灯等。是否能够在规定时间内得到故障代码,例如在仪表盘闪烁故障码。

  2. 反向测试。主要为了防止误报。在条件不满足的情况下,不能误报故障,以免造成驾驶人员的恐慌。

  3. 边界测试。验证在故障产生的边界条件下,是否会报故障。

  4. 滤波测试。为了验证故障确认时间是否满足测试条件。

根据故障注入方式的不同可分为通信类故障、硬线信号故障与开路短路试验故障等。

  1. 通信类故障。这类故障的特点是都与通信总线相关,例如VCU检测到某个零部件通信异常,或者某个部件通过总线上报故障等。例如,MCU上报IGBT故障、电机过温故障、ABS车速无效故障等。如果VCU连续若干个通信周期未收到MCU、仪表盘等的CAN报文,则认为通信异常故障。

  2. 硬线信号故障。VCU的PIN脚通过线束与各类传感器执行器连接,与这些零部件的交互方式主要包括霍尔量信号、开关量信号、模拟量信号等。诊断过程中若检测到这些信号持续超出合理范围则判断出现了故障。

  3. 开路短路试验故障。这类故障本质上也属于VCU的PIN脚故障,但是故障注入的方式与前面几种差别较大,为了便于管理也将其单独分离出来,主要包括低端功率驱动故障、高端功率驱动故障等。

5.4.4.3 测试用例设计

故障诊断服务通常是基于UDS(ISO 14229) 协议开发的,与其他功能的测试方法类似。

以“加速踏板信号H和L同时处于死区”故障为例,故障定义如下表所示。

技术指标

描述

故障名称

加速踏板H与L同时信号异常

故障产生条件

1.KL15唤醒VCU上电x秒后(充电情况下不诊断)。
2.低压系统供电正常。
3.加速踏板供电正常。
4.加速H与L信号值超出正常数值范围。
5.加速H与L信号值丢失。

故障确认时间

连续保持300ms

VCU处理方法

1.VCU向CAN总线发送“整车控制系统故障等级3级”
2.限制或停止电机的扭矩输出
3.VCU记录并发送故障码,点亮故障灯。

自愈条件

VCU重启,踏板信号均处于正常状态。

根据上述表编写测试用例如下表所示。

测试步骤

期望结果

1.VCU上电

VCU上电成功

2.检查VCU Reday状态

Reday = true

3.确认低压供电正常,无故障

通过

4.确认加速踏板供电正常,无故障

通过

5.上一次上电也不存在故障则清除历史故障。

清除历史故障成功

6.故障注入:Voltage_ H=0,Votage_ L=0,持续300ms以上

-

7.读取故障代码

故障代码=Pxxxxxx

8.向总线发送系统故障等级

系统故障等级=3

9.限制功率输出

禁止功率输出

10.控制系统故障灯

点亮

11.等待2s后VCU下电

VCU下电成功

12.取消故障注入条件

-

13.VCU重新上电

VCU上电成功

14.检查VCU Reday状态

Reday = true

15.确认低压供电正常,无故障

通过

16.确认加速踏板供电正常,无故障

通过

17.连续两次上电,均不存在故障,清除历史故障。

清除历史故障成功

18.是否自愈?

自愈

19.关闭故障灯,不再限制输出功率,停止发送故障等级

-

20.VCU下电

VCU下电成功

至此,一个故障诊断测试用例编写完成。其它各类故障诊断测试用例也可以按照类似的方法编写,最终实现VCU故障诊断功能的完整测试。

5.5 VCU实车测试

VCU作为新能源汽车重要的核心零部件,不能只在实验室中进行 HiL测试、DV/PV等测试,必须在实车环境中验证子系统的可行性,主要目的是在验证VCU最常规的功能,对HiL测试台架无法模拟的工况进行补充测试,例如路面摩擦系数、坡度、不同品牌的充电桩等,进一步确认VCU软件功能的安全性与稳定性。

实车测试分为常规测试和特殊功能验证。在软件发布前,所有的常规功能都需要在实车上测试通过,发布的功能中若包含无法在HiL台架上测试的部分,也需要在实车上确认。特殊功能验证是对车型特殊功能(大部分其它车型没有的功能)进行验证。 进行实车测试前,需要准备好待测软件、OBD诊断仪、软件刷写工具、测量标定工具、示波器、万用表等。 测试时要依据事先评审好的测试用例,按从静态测试到动态测试的顺序进行行测试。

静态测试最典型的是整车暗电流测试:

  1. 关闭所有电器开关、车门和后仓门,拔下点火钥匙,开前舱盖。

  2. 将万用表调至最大安培档(此时万用表应处于OFF状态),拆下蓄电池的正极桩头上的连接线,将万用表红表笔与蓄电池正极桩头连接,黑表笔与连接线连接,使万用表串联在整车回路中,如下图所示。

  3. 打开万用表的电源,开关一次车锁,等待电流值稳定,逐渐减小电流档,确定当前电流具体数据,一般不会超过20mA。

  4. 然后根据整车原理图,拆下所有消耗静态电流电器件的插接件,此时万用表的读数应该为零。如果读数不为零,则说明存在非消耗静态电流的电器错误接入,需逐一排查,直到读数为零为止。

  5. 测试通过后,恢复电池电源连接。

静态测试还包括非常多的常规功能,例如低压上电(车辆启动)测试,各传感器信号测试,通信测试,高压上电测试,充电功能测试等。所有静态测试通过之后,车辆各个子系统均未上报故障方可进行实车动态测试。

实车动态测试主要是车辆行驶过程中的相关功能测试,例如:最高车速、加速性能、防溜坡性能和最大爬坡度、能量回收、剩余里程等,还包括车辆驾驶舒适性等主观感受测试。

实车测试结束后需要对所有测试的数据进行细致的分析,有疑问的数据要及时和研发人员确认,做好记录,将数据留档。实车功能测试完成后,VCU软件版本就可以发布给整车相关部门做进一步的验证了,也可以给标定工程师,进行实车的驾驶性标定等工作。

6 DV和PV测试

整车控制器开发阶段需要通过DV(Design Verification)和PV(Product Verification)测试。DV是设计验证,用于验证的样件可以是手工(焊接)件也可以是模具(产线量产)件。PV是产品验证,被测样件必须是产线上生产的模具件。PV之后零件还需完成生产件批准程序 (PPAP) 审核。

测试要求是按照产品需求、用户的需求和运行环境定义的,同时也需要符合国家的法律法规。

6.1 DV测试

DV 测试是为了保证电气元件在可能出现的外部环境下正常运行,而对样件进行的测试。按照环境类别分为,机械负载试验、气候负载试验、化学负载试验、电气负载试验、电磁兼容试验五大类。

6.1.1 机械负载试验

机械负载试验是对控制器在机械性能上的验证,主要涉及自由跌落试验、随机振动试验、机械冲击试验等。

6.1.2 气候负载试验

气候负载试验是为了检验整车使用环境中,VCU 能否抵抗高低温、湿度、气压变化,阻止粉尘、液体侵入,抵抗盐雾、盐水腐蚀等能力,以及对VCU的使用寿命进行验证。

主要涉及:低温存储、高温存储、低温工作、高温工作、温度循环试验、温度冲击试验、温度/湿度组合试验、稳态湿热试验、盐雾试验、防尘试验、防水试验等。

6.1.3 化学负载试验

化学负载试验是为了检验受试样品暴露在试剂污染环境中的耐受能力。化学试剂的型号和供应商可由零部件供应商及车辆制造厂双方协商。包含的测试项有耐化学试剂试验。

6.1.4 电气负载试验

可能由外部引发的过压、极性反接、短路、开路等特殊情况,测试VCU在恶劣的电气环境中是否仍能正常工作。

主要涉及:直流供电电压试验、长时间过电压试验、短时间过电压试验、叠加交流试验、电压缓降缓升试验、起动扰动电压试验、反向电压试验、单线开路试验、多线开路试验、信号电路短路保护试验、负载电路短路保护试验、对电压骤降的复位性能。

6.1.5 电磁兼容试验

电磁兼容性是指设备或系统在电磁环境中符合要求运行,并且不会产生影响其他设备工作的电磁干扰。

电磁兼容性包含两个方面:

  1. 设备在正常运行过程中对所在环境产生的电磁干扰 (EMI)。

  2. 设备对所在环境中存在的电磁干扰所具有的一定程度的抗干扰能力(EMS)。

与VCU相关的电磁兼容性试验项有辐射发射RE、传导发射CE、辐射抗扰BCI、电源线瞬态抗扰 CI、静电放电ESD等。

零部件和整车对电磁兼容性都有强制性法规要求。如果电磁兼容性不能满足相应法规要求,产品将不能上市。

6.2 PV测试

PV测试是在DV测试后开展的。被测件必须是在生产线上量产的模具件。PV测试项可以与DV测试项相同,也可以减少测试项目,根据实际情况评估而定。通过PV测试之后的零件再完成PPAP审核,才具备量产供货资格。

7 VCU标定

在对不同车辆进行开发工作时,因对车型的要求、定位的不同,车型之间会有差异,例如电机型号、车重、轮胎等,都会影响车辆驾驶的最终特性。为了适配各个车型,在开发过程中通过标定试验对相应参数进行优化调整,从而满足不同车型的驾驶要求,发挥车辆的最优性能。

新能源汽车标定工作一般包含如下几个阶段:

  1. 桌面标定。在实车标定工作前,对相关参数进行预设,例如,电机参数、pedal map预标定、基本参数设置等,保证标定车辆具备基本功能及安全性。

  2. 转鼓标定。在转鼓试验台进行的实车标定工作,目的是通过标定使车辆满足动力性、经济性等相关指标要求。

  3. 道路标定试验。在普通公路、试验场、特殊试验道路等试验路况,以及在一定温度条件下对车辆进行针对性的试验、标定及验证,从而使车辆最终满足项目开发要求。

7.1 标定工具链

标定过程中,需使用相应的标定工具,通常使用的工具如下:

  1. 可移动计算机,通常使用笔记本电脑。

  2. 信号转换设备,例如CAN卡。

  3. 标定软件,例如CANape、INCA、MeCa等。

  4. 刷写软件。

  5. 相应的连接线。

通过测量标定软件采集信号,在线调整参数,测试车辆性能,固化标定数据,通过刷写软件更新固化标定数据后的VCU软件。

在标定过程中,需根据采用的标定协议 (例如CCP或XCP)载入对应的A2L文件作为数据库。

7.2 桌面标定

利用原始数据文件、电机台架数据,结合整车技术条件等信息,进行数据预设,以保证标定车辆的基本驾驶功能及安全。其中,对于纯电动汽车,较为重要的几点包括:

  1. 基本参数配置。针对不同车型进行相应的基本参数配置,例如传动比、轮胎半径等。

  2. 传感器与执行器参数配置。根据传感器、执行器自身特性,将电信号转化为可读的物理信号数值。例如,将加速踏板的电压信号转化为踩下行程的百分比。

  3. 电机外特性曲线的输入。利用电机台架试验测得特性曲线绘制VCU扭矩管理的二维表格,这个表格数据是VCU进行扭矩管理的基础。

  4. 车辆驾驶及安全功能参数预标定。例如,pedal map、转矩加载、下降梯度等。通常以成熟量产的项目作为参考,根据车辆基本参数差异作调整,确保车辆功能和安全。

7.3 转鼓车辆试验

在道路试验开始前,通过转鼓试验室的底盘测试机模拟实际道路工况,对相关功能进行标定工作,主要包含以下内容:

  1. 经济性标定。

  2. 动力性预标定。

  3. 定速巡航预标定。

  4. 热管理标定。

7.3.1 经济性标定

经济性指标是指车辆的能量消耗率、续驶里程等性能指标,新能源汽车经济性标定主要是能量回收的标定,以此来增加车辆的续航里程。

能量回收分为两个阶段,滑行能量回收和制动能量回收。滑行阶段设定的回收强度要尽量减少踩刹车的过程,减少能量转换为刹车片摩擦生成的热量而白白损耗,回收强度也不能太大,避免车速下降过快又要踩油门加速,导致回收的能量再被浪费。制动情况下的需求与滑行下的需求相比就少了很多。由于能量回馈是扭矩由正转负的一个过程,会造成一定的制动感,对舒适性有一定影响,因此标定过程中需要在经济性和舒适性之间取得一定的平衡。

7.3.2 动力性预标定

在转鼓试验室针对动力性指标进行预标定工作,一般包括:

  1. 最高车速。

  2. 加速性能。

  3. 爬坡能力。

  4. 坡道起步。

  5. 项目中规定的其他动力性指标。

标定方法为通过对 pedal map 和转矩梯度输出进行标定,满足动力性指标要求。同时,也要兼顾安全性、舒适性。

7.3.3 定速巡航预标定

通过按键设定车速,使车辆在不踩加速踏板的情况下按设定车速行驶。由于定速巡航一般在高速公路上应用较多,同时也要求坡度较小的上下坡行驶也可以达到设定车速。出于安全和试验路况的要求,一般会在转鼓试验室先进行预标定,然后在实际公路上进行验证和优化标定数据。

7.3.4 热管理标定

热管理系统一般分为电驱动冷却回路、空调回路、电池回路及采暖回路。对于电驱动冷却回路,由VCU控制水泵、风扇的启停与转速,使得电机和MCU尽量处于合适的温度范围内。热管理标定主要修改水泵、风扇启停的温度阈值,目标转速的查表数据等。同理,空调回路、电池回路及采暖回路也需要热管理标定。

7.4 车辆道路标定

电动汽车的道路标定包含但不限于:

  1. 动力性标定。

  2. 驾驶性标定。

  3. 蠕行标定。

  4. 定速巡航标定。

7.4.1 动力性标定

常温驾驶动力性标定主要分为动力响应标定、起步加速标定、超越加速标定和爬坡性能标定。

这里主要标定在不同车速下,踩下加速踏板后获得的动力响应和迟滞情况,其中所获得的加速感与加速踏板开度有关,以半开和全开为标准。如下图所示,横坐标为车速,纵坐标为扭矩,随车速下降的曲线为加速踏板各开度情况下的转矩输出曲线,随车速上升的曲线坡度为0% 时和坡度为 3% 时的车辆阻力曲线。

假设此时驾驶员踩下加速踏板至20%开度的位置,待车辆进入匀速行驶状态,再将踏板踩至100%开度的位置,此时应该获得多大的加速度响应,两点之间的扭矩转换应该耗时多久,时间过短会造成传动系统的冲击,时间过长会导致车辆响应延迟,也就是试车司机常说的"踏板不随脚"。标定时需要根据具体情况而定。

7.4.2 驾驶性标定

常温驾驶性标定主要分为加速线性度标定、匀速行驶标定、tip -in/out 平顺性标定、D档及R 档静态/动态换档标定和能量回收标定等。

  1. 加速线性度标定。标定车辆加速时车辆随加速踏板开度变化而变化的线性度。即车辆在行驶的状态下,踏板开度10%、20%、30......100%,各点之间的加速度值应该线性增长。

  2. 匀速行驶标定。加速踏板开度稳定在某一点后,车速稳定在某一数值,车辆匀速行驶。

  3. 能量回收标定,包括滑动能量回收与制动能量回收。

  4. 蠕行标定。对于具备蠕行功能的车辆,在不踩加速踏板的情况下,车辆自行起步并维持在某个较低车速匀速行驶。车辆蠕行通常使用PI控制实现,蠕行标定主要是对P、I参数进行标定。

  5. 定速巡航标定。该功能需在实际道路上进行标定和验证,以满足功能要求。当驾驶人通过按键设定目标巡航车速后,VCU 会对目标巡航车速和当前车速进行对比,调整转矩使实际车速达到目标巡航车速。

7.4.3 低温环境道路试验

在低温环境和冰雪路面,相较于传统燃油车,新能源汽车更容易受温度影响,低温续驶里程、充电时长、空调耗电等都是新能源汽车在低温情况下必须注意的问题。针对低温环境,VCU需要做低温标定验证。

在低温状态下,动力电池活性降低,若整车功率仍像常温状态下对动力电池功率有较大需求会对电池包造成损伤,因此需要限制功率输出。功率限制会影响车辆的动力性,因此也需要对不同车速、不同加速踏板开度下的转矩进行低温修正标定,使得车辆驾驶性最佳。

在低温环境下,能量回收功率也会变小,也需要根据温度对回馈转矩进行低温修正标定。

7.4.4 高温环境道路试验

和传统燃油车一样,新能源汽车也需要通过高温标定验证,包括三电系统 (电池、电机、电控) 的标定与验证、散热系统 (热管理、空调性能) 的标定与验证。

在电机和电池处于高温状态下,功率输出能力受限时,VCU需要做出相应的调整,在高温情况下为能量管理、转矩分配、加速响应、能量回收、充电和续驶里程等进行高温修正标定。

8 VCU小结

VCU设计开发涉及到硬件的设计开发,结构的设计开发,基础软件的设计开发,应用软件的设计开发,DV/PV测试,VCU标定等。从零开发VCU是一项复杂的工程,完全从零开发控制器成本高,周期长,因此完全从零开发并不常见,尤其对于主机厂很少完全从零开发控制器。大部分项目(包括样机项目与量产项目)都使用二次开发的方式,基于现成的控制器硬件与基础软件开发满足需求的应用软件。二次开发可以明显缩短开发周期(缩短80%以上),降低开发成本,因此是最常见的开发方式。