0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AUTOSAR架构下的WdgDriver WdgIf WdgM模块

Linux阅码场 来源:CSDN博客 作者:ZhouArchie 2021-09-09 11:17 次阅读

本文主要介绍AUTOSAR 架构下的WdgDriver WdgIf WdgM 模块,分析模块之间的依赖关系以及运行原理以帮助快速理解。本文以MPC5746R为主控芯片,以FS6500为SBC,DaVinci Configurator 为AUTOSAR工具链。

01

模块架构与依赖

1、模块介绍AUTOSAR架构中的WDG 一共分为三个部分,Wdg Driver Wdg Interface Wdg Manager。其中Wdg Driver分为 External watchdog driver 与 Internal watch driver。其中外部驱动由SBC提供功能,内部驱动由SWT模块提供功能。MPC5746R有三个SWT(Soft Watchdog Timer),SWT0 负责CPU0,SWT1负责CPU1,SWT2可以由CPU0 与CPU1访问。Wdg Driver 提供底层喂狗与设置看门狗模式的驱动函数,由WdgIf抽象成Wdg Device。WdgM获取WdgIf的抽象数据得到底层的配置数据与驱动接口函数。WdgM一共支持三种形式的看门狗检查方式。

1.AliveSpuervision

2.DeadlineSupervision

3. LogicalSupervision。AliveSpuervision提供一般的喂狗服务,即监控周期性程序是否能正常执行,保证程序处于Alive状态。DeadlineSupervision提供监督软件在两个状态之间的转换时间。LogicalSupervision提供监督软件执行顺序的正确性。

根据不同的检查方式,WdgM可以抽象出不同的CheckPoint,Rte层可以通过函数WdgM_CheckpointReached()来通知WdgM程序正在正确运行。2、模块交互与依赖看门狗模块由WdgM统一管理后对外,这里只围绕WdgM模块分析与其他模块的依赖性。

WdgIf模块,WdgM通过WdgIf接口更改WdgDriver的驱动模式,同时通知看门狗触发条件EcuM模块,管理WdgM的Initializing 和DeInitializing状态,在Sleep模式下出发硬件看门狗Mcu模块,在WdgM监控程序失败之后,可以通过Mcu的接口Mcu_PerformReset立即重新ECU单元Det模块,诊断开发中的错误Dem模块,WdgM 在侦测到错误之后,可以通过Dem模块触发EventSchM模块,WdgM 调用SchM模块接口WdgM_GlobalSuspendInterrupts进入临界区,WdgM_GlobalRestoreInterrupts退出临界区Rte模块,Rte通过WdgM_CheckpointReached()接口,监控SWC是否按照设计运行BswM模块,WdgM在监控Spuervised Entity失败后,可以通过BswM模块重启被监控程序OS模块

02

模块配置

1、Wdg Wdg Driver提供三种喂狗模式给WdgM管理,WdgM可以通过Wdg_SetMode接口设置看门狗运行模式WdgSettingFast 快速喂狗WdgSettingOff 关闭看门狗WdgSettingSlow 慢速喂狗Wdg External Trigger Counter :外部定时器,定时调用Cbk函数,检测喂狗条件并喂狗2、Wdg_SbcWdgGptChannelParameterRef :关联Gpt 模块,利用Cbk函数喂狗执行喂狗操作。Q :为何要用定时中断喂狗?

A : 一般理解,不在定时中断函数中喂狗是为了方式在主函数异常的情况,中断服务函数还能正常执行,这样喂狗起不到真正的作用。在AUTOSAR中为何在SBC 外部看门狗采用这种方式,因为 Wdg_30_Sbc_SetTriggerCondition 函数只是负责根据配置调整看门狗喂狗的时机,然后Gpt的Cbk函数会在这个时间到达的同时执行喂狗操作。如果,MainFunction没有及时的设置看门狗触发条件,Cbk会因为提前喂狗导致看门狗出错。截取Gpt回调函数如下:

3、WdgIf关联Wdg Driver驱动函数,与WdgM直接通过函数接口关联,因此WdgIf没有Lcfg文件。关联的关键函数如下

4、WdgMWdgMDemEventParameterRefs :关联Dem模块,在WdgM模块出错时可以Event的方式记录下来。WdgMMode :1)WdgMAliveSupervision :激活监控模式2 ) WdgMDeadlineSupervision :截止监控模式3)WdgMLocalStatusParams :逻辑监控模式4)WdgMSupervisedEntity :监控实体WdgMWatchdog ::管理的Wdg Device,需要关联WdgIf 的Device,通过配置的WdgM_ConfigSet关联不同的Device,可以实现不同的Wdg Device关联不同的Core。1.、关联WdgIf Device

