0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

软件分区设计,汽车功能安全可以从航空安全实践中得到哪些思考?

汽车ECU开发 来源:汽车ECU开发 2023-07-29 10:14 次阅读

01

软件分区的推动力

与如今汽车电子架构的演变历程一样,航空电子架构也曾经历了从分布式到中央计算+域控的进化,只不过完成进化的时间更早:早在上个世纪末,IMA(Integrated Modular Avionics,集成模块化航空电子设备)的设计理念就已融入到了大型民航客机的研制。在这种架构设计下,从安全等级最高的显控系统、到最低的娱乐系统在内的几十项应用,都被高度集成在一个中央计算机内,由同一个微处理器统一调配运行。我们所熟悉的波音787、空客A380等飞机均采取了这种设计理念。

航电系统的这种架构进化能够有效降低各种使用成本,包括机舱空间、能耗、线束、重量、冷却、安装、维护等各方面。对于对每一克航油的节省都锱铢必较的航空公司,IMA平台相较旧有的分布式架构带来了显著的成本优势。然而,这无疑也会带来安全性问题,在一个集成了不同安全等级应用的计算平台中,类似显控系统、飞控系统等高安全等级软件,必须避免被低安全等级的应用所干扰。软件分区则是实现这一目标的核心工作。

在汽车功能安全领域,ISO26262和AutoSAR等相关标准都提到了软件安全分区的一些设计原则。而航电系统也在数十年的研发和审定过程中,针对软件分区形成了许多宝贵的经验,值得我们思考和借鉴。

02

DO-178和DO-297

《民用航空机载软件适航标准(DO-178)》是由欧美航空组织于80年代初编制、用于保证航空机载软件符合飞行安全要求(即“适航性”)的规范性文件。在DO-178C的2.4.1中明确提出:不论软件分区是通过分配软件组件到不同的硬件资源、还是在一个硬件上运行多个软件组件来实现的,都应该满足以下安全分区的需求[1]:

●一个分区的软件组件不应被允许破坏另一个分区的软件组件的代码、输入/输出(I/O)、或数据存储区域。

●一个分区的软件组件应当只有在其得到调度的执行时段中,才被允许使用共享处理器的资源。

●一个分区的软件组件独有的硬件失效不应对其他分区的软件组件产生不利影响。

●任何提供分区(机制或服务)的软件,应当具有与分配给任何分区中最高安全等级软件组件相同或更高的安全等级。

●任何提供分区的硬件应当得到系统级安全评估,以确保它不会对安全性产生不利影响。

而随着上世纪90年代,IMA逐渐应用于航电系统架构,《集成模块化航空电子设备 (IMA) 开发指南和认证问题(DO-297)》提出IMA平台需要提供分区的服务,以便为平台上所承载的共享平台资源的应用提供足够的分隔和隔离,并且在一旦发生失效导致分区机制被破坏时,能够检测到失效并采取失效响应措施,以最终实现“健壮分区(Robust Partitioning)”[2]。

如果分区没有被正确实现,会导致直接影响安全性问题,包括了:

●错误地写数据到错误的区域;

●从另一个应用窃取运行时间;

●使处理器崩溃;

●破坏I/O;

●破坏输入数据;

●独占内部通信通道;

●破坏共享的闪存文件系统;

●在向新分区进行上下文切换时引入时间抖动。

显而易见,要实现良好的软件分区设计,绝不是仅仅靠软件工程师能完成的。分区设计是一项高度复杂的系统工程,需要设计人员对系统、硬件和软件体系结构具备深刻的理解。在波音或空客等OEM中,软件分区设计的往往由首席电子架构专家主导完成。

03

分区设计的三大方面

无论是汽车还是航空,要实现所谓的“Robust Partitioning”,主要在计算平台的三个子系统中进行分区设计:内存、中央处理器(CPU)和I/O。

●共享内存(空间分区设计)

空间分区的根本在于阻止一个分区中的功能破坏或覆盖另一个分区中的某功能的数据空间。一般通过硬件和软件两种方式实现对共享内存的空间分区设计。基于硬件的方式通过CPU自带的MMU或MPU来实现内存访问的权限控制。另一种通过软件的方式则是在每个内存访问点上,对代码加入逻辑校验,通过检查地址寄存器中的内容,确保所访问的内存是正确的[4]。

●共享CPU(时间分区设计)

