徽州骆驼 · 2022年12月19日 · 北京市

在EE架构中使用AUTOSAR实现功能安全

以下文章来源于智车Robot ,作者Mentor

简介

随着自动驾驶和电气化的日渐盛行,互联车辆应用程序的不断增多,对车辆安全的要求日趋严格。同时,电气电子(E/E)车辆架构也日渐复杂。在这些趋势的共同影响下,解决方案架构师和工程师都在探寻新的方法,以求应对设计的复杂性,满足设计对功能安全的要求,实现国际化合规,并交付丰富而又灵活的解决方案。

我们将探讨以下内容:

对2011版和2018版ISO 26262“道路车辆-功能安全”标准的比较

AUTOSAR电子控制单元(ECU)的设计考虑因素

可能的故障场景以及应对策略,以消除在不同汽车安全完整性级别(ASIL)中软件组件及功能之间的干扰

多核框架如何通过处理器间的通信对单独的域进行维护,从而在多核片上系统(SoC)上实现混合安全关键系统。

 重要的安全与安防

当今的车辆由无数复杂系统组成,任何系统故障或失效都可能引发严重的后果。不仅汽车制造商可能面临代价沉重的法律诉讼和名誉损失,用户的生命也会深受威胁。因此,从E/E系统设计开始,汽车制造商将功能安全放在每个开发阶段的首位。

AUTOSAR因此而生。AUTOSAR是由汽车及软件行业的300多家领先企业组成的全球合作组织,为智能移动出行建立了标准化软件框架和开放式系统架构。该组织联合了31家国际汽车原始设备制造商(OEM),最畅销的20家OEM均在其中。与其他一级参与者及供应商一起,这些AUTOSAR合作伙伴携手描绘了智能移动出行的未来,并共同定义了汽车开放式系统架构标准,以便对未来汽车应用程序的需求提供支持。

AUTOSAR能够确保在应用程序层实施标准化结构,使软件组件可以使用虚拟功能总线通过特定端口进行通信。该框架支持使用各种安全措施和机制来开发与安全相关的系统。

ISO 26262指定了用于捕捉系统需求、编码和开发、测试策略和执行以及系统文档的协议。它提供了各种方法以验证团队是否遵守了可重复且可靠的设计和测试流程。

该标准并非一成不变,相反,它在近几年引入了许多修改。从软件开发角度来看,近期修改主要体现在安全内容、新兴技术以及重心转变三个方面:

安全内容:增加了对安全管理和规划等更多安全内容的要求。删除了重复的“精制”工作产品内容。

新兴技术:更改了引入多核、基于模型的开发和敏捷方法后的相关内容。

重心转变:将更多重心放在软件架构、软件安全分析、故障分析、故障注入和耦合因数等方面。

输入确保功能安全的方法标题

AUTOSAR标准一直在发展以适应现代行业需求。让我们来看看它为满足安全需求而提供的方法。

● 内存分区:AUTOSAR隔离了软件组件,使它们不会更改或干扰与其他组件关联的内存(见图1)。运行时环境(RTE)下的基础软件(BSW)层中的组件在模型中按照ASIL需求进行隔离。根据指派的ASIL,每个软件组件都分组在相应分区中。可以使用多核系统尽量将功能分配到一个ECU,AUTOSAR支持此用例。分区式内存系统可以部署在多核MCU上。内核间的上下文切换可与内存分区间的上下文切换保持一致,使实施的用例可以在每个内核中单独提供BSW功能并同时以多个内核保证功能正常(见图2)。
image.png
图1:内存级别的空间隔离
image.png
图2:内核级别的空间隔离

● 无干扰:不同ASIL之间互不干扰是安全系统的基础(见图3)。如之前所述,这依赖于安全内存在空间方面提供的隔离。隔离的另一种主要方法是时间隔离,该方法由安全通信实现,可以提供安全执行和数据完整性。不过,无人驾驶系统还依赖于同步模式管理。要确保系统在相同的条件下正常运行,必须通过以适当方式保护和传播的系统状态来实现安全同步。在AUTOSAR系统中,这由运行时环境、基础软件模式管理器和ECU状态管理器加以保障。

image.png
图3:无干扰

● 安全通信:安全通信需要保证发送方和接收方之间数据交互的完整性(见图4)。因此,需要数据保护机制来保护通信链接以防出现故障。此类故障的示例包括:随机硬件故障(例如,控制器局域网络(CAN)收发器的寄存器损坏)、电磁(EMC)干扰以及系统性故障。AUTOSAR中的端到端通信保护库可以检测和处理运行时通信链接中出现的错误,能够满足ASIL D级安全通信的要求。
image.png
图4:端到端通信保护

