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

智能汽车设计 2023-07-21 21:49






原创

软件分区设计——在航空安全的实践以及对汽车行业的思考

➡本文主要内容分为5个部分(约4000字,10分钟阅读)



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的发展方向。



参考文献:

1.《民用航空机载软件适航标准(DO-178)》

2.《集成模块化航空电子设备 (IMA) 开发指南和认证问题(DO-297)》

3.《ARINC653-Avionics Application Software Standard Int-erface》

4.《Developing Safety-Critical Software——A Practical Guide for Aviation Software and DO-178C Compliance》 Leanna Rierson, 2020.



James / 作者




END


免责声明:如涉及侵权请及时与我们联系反馈,我们会在第一时间做更正声明或做删除处理。文章版权及解释权归原作者及发布单位所有,如需转载或引用本文的任何内容,请注明出处。

智能汽车设计 关注智能汽车发展,分享智能汽车知识!
评论
  • 学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&
    youyeye 2024-11-30 14:30 62浏览
  • By Toradex胡珊逢简介嵌入式领域的部分应用对安全、可靠、实时性有切实的需求,在诸多实现该需求的方案中,QNX 是经行业验证的选择。在 QNX SDP 8.0 上 BlackBerry 推出了 QNX Everywhere 项目,个人用户可以出于非商业目的免费使用 QNX 操作系统。得益于 Toradex 和 QNX 的良好合作伙伴关系,用户能够在 Apalis iMX8QM 和 Verdin iMX8MP 模块上轻松测试和评估 QNX 8 系统。下面将基于 Apalis iMX8QM 介
    hai.qin_651820742 2024-11-29 15:29 150浏览
  • 《高速PCB设计经验规则应用实践》+PCB绘制学习与验证读书首先看目录,我感兴趣的是这一节;作者在书中列举了一条经典规则,然后进行详细分析,通过公式推导图表列举说明了传统的这一规则是受到电容加工特点影响的,在使用了MLCC陶瓷电容后这一条规则已经不再实用了。图书还列举了高速PCB设计需要的专业工具和仿真软件,当然由于篇幅所限,只是介绍了一点点设计步骤;我最感兴趣的部分还是元件布局的经验规则,在这里列举如下:在这里,演示一下,我根据书本知识进行电机驱动的布局:这也算知行合一吧。对于布局书中有一句:
    wuyu2009 2024-11-30 20:30 84浏览
  • 国产光耦合器正以其创新性和多样性引领行业发展。凭借强大的研发能力,国内制造商推出了适应汽车、电信等领域独特需求的专业化光耦合器,为各行业的技术进步提供了重要支持。本文将重点探讨国产光耦合器的技术创新与产品多样性,以及它们在推动产业升级中的重要作用。国产光耦合器创新的作用满足现代需求的创新模式新设计正在满足不断变化的市场需求。例如,高速光耦合器满足了电信和数据处理系统中快速信号传输的需求。同时,栅极驱动光耦合器支持电动汽车(EV)和工业电机驱动器等大功率应用中的精确高效控制。先进材料和设计将碳化硅
    克里雅半导体科技 2024-11-29 16:18 157浏览
  • 戴上XR眼镜去“追龙”是种什么体验?2024年11月30日,由上海自然博物馆(上海科技馆分馆)与三湘印象联合出品、三湘印象旗下观印象艺术发展有限公司(下简称“观印象”)承制的《又见恐龙》XR嘉年华在上海自然博物馆重磅开幕。该体验项目将于12月1日正式对公众开放,持续至2025年3月30日。双向奔赴,恐龙IP撞上元宇宙不久前,上海市经济和信息化委员会等部门联合印发了《上海市超高清视听产业发展行动方案》,特别提到“支持博物馆、主题乐园等场所推动超高清视听技术应用,丰富线下文旅消费体验”。作为上海自然
    电子与消费 2024-11-30 22:03 70浏览
  • 国产光耦合器因其在电子系统中的重要作用而受到认可,可提供可靠的电气隔离并保护敏感电路免受高压干扰。然而,随着行业向5G和高频数据传输等高速应用迈进,对其性能和寿命的担忧已成为焦点。本文深入探讨了国产光耦合器在高频环境中面临的挑战,并探索了克服这些限制的创新方法。高频性能:一个持续关注的问题信号传输中的挑战国产光耦合器传统上利用LED和光电晶体管进行信号隔离。虽然这些组件对于标准应用有效,但在高频下面临挑战。随着工作频率的增加,信号延迟和数据保真度降低很常见,限制了它们在电信和高速计算等领域的有效
    腾恩科技-彭工 2024-11-29 16:11 106浏览
  • 艾迈斯欧司朗全新“样片申请”小程序,逾160种LED、传感器、多芯片组合等产品样片一触即达。轻松3步完成申请,境内免费包邮到家!本期热荐性能显著提升的OSLON® Optimal,GF CSSRML.24ams OSRAM 基于最新芯片技术推出全新LED产品OSLON® Optimal系列,实现了显著的性能升级。该系列提供五种不同颜色的光源选项,包括Hyper Red(660 nm,PDN)、Red(640 nm)、Deep Blue(450 nm,PDN)、Far Red(730 nm)及Ho
    艾迈斯欧司朗 2024-11-29 16:55 152浏览
  • 光耦合器作为关键技术组件,在确保安全性、可靠性和效率方面发挥着不可或缺的作用。无论是混合动力和电动汽车(HEV),还是军事和航空航天系统,它们都以卓越的性能支持高要求的应用环境,成为现代复杂系统中的隐形功臣。在迈向更环保技术和先进系统的过程中,光耦合器的重要性愈加凸显。1.混合动力和电动汽车中的光耦合器电池管理:保护动力源在电动汽车中,电池管理系统(BMS)是最佳充电、放电和性能监控背后的大脑。光耦合器在这里充当守门人,将高压电池组与敏感的低压电路隔离开来。这不仅可以防止潜在的损坏,还可以提高乘
    腾恩科技-彭工 2024-11-29 16:12 117浏览
  • 最近几年,新能源汽车愈发受到消费者的青睐,其销量也是一路走高。据中汽协公布的数据显示,2024年10月,新能源汽车产销分别完成146.3万辆和143万辆,同比分别增长48%和49.6%。而结合各家新能源车企所公布的销量数据来看,比亚迪再度夺得了销冠宝座,其10月新能源汽车销量达到了502657辆,同比增长66.53%。众所周知,比亚迪是新能源汽车领域的重要参与者,其一举一动向来为外界所关注。日前,比亚迪汽车旗下品牌方程豹汽车推出了新车方程豹豹8,该款车型一上市就迅速吸引了消费者的目光,成为SUV
    刘旷 2024-12-02 09:32 58浏览
  • 在电子技术快速发展的今天,KLV15002光耦固态继电器以高性能和强可靠性完美解决行业需求。该光继电器旨在提供无与伦比的电气隔离和无缝切换,是现代系统的终极选择。无论是在电信、工业自动化还是测试环境中,KLV15002光耦合器固态继电器都完美融合了效率和耐用性,可满足当今苛刻的应用需求。为什么选择KLV15002光耦合器固态继电器?不妥协的电压隔离从本质上讲,KLV15002优先考虑安全性。输入到输出隔离达到3750Vrms(后缀为V的型号为5000Vrms),确保即使在高压情况下,敏感的低功耗
    克里雅半导体科技 2024-11-29 16:15 119浏览
  • 光伏逆变器是一种高效的能量转换设备,它能够将光伏太阳能板(PV)产生的不稳定的直流电压转换成与市电频率同步的交流电。这种转换后的电能不仅可以回馈至商用输电网络,还能供独立电网系统使用。光伏逆变器在商业光伏储能电站和家庭独立储能系统等应用领域中得到了广泛的应用。光耦合器,以其高速信号传输、出色的共模抑制比以及单向信号传输和光电隔离的特性,在光伏逆变器中扮演着至关重要的角色。它确保了系统的安全隔离、干扰的有效隔离以及通信信号的精准传输。光耦合器的使用不仅提高了系统的稳定性和安全性,而且由于其低功耗的
    晶台光耦 2024-12-02 10:40 53浏览
  • RDDI-DAP错误通常与调试接口相关,特别是在使用CMSIS-DAP协议进行嵌入式系统开发时。以下是一些可能的原因和解决方法: 1. 硬件连接问题:     检查调试器(如ST-Link)与目标板之间的连接是否牢固。     确保所有必要的引脚都已正确连接,没有松动或短路。 2. 电源问题:     确保目标板和调试器都有足够的电源供应。     检查电源电压是否符合目标板的规格要求。 3. 固件问题: &n
    丙丁先生 2024-12-01 17:37 57浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