汽车功能安全 -- Part6(1)

目录

1.General RS Spec

2.软件功能安全需求Spec

2.1 输入

2.2 需求制定

2.3 成果物

3.软件架构设计

3.1 输入

3.2 软件架构设计时的要求

3.3 成果物



      Part6 主要描述了汽车应用产品在软件开发层面上的需求和流程,旨在保证软件开发过程的一致性和规范性,主要包括如下内容

-- 汽车产品在软件层面的通用需求

-- 软件功能安全的spec(6-6)

-- 软件架构设计(6-7)

-- 软件单元设计和实现(6-8)

-- 软件单元验证(6-9)

-- 软件集成和验证(6-10)

-- 嵌入式软件测试(6-11)

        下面我们分两篇文章讲述上述内容,今天将6-6~~6-7


        将上述内容用一个大家很熟悉的图来看,如下:

1.General RS Spec

        V模型,贯穿整个汽车产品的生命周期,那么对于软件层级的功能安全,通用的需求如下:

  1. 适合嵌入式软件开发的方法论、guidelines、编程语言、工具等;
  2. 确保软件开发过程中整个生命周期的一致性,如有必要还需要相关的成果产出;
  3. 在考虑信息交互的一致性时,还需要关注系统、硬件层级的兼容性。

 考虑编程语言、建模等,可参考如下表格:

 需要输出的产物有:配置数据Spec、标定数据Spec、配置数据、标定数据、验证Spec、验证报告、软件价格设计Spec、软件开发环境文档

2.软件功能安全需求Spec

        该Spec(对应6-6)目标如下:

  1. 从技术安全概念和系统架构设计规范中衍生出软件安全需求,对其进行详细说明;
  2. 定义软件所需的安全相关功能,并提出实现计划
  3. 补充软硬接口的需求
  4. 验证软件安全需求和软硬件接口需求是否适合软件开发,并与技术安全理念和系统架构设计规范相一致

2.1 输入

        在做软件功能安全spec之前,需要如下输入:

  1. 技术功能安全需求Spec
  2. 功能安全概念
  3. 系统架构设计
  4. HSI(Hardware-software interface)
  5. 软件开发环境文档说明
  6. 可选--硬件设计文档
  7. 可选-- 非功能安全的功能Spec

2.2 需求制定

        软件安全要求的制定应考虑到软件所需的安全相关功能和属性,这些功能的失效会导致违反分配给软件的技术安全要求。

        具体来讲,软件需要考虑什么样安全相关的功能:

  • 为一些标准函数提供可靠安全的执行环境,例如临界区的开关
  • 使系统能够保持在某个安全等级或者下降一级,具体而言:在不同驾驶环境下提供不同的车速限制;又例如ARM核中不同异常等级的切换;
  • 与安全相关的硬件的检测功能:如英飞凌提出的各种硬件功能安全机制,统一由SMU来管理
  • 在产品生产、运行、开发等阶段提供在线或者离线的测试手段;例如LBIST、SRAM的测试
  • 在开发阶段允许软件修改等功能,需要权限的认证
  • 在相关性能或者时间严控操作,例如中断的实现,OEM要求的系统上电时间。
  • 重大错误出现时的软件鲁棒性,例如冗余备份机制

2.3 成果物

  1. 软件功能安全需求Spec
  2. 优化后的HSI
  3. 软件验证报告(考虑V模型的双向追溯)

3.软件架构设计

        该章节主要目标

  1. 设计出满足软件功能安全需求和其他软件需求的软件架构
  2. 验证软件架构设计符合所需ASIL的软件安全要求
  3. 支持软件验证和实现

3.1 输入

        要完成软件架构设计,需要如下输入

  • HSI
  • 软件开发环境
  • 软件功能安全需求Spec
  • 功能安全概念--包含系统架构描述、非功能安全的软件Spec

3.2 软件架构设计时的要求

        为了避免在软件架构结构设计和后续开发活动中出现系统性错误,软件架构结构设计应关注如下要点:

        除此之外:可理解性、一致性、可验证下、模块化、抽象化、可封装、可维护性也需要进行考虑。

        根据表3,我们来分析一个好的架构需要满足什么东西:

        首先是软件层次结构,例如AUTOSAR提出的分层:应用层、服务层、抽象层;

        软件模块的大小和复杂度,例如我们在做bootloader时通常会对其编译出的大小有限制。

        软件接口的大小限制,例如不同公司对于一个函数的最大行数的限制,功能的限制

        高内聚、低耦合,功能内聚、但是不同模块耦合度要尽可能低,这样才能保证模块间相互影响最低。

        共享资源管理,例如HSM 和主核之间的共享buffer使用,不同核之间的资源占用问题。

        这些都要在设计初期考虑进去,这要求一个架构师具备很强的功底和丰富的经验。


        除上述要求外,软件架构在设计时需细化到软件单元这层级(单元内部实现忽略),例如

静态设计要考虑的因素:

  •  软件层次结构
  • 数据类型和特性
  • 软件组件的对外接口
  • 嵌入式软件的对外接口
  • 全局变量
  • 架构和外部依赖的限制

动态设计需要考虑的因素:

  • 事件和行为的功能链路
  • 数据处理的逻辑时序
  • 控制流
  • 数据流等

在软件架构层级分析功能安全,需要考虑错误探测和处理的功能安全机制,这些机制包括:

  • 输入输出参数的范围检查
  • 数据真实性检查
  • 数据错误检测
  • 程序流的监控机制;AUTOSAR的WdgM的logic supervision
  • 访问权限的监控

对于软件架构的验证,应参考如下要点:

3.3 成果物

  • 软件架构Spec
  • 功能安全静态分析报告
  • 失效分析报告
  • 软件验证报告

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CyberSecurity_zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值