2、关联Trigger 的Device

3、关联Core

3

源码分析

WdgIf 有两个对外接口:Std_ReturnType WdgIf_SetMode(uint8 DeviceIndex, WdgIf_ModeType WdgMode ) void WdgIf_SetTriggerCondition( uint8 DeviceIndex, uint16 Timeout )都是通过DeviceIndex 来确定所属的驱动列表,WdgM模块会通过所管理的Device数量来轮询调用接口截取一段WdgM_Init的代码说明:

1、内部狗与外部狗的区别WdgM对外部狗与内部狗的管理方式相同,都是通过SetTriggerCondition的方式设置,在通过关联的Gpt模块的Ckb函数来实现喂狗。但是两者在内部实现方式不一致。内部狗通过定时器完成计数,每次触发中断都会关闭定时器,需要SetMode重新开启然后继续计数,最后在Cbk中完成喂狗。设置运行模式,开启定时器

设置触发条件,写入计数值

Gpt 回调函数检测喂狗条件,并喂狗

2、CheckpointWdgM 提供了三种对SupervisedEntity的方式1. Alive 2. Deadline 3. ProgrameFlowWdgM通过接口函数WdgM_CheckpointReached 来表示SpuervisedEntityes的Checkpoint到达,函数接口的详细描述如下。Std_ReturnType WdgM_CheckpointReached( WdgM_SupervisedEntityIdType SEID, WdgM_CheckpointIdType CheckpointID );

04

多核的WdgM管理

WdgM支持多核,每个内核互不干扰,每个Core下面都关联了单独的SupervisedEntityes, 每个Core都需要单独单独调用WdgM_MainFunction。1.获取CoreId,根据CoreId获取配置指针

2. 更新WdgM节拍数 WdgM提供三种更新节拍数的方式 1. WDGM_INTERNAL_SOFTWARE_TICK , 通过MainFunction调度跟新节拍 2. WDGM_OS_COUNTER ,根据OS节拍数跟新WdgM节拍 3. WDGM_EXTERNAL_TICK ,根据接口WdgM_UpdateTickCounter更新节拍

3. 更新SpuervisedEntityes的状态

4. 根据Global Spuervised Entityes的状态喂狗

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    446

    文章

    47705

    浏览量

    408871
  • 模块
    +关注

    关注

    7

    文章

    2473

    浏览量

    46478
  • 看门狗
    +关注

    关注

    10

    文章

    540

    浏览量

    70235

