使用simulink开发满足autosar标准的应用软件

使用simulink开发满足autosar标准的应用软件

非常高兴能够在这里跟大家见面,跟大家交流如何使用simulink来搭建我们的车用控制器软件,我的演讲主要包括这些部分

首先是东风公司在autosar方面的步伐,以及东风如何利用autosar来搭建自己的控制器软件,以及如何进行测试,最后怎么生成代码和集成的一个介绍

东风公司从2006年开始研究autosar,在2011年开始利用autosar开发自主ecu,目前已经在发动机、底盘、车身、新能源四个领域的多款自主ecu的开发中采用autosar架构,预计2015年首款采用autosar架构的自主ecu实现量产。在今年(2014)东风公司已经申请成为AUTOSAR会员。

目前东风公司采用这么一个应用软件开发管理平台,首先我们通过SystemWeaver做一个软件需求管理,SystemWeaver是一个专门做软件需求管理的工具,它本身也有一个对需求版本的控制,除了需求管理之外,还能利用这个工具开发我们的软件接口,包括软件接口一些变量属性的定义,等会我会进一步介绍SystemWeaver从需求管理到软件集成的整个开发过程.我们另外一款工具呢是Readmine,他的主要功能是做这个任务管理,我们有一个项目,如何把他分解到每个人,以及如何去做计划,如何管理每一个任务,我们都是在Redmine上进行的,第三款软件是Mercurial,这款软件是用来软件版本管理。

然后呢,我们跟大家介绍一下软件的开发过程,首先我们基于systemweaver进行需求分析和接口的设计,然后当我们完成这些工作之后呢,需要做一个评审,评审结果呢就是我们会做一个接口的发放,接口发放之后我们会做一个模型的搭建、模型检查、单元测试、还有代码生成。当我们完成这些工作以后,就相当于我们有一个初始的发放,这个当然也是需要评审的,这一阶段的工作都是基于simulink完成的。当我们昨晚初始发放之后,我们会做一些测试,以及一些文档的编制,当我们测试验证完成之后,我们才能称之为最终的发放

我们介绍一下需求设计和接口设计, 这是systemweaver界面,我们称之为通用软件组件库, 就是说这里买呢包括几百个模块,包括发动机的,底盘的、新能源的、车身的等等。所有的软件把他分解为各个软件功能模块。我们的设计人员分别开发这些模块,并把他提交到组件库里面,在右上角是我们的发动机EMS软件组件,就是我们开发出通用软件组件库之后,我们可以通过systemweaver形成发动机所需的软件组件模块,右下角以一个节气门控制为例,在最左边,定义了他的输入输出接口,右边是我们的版本信息,以及一些子模块的描述,就是我们的需求。

这一页描述了从systemweaver到模型搭建,我们通过systemweaver完成需求与接口设计之后,我们可以导出一个xml文件,这个文件是符合我们autosar接口标准的,再用我们simulink把这个xml文件导入进来,他会生成一个接口的模型,接口模型包含了我们在systemweaver定义的输入输出接口,以及他这些输入输出接口的属性,接下来我们通过simulink的library以及我们自己定义的library来搭建我们的模型,

这一页就是xml文件导入生成的接口模型,他的一个样子,左上角是最上层我们所看到的样子,将这个模型展开之后就是我们右上角的,它包含一个时钟的调度,以及功能的模块,以及输入输出,当我们把这个功能模块展开之后,就是我们的右下角,可以看到接口有两种类型,一种是simulink常见的椭圆接口,另一种是需要从基础软件获得的变量信息,这个在将来的代码生成会生成特定的函数。

模型大家搭建完成之后,我们要对模型进行检查,模型检查是非常重要的,因为他会减少我们后期对软件的测试验证工作,我们之前提到过xml文件,这个文件定义了我们的信号名、信号类型,那么我们如何检查我们模型的接口和需求的接口一致呢,通过xml文件和我们的模型文件做一个比较检查,当我们sysytemweaver修改需求之后,我们可以导出一个新的xml文件,我们做一个接口的检查。我们为了保证我们生成的代码与模型是一致的,我们要把我们的模型配置统一化,不能这个模块是这样一个configuration,另外一个是另一个configuration,需要对模块的配置参数做一个检查,每个模块都有他自己的属性,这些属性也需要进行统一,比如说有些溢出保护,有些继承,等等这些信息我们需要对他进行一个强制性的检查,否则生成的代码,数据类型,函数等等跟我们期望的不一致,信号检查主要是我们的信号名和我们workspace中的定义不一致。我们需要检查信号的属性,做好信号管理工作,否则变量名在代码里面可能不会存在,最终会给我们的标定带来一些问题,因为没有这个信号名我们无法观测相应变量的信息,也就无法进行标定。

这是我们的一个开发环境,在matlab上做的一个二次开发,主要是做了一个脚本,这个脚本主要是用来做模型的检查,可以做一个单独的检查,也可以把所有的检查做一下,右边呢就是我们在做检查时反馈的信息,这里都是通过的,如果跟我们期望的检查不一致,会failed,我们需要具体看一下是哪一块不符合标准。

下面这个是我们的单元测试,比较重要,因为我们刚才都是模型的参数啊,变量,数据类型,接口的检查,真正的功能检查我们主要放在这一部分

单元测试呢,我们用一个execl表来做我们的输入输出,以及我们期望值的范围,当然我们还需要完成我们这个脚本,用来控制导入我们输入输出,以及判断我们的输出是否在输出范围,如果在这个范围内,他会给一个pass的结果,否则的话会给一个failed的结果。

我们的模型在环呢,就是说我们的发动机模型,如何去做一个仿真测试,左半边呢是我们的控制算法模型,右边呢是我们的车辆模型,展开呢,他会包括我们的发动机、变速箱等等模型

最后一页呢,我介绍一下我们的代码生成与集成,首先在systemweaver里面我们定义好了我们的软件组件,我们发动机的项目所包括的软件也在这里定义好了,每个软件组件的版本不一样,那么我们最终要发布一个什么样的版本呢?那么我们可以在这一块做一个定义,就是说某一个模块已经开发到22版本了,而我们要用他的21版本,我们还是可以导出这样一个xml文件,最终会有一个脚本,会根据xml文件对每个模块做代码生成,包括生成的代码以及a2l文件,当然还有arxml文件,完了之后。将生成的信息导入到BSW里面,然后做相应的配置,最后经过编译链接之后生成s19文件以及a2l文件。

东风已转向基于AauTOSAR架构的控制器软件开发,正在逐步形成完善开发体系与流程

应用软件组件开发的需求,设计实现、测试与集成过程,采用符合AUTOSAR标准的工具与方法

Matlab/Simulink是有效的符合AUTOSAR接口标准的汽车应用软件开发工具

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值