用 Simulink 开发符合 ISO26262 和 AUTOSAR 的应
用软件
图形化建模是架构设计普遍使用的方法。而 Simulink 已经成为许多系统工程师进行架构设
计的利器。不管是在仿真验证阶段还是快速原型阶段,都可以利用 Simulink 非常方便地对
复杂控制模型进行功能的组织、划分、调度等工作。
本文参考 ISO 26262 的要求,同时考虑 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)。本文考虑与 Simulink 建模的相
关性,只讲应用软件组件。如果传感器-执行器软件组件也用 Simulink 建模实现,可以参
照应用软件组件开发方法,在 Simulink 建模层面不强调其差异性。
不管在 ISO 26262 还是 AUTOSAR 中,对于软件单元在层次化结构中的具体定位都没有
明确规定,实践中通常根据具体软件架构以及应用复杂度而定。
在 ISO 26262 架构下,如果某个软件组件功能独立而且实现简单,它本身就可以是一个软
件单元;如果功能复杂,则可以进一步划分为几个软件单元。
在 AUTOSAR 中情况类似:一个应用软件组件可以只包含一个(也可能是几个)运行实体,
而且功能简单,那么这个应用软件组件本身就可以使一个软件单元;如果包含多个运行实
体而且功能较为复杂,每个运行实体可以是软件单元;如果某些运行实体的功能非常复杂,
则可以进一步将一个运行实体划分为几个软件单元来实现。
在 Simulink 中,功能划分体现在:将模型虚拟分组来创建抽象层;根据调度需求将模块
(block)分组;利用模型引用(Model Reference)来控制模型的规模。具体的软件分层
类似于以上提到的 AUTOSAR 中的分层。软件单元通常要求为独立模型,以便于单独开发、
验证以及管理。其他层次根据复杂度而定。
下图给出了一个 ISO 26262、Simulink、AUTOSAR 三者的映射关系示例:
评论0