[AutoSar]状态管理(二)单核 ECUM wakeup 流程——Can唤醒流程(TJA1043)

news2024/11/24 17:41:51

目录

  • 关键词
  • 平台说明
  • 一 、前言
  • 二、wakeup
    • 2.1 wakeup source和Check-Wakeup Validation
    • 2.2Can唤醒流程(TJA1043)
      • 2.2.1 相关配置
        • 2.2.1.1 EcuM
        • 2.2.1.2 CanIF
      • 2.2.2 序列图
      • 2.2.3流程和code

  

关键词

嵌入式、C语言、autosar、EcuM、wakeup、flex

平台说明

项目Value
OSautosar OS
autosar厂商vector
芯片厂商TI
编程语言C,C++
编译器HighTec (GCC)

在这里插入图片描述

一 、前言

  接上一篇笔记[AutoSar]状态管理(一)单核 ECUM,这里主要为wakeup 的流程。以Can唤醒流程(TJA1043)为例。

二、wakeup

2.1 wakeup source和Check-Wakeup Validation

  当Validation Timeout没有被配置为0的时候,通过调用EcuM_ValidateWakeupEvent()进行验证。如果在此期间未验证唤醒事件,EcuM将此事件设置为“过期”,并向BswM报告。该配置主要为了避免误唤醒,例如外部IO或者CAN总线上的电压脉冲唤醒。

ECUM_WKSOURCE_POWER
ECUM_WKSOURCE_RESET
ECUM_WKSOURCE_INTERNAL_RESET
ECUM_WKSOURCE_INTERNAL_WDG
ECUM_WKSOURCE_EXTERNAL_WDG
这五种标准的唤醒源不需要校验。

唤醒源分为四种状态:
NONE —— 无唤醒事件或唤醒事件被清除;
PENDING —— 唤醒事件等待验证;
VALIDATED —— 唤醒事件验证通过;
EXPIRED —— 唤醒事件验证失败
这四种状态的切换状态机如下图:
在这里插入图片描述

2.2Can唤醒流程(TJA1043)

  ECU系统休眠后TJA1043的INH脚处于floating高阻态,外部电路为下拉到低电平。在配置中将TJA1043的INH引脚配置为唤醒源,在休眠中如果收到任意报文该引脚会被拉高,产生一个CAN硬件唤醒事件。如果系统为KL15系统,INH引脚会关联到SBC,INH被触发拉高后ECU会被启动。如果系统为常电系统,INH关联到ECU中断唤醒引脚,通过检测INH唤醒事件激活MCU。

2.2.1 相关配置

2.2.1.1 EcuM

配置网络唤醒源和校验功能。
在这里插入图片描述

2.2.1.2 CanIF

配置唤醒帧过滤
在这里插入图片描述

2.2.2 序列图

在这里插入图片描述

2.2.3流程和code

1.中断触发EcuM_CheckWakeup(EcuM_WakeupSourceType)

FUNC(void, ECUM_CODE) EcuM_CheckWakeup(EcuM_WakeupSourceType wakeupSource)
{
if((wakeupSource & ECUM_WKSOURCE_CAN0) != 0)
	{
CanIf_CheckWakeup(ECUM_WKSOURCE_CAN0);
	}
}

2.EcuM_Callout中CanIf_CheckWakeup(EcuM_WakeupSourceType)
3.CanIf调用EcuM_SetWakeupEvent(EcuM_WakeupSourceType)设置唤醒事件
4. EcuM_StartWakeupSources(EcuM_WakeupSourceType)

FUNC(void, ECUM_CODE) EcuM_StartWakeupSources(EcuM_WakeupSourceType
wakeupSource)
{
if ((wakeupSource & ECUM_WKSOURCE_CAN0) != 0)
	{ /* CanSM needs the corresponding Network Handle */
	if (CanSM_StartWakeupSources(0x00) == E_NOT_OK)
		{
		/* place ECU depended error handling here */
		}
	}
}


  1. CanSM_StartWakeupSources(EcuM_WakeupSourceType)设置CanTrancv和driver到NORMAL/START模式用于接收CAN报文。
  2. EcuM_CheckValidation(EcuM_WakeupSourceType)
