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

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

    关注

    462

    文章

    53534

    浏览量

    459018
  • 模块
    +关注

    关注

    7

    文章

    2822

    浏览量

    52797
  • 看门狗
    +关注

    关注

    10

    文章

    607

    浏览量

    72579

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何实现安全的AUTOSAR通信栈

    。未经保护的通信链路可能面临数据篡改、重放攻击及冒充攻击等风险,危及车辆功能的正确性和用户安全。因此,在AUTOSAR架构中建立完备的通信安全机制,已成为行业共识与技术刚需。
    的头像 发表于 09-08 16:43 953次阅读

    RT-Thread睿赛德正式加入AUTOSAR 组织,成为开发合作伙伴!

    近日,AUTOSAR宣布RT-Thread睿赛德已正式加入AUTOSAR组织成为开发合作伙伴!AUTOSAR组织AUTOSAR组织的本质是一个开发合作伙伴关系。作为全球汽车开放式系统
    的头像 发表于 09-04 17:07 1049次阅读
    RT-Thread睿赛德正式加入<b class='flag-5'>AUTOSAR</b> 组织,成为开发合作伙伴!

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

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

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

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

    博世GTM IP模块架构介绍

    上篇文章我们介绍了博世GTM IP模块的核心功能及基础结构模块。本篇文章将继续解析GTM模块架构,重点介绍I/O模块,特殊功能
    的头像 发表于 03-07 17:50 1984次阅读
    博世GTM IP<b class='flag-5'>模块</b><b class='flag-5'>架构</b>介绍

    普华基础软件获颁2024年度AUTOSAR卓越贡献奖

    近日,“AUTOSAR中国中心2024年度活动”在上海举办,普华基础软件总经理助理罗彤受邀出席,就软件定义汽车趋势的行业发展蓝图、AUTOSAR在中国的推广应用情况等进行了交流。普华基础软件凭借
    的头像 发表于 12-28 15:28 1088次阅读

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

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

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

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

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

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

    AUTOSAR通信实现中的常见问题

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

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

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

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

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

    AUTOSAR通信与CAN协议的关系

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

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

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

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

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