读保护_混合ASIL系统中不同安全等级模块间的边界保护

2023-05-16

01 功能安全组件的软件开发

针对ISO 26262对功能安全软件研发的要求,AUTOSAR将功能安全需求进行了具体拆分。当前的AUTOSAR规范囊括了诸多功能安全组件软件开发的需求概念。

在AUTOSAR系统设计的架构中, 从系统功能设计到ECU功能实现,每个功能特性都需要逐一抽取并分配到对应ECU(如图1所示),会出现部分功能模块需要较高安全等级的情况

按照汽车安全完整性等级的要求, 即使绝大多数的功能与安全无关,ECU的所有软件也需要根据所要求的最高ASIL等级进行开发。

典型案例是仅仅一个功能模块需要ASIL D等级,但是整个ECU都需要按照ASIL D等级进行开发,这种情况称之为“ASIL提升效应”,会导致额外的研发工作量。

为了避免这种情况, ISO 26262允许不同ASIL等级的软件模块共存,不过需要充分证明这些模块之间不存在不期望的交互。这种系统称之为混合ASIL系统,采用软件分区的方式来实现,同时确保不同等级模块间的“Freedom From Interference,FFI“(免于干扰)。

图1: 混合ASIL系统ECU的功能模块分配

混合ASIL系统的设计中,不同模块之间的交互越少越好

系统通过将功能模块进行拆分的形式进行软件分区,在分区之间做边界保护,防止故障传递导致的相互影响,至少做到检测到故障的存在,并将其通知给ASIL软件模块,这样系统可以就此采取一些安全措施。

这意味着只将功能安全相关的软件模块及边界保护部分开发成较高的安全等级即可,其他部分仍可保持较低安全等级(如QM),软件交互如图2所示。

 图2:ASIL 模块和QM模块共存时的边界保护

ISO 26262 对软件模块之间的交互进行了分析并提出了免于干扰的需求,具体落实到软件的边界保护包括:内存越界保护,运行时序保护,端对端通信保护

02内存越界保护及推荐配置

分区可用于抑制故障以避免模块间的故障传递。

在混合ASIL系统中,不同安全等级软件模块之间的交互决定了模块间的相互影响,内存越界保护是实现软件模块之间边界保护的重要途经,主要使用微控制器的内存保护单元(Memory Protection Unit,MPU)对软件内存区域的访问进行限制

根据功能安全的要求,微控制器执行保护和模块间上下文切换的软件必须具备最高安全等级,即ASIL D等级。在此简要介绍MICROSAR解决方案通过OS为软件分区所提供的Memory Protection常见特性及使用简介。

Memory Protection Unit

在MICROSAR 解决方案中,OS  SC3/SC4(Scalability Classes )具备Memory  Protection 功能特性,可以分别为OS Application 和OS Core  配置其对内存地址及外设的访问权限。

一般来讲,建议将ECU中同一安全等级的软件模块放在一个OS Application中,通过Memory Protection 的设置实现不同安全等级软件模块间的分区,并通过对不同区域设置访问权限来达到限制安全等级较低的软件模块对其他软件模块的访问

Memory Protection 的实现需要MCU具有Memory Protection System,具备MPU。通过MPU的配置,软件模块将具备对不同内存区域的不同访问权限,主要包括RAM/ROM以及外设寄存器的访问权限。

例如,通过限制低安全等级软件模块对高安全等级软件模块的Flash段/RAM段访问权限,可有效防止低安全等级的软件模块故障对高安全等级模块产生级联性故障威胁。

MPU的配置是通过设置多个MPU Region来实现的,每个MPU Region的可配置选项包括:

  • 被保护区域起始/结束地址,
  • 访问权限(读/写/执行),
  • 所属MPU分类,
  • Region Owner,以及有效ID等。

一般来讲MPU分两类:System MPU和Core MPU。

System MPU 主要存在于多核系统中,用于对各个Bus Master 设定内存区域的访问权限。一般System MPU在系统启动时设定好,在软件运行过程中不被重新设置,不会在软件运行过程中动态更改Bus Master 对内存的访问权限。

