[Simulink] 用 Simulink 开发符合 ISO26262 和 AUTOSAR 的应用软件

文章目录

    • 应用层软件功能划分
      • 软件单元 Software Unit
      • AUTOSAR运行实体Runnable
      • 软件组件 software component
      • 软件组件SWC的层次化结构
    • 应用软件调度
      • 运行实体(Runnable)内部软件单元(SU)的执行顺序
      • 运行实体的调度(Scheduling of Runnables)
    • 应用层软件接口

转载自MATLAB微信公众号文章,链接如下:https://mp.weixin.qq.com/s/b2-19RnNFzYc12dyEXDJ_g## ,仅做个人学习笔记记录,如有侵权,立即删除。

作者:李智慧

参考ISO26262的要求,同时考虑AUTOSAR代码生成的兼容性,对Simulink实现软件架构设计给出了一些建议。

应用层软件功能划分

ISO 26262-6 要求创建层次化结构的软件组件(Software Components — SWC)。

软件组件的要求:

  • 规模适中
  • 高内聚
  • 低耦合

软件组件加上ASIL(Automotive Safety Integration Level,汽车安全完整性等级)的要求就决定了开发及验证的方法。

软件架构中的最小实体(Entity)就是软件单元(Software Unit)

在 AUTOSAR(Automotive Open System Architecture)中,应用层软件由应用软件组件组合(Compositions of Application Software Components)组成。

一个应用软件组件(Application Software Component — ASWC)要符合特定的模板,而且通过虚拟功能总线(Virtual Functional Bus — VFB。)与其他应用组件进行通信(在控制器内部,VBF 的具体实现是运行时环境 Run-time Environment — RTE)。

Runnable(或可译为运行实体)是应用软件组件提供的、可以独立调度的最小代码片段。

在AUTOSAR文档中,软件组件(通常是指Atomic Software Component)可以细分为应用软件组件(Application Software Component)和传感器-执行器软件组件(Sensor-Actuator Software Component)。这里只针对ASWC进行说明。

在Simulink中,功能的划分体现在:

  • 将模型虚拟分组来创建抽象层
  • 根据调度需求将模块分组
  • 利用模型引用来控制模型的规模

具体的软件分层类似于AUTOSAR中的分层,软件单元通常要求为独立模型,一遍于单独开发、验证与管理。

ISO 26262、Simulink、AUTOSAR 三者的映射关系示例:

[Simulink] 用 Simulink 开发符合 ISO26262 和 AUTOSAR 的应用软件
在顶层模型这一层,Simulink 模块可以显示软件单元的模型信息以及数据流和模块执行顺序。

使用模型引用的方式测试软件单元
通过顶层模型(Top Model。也可称之为测试框架 – Test Harness)引用软件单元模型的方式来进行单元测试(Unit Test)。

单元测试的基本要求之一是测试人员不可以修改被测单元(不管是模型还是代码)。

所以要建立测试框架,输入激励信号以及输出的观测都要在测试框架环境下完成。
对于模型,可以采用模型引用(Model Reference)实现被测模型与测试环境的独立。

[Simulink] 用 Simulink 开发符合 ISO26262 和 AUTOSAR 的应用软件

此外,Simulink Design Verifier 还可以帮助工程师生成一些特定目的的测试数据来提高测试覆盖度。

AUTOSAR运行实体Runnable

使用函数调用子系统(Function-call Subsystem)描述运行实体
AUTOSAR 当中,一个运行实体(Runnable)是指一个原子软件组件(AUTOSAR Atomic Software Component)提供的最小代码段,同时也是一个可以被单独调度的任务。

函数调用子系统提供了调度控制机制,可以很容易地实现模型各个部分周期性或非周期性的调度控制

[Simulink] 用 Simulink 开发符合 ISO26262 和 AUTOSAR 的应用软件

软件组件 software component

对于应用层软件来说,ISO 26262当中的软件组件SWC对应于AUTOSAR中的应用软件组件ASWC

采用独立模型来描述AUTOSAR应用软件组件ASWC
在一个Simulink模型里将一个软件组件对应的所有函数调用子系统封装起来,在用Embedded Coder生成代码时,这些函数调用子系统会自动映射到相应的运行实体Runnable

要对应用模型架构与AUTOSAR的兼容性进行验证

在架构设计的早期,工程师可以只创建运行实体(Runnable)模型框架,其中的软件单元(Software Unit)为空模型(只有顶层输入及输出,内部没有逻辑及连接,如下图所示)。

[Simulink] 用 Simulink 开发符合 ISO26262 和 AUTOSAR 的应用软件
上图为省略了调度部分的系统级模型

在组合层次采用模型引用来集成软件组件:

[Simulink] 用 Simulink 开发符合 ISO26262 和 AUTOSAR 的应用软件
stateflow实现集中化调度示例

在 Stateflow 中,时间逻辑(Temporal Logic)可以用来产生周期性触发事件,数据输入端的转移条件可以用来产生非周期触发事件。每个并行状态右上角的数字显示了该状态的执行次序。每个状态里的事件列表定义了触发的先后顺序。

应用层通常有许多触发事件。为了提高效率,可以用 MATLAB 脚本自动创建这样的调度器,并且自动连接到相应的函数调用子系统。

软件集成人员在 AUTOSAR RTE 中进行运行实体(Runnable)的运行任务分配时,可以参照用 Stateflow 描述的任务调度。反过来,也可以参照 RTE 中的任务分配调度,设计 Stateflow 调度器。

应用层软件接口

ISO 26262 要求完整定义软件单元(SU)及软件组件(SWC)之间的接口。

ISO 26262 建模标准检查(Model Advisor)可以验证软件单元建模的合规性。通过运行模型更新检查功能,Simulink 引擎自动检查接口连接及数据定义的正确性。Embedded Coder(包括 AUTOSAR 支持包)可以用来确认应用软件组件(ASWC)接口定义是否完整以及是否符合 AUTOSAR 的要求。

Simulink 软件提供的工具链(主要用到算法开发类、测试验证类、代码生成类等工具箱)以及开发方法可以很好地满足符合 ISO 26262 及 AUTOSAR 要求的应用软件开发。

参考文献:
【1】与AUTOSAR兼容的Matlab/Simulink自动代码生成技术[D]

来源:Sprinkle_WPD

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年2月4日
下一篇 2019年2月4日

相关推荐