FUNC(void, ECUM_CODE) EcuM_CheckValidation(EcuM_WakeupSourceType wakeupSource)
{
	if ((wakeupSource & ECUM_WKSOURCE_CAN0) != 0)
	{
		/* Query the driver if the wake-up event was valid */
		CanIf_CheckValidation(ECUM_WKSOURCE_CAN0);
	}
}
  1. CanIf_CheckValidation(EcuM_WakupSourceType)校验唤醒源
  2. 校验成功则调用ComM_WakeUpIndication()请求通信,ComMCommunicationAlllowed后就会调转到Full Com状态开启网络。
  3. 校验失败则调用EcuM_StopWakeupSources()CanSM_StopWakeupSources()
void EcuM_StopWakeupSources(EcuM_WakeupSourceType wakeupSource)
{
	if ((wakeupSource & ECUM_WKSOURCE_CAN0) != 0)
	{ /* CanSM needs the corresponding Network Handle */
		if (CanSM_StopWakeupSources(0x00, wakeupSource) == E_NOT_OK)
		{
			/* place ECU depended error handling here */
		}
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1305920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

配置android sudio出现的错误

导入demo工程,配置过程参考: AndroidStudio导入项目的正确方式,修改gradle配置 错误:Namespace not specified. Specify a namespace in the module’s build file. 并定位在下图位置: 原因:Android 大括号…

数据挖掘目标(Kaggle Titanic 生存测试)

import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns1.数据导入 In [2]: train_data pd.read_csv(r../老师文件/train.csv) test_data pd.read_csv(r../老师文件/test.csv) labels pd.read_csv(r../老师文件/label.csv)[Su…

OpenAI Q* (Q Star)简单介绍

一、Q Star 名称由来 Q* 的两个可能来源如下: 1)Q 可能是指 "Q-learning",这是一种用于强化学习的机器学习算法。 Q 名称的由来*:把 "Q*"想象成超级智能机器人的昵称。 Q 的意思是这个机器人非常善于做决定…

安装Anaconda和pytorch

首先看下自己电脑是否有英伟达的显卡,如果有的话可以安装GPU版本,没有的话可以安装CPU版本。 CPU版本 1.安装Anaconda 首先去官网下载Anaconda。 点击download,下载的就是最新版本的。 下载完成后,直接运行下步就行 注意到路径…

HTML---列表.表格.媒体元素

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.列表 无序列表 HTML中的无序列表&#xff08;Unordered List&#xff09;用于显示一组项目&#xff0c;每个项目之前没有特定的顺序或编号。无序列表使用<ul>标签来定义&#xff0c;每…

自定义日志打印功能--C++

一、介绍 日志是计算机程序中用于记录运行时事件和状态的重要工具。通过记录关键信息和错误情况&#xff0c;日志可以帮助程序开发人员和维护人员追踪程序的执行过程&#xff0c;排查问题和改进性能。 在软件开发中&#xff0c;日志通常记录如下类型的信息&#xff1a; 事件信…

二蛋赠书十一期:《TypeScript入门与区块链项目实战》

前言 大家好&#xff01;我是二蛋&#xff0c;一个热爱技术、乐于分享的工程师。在过去的几年里&#xff0c;我一直通过各种渠道与大家分享技术知识和经验。我深知&#xff0c;每一位技术人员都对自己的技能提升和职业发展有着热切的期待。因此&#xff0c;我非常感激大家一直…

【EI会议征稿】2024年人工智能与大模型国际学术会议(AIFM 2024)

2024年人工智能与大模型国际学术会议(AIFM 2024) 2024 International Conference on Artificial Intelligence and Foundation Model 2024年人工智能与大模型国际学术会议(AIFM 2024)将于2024年1月19-21日在南昌召开。本次会议围绕人工智能与大模型的发展应用&#xff0c;聚集…

静态路由原理与配置

文章目录 静态路由原理与配置一、路由器的工作原理1、路由概述2、路由器的工作原理 二、路由表的形成1、路由表2、路由表的形成 三、静态路由和默认路由1、静态路由的缺点2、默认路由&#xff08;是特殊的静态路由&#xff09;3、查看路由表 四、路由器转发数据包的封装过程五、…

【产品经理】产品的实现,需要做好战略规划

产品的实现需要做好产品规划&#xff0c;而产品的规划决定了产品的方向。本文从战略规划的重要性、产品定位、设计产品架构图三个方向&#xff0c;详细地为大家梳理了产品实现的前期准备。 我们知晓了如何去发掘问题&#xff0c;并找到解决方案。 可对于问题的处理&#xff0c…

2023全国职业院校技能大赛信息安全管理与评估赛项正式赛(模块二)

全国职业院校技能大赛高等职业教育组信息安全管理与评估 任务书 极安云科专注技能竞赛&#xff0c;包含网络建设与运维和信息安全管理与评估两大赛项&#xff0c;及各大CTF&#xff0c;基于两大赛项提供全面的系统性培训&#xff0c;拥有完整的培训体系。团队拥有国赛选手、大厂…

《PySpark大数据分析实战》-05.PySpark库介绍

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…

亚马逊云科技:向量数据存储在生成式人工智能应用程序中的作用

生成式人工智能深受大众喜爱&#xff0c;并且由于具备回答问题、写故事、创作艺术品甚至生成代码的功能&#xff0c;推动了行业的转变&#xff0c;那么如何才能在自己的企业中充分地利用生成式人工智能等应运而生问题。许多客户已经积累了大量特定领域的数据&#xff08;财务记…

go-libp2p-example-chat学习

1.案例下载 https://github.com/libp2p/go-libp2p/tree/master/examples 2.chat案例 这段代码是一个简单的基于libp2p的P2P聊天应用程序的示例。它允许两个节点通过P2P连接进行聊天。前提是&#xff1a; 两者都有私有IP地址&#xff08;同一网络&#xff09;。至少其中一个…

【计算机视觉】Harris角点检测

角点指的是窗口延任意方向移动&#xff0c;都有很大变化量的点。 用数学公式表示为&#xff1a; 这个公式表示移动后的窗口&#xff0c;与移动前的窗口对应元素相减的平方&#xff0c;为每个像素点的权重 反映了如何移动窗口&#xff0c;以及移动窗口后的响应值 为了让 和 直…

海思越影系列3516DV500/3519DV500/3519AV200/SD3403平台的AI一体化工业相机设计思路

随着工业自动化的发展&#xff0c;生产线对机器视觉的数量要求越来越多&#xff0c;由于数量的增加&#xff0c;视觉系统占的空间也越来越大&#xff0c;给生产线的布局带来困扰。 另一方面随着视觉SOC的发展&#xff0c;越来越多的视觉SOC都逐渐带有一定的算力&#xff0c;一体…

头歌——HBase 开发:使用Java操作HBase

第1关&#xff1a;创建表 题目 任务描述 本关任务&#xff1a;使用Java代码在HBase中创建表。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.如何使用Java连接HBase数据库&#xff0c;2.如何使用Java代码在HBase中创建表。 如何使用Java连接HBase数据库…

玩转大数据15:常用的分类算法和聚类算法

前言 分类算法和聚类算法是数据挖掘和机器学习中的两种常见方法。它们的主要区别在于处理数据的方式和目标。 分类算法是在已知类别标签的数据集上训练的&#xff0c;用于预测新的数据点的类别。聚类算法则是在没有任何类别标签的情况下&#xff0c;通过分析数据点之间的相似性…

微信小程序改变checkbox大小

.weui-cell__hd {transform: scale(0.6,0.6);} <checkbox color"#447189" />

stm32 HAL库 发送接受 到了一定的字符串后就卡在.s文件中

问题介绍&#xff1a; 某个项目开发过程中&#xff0c;串口接收中断&#xff0c;开启了DMA数据传输&#xff0c;开启了DMA中断&#xff0c;开启DMA半满中断。然后程序运行的过程中&#xff0c;接收了一部分数据后就会卡在启动文件的DMA1_Ch4_7_DMA2_Ch3_5_IRQHandler 中断里。…