Core MPU 是核内MPU,简称CMPU,一般每个核都具备一定数量的CMPU,可以为运行在该核上的OS Application/Task/ISR分别设定内存区域及外设寄存器的访问权限,从而实现软件模块分区。访问权限包括读/写/执行权限,可根据内存区域存储内容进行设定。在OS运行过程中,CMPU可以随着Application/Task/ISR的切换而动态变更。

当各OS Application的权限被设定好后,OS会在OS Application切换时对MPU相关寄存器进行重新初始化,并设置成即将切换到的OS Application权限。

当出现访问超出MPU允许权限范围时,MCU Exception会被触发并进入其相应的OS处理函数,用户可以根据情况Shutdown OS 或选择进入安全模式,从而有效阻止软件故障的发生。

推荐MPU配置

在OS SC3/SC4中,OS Application分两类:

具备最高安全等级的OS Application可以设定为Trusted Application

其他不具备Trusted 属性的Application属于Non_trusted Application。

OS和Trusted  Application 运行在Supervisor Mode下

Non_trusted Application 则运行在User Mode下。

推荐为Trusted  Application设定除stack 区域以外的所有地址范围的读/写/执行权限,包括外设地址。

为Non_trusted Application设定属于其私有的Code Flash和RAM段的访问权限,以及共享数据区域的读写权限。在软件运行过程中,OS会占用一个MPU Region来实时监控当前堆栈使用情况。当Task/ISR切换时, OS会重新初始化该MPU Region以进行堆栈溢出的监控。相对于通过堆栈末尾标志的改写情况来判断堆栈溢出的方式,使用MPU进行堆栈溢出保护更加及时。此外,OS 提供一些访问外设寄存器的API,供运行在User Mode下的OS Application调用,并使用OS的Supervisor Mode访问外设寄存器。

常见应用情况为低安全等级的MCAL模块调用OS API访问外设。用户使用时需要对外设地址设定相应的Peripheral Region,其配置选项包括起始/结束地址。

用户可以根据ECU软件各模块安全等级情况,将其合理划分到多个OS Application中,依据MCU资源设定MPU,进而实现不同安全等级的软件模块协同工作,并把故障概率降到允许范围内的需求。

03 运行时序保护

进一步的检测方式可以通过监控ASIL软件模块的运行时序来实现包括代码执行顺序和时间间隔等

实现方式为软件看门狗管理模块配合安全的硬件看门狗进行监控:

当软件检测到任何不符合预期的运行时序,都将系统切换到安全状态,例如Fail Safe模式。这不能防止错误的发生,但是可以检测到错误并阻止其造成进一步的人身安全伤害。

运行时序保护采用3种形式的监控来实现:

    Alive Supervision以心跳形式监控程序执行情况。例如监控周期处理函数是否按照期望周期运行,可以设置一个Check Point(CP),在周期函数的某个位置触发该Check Point以通知看门狗管理模块该函数已执行,同时适当配置监控时间参数以做到一定程度的监控。即在一段时间内周期性的函数运行次数的监控。

    Deadline Supervision监控程序中两点之间的运行时间间隔。设置两个Check Point并将其分别放在需要监控的程序位置,看门狗管理模块会根据二者分别到达的时间测量得到两点之间的执行时间,与配置的时间参数进行对比查看是否在期望值范围内,从而起到监控作用。

    Program Flow 监控程序执行顺序。设置多个Check Point并分别插入不同的代码位置,看门狗管理模块通过各Check Point到达的顺序监控程序的执行顺序。

看门狗管理模块建立监控单元Supervisor Entity(SE),并通过监控其状态来判断程序运行情况,每个SE通过观测Check Point的到达情况判断软件执行情况。如果出现异常情况则在一定的反应时间内做出处理,将系统调整进入Fail Safe状态。开发人员通过设计一定的Fail Safe模式预防故障造成进一步的安全问题。

04端对端通信保护

ISO26262中列举了信息交互中的相关错误格式,AUTOSAR规范则定义了通过端对端保护来检测到这些错误的算法。

与程序运行时序监控一样,最终目的都是检测出故障,并在故障导致进一步安全问题之前控制局面,将系统控制在安全状态下。