原文标题:AUTOSAR 架构下看门狗的理解

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AUTOSAR架构中复杂驱动设计

    复杂驱动(Complex Driver,CDD)是一种不受 AUTOSAR 标准化约束的软件实体,它可以通过 AUTOSAR 接口和/或基础软件模块 API 进行访问 AUTOSAR
    的头像 发表于 12-21 10:13 851次阅读
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>架构</b>中复杂驱动设计

    分析Autosar架构下的NVM源码

    Autosar(Automotive Open System Architecture)是一种用于汽车电子系统开发的开放式架构标准,旨在提供一种用于构建可靠、安全的分布式系统的框架。其中,NVM
    的头像 发表于 12-08 13:56 513次阅读

    复杂驱动如何将现有的或新的概念引入AUTOSAR软件架构中的?

    复杂驱动(Complex Driver,CDD)是一种不受 AUTOSAR 标准化约束的软件实体,它可以通过 AUTOSAR 接口和/或基础软件模块 API 进行访问 AUTOSAR
    的头像 发表于 11-22 10:57 466次阅读
    复杂驱动如何将现有的或新的概念引入<b class='flag-5'>AUTOSAR</b>软件<b class='flag-5'>架构</b>中的?

    AUTOSAR架构下的多核通信介绍

    随着汽车ECU迅速的往域控制器方向发展,ECU要处理的任务越来越多,单核CPU的负载越来越大,多核ECU势在必行。AUTOSAR架构下OS支持多核处理,本系列文章将详细介绍AUTOSAR架构
    的头像 发表于 11-13 09:24 743次阅读
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>架构</b>下的多核通信介绍

    Autosar硬件安全模块HSM的使用分析

    随着软件日益复杂,并且车载系统和传感器数量稳步增加,车内系统的通讯成几何增长,必须加强密码保护。这种保护可以通过经典的实时汽车开放系统架构AUTOSAR) 来实现。即便在资源稀缺的情况下,安装合适固件的硬件安全模块(HSM)也
    发表于 10-30 10:15 324次阅读
    <b class='flag-5'>Autosar</b>硬件安全<b class='flag-5'>模块</b>HSM的使用分析

    AUTOSAR软件开发流程简介

    软件功能和性能要求。这包括确定软件组件、接口和模块的功能和规格要求。 架构设计:在这个阶段,根据需求分析的结果,设计AUTOSAR软件的整体架构。这包括定义软件组件的功能和接口,以及确
    的头像 发表于 10-27 15:55 1676次阅读
    <b class='flag-5'>AUTOSAR</b>软件开发流程简介

    AUTOSAR经典平台介绍

    经典平台(AUTOSAR CP) AUTOSAR经典平台(AUTOSAR CP)是AUTOSAR软件架构的一种实现,旨在提供一种标准化的方法
    的头像 发表于 10-27 15:30 901次阅读
    <b class='flag-5'>AUTOSAR</b>经典平台介绍

    AUTOSAR架构自适应平台

    AUTOSAR架构的目标是实现汽车电子系统的模块化、可重用和可扩展,以提高开发效率和系统的可靠性。 AUTOSAR架构由三个主要的层次组成
    的头像 发表于 10-27 15:23 838次阅读
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>架构</b>自适应平台

    基于Tricore芯片的AUTOSAR架构下的多核启动

    随着汽车ECU迅速的往域控制器方向发展,ECU要出来任务越来越多,单核CPU的负载越来越大,多核ECU势在必行。AUTOSAR架构下OS支持多核处理,本系列文章将详细介绍AUTOSAR架构
    的头像 发表于 10-23 10:15 1148次阅读
    基于Tricore芯片的<b class='flag-5'>AUTOSAR</b><b class='flag-5'>架构</b>下的多核启动

    理一理AUTOSAR架构下的唤醒源事件

    最近的项目负责网络管理部分,网路唤醒和ECU系统的休眠关系紧密,对系统的唤醒源事件感觉理解的不是很透彻,今天就来理一理AUTOSAR架构下的唤醒源事件。
    的头像 发表于 07-14 09:11 1545次阅读
    理一理<b class='flag-5'>AUTOSAR</b><b class='flag-5'>架构</b>下的唤醒源事件

    AUTOSAR是什么?AUTOSAR软件架构简介

    AUTOSAR的全称是AUTomotive Open System Architecture,直译为汽车开放系统架构
    的头像 发表于 07-08 17:26 9671次阅读
    <b class='flag-5'>AUTOSAR</b>是什么?<b class='flag-5'>AUTOSAR</b>软件<b class='flag-5'>架构</b>简介

    一文入门AUTOSAR OS

    Autosar Os 在Autosar 框架中上至RTE 下至驱动,中间可以和BSW 基础模块进行交互。是整个autosar 框架下最重要的组成部分。
    的头像 发表于 06-29 10:34 2519次阅读
    一文入门<b class='flag-5'>AUTOSAR</b> OS

    AUTOSARWDGM介绍

    现代 ECU 包含高度模块化的嵌入式软件,该软件可以由非可信和可信软件组件组成,这些组件执行不同 ASIL 级别的功能。在这种情况下,我们有两种不同的方法。
    的头像 发表于 06-28 10:51 2218次阅读
    <b class='flag-5'>AUTOSAR</b>之<b class='flag-5'>WDGM</b>介绍

    AUTOSAR-MemIf的功能

    AUTOSAR架构图中可以看出,MemIf(Memory Abstraction Interface)模块位于Memory Hardware Abstraction。 
    的头像 发表于 05-26 16:35 742次阅读
    <b class='flag-5'>AUTOSAR</b>-MemIf的功能

    AUTOSAR的软件架构

    本文主要内容分为两章节。第一章节简要介绍了AUTOSAR的软件架构,设计理念以及方法论,对Classic Platform和Adaptive Platform做了简单的比较。第二章主要介绍了Adaptive Platform的特性。
    的头像 发表于 05-24 11:01 2645次阅读
    <b class='flag-5'>AUTOSAR</b>的软件<b class='flag-5'>架构</b>