时间分区的目标是确保一个分区中的功能不干扰另一个分区中的事件的时间。除了对使用CPU的访问时长、运行速率、延迟、抖动等进行精密地设计外,为确保绝对安全,ARINC 653标准对涉及安全的不同分区采取强制的轮转制度,采用指定的运行时长和周期[3]。而在单个分区内部,则采用其它的调度器。此外,中断设计不当会对时间分区进行破坏,比较保守的方法包括彻底禁止中断来确保安全组件的运行。其他容易破坏时间分区的因素还包括了调度溢出、计时器损坏、控制流缺陷或软件缺陷等。这些因素都需要经安全分析后被识别并验证。

●共享I/O

共享I/O的种类和作用繁多,包括串口、交换机在内的各种端口、设备、通道都可能被多个分区所共享。共享I/O分区需要同时考虑时间分区和空间分区。ARINC653对于共享I/O提供了取样(Sampling)和队列(Queuing)的操作机制,确保端口被有序使用。

04

几个关键的分区设计和验证活动

● 分区分析

DO-297要求应开展完整的分区分析(Partitioning Analysis),来表明满足了整个系统的分区要求。该分析过程和系统安全分析类似,分区分析工程师可以通过FTA或FMEA的形式,分析出分区失效链,证明所有影响分区需求的系统性失效或硬件随机失效被识别、分类和控制。DO-297从系统性失效的角度,例举了影响分区设计的潜在失效,从而更好的帮助设计人员自底向上的分区分析[2]:

中断和中断禁止(软件和硬件);

循环,例如无限循环或间接无终止地调用循环;

实时通信,如时间帧溢出、实时时钟干涉、计数器/计时器破坏、流水线和高速缓存,以及确定性调度;

控制流,例如不正确地从一个分支进入一个分区或受保护地区域、一个跳转表地破坏、处理器顺序控制地破坏、返回地址地破坏,以及不可恢复地硬件状态破坏(如屏蔽和关机);

内存、输入/输出的竞争;

数据标志共享;

软件陷阱,例如被零除、未实现的指令、特定的软件中断指令、不识别的指令,以及递归终止;

停顿的命令,即性能障碍;

输入或输出数据丢失;

输入或输出数据破坏;

内部数据破坏,例如直接或间接内存写入、表溢出、不正确的链接、涉及时间的计算,以及破坏高速缓存;

延迟的数据;

程序覆盖;

缓冲区顺序;

外部设备交互,例如数据丢失、数据延迟、不正确数据、以及协议停机等。

分区分析从本质上是系统安全分析的扩展,需要与系统安全工程师保持密切协调;并且,与系统安全分析一样,需要在分区开发初期就进行分区分析,并根据开发进展不断更新迭代分区分析结果,直到每一个被识别出的分区失效根因都被完整识别、分析和缓解。

RTOS SVA分析

分区设计和RTOS是紧密相关的,而操作系统软件本身的“脆弱性(Vulnerability)”,通常也会成为导致分区失效的因素之一。RTOS的脆弱性可以是作为软件本身的一些固有缺陷,如果集成方应对不当,则会对数据一致性、任务、调度、中断、内存访问等造成不利影响。因此,一个完整的分区分析,还需要建立在对操作系统的“软件脆弱性分析(Software Vulnerability Analysis)”的仔细评估的基础上。SVA清单一般都能从RTOS供应商处获得,如航空领域广泛使用的风河VxWorks653。对于分区分析工程师来说,需要将SVA作为分区分析的重要输入之一,识别并分析出RTOS SVA中所述的操作系统异常是否会对分区效果产生潜在的不利影响。

● 数据流/控制流分析

数据流/控制流分析往往和分区分析是两个活动,但却有着微妙的联系:即便分区机制做的再完善,一旦数据流/控制流分析不到位,那不论是不同分区间必要的数据交互、抑或是单个分区内部的数据交互,都可能引入共因失效或级联失效。因此,软件分区不能保证避免数据或控制的耦合出现问题;反之,数据/控制流问题也不意味着分区机制有着缺陷。一个建立在完整数据流/控制流分析之上的分区分析,往往会更有价值。

● 评审Checklist

详细的分区设计评审是必需的,并且需要保证评审的独立性。美国联邦航空局的审定专家Leanna Rierson提出了建议的分区评审清单[4],便于从数据流和控制流两个维度对分区设计进行检查。

数据流相关:

分区是否会被数据流破坏?

共享数据是否会被不恰当使用?

消息是否会被不正确发送或接收?

函数参数是否会被不恰当使用?

配置数据是否会无效?

数据是否会被不正确传递?

数据是否会被不正确地初始化?

全局数据是否会被不正确地读或写?

全局数据是否会被非预期的函数错误地写?

全局数据是否会未初始化或者不正确地再次初始化?

硬件寄存器是否会被不恰当地使用?

