基于模型的商用车车身控制器开发方法研究
张 辉1,苏朋军1,孙连明1,赵立安2
(1.中国第一汽车股份有限公司技术中心,吉林 长春 130011;
2.北京经纬恒润科技有限公司,北京 100191)
摘要:基于快速原型的V流程开发模式,在当今汽车电子产品开发过程中得到了广泛应用。本文针对商用车车身控制器的开发应用,提出了基于模型的开发方法与实现,使用控制领域内通用的仿真工具Matlab(Simulink/ Stateflow/RTW),通过与嵌入式软件编译器的链接,开发适用于产品软件应用的软件集成开发环境,加快产品开发进度,提升开发效率。
关键词:基于模型的开发方法;快速原型;V流程;车身控制器
中图分类号:U463.6    文献标志码:A  文章编号:1003-8639(2018)05-0028-04
Model-based Commercial Vehicle BCM Development Method Research
ZHANG Hui1, SU Peng-jun1, SUN Lian-ming1, ZHAO Li-an2
(1. China Faw Co.,Ltd R&D Center, Changchun 130011, China; 
2. Beijing HiRain Technologies Co., Ltd., Beijing 100191, China)
Abstract:The rapid prototype based V-process development mode has been widely used in current automobile electronic product development. Focusing on the development and application of the commercial vehicle BCM, This article proposes the model-based development method and realization, which uses Matlab(Simulink/Stateflow/RTW)and connection with built-in software compiler, to establish an integrated development environment for product applications. This method speeds up the development progress, and increases the development efficiency.
车管所网上选号Key words:model-based development method; rapid prototype; V-process; BCM大众只有一款车
1 研究背景
目前汽车技术发展的主要推动力是汽车电子电气技术,国内整车厂(尤其商用车)都在不断地深化电子电气技术在自主车型上的应用。其中,整车厂除了利用供应商资源进行合作开发之外,同时也在建立自主的开发能力。
车身控制器是整车电子电气架构中重要的控制部件,涉及整车电气系统的功能分配、控制逻辑等等,国内外很多整车厂也将车身控制器作为一个重要部件自行开发。开发模式是供应商提供硬件和基础软件,整车厂进行应用层软件开发,并针对不同车型进行产品系列化。尤其在商用车领域,针对商用车车型多、批量小的特点,为了实现零部件的成本最优,需要针对不同车型,设计应用同一款车身控制器产品能应用到尽可能多的车型。
另外针对当前产品开发的模式,充分借鉴国际上流行的基于模型的开发方法,利用现有的建模仿真工具(Matlab/Simulink/Stateflow)直接进行应用软件设计,同时完成仿真测试等,然后利用Matlab自带的代码生成工具(Embedded Coder)生产C代码,结合车身控制器所选芯片的编译器,生成特定的可执行代码,完成在产品上的应用。目前,Matlab工具支持产品级的代码生成,并且已经成为了汽车行业内的标准编程工具。本文也是基于Matlab的使用,开发出针对于商用车的车身控制器应用环境,用于整车厂进行产品软件开发,供给不同的车型使用。
2 系统需求
本文提及的商用车车身控制器是针对一汽商用车应用设计的一款产品,硬件资源需求如表1所示。
表1 商用车车身控制器资源需求
序号       资源名称数量信号特性
1开关量输入10高有效/开关电流2 mA
2开关量输入30低有效/开关电流2 mA
3频率量输入5
4模拟量输入15
5CAN3250 kb/s或500 kb/s
6LIN1
6功率输出(低端)15200 mA
7功率输出(高端)151 A
8功率输出(高端)63 A
9功率输出(高端)36 A
11传感器电源输出212 V/200 mA
12电源6熔断丝30 A 
13搭铁3
收稿日期:2017-07-21
表1可以满足当前一汽商用车的全系列车型的资源需求,可以在此基础上进行不同车型应用车身控制器的系列化和平台化。车身控制器部件为24 V 系统,用于实现灯光系统(如转向灯、前照灯、雾灯、位置灯和室内灯等)控制、刮水系统控制,各种传感器信号以及开关信号的采集,同时实现底盘CAN、舒适CAN 的报文和信号路由,支持标准的UDS 诊断,支持CCP 标定配置,支持OSEK NM,支持LIN 通信功能、BT 功能等等。
在硬件设计方案方面,包括主控MCU、信号采集电路、电源管理电路、硬件驱动电路以及CAN、LIN 通信电路等。软件由硬件驱动程序、故障诊断协议栈、嵌入式系统软件框架、接口程序以及Matlab/Simulink 环境下的一套图形界面构成。通过Matlab/Simulink 环境下的图形界面可以配置输入接口模式、输出控制口模式以及系统功能等,在Matlab/Simulink 环境下搭建模型,借助RTW Embeded Coder 工具将图形界面翻译为C 代码,借助Codewarrior IDE 及其编译器将C 代码翻译为机器码,最终通过BT 下载机器码,形成最终产品状态。
3 硬件设计
3.1 硬件系统设计
车身控制器是整车电子电气架构中非常重要的零部件,主要控制车身上的灯具和电机等负载,同时采集相关的开关以及传感器信号,集中进行信息分析处理,并通过CAN 总线进行信息交互。针对商用车
车身控制器的结构特点,硬件系统定义如图1所示
图1 硬件系统定义
根据输入输出资源的要求、数量及性能的定义,选择原Freescale 公司的32 bit 芯片MPC 5604B 作为系统CPU,主要的资源包括:主频:64 MHz;Flash :512 Kbyte;RAM :32 Kbyte;EEPROM: 64 Kbyte;CAN:3路;AD (10 bit):36路。
3.2 信号采集电路设计
系统的开关量输入提供上拉配置和下拉配置,硬件方案如图2所示
图2 开关量配置方案
系统的模拟量输入同时提供电压信号输入和电阻信号输入。针对电压信号,硬件方案如图3所示。
3.3 输出驱动模块设计
系统提供低端驱动输出,按照功能需求选用INFINEON 公司的集成式低端输出MOS 驱动芯片,驱动电流约1A。硬件方案如图4所示
图4 低端驱动硬件方案
系统提供高端驱动输出,同时需要对输出负载的状态进行故障诊断,按照功能需求选用ST 公司的智能MOS 功率驱动芯片,根据不同的功率大小设置进行系列选型。硬件方案如图5所示。3.4 通信接口电路设计
CAN 收发器方面选型NXP 公司的TJA 1042,CAN 通信接口电路硬件方案如图6所示。
LIN 收发器选型NXP 公司的TJA 1021,24 V-LIN 总线接口电路硬件方案如图7所示。
4 基于模型开发的集成环境
4.1 Matlab 工具特点
传统的软件开发模式如图8所示,
直接在嵌入式芯片上
图5
高端驱动硬件方案图3 电压信号硬件方案
进行算法的设计验证,存在着开发周期长、调试环境不友好等各方面的问题。
而新兴的开发模式如图9所示。借助Matlab 仿真工具(Simulink/Stateflow),首先在仿真环境下进行算法的仿真、验证,然后再利用其RTW 及Embedded Coder 直接将算法模型生成C 语言代码,所见即所得,快速、便捷、可靠,
本论文也是利用此工具进行实现。将车身控制器所需的底层驱动、I/O 输入输出、总线接口通信等接口代码封装成Simulink 下面的模型库,可以直接将算法模型和驱动模型连接,为最终产品代码的生成做准备。4.2 软件总体框架
车身控制器的软件总体框架如图10所示,标准通用模块需要供应商开发并封装成Simulink 模型库,应用层软件进行设计由整车厂工程师完成,BootLoader 部分是实现烧录入车身控制器底层的引导程序,
奕泽ev
主要负责在上位机生成可执行代码之后,通过Bootloader 可以将代码引导入车身控制器内部存储器上,从而实现最新应用代码的更新
图10 软件总体框架
5 软件开发环境设计实现
本文的主要工作就是实现车身控制器各个底层驱动模块程序的设计及封装,然后完成和CPU-MPC 5604B 编译器的链接,直接实现可执行代码的生成。5.1 I/O 模块的封装
GPIO 模块,是CPU 底层驱动的基本模块。根据功能使用的不同,划分为3个类别。①Digital Input
模块:主要用于MCU 管脚作为普通I/O 功能的输入状态的采集;②Digital Output 模块:主要用于MCU 管脚作为普通I/O 功能输出状态的控制;③PWM Output 模块:主要用于MCU 管脚配置为EMIOS 功能且作为PWM 输出功能的控制。
在Simulink 中封装接口示例如图11所示
科鲁兹用什么机油
图11 模型示例(I/O 示例)
双击点开GUI 配置参数界面如图12所示,可以设置输入、输出、PWM 等配置参数,从而实现不同的应用选型
图12 GPIO
接口示例(输入)
图7 LIN
通信接口电路
图9
新兴的嵌入式软件开发流程图8
传统的嵌入式软件开发流程
图6 CAN 通信接口电路
5.2 AD 采集模块封装
AD 采集模块主要负责采集模拟量开关或是模拟量传感器信号,其Simulink 模型示例如图13所示
图13 示例模型
把ADC GetValue 模块拖到目标模型中,双击打开ADC GetValue 模块的配置界面,在Channel 项选择目标通道,即可完成不同通道信号采集的设置,如图14所示
图14 ADC GetValue 配置界面
5.3 中断控制(Interrupt Control)模块封装
中断控制在车身控制器软件设计中用于休眠唤醒(开关输入唤醒或是传感器唤醒)或是实时性控制(信号触发要求控制立刻响应某个控制功能,或是用它来触发一个Function-Call System 模块),如图15所示
图15 中断控制配置界面
针对外部中断源,需要在GUI 中的Ports 模块中配置将要控制管脚的参数,主要参数包括:中断来源的管脚(Assignment)、中断的方向属性(Direction)、初始电平属性(Initial Level),如图16所
示。5.4 总线通信模块封装
关于CAN 总线,MPC 5604B 共有3个模块:CAN 接收模
块主要接收数据进行处理,CAN 发送模块主要完成CAN 的
发送功能,以及CAN 配置模块。
双击打开GUI 界面上的CAN 配置模块,选择需要使能的CAN 通道,其它参数需要进行配置,如图17所示
图17 CAN 模块配置界面
用户自定义接收模块的用法为:把CAN Receive Fun 模块拖到目标模型中,使其触发一个Function-Call Subsystem 模块,配置接收的信息,接收信息需要和CAN BUS 协议中配置的自定义接收信息一致,如图18所示。
5.5 MCU 基本模块封装
MCU 模块主要完成对芯片工作的晶振和系统工作频率进行配置,如图19所示。
除此之外,还需要完成SPI、SCI、定时器、看门狗的应用封装。这些底层驱动程序都是在MCU 上进行验证过的代码,确认工作可靠,然后完成在Matlab 下面的Simulink 模块封装。
(下转第36页)
浙江交通网违章查询图16 Ports 模块配置示例界面
参考文献:
[1] Tak ahara H,Yasue H,H buchi R,et a.l Continously 
variable transmission control system for Toyota intelligent idling stop system[C ].USA:SAE Paper,2004.
[2] 黄大星,何仁,陈庆樟.汽车怠速停止与起动模拟试
验系统开发[J ].重庆交通大学学报(自然科学版),2010,29(4):654-658.
[3] 刘巨江,吴坚,黄锐景,等.起停系统控制策略开发
及实验研究[J ].车用发动机,2012(5):15-18.[4] 周磊,霍宏煜,关懿峰,等.基于驾驶员意图识别与
车辆状态判断的发动机智能起停系统设计[J ].车辆与动力技术,2011(3):32-35.
[5] 杨河清.汽车起动机、蓄电池、发电机与整车的匹配
[J ].轻型车技术,2000(3):51-54. 
[6] 蔡继续,郑海权.车用发动机起动机蓄电池的匹配分
析估算[J ].汽车电器,2007(2):5-7.
[7] 李振磊,林逸,龚旭.智能起停微混轿车的试验研究
[J ].汽车工程,2010,32(8):655-658.
[8] 冯钟.汽车控制系统中的双速CAN总线设计[J ].电子
技术应用,2008(3):111-114.
[9] 梁海波,高卫民,王晓明,等.混合动力Start/Stop
控制策略对整车排放影响的研究[J ].内燃机工程,2008,29(2):15-18.
作者简介:王建波(1979-),男,工程师,硕士,研究方向为发动机项目开发及管理;夏鸣春(1985-),男,工程师,硕士,研究方向为线束设计与开发;江逸(1990-),男,助理工程师,研究方向为发动机排放标定。沧州车展
 (编辑 凌 波)