端对端通信保护主要使用序列号和校验和对数据进行保护,通过对二者的检测判断是否有数据丢失、错乱、重复等问题出现。此外,高安全等级的端对端保护模块(End to End,简称E2E)需要配合安全的RTE(Runtime Environment)模块进行使用。

05 ASIL D BSW 的优势

前文描述的混合ASIL系统所使用基于MPU的内存越界保护可以降低软件模块间的干扰,是非常强大的保护机制。但是不同安全等级软件模块之间的交互会导致系统重新初始化MPU硬件寄存器这种交互越多,系统在上下文切换上消耗的运行时间就越高,从而严重影响系统性能。

针对此问题的解决方案是完全采用ASIL D等级的BSW软件模块,同时开发高安全等级的应用软件,这样各个模块之间的交互就可以直接进行,不需要进行不同软件分区的MPU处理。目前MICROSAR解决方案大部分软件模块已经达到ASIL D等级,如图3所示。

 图3:MICROSAR解决方案各模块安全等级

06 总结

目前,根据AUTOSAR和ISO 26262,ASIL D等级的软件开发方法已经比较明确,规范内容覆盖了混合ASIL系统以及ASIL D BSW系统。用户在设计ECU软件时,不必假定每个BSW都有功能安全需求,可以根据实际情况进行设计,在确保功能安全需求实现的情况下,更好地提高系统性能。
————————————————
版权声明:本文为CSDN博主「hpsprger」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_35160923/article/details/112632575

一个系统中有8个模块,模块与模块之间会有很多相互调用的情况,如果其中3个模块是ASLB的,其他都是QM的如何保证QM的模块不影响ASLB的功能安全等级呢?

不同ASIL的Element的共存原则,需要保证其独立性和免干扰性。

主要包含“时间”和“空间”两个维度

时间:高ASIL等级拥有绝对的时间片优先权,不会被低ASIL等级模块占用资源

空间:高ASIL等级可访问低ASIL等级资源,反向禁止。

通常通过MPU(MMU),实现权限管理以上是运行于同一个Core的处理方式,可以参考Autosar,当然如果能做到物理隔离,不同ASIL等级运行于不同的硬件资源,那是最根本的解决方式。

比如多核,或者运用Hypervisor等另外,从调用(业务部署)的角度说。QM调用ASIL B,以实现QM业务肯定没问题。

ASIL B调用QM,说明这个ASIL B的功能是被降级到QM的。

从模块开发角度,做好FFI即可。

功能安全等级混用要遵循FFI免于干扰原则,即避免低安全等级的模块对高安全等级的产生破坏。

通常高安全等级的模块去调用低安全等级的,如果正常返回ok,如果返回一个错误结果,高安全等级需要能够通过边界检查等方式,发现错误,并能处理这样的返回结果。

低安全等级的模块可以调用高安全等级的模块,但是一般只能读,不能写和修改。这样可以避免了对高安全等级造成破坏或污染。

如果系统中只有一个ASLD的模块,其余所有模块都是QM的。那么开发难度会不会由于一个ASLD的存在,变得非常大?

“通常高安全等级的模块去调用低安全等级的,如果正常返回ok”?

注意串联失效:

这要看具体这个调用的业务部署的。我举个例子,BSW(B)调用MCAL(QM),以实现数据读取,如果数据读取业务的目标ASIL等级是B,那肯定不符合要求,因为MCAL是QM的。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读保护_混合ASIL系统中不同安全等级模块间的边界保护 的相关文章

  • Win10常用快捷键

  • 推荐3篇 如何建立自己的知识体系

    如何构建自己的知识体系 xff1f 看这一篇就够了 xff01 如何把学到的知识系统化 xff1f 怎么才能把知识系统化的学透彻呢 xff1f 这3步可以帮助你 什么是知识体系 xff1f 为什么要搭建知识体系 xff1f 如何搭建知识体系
  • 《富有的习惯》

    目录 关于作者 关于本书 核心内容 前言 第一部分 第二部分 习惯觉察表 结语 富人和穷人的区别是什么 xff1f 富人永远更谨慎 关于作者 本书作者是托马斯 科里 xff0c 他是一位美国著名的会计师和注册理财规划师 xff0c 开办了一
  • 演讲培训——荣耀时刻

    如何用惊艳的开场白引爆项目路演的全场 xff1f 如何用精准而生动的语言表达有力的商务主题 xff1f 如何层层递进环环相扣地展开内容 xff1f 如何打造激励人心激发行动的演讲结尾 xff1f 如何让观点有内在 xff0c 让语言有逻辑
  • QNX的调度算法

    作为一个硬实时操作系统 xff0c QNX是一个基于优先级抢占的系统 这也导致其基本调度算法相对比较简单 因为不需要像别的通用操作系统考虑一些复杂的 公平性 xff0c 只需要保证 优先级最高的线程最优先得到 CPU 就可以了 基本调度算法
  • 葡萄酒品酒的四个步骤

    第一步 xff1a 观色 将酒杯举到白色背景之上 xff0c 然后倾斜约45 xff0c 仔细观察酒液中心的颜色 边缘色泽 澄清度 通常而言 xff0c 红葡萄酒的越浅 xff0c 年份越老 xff1b 白葡萄酒的颜色越浅 xff0c 年份
  • 高通骁龙 8155 到底有什么魔力?

    高通骁龙8155采用安卓系统 xff0c 兼容性更好 xff0c APP的数量也就相当多 xff0c 硬件方面 xff0c 这颗芯片最高支持3个4K屏或4个2K屏 xff0c 4个麦克风6颗摄像头 xff0c 还有WiFi6 5G 蓝牙5
  • 当你遇到Bug该怎么办?

    一 问题复现 稳定复现问题才能正确的对问题进行定位 解决以及验证 一般来说 xff0c 越容易复现的问题越容易解决 1 1 模拟复现条件 有的问题存在于特定的条件下 xff0c 只需要模拟出现问题的条件即可复现 对于依赖外部输入的条件 xf
  • 增加远程访问用户

    http www zhuangjiba com hardware 34023 html http www zhuangjiba com hardware 34023 html 打开管理员权限 xff1a
  • 基于Java的“多功能五子棋”游戏的设计和实现

    源码地址 xff1a http download csdn net detail clx55555 9718406 下载或转载使用请声明原著 xff1a 但求心安 基于 Java的 多功能五子棋 游戏的设计和实现 引言 随着经济社会的迅速发
  • shell 脚本中的注释详解

    单行注释 xff1a 单行注释就比较简单了 xff0c 直接在行最前端加上符号 即可 具体用法如下所示 xff1a this is comment test echo 34 this is comment test 34 运行结果 xff1
  • 《演讲的本质》:如何做好一次公开演讲?

    关于本书 演讲的本质 是一本教你通过演讲最大化自己的影响力 建立信任关系的工具书 xff0c 探讨演讲的本质和价值 本书从视觉 听觉 语言三个角度来分析如何最大程度地打动听众 xff0c 并提供了行之有效的练习方法 核心内容 演讲的本质与价
  • ubuntu系统镜像下载源

    ubuntu 14 04 和16 04 快速下载 由于官网服务器在国外 xff0c 下载速度奇慢 xff0c 所以我们可以利用阿里云镜像下载ubuntu ubuntu 14 04 xff1a ubuntu releases 14 04安装包
  • 每天最重要的2小时

    关于作者 乔西 戴维斯 xff0c 他是哥伦比亚大学的心理学博士 xff0c 主要研究神经学领域 关于本书 从身体效能的角度 xff0c 让我们在面对一件事情时 xff0c 怎么才能把身体调整到一种巅峰状态 xff0c 进而对时间进行高效的
  • 【无标题】

    63张图 xff0c 一步一步带你弄清 Linux 虚拟内存管理 xff0c 厉害 内存管理子系统可谓是 Linux 内核众多子系统中最为复杂最为庞大的一个 xff0c 其中包含了众多繁杂的概念和原理 xff0c 通过内存管理这条主线我们把
  • 面试时不懂得自我介绍的人,最后都被PASS掉了

    做硬件维护的阿润最近后悔得直跳脚 在被公司赔偿清退后 xff0c 他直接开启了HIGH玩模式 xff0c 原计划先玩2个月再做面试准备 xff0c 结果冷不丁接到心仪公司的面试邀约 因为时间紧 邀约急 xff0c 在没做好充分准备的前提下
  • 开发板和电脑可以ping通但是ssh连接不上

    一 问题描述 某集群数据节点服务器频繁无法连接 xff0c 服务器间出现可ping通但ssh无法连接的情况 xff0c 使用带外地址登录后远程控制也无法显示正常界面 xff0c 重启后会短暂恢复 二 排查问题 重启服务器后检查服务器SSH状
  • 你对Linux下的实时性应该多点了解

    本文讲述一些有利于提高xenomai实时性的配置建议 xff0c 部分针对X86架构 xff0c 但它们的底层原理相通 xff0c 同样适用于其他CPU架构和系统 xff0c 希望对你有用 希望能够帮助大家 本文来自于微信公众号嵌入式Lin
  • 怎么保证ECU的“实时性”

    在最近一起有公开报道的辅助驾驶相关事故中 xff0c 由于AEB xff08 自动紧急制动系统 xff09 功能被怀疑没有起作用 xff0c 又有一家车企的高级辅助驾驶功能遭到质疑 其实 xff0c 目前大多数车辆中AEB功能的生效车速区间
  • 重磅成果丨ASAM SOVD 1.0.0正式发布

    重磅成果丨ASAM SOVD 1 0 0正式发布 测试行业动态 汽车测试网 编者寄语 xff1a 2022年6月底 xff0c ASAM SOVD 1 0 0版本正式发布 为了应对智能网联汽车时代井喷的软件诊断需求 xff0c SOVD如何