● 时间隔离:对于安全执行,我们确定时序以使系统的操作和反应在分配的时隙中执行(见图5)。正确的时隙可以按照一组时序约束加以说明。由于固定优先级抢占调度的原因,AUTOSAR中不强制要求时间分区。不过,操作系统(OS)提供了用于时序故障的机制。时序保护预算包括执行时间、资源锁定时间以及间隔时间保护预算,这些都是静态配置的。该机制可以尽量降低任务之间的干扰,并满足ISO 26262所要求的无错传播(见图5)。最坏情况执行时间(WCET)是任务在目标任务序列中的最长执行时间。对于具有较高ASIL要求的关键任务,开发人员需要投入更多精力来提高WCET。
image.png
图5:时间隔离

● 可调度性:嵌入式系统通常具有实时限制。软实时系统偶尔会错过截止时间。不过,如果安全关键型硬实时系统错过截止时间,那么它们可能会出现故障,造成人员伤亡或环境危险。由“速率单调”或“最早截止时间”等算法调度的OS任务有助于实现可调度性分析,以使任务符合处理器中的截止时间。除软件执行路径外,生成的时序分析还受处理器架构以及内核数或分区数的影响。AUTOSAR支持OS预配,它依赖于用于实现可靠任务执行的调度表。

所有这些方法都需要广泛的工具支持。例如,在多核架构中分配总线通信是一项颇具挑战性的配置,其中涉及上千信号和数百协议数据单元(PDU)。采用AUTOSAR工作流程可以确保系统的行为符合预期(见图6)。除自动化工作流程外,还必须确保设置正确以及工程任务已成功实施,包括正确指派到ASIL分区,其中可以从不同角度以不同方法来分析相依性。
image.png
图6:用于在不同分区中分配BSW和软件组件(SWC)的工具支持

确保系统一致性

最后要考虑的是系统一致性。基于模型的系统建模方法是用于开发初步系统的多阶段开发流程,该流程综合考虑了ISO 26262规范的所有方面(如系统、硬件和软件开发)以实现在系统风险分析中提出的功能安全目标。第一个阶段是识别执行多领域系统建模的关键需求。

完成多领域模型后,可以提取E/E领域的内容。这样,开发人员可以确定E/E系统的功能定义并定义系统架构以正确分配功能,并定义通过在ECU上运行的软件而实现的完整嵌入式软件流。该软件流还应包括电气系统设计线束工程以及出版物创建。此外,还需要在所有阶段中以全面的自动化和深度的集成对数据进行持续验证和确认。这样开发人员可以从企业产品生命周期管理(PLM)和应用程序生命周期管理(ALM)以及整体项目管理等方面规范开发行为(见图7)。

image.png
图7:面向功能安全合规的系统驱动型设计

混合安全关键系统

在深入探讨混合安全关键系统的概念之前,我们先来看看如何开发混合安全关键系统解决方案。

经过多年发展,多核已从双核进化为四核。此后,连续内存分配器(CMA)提供商听取了用户的呼声并向ECU开发人员提供了更多的资源和算力。在继续提供更多内核的同时,他们还提供了更多功能,例如实时内核、数字信号处理器(DSP)和软内核。这将异构硬件的开发整合在单独的片上系统(SOC)中(见图8)。

要充分利用异构硬件,需要从软件角度考虑它。

异构软件解决方案和架构使用异构硬件。例如,可能存在运行于不同类型内核上的通用型操作系统、实时操作系统(RTOS)以及裸机应用程序。一些关键的考虑因素包括如何启动系统,如何在共享工作负载中传递通信等。

image.png
图8:嵌入式片上系统中的异构多处理

“到2030年,接近30%的车辆内容将是软件。”--麦肯锡咨询公司

这些芯片都极为复杂。以S32G车载网络处理器为例。该处理器由一组Cortex A53应用处理器和大量的Cortex M7设备组成。在某些情况下,它们在外围设备中装备了双A72处理器、一些R5处理器和各种类型的内存,并在芯片中装备了通信块(见图9)。
image.png
图9:S32G车载网络处理器

因为这种复杂性,所需的软件数在不断增长。随着算力的提高,您可以将各种功能整合到单个SOC上以降低成本。这带来了新的挑战,其中最为重要的一项是实现混合安全关键系统。

复杂性带来的新挑战

