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

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

    关注

    460

    文章

    52624

    浏览量

    442784
  • 模块
    +关注

    关注

    7

    文章

    2790

    浏览量

    50723
  • 看门狗
    +关注

    关注

    10

    文章

    584

    浏览量

    71902

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    从手写代码到AUTOSAR工具链:J1939Tp应用篇

    J1939Tp是我学习AUTOSAR CP诸多BSW模块的起点,其分层架构完美体现了AUTOSAR规范的精髓,掌握J1939Tp有助于深入理解通信(COM)相关
    的头像 发表于 07-10 16:37 ?1649次阅读
    从手写代码到<b class='flag-5'>AUTOSAR</b>工具链:J1939Tp应用篇

    东软睿驰亮相第16届AUTOSAR开放大会

    for SDV challenges”为主题,来自全球的行业专家与AUTOSAR合作伙伴、研究及开发人员,就AUTOSAR组织与标准最新进展、软件定义汽车趋势的第三方组织合作、AUTOSA
    的头像 发表于 06-06 16:07 ?1103次阅读

    光庭信息荣获AUTOSAR中国中心2024年度特别贡献奖

    近日,“AUTOSAR 中国中心 2024 年度奖项颁奖典礼暨答谢酒会”在上海圆满落幕。经 AUTOSAR 中国中心管理团队提名与评选,特授予光庭信息“AUTOSAR 中国中心年度特别贡献奖”。光庭
    的头像 发表于 12-20 16:08 ?667次阅读

    AUTOSAR通信对自动驾驶的影响 AUTOSAR通信与嵌入式系统设计

    AUTOSAR(Automotive Open System Architecture)通信对自动驾驶的影响深远,它不仅优化了汽车电子系统的通信结构,还提高了自动驾驶系统的安全性和可靠性。同时
    的头像 发表于 12-17 15:09 ?764次阅读

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

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

    AUTOSAR通信实现中的常见问题

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

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

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

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

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

    AUTOSAR通信与CAN协议的关系

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

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

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

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

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

    极海正式推出自研AUTOSAR MCAL软件包和配置工具,加速汽车创新应用量产落地

    技术和综合服务能力,成为国内为数不多可以开发和提供符合AUTOSAR标准的软硬件的汽车芯片设计企业之一。 什么是AUTOSAR MCAL? AUTOSAR是一个全球性的合作项目,旨在为汽车电子控制单元(ECU)的软件
    发表于 11-20 13:45 ?428次阅读
    极海正式推出自研<b class='flag-5'>AUTOSAR</b> MCAL软件包和配置工具,加速汽车创新应用量产落地

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

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

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

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