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

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

    关注

    454

    文章

    50689

    浏览量

    423016
  • 模块
    +关注

    关注

    7

    文章

    2692

    浏览量

    47425
  • 看门狗
    +关注

    关注

    10

    文章

    559

    浏览量

    70787

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

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

收藏 人收藏

    评论

    相关推荐

    AUTOSAR通信与网络安全 AUTOSAR通信在车辆中的应用

    架构合作伙伴计划,旨在创建并建立一个开放的标准化软件架构,以简化汽车电子控制单元(ECU)的开发和生产。 1. AUTOSAR通信概述 AUTOSAR定义了一个分层的软件
    的头像 发表于 12-17 15:06 131次阅读

    AUTOSAR通信实现中的常见问题

    AUTOSAR(Automotive Open System Architecture)汽车开放系统架构旨在实现汽车电子的软硬件分离,降低ECU软件开发的复杂度,提高软件可重用性。 一、通信协议栈
    的头像 发表于 12-17 15:03 146次阅读

    AUTOSAR中通信堆栈的配置 AUTOSAR通信模块测试方法

    AUTOSAR(AUTomotive Open System ARchitecture)是一个全球性的汽车软件架构合作伙伴计划,旨在创建并建立一个开放的标准化软件架构,以简化汽车电子控制单元(ECU
    的头像 发表于 12-17 15:01 143次阅读

    AUTOSAR通信框架的优势 AUTOSAR通信实例与应用场景

    AUTOSAR通信框架的优势 AUTOSAR(AUTomotive Open System ARchitecture)是一个全球性的汽车软件架构合作伙伴计划,旨在创建并建立一个开放的标准化软件
    的头像 发表于 12-17 14:58 149次阅读

    AUTOSAR通信与CAN协议的关系

    AUTOSAR通信模型: AUTOSAR定义了一个分层的软件架构,其中包括应用层、基础软件层和微控制器抽象层。在这些层中,通信模型是实现ECU之间通信的关键部分。AUTOSAR通信模型
    的头像 发表于 12-17 14:57 81次阅读

    AUTOSAR通信组件介绍 AUTOSAR通信层功能分析

    AUTOSAR通信组件介绍 AUTOSAR(AUTomotive Open System ARchitecture)是一个全球性的汽车软件架构合作伙伴计划,旨在创建和建立一个开放的标准化软件
    的头像 发表于 12-17 14:55 94次阅读

    AUTOSAR通信协议解析 如何实现AUTOSAR通信

    AUTOSAR(Automotive Open System Architecture)即汽车开放系统架构,该架构支持汽车电子控制单元(ECU)之间的通信,实现了高度模块化和可重用性。
    的头像 发表于 12-17 14:54 211次阅读

    极海半导体推出AUTOSAR MCAL软件包和配置工具

    技术和综合服务能力,成为国内为数不多可以开发和提供符合AUTOSAR标准的软硬件的汽车芯片设计企业之一。 什么是AUTOSAR MCAL? AUTOSAR是一个全球性的合作项目,旨在为汽车电子控制单元(ECU)的软件
    的头像 发表于 11-17 16:42 429次阅读
    极海半导体推出<b class='flag-5'>AUTOSAR</b> MCAL软件包和配置工具

    AUTOSAR解决方案 — INTEWORK-EAS-AP

    经纬恒润自主研发的Adaptive AUTOSAR平台产品, 遵循AUTOSAR Adaptive R19-11和R22-11规范, 使用C++11、C++17语言开发。可通过极易上手的自研工具配置,实现AUTOSAR AP协议
    的头像 发表于 11-06 16:11 613次阅读
    <b class='flag-5'>AUTOSAR</b>解决方案 — INTEWORK-EAS-AP

    AUTOSAR架构,持续集成CI的最佳实践

    集成(CI)流程。今天,我们就来探讨一基于AUTOSAR架构的CI流程实践,并通过对流程的详细讲解,展示其在实际开发中的重要性和优势。什么是AUTOSAR
    的头像 发表于 10-24 08:06 451次阅读
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>架构</b><b class='flag-5'>下</b>,持续集成CI的最佳实践

    首款支持AUTOSAR车规MCU亮相AUTOSAR中国日

    8月5日,由盖世汽车、AUTOSAR组织联合主办的2022第三届软件定义汽车论坛暨AUTOSAR中国日于武汉光谷成功举办。论坛围绕车用基础软件发展方向、SOA架构、多域融合OS、中央计算平台
    的头像 发表于 07-02 15:56 485次阅读
    首款支持<b class='flag-5'>AUTOSAR</b>车规MCU亮相<b class='flag-5'>AUTOSAR</b>中国日

    TC334使能内部看门狗为SLOW mode,离线跑无法启动的原因?

    芯片:TC334 平台: Autosar 详细描述: 在Configurator里配置好后,使能内部看门狗为SLOW mode。编译刷写进板子,debug的时候是正常的,不会复位。并且在
    发表于 05-22 06:46

    SR5E1 AUTOSAR MCAL技术解决方案分享

    AUTOSAR(AUTomotive Open System Architecture)是一种开放和标准化的汽车软件架构,支持汽车电控单元(ECU)软件框架,由汽车制造商及其供应商和来自半导体和软件行业的公司共同开发。
    的头像 发表于 02-21 18:26 1105次阅读
    SR5E1 <b class='flag-5'>AUTOSAR</b> MCAL技术解决方案分享

    AUTOSAR Builder—符合AUTOSAR(CPAP)的嵌入式系统设计工具

    AUTOSAR Builder是达索旗下一款基于Eclipse并使用Artop的可扩展工具套件。Artop是由AUTOSAR成员和合作伙伴共同推动的开放的AUTOSAR工具环境。它使用户能够构建自己
    的头像 发表于 01-08 18:06 565次阅读
    <b class='flag-5'>AUTOSAR</b> Builder—符合<b class='flag-5'>AUTOSAR</b>(CPAP)的嵌入式系统设计工具

    AUTOSAR架构中复杂驱动设计

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