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

bdf9bd33c0418578b1b055d17461aded.png

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“(免于干扰)。

b2bc02b25093c4cef3ef2f678a69a8ab.png

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

混合ASIL系统的设计中,不同模块之间的交互越少越好。系统通过将功能模块进行拆分的形式进行软件分区,在分区之间做边界保护,防止故障传递导致的相互影响,至少做到检测到故障的存在,并将其通知给ASIL软件模块,这样系统可以就此采取一些安全措施。这意味着只将功能安全相关的软件模块及边界保护部分开发成较高的安全等级即可,其他部分仍可保持较低安全等级(如QM),软件交互如图2所示。

86028c4830f0836320d4b89739a48a99.png

图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),在周期函数的某个位置触发该CP以通知看门狗管理模块该函数已执行,同时适当配置监控时间参数以做到一定程度的监控。

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

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

看门狗管理模块建立监控单元Supervisor Entity(SE),并通过监控其状态来判断程序运行情况,每个SE通过观测CP的到达情况判断软件执行情况。如果出现异常情况则在一定的反应时间内做出处理,将系统调整进入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所示。

1142cc08e09e81a487ec80878b3c2791.png

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

06

总结

目前,根据AUTOSAR和ISO 26262,ASIL D等级的软件开发方法已经比较明确,规范内容覆盖了混合ASIL系统以及ASIL D BSW系统。用户在设计ECU软件时,不必假定每个BSW都有功能安全需求,可以根据实际情况进行设计,在确保功能安全需求实现的情况下,更好地提高系统性能。

a7ac53bbb9a6e95106712e5184b64be7.png

扫码关注我们

微信号|Vector维克多

官方网站|vector.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android studio javah不是内部或外部命令,Android Studio 环境搭建参考,jdk10javac命令提示不是内部或外部命令...

https://blog.csdn.net/qq_33658730/article/details/78547789 win10下Android Studio和SDK下载、安装和环境变量配置http://yanmin99.com/ android-0基础从入门到精通环境变量ANDROID_HOMEE:\Program Files (x86)\Android\SdkJAVA_HOMEE:\Program Files\Java\jdk1.8.0_161TOMC…

starops 云效运维 文档_阿里云 SAE 携手云效助力「石家庄掌讯」持续交付、降本提效...

背景石家庄掌讯信息技术有限公司创立于2009年,是一家提供企业信息化咨询、创新型软件产品、电商代运营服务,标准化管理、快速发展的高新技术企业。当前公司正处于企业互联网市场突破转型重要阶段,希望将更多精力转移到业务创新,提…

setdata改数组里的值 微信小程序_今日艰难笔记redux小程序随记

redux的前身Flux https://zhuanlan.zhihu.com/p/38050036Flux的一整套抽象(action,dispatcher,store),在单向数据流的基础上可以提高应用的可维护性和代码的可预测性。然而,全局action多store的架构面对复杂的应用依然不能很好地解…

竞赛数据清洗缺失值_Kaggle 数据清洗挑战 Day 1 - 手把手教你五步处理缺失值

前些天报名参加了 Kaggle 的 Data Cleaning 5天挑战,5天的任务如下:Day 1: Handling missing valuesDay 2: Data scaling and normalizationDay 3: Cleaning and parsing datesDay 4: Fixing encoding errors (no more messed up text fields!)Day 5: Fi…

html5中行内样式写法,react怎么写行内样式?