链接器是否会不正确地组装数据或代码?

数据是否会变得陈腐或无效吗?数据会丢失?

是否会发生对数据的错误比较的不正确响应?

是否会出现非预期的浮点值?

控制流相关:

分区是否会被控制流破坏?

函数是否会在一个特征内或特征之间被不恰当地调用?

中断是否会引起错误的行为?

硬件故障或失效是否会影响数据完好性或执行顺序?

模式间的转换是否会不正确地实现?

资源是否会被不恰当地分配?

非激活代码是否会被不经意地激活?

初始化顺序是否会不正确?

是否会发生对异常的不恰当响应?

故障处理程序是否会动作不恰当(例如,丢失故障或失效,或者不正确地处理故障或失效)?

是否会发生内存重叠?

是否会读或写不正确的硬件地址?

在复位时是否会发生不恰当的响应?

同步是否会被错误的比较或错误的等待影响?

不正确的上下文切换是否会引起错误的数据或计时?

是否会生成任何非预期的异常?

函数是否会以不正确的速率或时间执行?

●分区机制的测试

针对分区机制的测试可以通过仿真或台架测试来完成,通过故障注入来制造破坏时间分区和空间分区的情况,从而来证明分区的完好性。严格来说,测试的工作量往往取决于前期识别得到的分区失效根因的数量。但在工程实践中,诸多涉及硬件细节或底层设备驱动的故障难以通过测试来进行,部分将纳入到分区分析中,以安全性分析的形式完成验证。

05

总结

软件分区设计所面对的绝大部分失效根因,都属于系统性失效。因此,一个优秀的分区设计除了对人员的技术能力有着极高要求,更要求企业具备完整的电子软硬件开发流程,缺乏体系基础的分区设计往往是空中楼阁。航空制造业在漫长的适航安全审定过程中,逐渐建立了严密的研发流程体系。在对安全日益重视的汽车行业,这也必将是国内各汽车OEM的发展方向。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 汽车电子
    +关注

    关注

    3023

    文章

    7832

    浏览量

    166044
  • 计数器
    +关注

    关注

    32

    文章

    2253

    浏览量

    94294
  • 航电系统
    +关注

    关注

    1

    文章

    7

    浏览量

    8360

原文标题:软件分区设计,汽车功能安全可以从航空安全实践中得到哪些思考?