6 产品模型验证
针对车身控制器的产品开发,除硬件和软件开发环境设计外,还需要通过实际样件的试制、调试和软件测试,实现以下功能:①通过Simnulink 进行控制逻辑模型的开发;②在Matlab 环境中的RTW 工具直接进行C 代码生成;③通过CodeWarrior 完成针对C 代码的编译形成机器码;④通过车身控制器内部的Bootlaoder 程序,利用CANape 软件实现软件下载。
通过在试验室环境台架的测试验证,整个开发环境实现了预期的功能目标,整个开发过程工作可靠,可以用于产品软件的开发。
7 结束语
本文主要论述基于模型的车身控制器产品设计实现,该车身控制器产品基于Freescale 的MPC 5604B 芯片为平台的完整系统,由硬件驱动程序、故障诊断协议栈、嵌入式系统软件框架和接口程序以及Matlab/Simulink 环境下的一套图形界面构成。通过Matlab/Simulink 环境下的图形界面,可以配置驱动程序、故障诊断协议栈以及将用户在Matlab/Simulink 环境下搭建的模型关联到嵌入式系统软件框架的某个接口,借助RTW Embeded Coder 工具将图形界面翻译为C 代码,通过BT 下载代码。可根据车型功能需求开发逻辑层,灵活地控制输入输出的关系。
通过本文可以快速实现不同车型车身控制器的功能定义、算法仿真以及产品实现,整个过程统一集成在快速原型开发环境内,为用户提供了一个高效的产品平台,为一汽商用车车身控制器的平台化、系列化打下了很好的基础,并取得一定的经济效益成果。
参考文献:
[1] 陈婷,张烈平.基于MATLAB/RTW的实时控制器
快速开发方法的研究[J].科学技术与工程,2008(17) :5071-5074.
[2] 余新栓.基于Matlab的STM32软件快速开发方法[J ].单
片机嵌入式系统应用,2011,11(10):46-48.
[3] 任书明,揭金良,石开强.基于Simulink/Stateflow模型
的嵌入式软件开发研究[J ].福建电脑,2008(1):79-80.
[4] 张永博,沈勇.基于Simulink 的OSEK嵌入式软件开发方
法[J ],单片机嵌入式系统应用,2009(5):21-24.
作者简介:张辉(1985-),男,工程师,主要从事商用车
车身电子产品开发工作;苏朋军(1980-),男,高级工程师,主要从事商用车车身车载产品开发工作;孙连明(1983-),男,工程师,主要从事商用车车身车载产品开发工作;赵立安(1976-),男,工程师,主要从事商用车车身电子产品开发工作。
 (编辑 凌 波
图18 CAN Receive Fun
示意界面图19 MCU 模块配置示例界面
(上接第31页)