react怎么写行内样式?下面本篇文章给大家介绍一下react 行内样式几种写法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。react 行内样式几种写法法一这是评论列表组件1法二const title{color:"red",fontSize:3…

程序左上角的字_微信内测7.0.7新版本,小程序迎来大改动!

最近几个月来,微信就跟打了鸡血一样不断更新了多个版本上线多个新功能。此前7月末,微信安卓7.0.6带来了将收藏笔记,文件预览等页面设为浮窗的功能,目前最多支持5个文档或笔记设为浮窗。这不,距离微信7.0.6 for Android…

html 跑步比赛小游戏,疯狂趣味跑步竞赛3D

疯狂趣味跑步竞赛3D是一款跑酷类型的休闲游戏,游戏在整体画面上搭配了最新的技术,使得游戏画面看起来非常华丽,人物的建模也很可爱。玩家在游戏中可以在各种风格的跑道上进行比赛,还可以在线跟别的玩家进行匹配。喜欢这款游戏的快…

得到进程id_搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?

守护进程概念:守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程。周期性的执行某种任务或等待处理某些发生的事件。Linux系统有很多守护进程,大多数服务都是用守护进程实现的。比如:像我们的tftp&#xf…

w7计算机的收藏夹里弄出桌面,Win7电脑桌面的便签怎么弄出来?

原标题:Win7电脑桌面的便签怎么弄出来?可能很多人都不知道,作为常用的一款电脑桌面操作系统,Windows 7上除了有Txt记事本和Office办公文档外,还有便笺小工具呢!这款便笺小工具虽然很不起眼,但是…

native html5 区别,H5与Native优劣对比

即将启动爱奇艺商城(mall.iqiyi.com)移动端的native化。项目开始之前当然要梳理下为什么做native,究竟H5跟native比有什么劣势,而H5又为什么占比那么高并且有“Html5才是未来”的说法呢。下面简单理下对比。H5,即Html5,指第5代HTM…

html制作圆盘时钟,jquery+html5制作超酷的圆盘时钟表

自己封装的一个用HTML5jQuery写的时钟表代码:超酷数码钟表//引用的是在线jquery地址,如果不行请自行下载切换(function($){$.fn.drawClock function(options){var mainId $(this);//设置默认参数var defaultOptions {width: 300px,height: 300px,marg…

调用外部程序处理文件_Python使用内置方法、模块调用外部命令

导读Python内置调用外部命令:os.systemos.popenos.popen2os.popen3os.popen4commands模块subprocess模块在Python3中,将os.popen2、os.popen3、os.popen4、commands等模块方法移除所以不用花精力了解,可以绕过了os.system方法os.system("…

计算机软件类ui工资多少,ui设计师工资一般多少

ui设计师月薪大概多少,UI设计师的收入现处于中等水平,一般月薪5000~7000元,资深设计师的收入可上升至7000~10000元。ui设计师月薪大概多少,ui设计师工资有多少?,不清楚ui设计师工资有多少的伙伴可以看看。U…

大学计算机课第二章内容总结,第四周市政系《大学计算机基础》课程总结

本周大一的新生终于在漫长的等待、报到、军训之后开始了大学课程的学习,在《大学计算机基础》课程的学习中,其实只是需要大学确立一种新的学习思想:计算机是人类智慧的结晶,它给予我们这样一种工具,通过对它的使用&…

在maven项目中打开jsp_零基础在intellij中打开一个项目复制粘贴内容即可运行的java拼图...

我刚学java语言,在学习java简单的拼图游戏时发现网上有些居然要导入调试,而且网上有些说的调试方法不明不白,所以我就分享了我的可直接复制在新项目中的源码,如果要直接要搞好的话就可以用结尾的分享提取链接进行百度网盘获取(该项…

计算机考试报名无法弹出支付界面,教资报名支付页面不弹出怎么办 2021教师资格证报名入口网址...

2021教师资格证报名入口是中小学教师资格考试网站,教师资格证报名时间是1月14-17日,请大家请及时登陆教师资格证报名官网报名以防错过考试。点击进入:2021年教师资格考试报名入口教师资格证报名缴费进不了支付页面的话原因可能有以下几点&…

gcn在图像上的应用_GCN总结 - nxf_rabbit75 - 博客园

一、GCN简介GNN模型主要研究图节点的表示(Graph Embedding),图边结构预测任务和图的分类问题,后两个任务也是基于Graph Embedding展开的。目前论文重点研究网络的可扩展性、动态性、加深网络。谱卷积有理论支持,但有时候会受到拉普拉斯算子的…

mysql源码_MySql轻松入门系列——第一站 从源码角度轻松认识mysql整体框架图

一:背景1. 讲故事最近看各大技术社区,不管是知乎,掘金,博客园,csdn基本上看不到有小伙伴分享sqlserver类的文章,看来在国内大环境下是不怎么流行了,看样子我再写sqlserver是不可能再写了&#x…

测试图片色域软件,显示器色域检测

色域是颜色的一种编码,也是某一个规定的色彩空间或者输出装置呈现出来的一个颜色范围,展示给用户看到的颜色,使用显示器色域检测工具,可以检测到电脑显示器的色域情况,并且提供具体的参数,这款软件对于需要…

计算机专业研究生应该如何规划,【图片】2020考研,老学长教你如何规划!【计算机考研吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼二、关键一步——院校选择我把各位同学的院校选择阶段分为以上几个阶段,因为考研这一年中,很多人的目标院校并不是固定不变的,而是随着不同阶段而改变的。学长我在大三下学期这一时间段内也多次更…