潘志前
(上海蔚兰动力科技有限公司,上海,200050)
截至2018年9月,全国机动车保有量达3.22亿辆[公安部数据],2017年,全国机动车四项污染物排放总量初步核算为4359.7万吨,机动车的尾气排放成为空气污染的首要因素。电动汽车具有零排放、零污染的优点,受到相关国家部门的推广。VCU作为电动汽车的整车控制器,相当于电动汽车的大脑,跟电池控制器、电机控制器、底盘控制器等通过CAN总线进行通讯,控制车辆安全平稳的运行。
AUTOSAR是AUTOmotive Op en System Architecture(汽车开放系统架构)的首字母缩写,由汽车制造商,供应商以及工具开发商联合开发。截止到2018年,成员中有9大核心成员,200多其他成员。
随着汽车软件开发的复杂度不断增加,软件代码量的急速上升,硬件的多样化,导致对软件可移植性的依赖越来越强。AUTOSAR具有标准化的接口,通过配置可以任意移植应用层到不同的硬件上,不但可以提高代码质量,而且大大缩短了软件的开发时间。
AUTOSAR架构将底层软件和应用层软件通过RTE层进行分离,再将底层分为微控制器抽象层、ECU抽象层、服务层和复杂驱动。见图1。微控制器抽象层是底层软件的最底层,主要包括微控制器驱动、MEMORY驱动、通讯驱动、I/O驱动等;ECU抽象层处在底层软件的中间层,将ECU硬件抽象化,主要是作为微控制器层驱动的接口,也包含外部设备驱动;服务层是底层软件的最高层,主要包括操作系统,网络管理、内存管理、诊断服务、ECU状态及模式管理、监控管理等;复杂驱动是在AUTOSAR里面未被定义,具有很高时序限制的驱动。
图1 AUTOSAR分层架构
图2 V型开发流程
AUTOSAR具有一整套的方法进行软件开发,即方法论。整个方法分为三个阶段,即系统配置阶段、ECU配置阶段及生成代码阶段。系统配置阶段包括软件组件描述、ECU资源描述及系统限制描述。软件组件描述主要包括该SWC用到的操作和数据、对架构和硬件的要求、所使用的资源、运行机制等;ECU资源描述主要包括使用了哪些硬件,比如传感器、执行器、存储器、处理器、外部设备、引脚分配等;系统限制描述主要包括网络拓扑、协议、通讯矩阵、波特率等。系统配置阶段主要包括将端口数据映射到通信矩阵,并将SWC映射到ECU;ECU配置阶段主要包括将runnable映射到task中;最后进行软件集成,利用工具将各个软件模块生成的代码进行集中编译,最后生成可执行的代码。
VCU软件功能的开发严格按照V型架构开发,如图2所示。
VCU相当于电动汽车的大脑,收集来自于驾驶员需求的加速踏板信号、刹车信号、档位
信号,还有来自于底盘控制器、车身控制器、人机交互等信号,来自于电机控制器的MCU的信号,来自于电池控制器BMU的信号等其他控制器的信号,见图3。VCU综合这些信号进行判断,最终输出命令到其他控制器,从而达到车辆的安全平稳运行。
VCU的功能主要包括整车高压上、下电管理、扭矩管理、驱动系统热管理、高压能量管理、低压能量管理、充电管理、诊断管理等,下面简要介绍一下各个功能模块。
该模块主要负责整车高压的上电和下电时序。上电时,VCU被唤醒,唤醒后VCU进行自检,自检完成后接着唤醒其他动力系统控制器,如BMU、MCU等;所有控制器唤醒后,VCU发送上高压请求,BMU进入预充,预充完成后闭合主继电器,完成上高压的流程。下高压时,VCU发送下电请求,接下来进入电池、电机的绝缘检测阶段,绝缘检测完毕后,VCU请求BMU打开主继电器,BMU打开主继电器后,进入电机主动放电阶段,放电完成后,完成下电操作。
图3 VCU控制系统
该模块采集加速踏板、刹车踏板、档位、巡航等信号,经过处理后反应了驾驶员对车辆的需求,期望加速、减速还是巡航等,然后对需求的扭矩进行滤波,保证驾驶的平稳性。最后对来自于底盘控制器、电机控制器、电池控制器等的扭矩进行仲裁,仲裁后输出需求扭矩到电机控制器。
该模块主要负责动力系统的热管理工作,包括电池和电机的热管理。热管理模式主要包括主动冷却模式、被动冷却模式、大小循环、远程预加热等,VCU根据电池SOC、电机工况、电池温度、电机温度、环境温度等条件判断需要何种热管理模式,保证电池、电机处于高性能区域。同时,当在低温环境下,热管理还针对远程请求对电池进行预加热,以保证客户用车时电池性能不受限制。当车辆的慢充枪插入且低温时,还能对电池进行保温管理,维持电池在合理的温度范围内。
该模块主要负责高压能量的分配,通过计算电池可用功率、电机功率需求、高压附件的功率需求,分别计算出在放电工况和制动能量回收工况下的能量,再根据电池的能力进行能力分配。当车辆在充电工况时,根据充电枪能力、电池SOC、电池温度、环境温度等要素综合考虑高压能量的分配,比如电池加热或制冷需要的能量、乘员舱加热或制冷需要的能量等。
该模块主要负责整车的低压能量管理,主要包括休眠时唤醒VCU使能DCDC给低压电池充电和整车电压负载的管理。当低压电池SOC或电压低于阈值时,低压电池通过通讯发送信息唤醒VCU,从而使能DCDC给低压电池充电;另外,将低压电压分为三级,在不同的电压等级下,根据负载的优先级,会卸载不同的负载,以保证低压电的稳定。
该模块主要负责交流慢充,当车辆处于休眠时,可通过插枪信号唤醒VCU,VCU根据当前车辆档位、充电口温度、是否有其他故障等综合判断是否具备充电条件,如果不具备,则终止,如果具备,则唤醒OBCM、DCDC、BMU等控制器,并完成上高压准备,然后VCU请求闭合S2和慢充继电器,进行慢充充电。在充电过程中,持续监控电池的状态和其他控制器的状态,当电池充满或客户终止时或有过温、过流、过压、绝缘等故障时,VCU进行下电请求,以保证安全。
该模块按照UDS的规范要求,对电动汽车动力系统及其相关系统进行诊断,包括零部件的对地短路、对电源短路、开路、性能等故障进行时时在线诊断外,还包括出现故障后的安全处理,一方面保证人员的安全,另一方面保证车辆的安全。另外,诊断管理还对产线EOL进行测试,以保证车辆零部件能够正常工作。
软件集成工具采用的是ETAS提供的ISOLAR-A和Matlab,主要集成步骤包括以下几步:
1.生成AUTOSAR接口文件,文件格式为.ARXML;
2.将AUTOSAR工程添加到ISOLAR-A工具中;
3.添加软件组件SWC的输入和输出接口;
4.生成软件组件SWC;
5.连接软件组件SWC的接口;
6.代码生成;
7.进行预编译、编译和后编译;
8.生成 Hex 和 A2l。
整个集成主要包括上述的8个步骤,如图4所示。
软件测试是软件开发环节中必不可少、至关重要的环节,主要包括单元测试、MIL测试及HIL测试。
单元测试是软件开发中最小集合的测试,包括收集软件需求、制定单元测试计划、设计单元测试用例、进行单元测试、输出单元测试报告、评审单元测试结果等活动,见图5。单元测试可在Matlab/Simulink测试环境下进行,输入测试用例,输出测试报告。
MIL(Module In Loop)测试,顾名思义,测试环境也是在Matlab/Simulink下搭建的,将所有VCU模型或部分模型联系在一起进行测试,亦可搭建驾驶员输入模型、电机模型、电池模型等,尽可能模拟真实环境,得出的测试结果也更接近实际情况。MIL测试过程类似单元测试。
HIL(Hardware In Loop)测试是软件开发最后一环测试,我们采用的是ETAS测试台架,将VCU外围硬件,如踏板、刹车、慢充继电器、档位等接入台架,在ECU-TEST上根据测试用例进行自动化测试。
AUTOSAR架构具有很多的优点,也是目前主流厂商开发软件采用的方法。VCU软件的开发基于此,具有软件的移植性、替代性、兼容性等优点,本文就是在AUTOSAR架构上进行了VCU多种功能的开发,并对开发的软件进行集成、测试,以达到整车功能的需求。
图4 软件集成流程
图5 测试流程