随机推荐

  • 2016-我在路上

    2016匆匆而过 xff0c 这一年做了很多 xff0c 也错过了很多 有些事情自己感觉很值得 xff0c 有些事情感觉很愧疚 xff0c 一年的酸甜苦辣尽在其中 寒假 xff0c 我加入的acm实验室 xff0c 有个集训 xff0c 但
  • 《复盘高手》

    今天为你介绍的是 复盘高手 xff0c 副标题是 自我认识与自我精进的底层逻辑 复盘 本是围棋的一个术语 xff0c 说的是下完一盘棋后 xff0c 棋手在棋盘上把下棋的过程复现一遍 xff0c 看看哪些地方下得好 xff0c 哪些地方不好
  • Linux 进程间通信(六)共享内存

    可以说 xff0c 共享内存是一种最为高效的进程间通信方式 xff0c 因为进程可以直接读写内存 xff0c 不需要任何数据的复制 为了在多个进程间交换信息 xff0c 内核专门留出了一块内存区 xff0c 这段内存区可以由需要访问的进程将
  • 对ASPICE的理解

    Aspice xff08 Automotive SPICE xff09 中文翻译为汽车软件过程改进及能力评定 是为保证软件质量的规范 xff0c 要求供应商按照Automotive SPICE的要求进行产品的设计与开发 是汽车行业中常用于质
  • 普通人如何改变自己的命运?

    Morty 普通人改变命运的秘密 xff01 我的观点可能会颠覆你的认知 哔哩哔哩 bilibili 非常感谢UP xff0c 你的每个视频我都看了 xff0c 给我启示最大的是 为什么你总是那么穷 xff0c 这些年一直走背运 xff0c
  • 指令流水线

    为提高处理器执行指令的效率 xff0c 把一条指令的操作分成多个细小的步骤 xff0c 每个步骤由专门的电路完成的方式 指令流水线是为提高处理器执行指令的效率 xff0c 把一条指令的操作分成多个细小的步骤 xff0c 每个步骤由专门的电路
  • 何为CPU的亲和性

    CPU的亲和性 xff0c 进程要在某个给定的 CPU 上尽量长时间地运行而不被迁移到其他处理器的倾向性 xff0c 进程迁移的频率小就意味着产生的负载小 亲和性一词是从affinity翻译来的 xff0c 实际可以称为CPU绑定 在多核运
  • Docker 快速入门

    x1f389 Docker 简介和安装 Docker 快速入门 https blog csdn net weixin 45043334 category 11863858 html https blog csdn net weixin 45
  • 如何提高Linux的实时性

    QNX是黑莓旗下的一款微内核实时操作系统 xff0c 是全球第一款通过ISO 26262 ASIL levelD安全认证的车载操作系统 xff0c QNX是一个分布式 嵌入式 可规模扩展的实时操作系统 它遵循POSIX 1 程序接口 和PO
  • 自旋锁和互斥锁的区别

    面试官 xff1a 你说说互斥锁 自旋锁 读写锁 悲观锁 乐观锁的应用场景 百度安全验证 自旋锁和互斥锁的区别 一缕阳光a的博客 CSDN博客 自旋锁和互斥锁的区别 POSIX threads 简称Pthreads 是在多核平台上进行并行编
  • CPU超线程技术到底有什么用?

    什么是超线程技术 前几天的超线程文章引起了不少讨论 xff0c 有些四驱两驱之类留言就不点出来了 今天咱们趁热打铁来聊下CPU超线程的实际用途 超线程的英文名是Hyper Threading Technology xff0c 简称HT 超线
  • 蓝桥杯 生日蜡烛

    某君从某年开始每年都举办一次生日party xff0c 并且每次都要吹熄与年龄相同根数的蜡烛 现在算起来 xff0c 他一共吹熄了236根蜡烛 请问 xff0c 他从多少岁开始过生日party的 xff1f 请填写他开始过生日party的年
  • QNX实时操作系统

    一个实时操作系统 xff08 RTOS xff09 必须是可靠的 xff1b 它必须是快速和响应的 xff0c 管理有限的资源和安排任务 xff0c 使它们按时完成 xff0c 并确保功能是隔离的 xff0c 不受其他功能的干扰 在本节中
  • Makefile教程(绝对经典)

    Makefile教程 xff08 绝对经典 xff0c 所有问题看这一篇足够了 xff09 GUYUEZHICHENG的博客 CSDN博客 makefile 该篇文章为转载 xff0c 是对原作者系列文章的总汇加上标注 支持原创 xff0c
  • 王道考研操作系统笔记

    https mp weixin qq com mp appmsgalbum biz 61 MzI0OTI2MjY2MQ 61 61 amp action 61 getalbum amp album id 61 227777034051051
  • 《管理的常识》:怎么做一个优秀的管理者?

    关于作者 艾伦 默里是 华尔街日报 的副总编 xff0c 华尔街日报 网和市场观察网的执行主编 xff0c 同时也是三次普利策新闻奖的得主 默里先生自己的新闻作品也获得过多次大奖 xff1a 关于亚洲的报道让他两次摘取了海外新闻出版俱乐部奖
  • VLAN 基础知识

    为什么需要VLAN 1 什么是VLAN VLAN Virtual LAN xff0c 翻译成中文是 虚拟局域网 LAN可以是由少数几台家用计算机构成的网络 xff0c 也可以是数以百计的计算机构成的企业网络 VLAN所指的LAN特指使用路由
  • 目标设定的SMART原则

    目标设定的SMART原则来源于管理大师彼得 德鲁克的 管理的实践 xff0c 有五个基本的原则 xff1a 1 目标必须是具体的 xff08 Specific xff09 2 目标必须是可以衡量的 xff08 Measurable xff0
  • 软件安全开发 - 流程规范

    写一篇软件安全开发流程分享给大家 xff0c 帮助从事软件开发 xff0c 测试 xff0c 管理的人员 xff0c 规范操作 xff0c 重视软件工程安全 现今社会存在各种网络安全事件 xff0c 比如勒索病毒导致许多网络系统瘫痪 xff
  • 读保护_混合ASIL系统中不同安全等级模块间的边界保护

    01 功能安全组件的软件开发 针对ISO 26262对功能安全软件研发的要求 xff0c AUTOSAR将功能安全需求进行了具体拆分 当前的AUTOSAR规范囊括了诸多功能安全组件软件开发的需求概念 在AUTOSAR系统设计的架构中 xff