CP AUTOSAR 安全Timing机制简介

汽车电子与软件 2021-04-11 00:00

前言

在汽车电子ECU开发中,有一个不得不提的概念就是功能安全,对于从事汽车电子软件开发的工程师而言,功能安全等级的高低决定了设计开发ECU的水平,同时对于功能安全开发的标准ISO26262,也从各个阶段定义了汽车电子ECU开发的规范,今天所介绍的模块是一个和功能安全密切相关的模块,是ISO26262中对功能安全中的Timing的监控保护机制相关的模块。


1、ISO26262对Timing的要求


在ISO26262-6:2018的附录D中对软件层面的Freedom from interference提出了三点要求,分别是Memory、Timing和Exchange Of Information。本文重点对Timing相关的保护机制做介绍,对于Timing的要求提出了如下关注要点:
  • blocking of execution
  • deadlocks
  • livelocks
  • incorrect allocation of execution time
  • incorrect synchronization between software elements

针对ISO26262提出的对Timing的监控和保护,在CP AUTOSAR中主要依靠两个主要的功能块实现。分别是OS的SC4等级的时间保护机制,还有就是利用WdgM整个功能站实现对时间的监控。


其中OS的时间保护主要对Task级别进行时间保护,对Task执行的时间,嵌套中断的时间进行分析和保护,这块的功能后期会在OS的介绍中体现。

本篇主要介绍WdgM对时间的监控保护机制。WdgM对时间的保护和监控主要从Alive Supervisor、Deadline Supervisor以及Program Flow Supervisor三个层次实现时间的保护和监控。

2、WdgM功能Overview


WdgM主要用作程序执行中和时间相关的监控,在CP AUTOSAR的架构中对监控的实体叫做Supervised Entities(SE),检测的SE特定的位置叫做Checkpoint。

监控的概念主要体现在三个方面,分别是监控特定SE的执行频率,避免执行频率过快和过慢;监控两个Checkpoint的Deadline以及对特定的程序流进行监控(多个Checkpoint的执行逻辑)。

W dgM监控的SE可以是和功能安全相关的Function,也可以是一个SWC或者CDD甚至一个BSW模块。对于CP AUTOSAR中提供的监控模块主要包括WdgM、WdgIf、Internal Wdg Driver、External Wdg Driver。

根据系统定义和软件架构的设计可以选择对应的内外部驱动实现对SE的监控,下图展示了WdgM监控的整个逻辑,在相关的SWC或者CDD中设置对应的Checkpoint,然后周期的触发WdgM的服务,从而对程序流监控,而在监控出现时间的偏差则会触发Wdg Driver触发对应的Reaction。


CP AUTOSAR ECU中的OS是基于OSEK操作系统而扩展的。所有扩展功能被分配到不同的操作系统扩展类型中,采用SC1-SC4表示,其中,SC1表示只使用调度表功能;SC2包含了调度表和时间保护;SC3包含了内存保护和调度表;SC4包含了调度表/时间保护和内存保护。同时操作系统也可以支持多核处理器。

3、Alive Supervision


Alive Supervision主要用于对周期的函数或者任务做监控,主要是避免周期的函数或者任务执行频率太快或者太慢。在Alive Supervision中主要包含下面的配置参数:


WdgMExpectedAliveInidications:
主要用于在一次Checkpoint中定义SE期望通知的次数

WdgMSupervisionReferenceCycle:
主要用于定义SE参考的周期

WdgMMinMargin、WdgMMaxMargin:
分别定义SE的Checkpoint执行次数的上下限

SE的WdgM_CheckpointReached每调用一次,对应的Checkpoint的Alive Counter就会加1,主函数在WdgMSupervisionReferenceCycle会去检测Alive Counter的数目。

只有Alive Counter在该周期内属于(Expected – Min Margin; Expected + Max Margin)范围就认为该SE处于正常的模式,如果Alive Counter小于(Expected – Min Margin)则认为所监控的SE执行太慢,相反Alive Counter大于(Expected + Max Margin),则认为SE执行的太快。

4、Deadline Supervision


Deadline Supervision主要用于监控非周期运行的SE,主要定义了某个事件发生后,在特定的时间窗内去执行相应的SE的Checkpoint,一般认为在事件发生后在定义的最短时间和最长时间内去执行相应的Checkpoint,认为程序属于正常的执行,如果在事件发生后执行相关SE的Checkpoint时间小于最小的时间,或者大于最大的时间去执行SE的Checkpoint都认为是错误的。在定义中主要配置下面的参数:


WdgMDeadlineStartRef:
Deadline Supervision开始的参考事件

WdgM_CheckpointReached:
最终Deadline Supervision监控的Checkpoint

WdgMDeadlineMin:
从Ref事件到WdgM_CheckpointReached允许的最短时间,如果短于该时间,认为是错误

WdgMDeadlineMax:
从Ref事件到WdgM_CheckpointReached允许的最长时间,长于该时间也认为是错误的

