知从木牛基础软件WDGM在功能安全中的应用
Watchdog,中文名为看门狗,就是为了实现在设备无人值守的情况下系统出现异常时能够自动完成系统复位操作保证整个功能的持续使用。
为什么看门狗是必须的?原因是运行在硬件世界中的软件会受到各种外界因素的影响,比如:汽车上使用的诸多零部件,鉴于汽车环境的恶劣,各类ECU中的软件均有可能遭受如外部电磁干扰,高温等环境因素的影响,从而导致程序“跑飞”或者“死机”现象,此时如果有看门狗的存在,便可以主动触发系统复位机制保证能够再次正常使用。
看门狗在使用时软件必须在规定的时间间隔内向其发送特定信号,这个行为被形象地称为"喂狗",以免watchdog记时超时引发系统重启。硬件看门狗一般是一块专门的芯片,它通过监控电路的电压和电流等指标来判断系统是否正常运行。在下图是NXP的一款SBC芯片,该芯片就提供了看门狗功能,在使用时需要MCU通过SPI进行看门狗初始化及喂狗操作:
在汽车电子系统中,功能安全(Functional Safety)的核心目标是通过系统化的设计和安全机制,防止因电子电气系统故障导致的人身伤害或财产损失。WdgM(Watchdog Manager) 作为 AUTOSAR 标准中的关键安全模块,其设计严格遵循 ISO 26262 标准,并通过多层次的监控、容错和恢复机制来满足不同 ASIL(Automotive Safety Integrity Level)等级的要求。
WdgM 里面主要部分是 Supervised Entity(SE) 和 CheckPoint(CP) 。
l SE :每一个 SE 可以有 Alive 、 deadline 、 Logical 三种形式的监督方式【 Logical Supervision 分为两种,同一个 SE 内部的程序流监督、不同 SE 内部的程序流监督】。一个 SE 可以是一个算法、一个函数、一个任务。
l Check Point :用于作为区分不同的监控方式,可以属于下面的一种或多种监控方式的类型
程序流监控:外部看门狗实现WdgM模块的Alive Supervision监控机制,用于监控周期性的Task;WdgM模块通过计算程序运行时检查点出现的个数,然后与期望值(配置信息)进行比较,如果超出容差范围,即视为违反程序流程, WdgM模块将会记录为检查点故障。
AEB模块Task的Alive Supervision举例:
WdgM的调用周期为20ms,AEB模块Task的周期为25ms,如图6.21所示, 配置监控周期为100ms,即:在5个WdgM_MainFunction区间,CheckPoint到达数量为3-5个为正常。 如果发生的次数不在3-5之间 ,WdgM模块将认为检测到AEB模块Task的周期异常,同时通过图6.20所示的喂狗数据流传输不喂狗请求给PMIC模块,PMIC模块停止喂狗, 等待看门狗喂狗超时(超时时间64ms*3)后,触发复位。
Deadline Supervision需要关注某段程序运行的时间,过长或过短都说明程序执行异常。抽象为监控两个 Check Point 之间运行的时间 。 具体算法如下 :在 WdgM 中配置Deadline Supervision的起始 Check Point、结束 Check Point、最小时间门限和最大时间门限 。 在运行到起始 Check Point 时启动Deadline Supervision, 获取系统时间, 在运行到结束 Check Point 时, 获取系统时间, 计算运行时间是否配置合理范围内。
注意 : 两个CP属于相同的SE,两个CP不能相同 。
Logical Supervision主要用于监控应用程序的运行顺序是否正确,包括各个 SE 本地的运行路径的检查,和 SE 之间的全局路径检查。
比如程序按照: 1 -> 2 -> 3 -> 4 的顺序运行。程序在运行至 1 时,检查是否为第一个应该运行到的点,运行至 2 时则检查前一个到达的 check point 点是否为 1 。依次检查相邻两个点之间的实际运行顺序与配置之间的运行顺序是否匹配。当程序以 1 -> 2 -> 4 的顺序运行时,在运行至 4 处会检查到程序出错,更改 Logical Supervison 的 SE 状态。
知从木牛配置工具基于最新ARTOP架构,支持最新AUTOSAR R21-11标准所提供的基础平台上,根据AUTOSAR开发方法中定义的ECU配置步骤,实现了从配置、验证到代码生成的ECU配置全流程的功能。主要优势可以总结为以下几个方面:配置、验证和代码生成全流程功能的实现,完整的实现了AUTOSAR开发方法中ECU配置阶段的开发要求。
下面将简单介绍一下使用ZC MuNiu进行WdgM模块配置的过程:
通过在WdgMMode界面可以添加Alive监控相关的监控实例。
在对应的监控实例配置页面下可以添加多个SE打卡点。
另外,在WdgMInternalTransition页面中可以设置打卡点的执行顺序,以此来实现逻辑监控功能。
在WdgMAliveSupervision0页面下,可以配置Alive监控需要的相关参数,例如监控周期、可容忍的打卡次数限制、监控目标等等。
在配置完所有功能后即可生成WdgM相关的配置代码。
知从木牛配置工具,给ECU控制器软件开发提供友好的人机界面。可以支持标准的AUTOSAR基础软件代码模块的配置,以及复杂驱动的配置界面开发。目前主要应用于如下场景:
Ø 知从木牛基础软件平台标准AUTOSAR模块配置
Ø 知从木牛基础软件平台复杂驱动模块配置
u SAFETY FRAME
u CRYPTO LIBRARY
u BCCIC
u SBC
Ø 同芯片企业合作,提供MCU MCAL 的配置工具