文章出处:【微信号:eng2mot,微信公众号:汽车ECU开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    8月8日在线研讨会 | 如何快速开发量产级别功能安全应用软件

    本次研讨会经纬恒润将结合自身控制器产品研发及国内外功能安全开发、集成、测试、咨询的实践经验,重点基于功能的应用监控软件
    的头像 发表于 08-01 16:10 233次阅读
    8月8日在线研讨会 | 如何快速开发量产级别<b class='flag-5'>功能</b><b class='flag-5'>安全</b>应用<b class='flag-5'>软件</b>

    Autobots应用探索:实践中思考与发现

    了; 背景2:作为XXX共建项目的成员之一同时也是第一批用户,我用它做了几个测试实践,和大佬们一起探讨交流。 实践一,快速搜索需求文档 模糊搜索 这个场景多数用于我们不清楚自己到底要找的是哪个需求文档了,可能只是大概对需求文档有个印象,我们
    的头像 发表于 07-16 15:00 228次阅读
    Autobots应用探索:<b class='flag-5'>实践中</b>的<b class='flag-5'>思考</b>与发现

    功能安全标准在汽车芯片领域的应用

    功能安全不仅是技术上的要求,更代表了对未来交通安全的坚定承诺。01、汽车芯片功能安全的重要性中
    的头像 发表于 07-16 08:28 810次阅读
    <b class='flag-5'>功能</b><b class='flag-5'>安全</b>标准在<b class='flag-5'>汽车</b>芯片领域的应用

    2024 ACT汽车软件安全技术周 龙智即将携全方位汽车软件开发解决方案亮相,助力应对汽车软件开发功能安全

    ,分享推动汽车软件开发与功能安全的创新实践。 ATC作为汽车技术会议领域的领先平台,专注于
    的头像 发表于 07-08 16:17 491次阅读
    2024 ACT<b class='flag-5'>汽车</b><b class='flag-5'>软件</b>与<b class='flag-5'>安全</b>技术周 龙智即将携全方位<b class='flag-5'>汽车</b><b class='flag-5'>软件</b>开发解决方案亮相,助力应对<b class='flag-5'>汽车</b><b class='flag-5'>软件</b>开发<b class='flag-5'>功能</b><b class='flag-5'>安全</b>

    振弦采集仪的工程安全监测实践与案例分析

    监测的应用。 振弦采集仪的工程安全监测实践与案例分析 一,振弦采集仪的工程安全监测实践中,重视仪器的安装与校准。仪器的位置和固定方式需要仔
    的头像 发表于 07-01 11:01 207次阅读
    振弦采集仪的工程<b class='flag-5'>安全</b>监测<b class='flag-5'>实践</b>与案例分析

    镭神智能领航未来航空安全:直升机防撞激光雷达荣获行业大奖

    航空领域,安全始终是首要之务。为了应对直升机、无人机和飞行汽车航空器在飞行过程可能遇到的障碍物风险,深圳市镭神智能系统有限公司凭借其卓
    的头像 发表于 06-13 08:24 330次阅读
    镭神智能领航未来<b class='flag-5'>航空安全</b>:直升机防撞激光雷达荣获行业大奖

    振弦采集仪在地质灾害安全监测的作用与实践

    振弦采集仪在地质灾害安全监测的作用与实践 振弦采集仪是一种地质灾害监测设备,通过检测地质体的振动信号来预测地质灾害的发生,具有重要的作用。在实践中,振弦采集仪被广泛应用于地质灾害
    的头像 发表于 06-06 13:54 210次阅读
    振弦采集仪在地质灾害<b class='flag-5'>安全</b>监测<b class='flag-5'>中</b>的作用与<b class='flag-5'>实践</b>

    专家访谈 | AI如何助力汽车功能安全?(汽车安全②:功能安全

    汽车行业,确保功能安全至关重要。开发汽车功能需要一个严格的流程来最小化风险并增强
    的头像 发表于 04-08 15:42 375次阅读
    专家访谈 | AI如何助力<b class='flag-5'>汽车</b><b class='flag-5'>功能</b><b class='flag-5'>安全</b>?(<b class='flag-5'>汽车</b><b class='flag-5'>安全</b>②:<b class='flag-5'>功能</b><b class='flag-5'>安全</b>)

    分布式综合管理平台在公共安全领域的成功实践

    的成功实践。 讯维分布式综合管理平台通过集成各类公共安全相关的视频监控、报警系统、应急通信等资源,实现了对公共安全事件的全面监控和快速响应。在多个城市的公共安全
    的头像 发表于 03-18 16:13 301次阅读

    汽车网络安全-挑战和实践指南

    汽车网络安全-挑战和实践指南
    的头像 发表于 02-19 16:37 484次阅读
    <b class='flag-5'>汽车网络安全</b>-挑战和<b class='flag-5'>实践</b>指南

    在Gtm功能安全说明软件需要采集Gtm是否被计时,这个功能怎么实现?

    在Gtm功能安全说明软件需要采集Gtm是否被计时。也就是需要使用TIM模块采集Gtm时钟(CLS0_CLK),这个功能怎么实现,因为我发现
    发表于 02-19 06:05

    基于功能安全汽车嵌入式软件单元验证技术研究

    随着汽车嵌入式软件功能的不断叠加,软件复杂性不断提升,对汽车嵌入式软件
    的头像 发表于 01-07 11:27 988次阅读
    基于<b class='flag-5'>功能</b><b class='flag-5'>安全</b>的<b class='flag-5'>汽车</b>嵌入式<b class='flag-5'>软件</b>单元验证技术研究

    汽车网络安全:防止汽车软件的漏洞

    汽车网络安全汽车开发至关重要,尤其是在 汽车软件 日益互联的情况下。在这篇博客,我们将分享
    的头像 发表于 12-21 16:12 1048次阅读
    <b class='flag-5'>汽车网络安全</b>:防止<b class='flag-5'>汽车</b><b class='flag-5'>软件</b><b class='flag-5'>中</b>的漏洞

    汽车行业软件代码满足功能安全与信息安全的最佳实践

    北汇首次联合嵌入式静态分析领域公认的行业领导及先驱Perforce公司,并邀请到其合规总监Jill Britton女士与大家一起讨论当前的汽车趋势,以及遵守ISO 26262功能安全和ISO
    的头像 发表于 11-23 20:05 577次阅读
    <b class='flag-5'>汽车行业软件</b>代码满足<b class='flag-5'>功能</b><b class='flag-5'>安全</b>与信息<b class='flag-5'>安全</b>的最佳<b class='flag-5'>实践</b>

    汽车功能安全芯片测试

    正常运行。因此,对汽车功能安全芯片进行细致、详实的测试就显得尤为重要。 汽车功能安全芯片测试主要
    的头像 发表于 11-21 16:10 1512次阅读