整车控制器基础软件平台化开发与集成

文章主要参照国际 Autosar 软件标准,结合项目实际要求,提出了新基础软件架构,并通过 MATLAB 的命令行工具 Legacy Code Tool 及 S- function 等功能,将底层驱动源代码封装成 Simulink 模块库,形成平台化产品。采用一键式集成的方式对其进行编译,生成可执行文件。经过开发测试验证,平台化开发的基础软件安全可靠。

1. Autosar 标准

Autosar 是面向汽车领域的嵌入式软件体系结构标准。该体系结构采用了分层模型,每一层只能使用下一层的接口,并向上一层提供服务接口。这样对于不同的硬件平台具有更大的灵活性,使得硬件和软件更大程度地彼此独立,同时分层独立开发可以缩短开发周期和减少开发成本。

按照 Atuosar 标准分层的架构体系,自上而下分别是应用层(Application Layer)、运行时环境(RuntimeEnvironment)、基础软件层(Basic Software Layer)及微控制器层,即硬件。

而基础软件分为 3 个层次,分别为:微控制器抽象层(Microcontroller Abstraction Layer)、ECU 抽象层(ECUAbstraction Layer)、服务层 (Services Layer)。另外,在Autosar 软件架构中将复杂驱动(Complex Drivers)独立出来,这部分并没有标准化,主要用于对复杂的传感器执行器进行操作。Autosar 标准软件架构具体分层结构,如图 1 所示。

图 1 Autosar 标准软件架构显示界面
2. 整车控制器基础软件架构
整车控制器(VCU)是纯电动汽车的核心控制部件之一,主要功能是解析驾驶员需求,监视汽车行驶状态,协调控制单元(如 BMS,MCU,EMS,TCU 等)工作,实现整车的上下电、驱动控制、能量回收、附件控制和故障诊断功能。
整车控制器基础软件需要实现开关量输入/输出模块(DI/DO)、模拟量输入模块(ADC)及通信模块(包括SPI 通信及 CAN 通信)的功能,负责整车控制器信号的采集和传递,并通过 CAN 总线传递到其他控制单元或驱动继电器来使执行器工作。整车控制器的系统功能结构,如图 2 所示。
图 2 整车控制器的系统功能结构图
开关量输入模块接收的信号主要有钥匙信号、挡位信号及制动开关信号等;输出信号主要是控制继电器信号,如水泵继电器控制信号等。
模拟量输入模块采集加速踏板和制动踏板开度信号及小蓄电池电压信号。
SPI 通信模块主要负责电路板上不同芯片之间数据的交互,包括功能安全的问答机制;CAN 通信模块负责整车控制器内部通信及与整车其他设备 (主要有车载充电机(OBC)、电机控制器(MCU)、电池管理系统(BMS)及网关(GW)等)的通信。
根据整车控制器对底层的要求,划分基础软件的结构形式及各个功能模块,对芯片的 RAM及 Flash 存储器等进行内存分配,定义各模块的功能要求并规定各模块之间的接口,最终形成基础软件架构,如图3所示。
图 3 整车控制器基础软件架构显示界面
为了便于理解,将基础软件分层内容进行了重新定义,分为驱动层、ECU 抽象层及服务层。
1)驱动层是基础软件的最底层,它主要对硬件提供驱动和诊断,并对接口层提供硬件资源调用服务的支持。该层主要由 I/O 驱动模块、存储驱动模块、通信驱动模块及 MCU 驱动模块组成。
2)ECU 抽象层封装了驱动层以及外围设备的驱动,主要包括 IO 硬件抽象单元及 CAN 接口单元等。
3)服务层包含了操作系统、系统服务(模式管理)、存储器服务、通讯服务及诊断通讯等。它为应用软件和基础软件模块提供基础服务。服务层的实现和运行与驱动层、ECU 抽象层及应用软件息息相关。对各个功能模块的描述,如表 1 所示。
表 1 整车控制器基础软件各功能模块描述
在软件架构定义完成之后,根据 Autosar 软件模块的功能规范,软件需要编写各模块的设计文档,设计文档需要明确该模块的编码手段 (C/C++ 汇编语言),并定义函数功能接口包括的类型参数、原型声明、外部声明及函数返回值等内容。
根据完成的设计文档及编程规范来编写各功能模块的源代码,并进行动静态测试及功能测试。
3. 源代码封装
由于应用软件是基于 MATLAB 中的 Simulink 来搭建完成的,要想使应用层软件与基础软件相集成,首先需要将应用层模型生成 C 代码,然后编写中间层代码,使得应用层的接口与底层接口进行匹配交互。这样在软件开发过程中每一版软件都需要不断维护中间层代码,势必造成很大的工作量,并增加了开发周期,耗费了人力资源。
3.1 封装流程
为了更快更方便地将基础软件与应用层软件相集成,通过使用 MATLAB 中的 Legacy Code Tool 命令行工具、S-function 函数及 m 文件工具,将基础软件各个功能模块的源代码封装成 Simulink 模块,并将封装完成的各个子功能模块集成到模型中,称其为 BSW Library,形成平台化产品。
Legacy Code Tool 可以很方便地将已有的源代码(C/C++ 代码)与模型结合起来。通过将源代码编译生成用于仿真的 S- Funciton,也可以生成一个封装了外部C 代码参数化的 S- function 模块。
通过 S- function 可以定义每个功能模块与应用层的接口。具体封装流程,如图 4 所示。
图 4 源代码封装流程图
1)首先将要封装的源代码(包括头文件等)放到指定目录下;
2)生成一个特定的 Legacy Code Tool 参数集,参数集制定了要包含的 C 代码、头文件,以及生成 S- func-tion 的名称等诸多信息;
3)通过 Legacy Code Tool 的命令行语句,调用第1 步配置好的参数集变量,生成相应的 S- function 源文件;
4) 将生成的 S- function 源文件变为可动态加载的执行文件,即 mexw32 文件;
5) 通过 Legacy Code Tool 的命令行语句将上面生成的 S- function 执行文件封装成 Simulink 模块。封装完成后的 I/O 模块程序界面,如图 5 所示。
图 5 封装完成后的 I/O 模块程序界面
3.2 软件集成
对源代码封装完成后,在开发应用层模型时,可以在 Simulink BSW Library 库中直接调用基础软件的模型,将其与应用层模块进行集成,这样将大大提升集成的效率,并且能够保证集成的质量。
将集成好的模型通过运行编写好的 m 文件并使用MATLAB 的 Embedder Coder 功能来生成源代码(*.c 及*.h)。最后在编译器中运行 makefile 文件,将所有的源代码及芯片中固化的 lib 文件进行编译连接,生成可执行文件及 A2L 文件。
4. 结论
对集成后的可执行文件按照定义的测试项进行测试验证后,测试全部通过。从而得出:基于Autosar架构定义的基础软件架构使得当底层硬件升级时不需要更改整个系统,只需要将部分内容做一定程度的修改,即可重复利用,有利于未来整车系统的更新。通过对开发的基础软件源代码进行封装,变成平台化的产品,可以提高软件集成的可靠度并降低维护成本,进而降低开发费用。