5、Logical Supervision


Logical Supervision也叫做程序流监控,主要用于监控程序是否按照正确的逻辑转换条件去执行。对于每一个Logical Supervision都有一个Graph来表示SE中各个Checkpoint点在控制流上的转换关系。下面有一段SE中简单的程序流如下:
CP0_0 i = 0;CP0_1 while(i < n)      {CP0_2   if (a[i] < b[i])CP0_3      a[i] = b[i];CP0_4   else a[i] = 0;CP0_5   i++;CP0_6 }

对于这段简单的程序流设置了CP0_0到CP0_6的程序流监控,可以定义一个转换Graph来实现对该代码程序流以及转换关系的监控,如下所示:


在逻辑监控中主要包含两大类Graph,分别是内部Graph和外部Graph。其中在内部的Graph中SE的所有Checkpoint各个连接和转换都属于一个Graph,通过Graph中的内部转换实现对于一个SE来说,可以有0个或者一个内部的Graph;对于外部的Graph而言,至少有两个Checkpoint属于不同的SE,Checkpoint的连接和转换通过外部转换实现。

6、Local Status & Global Status


在WdgM中每一个SE都有一个自己的Local Status来表示自己SE的Alive/Deadline/Logic Supervision的状态,同时WdgM还有一个全局的Global Status来表示整个监控功能的状态。

在WdgM初始化完成后每个SE的各个子功能监控的Local Status以及Global Status的状态都是OK的状态。每个SE的Local Status以及Global Status都包含了OK、DEACTIVATED、FAILED、EXPIRED状态。

在每个SE的功能做监控的时候,会根据监控的结果在MainFunction中设置对应的Local Status。其中Alive Supervision有单独的状态设置,而Deadline和Logic Supervision共用一个Local Status。

在使用的时候可以根据每个SE的三个监控设计的条件在MainFunction中会设置对应的状态,同时MainFunction根据定义的所有SE的状态输出对应的Global Status,如果最终的Global Status出现错误的时候,User可以认为系统的时间或者函数的调度功能已经导致程序出现了Error,那么可以去触发相应的错误处理以及故障反应.

下图展示了整个WdgM的状态管理,对于具体的WdgM的状态切换可以参考CP AUTOSAR WdgM的标准。


7、Error Handling And Reaction


对于WdgM对时间以及程序执行的相关错误处理主要包括以下几个方面;
① 在检测到Global Status出现错误的时候,可以通过回调函数通知特定的SWC模块或者CDD模块,让上层的应用模块进行恢复机制的处理。

② 将错误的状态报告DEM,通过DEM进行统一的故障管理和处理

③ 重新复位对应的函数以及相关的Task所在的Partition,或者直接Shutdown对应的Partition.

④ 调用错误处理函数,将ECU进行软件复位

⑤ 通过外部Wdg模块进行MCU复位,切断MCU的供电。
    对于具体的错误处理逻辑要结合整体的功能安全目标出发反应即可

8、Aurix Tricore Wdg Timeout监控实现


除了上面的时间相关的监控,程序执行中的Timeout也是一个重要的监控。在Aurix Tricore的芯片中有四个Wdg模块,其中一个是安全看门狗,然后三个核每一个核各有一个自己的Wdg。

通常在使用的时候可以将每个核的Wdg用于每个核的WdgM来监控对应的程序是否Timeout,可以采用一个外部的Wdg来监控整个MCU的运行。同时该芯片还有专门的安全管理模块SMU用来管理安全相关的功能,根据使用的Wdg以及关联到对应的SMU的Alarm来实现对时间和程序逻辑执行的安全管理以及安全反应。

在发生Timeout的时候可以在SMU进行恢复也可以调用相关的函数或者中断接口通知User,最终如果恢复不成功直接可以软件复位,同时也可以通过相应的引脚(eg:Error Pin)关联相关的外部ASIC芯片,在Timeout恢复失败后执行MCU断电,如下所示:


本期分享就到这里,欢迎大家一起交流学习,如果有不合理的地方也请大家指正,愿和大家一起学习进步,一步步做好汽车电子软件开发。


END

投稿合作:18918250345(微信)


“ 转发 ”  “ 在看 ” 支持一下吧 END


汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-12 10:13 40浏览
  • RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景。RK3506核心板主要分为三个型号,各型号间的区别如下图:​图 1  RK3506核心板处理器型号场景1:显示HMIRK3506核心板显示接口支持RGB、MIPI、QSPI输出,且支持2D图形加速,轻松运行QT、LVGL等GUI,最快3S内开
    万象奥科 2024-12-11 15:42 88浏览
  • 本文介绍瑞芯微RK3588主板/开发板Android12系统下,APK签名文件生成方法。触觉智能EVB3588开发板演示,搭载了瑞芯微RK3588芯片,该开发板是核心板加底板设计,音视频接口、通信接口等各类接口一应俱全,可帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。工具准备下载Keytool-ImportKeyPair工具在源码:build/target/product/security/系统初始签名文件目录中,将以下三个文件拷贝出来:platform.pem;platform.
    Industio_触觉智能 2024-12-12 10:27 62浏览
  • 应用环境与极具挑战性的测试需求在服务器制造领域里,系统整合测试(System Integration Test;SIT)是确保产品质量和性能的关键步骤。随着服务器系统的复杂性不断提升,包括:多种硬件组件、操作系统、虚拟化平台以及各种应用程序和服务的整合,服务器制造商面临着更有挑战性的测试需求。这些挑战主要体现在以下五个方面:1. 硬件和软件的高度整合:现代服务器通常包括多个处理器、内存模块、储存设备和网络接口。这些硬件组件必须与操作系统及应用软件无缝整合。SIT测试可以帮助制造商确保这些不同组件
    百佳泰测试实验室 2024-12-12 17:45 53浏览
  • 时源芯微——RE超标整机定位与解决详细流程一、 初步测量与问题确认使用专业的电磁辐射测量设备,对整机的辐射发射进行精确测量。确认是否存在RE超标问题,并记录超标频段和幅度。二、电缆检查与处理若存在信号电缆:步骤一:拔掉所有信号电缆,仅保留电源线,再次测量整机的辐射发射。若测量合格:判定问题出在信号电缆上,可能是电缆的共模电流导致。逐一连接信号电缆,每次连接后测量,定位具体哪根电缆或接口导致超标。对问题电缆进行处理,如加共模扼流圈、滤波器,或优化电缆布局和屏蔽。重新连接所有电缆,再次测量
    时源芯微 2024-12-11 17:11 109浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-11 17:58 86浏览
  • 一、SAE J1939协议概述SAE J1939协议是由美国汽车工程师协会(SAE,Society of Automotive Engineers)定义的一种用于重型车辆和工业设备中的通信协议,主要应用于车辆和设备之间的实时数据交换。J1939基于CAN(Controller Area Network)总线技术,使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps,用于车载电子控制单元(ECU)之间的通信和控制。小北同学在之前也对J1939协议做过扫盲科普【科普系列】SAE J
    北汇信息 2024-12-11 15:45 112浏览
  • 在智能化技术快速发展当下,图像数据的采集与处理逐渐成为自动驾驶、工业等领域的一项关键技术。高质量的图像数据采集与算法集成测试都是确保系统性能和可靠性的关键。随着技术的不断进步,对于图像数据的采集、处理和分析的需求日益增长,这不仅要求我们拥有高性能的相机硬件,还要求我们能够高效地集成和测试各种算法。我们探索了一种多源相机数据采集与算法集成测试方案,能够满足不同应用场景下对图像采集和算法测试的多样化需求,确保数据的准确性和算法的有效性。一、相机组成相机一般由镜头(Lens),图像传感器(Image
    康谋 2024-12-12 09:45 75浏览
  • 首先在gitee上打个广告:ad5d2f3b647444a88b6f7f9555fd681f.mp4 · 丙丁先生/香河英茂工作室中国 - Gitee.com丙丁先生 (mr-bingding) - Gitee.com2024年对我来说是充满挑战和机遇的一年。在这一年里,我不仅进行了多个开发板的测评,还尝试了多种不同的项目和技术。今天,我想分享一下这一年的故事,希望能给大家带来一些启发和乐趣。 年初的时候,我开始对各种开发板进行测评。从STM32WBA55CG到瑞萨、平头哥和平海的开发板,我都
    丙丁先生 2024-12-11 20:14 73浏览
  • 铁氧体芯片是一种基于铁氧体磁性材料制成的芯片,在通信、传感器、储能等领域有着广泛的应用。铁氧体磁性材料能够通过外加磁场调控其导电性质和反射性质,因此在信号处理和传感器技术方面有着独特的优势。以下是对半导体划片机在铁氧体划切领域应用的详细阐述: 一、半导体划片机的工作原理与特点半导体划片机是一种使用刀片或通过激光等方式高精度切割被加工物的装置,是半导体后道封测中晶圆切割和WLP切割环节的关键设备。它结合了水气电、空气静压高速主轴、精密机械传动、传感器及自动化控制等先进技术,具有高精度、高
    博捷芯划片机 2024-12-12 09:16 85浏览
  • 全球智能电视时代来临这年头若是消费者想随意地从各个通路中选购电视时,不难发现目前市场上的产品都已是具有智能联网功能的智能电视了,可以宣告智能电视的普及时代已到临!Google从2021年开始大力推广Google TV(即原Android TV的升级版),其他各大品牌商也都跟进推出搭载Google TV操作系统的机种,除了Google TV外,LG、Samsung、Panasonic等大厂牌也开发出自家的智能电视平台,可以看出各家业者都一致地看好这块大饼。智能电视的Wi-Fi连线怎么消失了?智能电
    百佳泰测试实验室 2024-12-12 17:33 53浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