过去,您可能要准备一个专用于提供功能安全的系统,与不需要提供安全功能的其他系统共同运行在Linux上。得益于多核处理系统,系统整合现在已得到普及并可以在单个SOC上实现,您可以实现混合安全关键系统。其中将包含一些具有实时需求的任务关键型子系统、一些安全子系统以及一些经过安全认证的子系统。要确保在将这些系统集成到单个SOC后软件的可靠性和安全性水平保持不变,必须隔离安全和非安全领域,并在这些域之间建立可靠的安全保障通信。

图10中的示例说明了2022款凯迪拉克凯雷德中的混合安全关键系统。一方面,控制台包含可增强驾驶员体验的无线广播、热控制和其他子系统。如果无线广播等某个不关键的子系统发生故障,它会影响驾驶体验,但不会造成实际风险。另一方面,控制台还包含倒车摄像头。如果倒车摄像头失灵,可能会对驾驶员以及路上的其他驾驶员和行人造成危险。这是混合安全关键系统的一个现实示例,它利用智能座舱域控制器在一个或两个硬件上运行了具有不同功能安全要求的多个操作系统。

image.png
图10.2022款凯迪拉克凯雷德的内部

图11说明了具有混合安全关键系统的各种组件。除了关键的经认证的功能RTOS外(AUTOSAR非常适合它),您可能会在Linux、裸机、Nucleus或其他OS上运行不那么关键或非关键的软件。您需要确保在不同域和进程之间的通信以正常启动软件。其他的关键因素还包括隔离、硬件验证和监控、错误处理和资源管理。

image.png
图11:混合关键系统的组成要素

在设计混合关键系统时,必须考虑几个典型功能安全概念,包括:

● 影响功能安全目标的系统故障:典型的系统性故障可能由于制造和开发流程中的错误造成,并可能影响硬件和软件。验证预期功能失败、制造漏检或在非额定工况运行都可能造成这些故障。

● 随机故障:受硅老化或环境条件等固有因素影响,随机故障既可能是永久故障,例如影响随机存储器(RAM)内存的故障,也可能是临时故障,例如因单事件干扰(SEU)而引起的内存损坏。

● 硬件提供的安全功能:人们为功能安全专门设计了软件,利用这些软件提供的所有安全功能非常重要:此类软件在设计时应具备安全功能,例如安全启动、分离、安全及非安全系统隔离,以及经过安全认证的软件组件。

让我们来深入探讨其中的几个概念。

隔离

安全和非安全域之间的隔离(无论是时间隔离还是空间隔离)都非常重要。时间隔离可以通过提供专用的独立内核实现,而空间隔离可以通过硬件保护单元实现。幸运的是,赛灵思以及其他芯片供应商正在芯片本身之中提供这些功能。通过利用其中的部分硬件功能,我们可以从软件角度保证对这些不同环境的隔离。

通信

硬件在实现隔离方面已经有了长足的进步,但某些领域必须通过软件才能实现(见图12):

● 缓存验证:地址、大小、权限等缓存参数必须先验证才能供安全域使用,包括检查缓存边界和丢弃超出有效范围的任意缓存。缓存验证必须与合适的错误响应配对使用,供用户了解系统交互以检测恶意活动。

● 中断泛洪验证:非安全环境有可能通过中断对通信信道造成泛洪攻击。如果不加以特别处理,此意外负载可能会与系统的时间隔离要求发生冲突。通常需要实施相应机制来抑制来自非安全端的过量中断,或是在安全端提供轮询模式支持。

这些功能非常重要,能够确保为混合安全关键系统提供必要的隔离。

image.png
图12:在混合安全关键系统中保持安全通信

图13是一个混合安全关键系统SOC的示例,其中在实时/安全内核上运行了符合AUTOSAR的关键系统,并在各种应用内核上运行了左侧的非关键系统。

image.png
图13.由多核框架实现的混合安全关键系统SOC

结语

异构多核SoC设计在提高算力的同时带来了挑战和机遇,例如,如何满足对混合安全关键系统组件和功能的需求。要符合ISO 26262和安全领域的新近更改,开发人员必须采用更多的安全内容,采纳新的技术,并努力减少故障。内存和内核级别的空间隔离非常重要,能够确保避免干扰,实现时间隔离、可调度性和端到端的通信保护。这需要广泛的工具支持、基于模型的转型以及系统驱动型设计方法。

作者:Mentor
来源:智车Robot
微信公众号:
汽车电子与软件.jpg

推荐阅读:

更多汽车电子干货请关注汽车电子与软件专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
5606
内容数
321
汽车电子与软件行业的相关技术报道及解读。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息