AUTOSAR 架构下软件功能安全研究与应用_第1页
AUTOSAR 架构下软件功能安全研究与应用_第2页
AUTOSAR 架构下软件功能安全研究与应用_第3页
AUTOSAR 架构下软件功能安全研究与应用_第4页
AUTOSAR 架构下软件功能安全研究与应用_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目前基于CPAUTOSAR架构开发汽车电子软件是主流的主机厂和汽车电子控制器供应商最常见的一种开发方式。由于汽车电子控制器开发难度大,在开发的过程中必须遵循一定的开发和测试流程,目前汽车行业最重要的开发流程是ASPICE和ISO26262。ASPICE侧重于开发功能安全相关性不大的汽车电子控制器,而ISO26262作为标准的汽车电子控制器安全开发标准,对于车载电子控制器的安全开发流程做了严格的定义。ISO26262从系统设计、软硬件设计、测试、项目管理等方面提供了严格的流程和开发标准。在ISO26262中,和软件开发密切相关的主要有3大角度,分别是软件开发和测试流程、软件安全分析以及接口免于干扰的要求,软件安全机制的实施基于接口免于干扰的要求设计和实现。针对CPAUTOSAR架构下的软件功能安全的开发必须要明确ISO26262内对软件功能安全的要求,基于ISO26262的要求,将CPAUTOSAR提供的安全机制应用到汽车电子控制器软件开发中。在CPAUTOSAR的软件安全机制中,主要提供了内存保护(MemoryProtection)、时间保护(WdgMandOSTimingProtection)、数据一致性(E2E算法)等安全机制来实现ISO26262对接口免于干扰的要求。最终基于AUTOSAR的安全机制得出应用结论,用于安全机制在项目中的实施。本文以ISO26262中对软件开发的安全要求为基础,通过识别和选择CPAUTOSAR内提供的安全机制,并且对安全机制进行应用研究和测试,从而针对CPAUTOSAR下的软件功能安全开发提供一套完整的方案。整体设计架构如图1所示。图1整体设计架构图1CPAUTOSAR介绍汽车电子开发不像其他产品的开发,有着自己一套严格的规范和流程,在汽车行业主要是V模型,它定义了汽车电子产品开发一套从需求到软硬件设计开发再到最终测试交付的完整体系。AUTOSAR(AutomotiveOpenSystemArchitecture,汽车开放系统架构)是主流汽车OEM、供应商、芯片企业等制定的一套软硬件可以分离复用、应用算法与底层驱动分离、下层的芯片企业与上层OEM或者ECU供应商基于同样的规范,独立并行开发的软件开发体系。AUTOSAR标准严格遵循了V模型的软件开发流程,在AUTOSAR标准中定义了从软件需求(通用全面的需求)到架构设计的完整体系,根据AUTOSAR规范就可以开发满足这些规范的代码程序。在AUTOSAR架构中主要分为3层架构,分别是APP(ApplicationLayer,应用层)、RTE(RunningEnvironment,运行环境)、BSW(BasicSoftware,基础软件层)。整个AUTOSAR架构分层如图2所示。图2AUTOSAR架构分层图APP层主要是实现特定ECU功能的逻辑算法,这一层也是CPAUTOSAR架构里定义的各个OEM和供应商在实现上存在竞争的一层。一般在APP层会设计出ECU中各个软件单元模块的上层应用架构,而这部分架构并不是一个统一的CPAUTOSAR架构,OEM和供应商可以根据自己的应用层逻辑去设计自己上层应用需要的SWC数目、各个SWC模块之间的数据流和控制流。在CPAUTOSAR架构中,各个APP的调度、数据交互等通过RTE实现。RTE提供基础的通信服务,支持SWC之间和SWC到BSW的通信(包括ECU内部的程序调用、ECU外部的总线通信等情况)。RTE同时实现对APP层SWC的函数调度。RTE使应用层的软件架构完全脱离于具体的单个ECU和BSW。BSW层是整个CPAUTOSAR的核心,内部按架构上的分层主要分为微控制器抽象、复杂驱动层、ECU抽象层、服务层4大部分。各部分的作用如下。1)微控制器抽象层(MicrocontrollerAbstractionLayer)是在BSW的最底层,包含了访问微控制器的驱动。微控制器抽象层使上层软件与微控制器相分离,以便应用的移植。2)复杂驱动(ComplexDrivers)可以实现应用层通过RTE直接访问硬件,也可以利用复杂驱动封装已有的非分层的软件,以便向CPAUTOSAR软件架构逐步实施。3)ECU抽象层(ECUAbstractionLayer)封装了微控制器层以及外围设备的驱动,将微控制器内外设的访问进行统一,使上层软件应用与ECU硬件相剥离。4)服务层(ServiceLayer)位于BSW的最上面,将各种基础软件功能以服务的形式封装起来,供应用层调用。服务层包括RTOS、通信与网络管理、内存管理、诊断服务、状态管理、程序监控等服务。2ISO26262对软件安全的要求ISO26262是从电子、电气及可编程器件功能安全基本标准IEC61508派生出来的,主要定位在汽车行业中特定的电气器件、电子设备、可编程电子器件等专门用于汽车领域的部件,旨在提高汽车电子、电气产品功能安全的国际标准。在汽车电子软件功能安全开发过程中,主要关注ISO26262的Part6的要求。针对整个ISO26262-6对软件开发的要求,在图1中已经展示,即软件开发测试流程、接口免于干扰以及安全分析。软件和测试流程的要求需要流程管理进行控制,安全分析主要借助一些专业工具进行分析,而对于接口免于干扰的设计在ISO26262中提出了明确的要求,而这些接口免于干扰的设计需要在软件开发中提供相关的安全机制来实现。根据ISO26262的接口免于干扰的要求,主要从TimingandExecution、Memory、ExchangeofInformation这3个方面进行分析。2.1TimingandExecutionISO26262中对时间和执行时序相关的要求做了明确的定义,主要从图3列出的5个方面进行设计和评估。Timing和Execution的分析主要是防止执行的函数被阻塞的时间过长;防止函数执行超过一定的时间;防止函数调度过快;防止执行时间分配不正确;元素接口等元素不同步。图3TimingandExecution分析内容2.2MemoryISO26262中对Memory相关要求做了明确的定义,主要从图4列出的5个方面进行设计和评估。Memory的分析主要是防止数据在内存中破坏;保证数据访问的一致性;防止内存栈空间的上溢出和下溢出;防止数据读写内存地址越界。图4Memory分析内容2.3ExchangeofInformationISO26262中对ExchangeofInformation相关的要求做了明确的定义,主要从图5列出的5个方面进行设计和评估。ExchangeofInformation的分析主要是防止数据错误;防止数据重复操作;防止数据丢失;防止数据中插入其他数据;防止数据伪造或者数据地址篡改;防止数据操作序列出错;防止数据一发多收出错;发送的数据被部分接收;数据操作被阻塞。图5ExchangeofInformation分析内容3CPAUTOSAR安全机制CPAUTOSAR中根据ISO26262的安全相关需求(TimingandExecution、Memory、ExchangeofInformation),提出了对应的安全机制,即通过时间保护(WdgMandOSTimingProtection)、内存保护(MemoryProtection)、数据一致性(E2E算法)等安全机制来实现。3.1TimingandExecution的安全机制针对功能安全对TimingandExecution的安全机制,AUTOSAR中主要依靠2个主要的功能来保证,分别是AURTOSAR的WdgM协议栈以及OS的TimingProtection。每个被监控的函数称之为一个SE(SupervisorEntity)。在WdgM整个协议栈中,主要提供了3种监控手段,具体的监控作用内容如下。1)AliveSupervisor监控:周期函数在特定的时间内调用不能频率过快或者过慢。SE的WdgM_CheckpointReached每调用一次,对应的Checkpoint的AliveCounter就会加1,主函数在定义的监控周期内会去检测AliveCounter的数目。只有AliveCounter在该周期内属于定义的次数范围才认为该SE处于正常的模式,如果AliveCounter小于定义的调度次数最小值则认为所监控的SE执行太慢,相反AliveCounter大于定义的调度次数最大值,则认为SE执行得太快。2)DeadlineSupervisor监控:监控2个函数调用间隔的时间限制。DeadlineSupervision主要用于监控非周期运行的SE,主要定义了某个事件发生后,在特定的时间窗内去执行相应SE的Checkpoint,一般认为在事件发生后在定义的最短时间和最长时间内去执行相应的Checkpoint,认为程序属于正常的执行,如果在事件发生后执行相关SE的Checkpoint时间小于最小的时间,或者大于最大的时间去执行SE的Checkpoint都认为是错误的。3)LogicSupervisor监控:监控程序按照设计的调用逻辑进行调用。主要用于监控程序是否按照正确的逻辑转换条件去执行。对于每一个LogicalSupervision都有一个调用关系图来表示SE中各个Checkpoint点在控制流上的转换关系。整个WdgM功能安全监控机制如图6所示。图6WdgM功能安全监控机制在WdgM中,每一个SE都有一个自己的LocalStatus来表示自己SE的Alive/Deadline/LogicSupervision的状态,同时WdgM还有一个全局的GlobalStatus来表示整个监控功能的状态。在WdgM初始化完成后,每个SE的各个子功能监控的LocalStatus以及GlobalStatus的状态都是OK的状态。每个SE的LocalStatus以及GlobalStatus都包含了OK、DEACTIVATED、FAILED、EXPIRED状态。在每个SE的功能进行监控的时候,会根据监控结果在MainFunction中设置对应的LocalStatus。其中AliveSupervision有单独的状态设置,而Deadline和LogicSupervision共用一个LocalStatus。在使用时,可以根据每个SE的3个监控设计的条件在MainFunction中设置对应的状态,同时MainFunction根据定义的所有SE的状态输出对应的GlobalStatus,如果最终的GlobalStatus出现错误,User可以认为系统的时间或者函数的调度功能已经导致程序出现了Error,那么可以去触发相应的错误处理以及故障反应。除了WdgM对程序的执行以及逻辑进行时序的监控之外,在Task执行的时候,可以通过OS的TimingProtection功能实现对函数调度以及Task被Block的时间监控。相比于WdgM的监控,OSTimingProtection的函数监控更侧重于非功能安全的任务Task调度以及被Block时间监控。OSTimingProtection功能安全监控机制如图7所示。图7OSTimingProtection功能安全监控机制图7中绿色的是低优先级的Task,红色的是高优先级的Task。在实时抢占的系统中,低优先级的Task可以被高优先级的Task抢占。OSTimingProtection主要考虑低优先级的Task在被高优先级的Task抢占的情况下执行时间不能超过图中LOWDeadline定义的时间;保证被中断或者高优先级TaskBlock的时间不能太长;保证LOWInter-AriveTime的时间不能调度太快。在OSTimingProtection中,当达到上述定义的错误时,可以选择相应的安全反应(Reset操作、结束函数调用等)来保证程序的正常运行。3.2MemoryProtection安全机制在AUTOSAR中为了保证数据访问过程中不能相互篡改,减少低功能安全等级或者QM的数据影响到功能安全的数据,需要增加内存隔离和内存保护。在AUTOSAR提供了基于Application级别的功能安全内存保护机制,通过将不同的软件组件分配到不同的Application中实现内存访问的隔离和内存保护。MemoryProtection功能安全监控机制如图8所示。图8MemoryProtection功能安全监控机制根据功能安全的目标,将模块划分为QM、ASIL-B、ASIL-D。对于每个等级的模块组件按照功能安全等级进行划分。需要在内存中定义QM、ASIL-B、ASIL-D的3个等级的RAM和ROM空间,并按照图8的模块将模块内的变量和代码分别映射到QM、ASIL-B、ASIL-D的3个等级的RAM和ROM空间,同时结合图8中灰色的图框[硬件MPU(MemoryProtectionUnit)功能]实现对内存的保护。一旦出现低ASIL等级、QM函数或变量操作到高功能安全等级的,将会触发硬件MPU保护措施,并根据实际应用进行错误处理。基于硬件MPU保护的实现逻辑如图9所示。图9基于硬件MPU保护的实现逻辑如图9所示,内存保护机制是基于OS进行管理的,因此在实现内存保护机制中必须依赖于OS的运行。在集成OS操作系统中程序运行在初始化阶段会根据需要将内存保护的地址设置成默认值,或者将芯片全部内存设置为都可以访问。在OS使用的嵌入式软件中会存在多个Application,每个Application含有多个Task,OS在运行的时候可以通过调度切换Application和Task的执行,因此OS执行过程中会实时对Application和Task进行判断。当检测到正在运行的Application或者Task存在内存保护机制后根据设计中定义好的地址范围操作MPU硬件的RAM和ROM地址,将该Application或者Task访问的范围写入到MPU的寄存器,一旦程序接下来运行的地址超过了定义的范围,MPU硬件单元便会触发硬件错误,软件集成者便可以捕获该错误,并设计错误回调函数进行错误处理。3.3ExchangeofInformation安全机制针对功能安全提出的对数据传输和交互过程中出现的要求,在AUTOSAR中提供了E2E(EndtoEnd)相关的算法来保证数据在ECU与ECU之间或者ECU内部之间的数据传输的一致性,图10展示了E2E保证数据传输一致性的原理。图10ExchangeofInformation功能安全监控机制AUTOSARE2ELib提供了多种数据一致性保护的算法,主要包括以下几个方面。CRCLib:通过填充CRC算法实现;SequenceCounterincremented:发送方增加,接收方Check是否增加;AliveCounter:发送方增加,接收方Check变化,不Check增加;DataID:每个IPDUGroup表明特定的安全元素,特定的ECU信息,DataID也会用于CRC

计算;TimeoutDetection:接收方检测数据通信超时。图10中3种AUTOSAR提供的数据一致性实现的方案采用了E2EProtectionWrap(每一个需要保护的数据都会使用一个单独的E2E接口函数,同时保护数据的传输必须基于结构体进行)。其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论