声明:本文内容及图片由BC-AUTO转载至网络。作者:孙涛、宋安、王辉。单位:中汽研汽车工业工程(天津)有限公司、李斯特技术中心(天津)有限公司。

(0)

相关推荐

  • 圈外人看E2E保护

    安全在每个领域都是一个永恒的话题,汽车也不例外,而随着最近几年汽车电动化.智能化和网联化的发展,汽车安全也越来越受到用户及开发人员的重视,安全的要素也是多方面的,例如用户可能关心在使用车机系统时的隐私 ...

  • 一文了解汽车嵌入式AUTOSAR架构|附下载

    AUTOSAR (Automotive Open System Architecture)是一个由丰田.宝马.大众.福特.戴姆勒.通用.博世和 PSA 等汽车巨头在 2003 年成立的的联盟,Auto ...

  • $欧菲光(SZ002456)$ 欧菲光在智能汽车车身控制方面的最新技术,转贴如下

    原文载于欧菲光公众号 跨域融合!欧菲光第五代车身域控蜕变而来 欧菲光 2020-12-30 现在天气越来越冷了,开车的你也许会启动汽车座椅加热功能来驱寒,或者下雨的时候会开启雨刷来清晰视线,这些生活中 ...

  • AUTOSAR 中国用户组的应用实践:车用计算机网络OTA 演示系统的开发

    本文作者 荆喆,博世: 陈柱,耿尚,赫千科技 蔡建兵,艾拉比: 张仕玉,福瑞泰克 周凯伦,东软睿驰: 范志容,东风汽车 01 概述 AUTOSAR 中国用户组成员单位共同开发了车用计算机网络OTA 演 ...

  • AutoSar在自动驾驶开发中应用原理

    Aimee 汽车应用软件开发已成为汽车开发过程中最复杂,最关键的活动.AUTOSAR(汽车开放系统架构)为汽车电子控制单元(ECU)开发了标准化的开放软件体系结构,是主机厂.供应商以及工具和半导体供应 ...

  • 程增木:激光雷达与摄像头信息融合之路

    在[首届焉知汽车年会]上,原现代汽车研发中心(中国)项目经理程增木以"现代汽车集团的多传感器融合之路"为主题,介绍了激光雷达与摄像头信息融合的技术,以及目标跟踪解决方案和卡尔曼滤波 ...

  • 域架构的演进

    汽车电子与软件 184篇原创内容 公众号 域架构的前世今生 如大家所知,"远古时期"的汽车电子电气架构起源于分离式架构,也就是德美日韩四大车企巨头横行七大洲八大洋的时候,为了更高效 ...

  • 基于自适应AUTOSAR的HPC开发

    在焉知汽车科技.是德科技联合组织的"第三届智能汽车电子电气架构研讨会"上,来自车企.科技公司.零部件.测试认证公司的专业人士齐聚一堂,就电子电气架构标准.以太网标准.SOA.TSN ...

  • 170页PPT充分了解AUTOSAR分层软件架构

    AUTOSAR经典平台架构在最高抽象层次上区分了运行在微控制器上的三个软件层:应用程序.运行时环境(RTE)和基础软件(BSW): 应用软件层主要与硬件无关: 软件组件之间的通信和通过RTE访问BSW ...

  • 基于AUTOSAR架构的汽车诊断通信协议桟的开发

    来源:乔美昀 , 韦天文/上汽通用五菱汽车股份有限公司 随着现代汽气车上集成的ECU越来越多,整车网络戒来越复杂.诊断通信作为车载网络中的一个重要功能,开发周期和难度也不断增加.为了提高软件的复用率和 ...