AUTOSAR知识点Com(六):CANIf规范时序图

news2024/9/27 19:27:19

目录

1、概述

2、规范时序

2.1、Transmit request (single CAN Driver)

 2.2、Transmit request (multiple CAN Drivers)

2.3、Transmit confirmation (interrupt mode)

​2.4、Transmit confirmation (polling mode)

2.5、Transmit confirmation (with buffering)

2.6、Transmit Cancelation

​2.7、Trigger Transmit Request

2.8、Receive indication (interrupt mode)

2.9、Receive indication (polling mode)

​2.10、Read received data

2.11、Start CAN network(非常重要)

2.12、BusOff notification

​2.13、BusOff recovery


1、概述

        参考规范,少部分自己的总结。时序图怎么去看,请查看文章

UML时序图浅析icon-default.png?t=N176https://mp.csdn.net/mp_blog/creation/editor/129421206

2、规范时序

2.1、Transmit request (single CAN Driver)

        单个驱动的时候注意组合片段alt里面的虚线,当busy的时候,需要把L-PDU存放在transmit buffer里面。

 2.2、Transmit request (multiple CAN Drivers)

        多路CAN的时候,不能并行执行,选择CAN A的话就无法选择CAN B,说白了,multiple CAN Drivers就是signal CAN Drivers的集合体。

伪代码如下:

If(can = a)
{
	If(hardwareobject = free)
{
		Copy L-PDU;
}
else
{
	Insert L-PDU in transmit buffer();
 }
}
else if(can = b)
{
If(hardwareobject = free)
{
		Copy L-PDU;
}
else
{
	Insert L-PDU in transmit buffer();
 }
}


2.3、Transmit confirmation (interrupt mode)

注意下面一个点就好了


2.4、Transmit confirmation (polling mode)

        注意一下图红框里面的函数,POLLING模式发送需要调用此函数,单独的Can_Write()在POLLING模式下不起作用。


2.5、Transmit confirmation (with buffering)

疑问点:这个是针对static can 的吗?

此图参考文档《AUTOSAR_SWS_CANInterface.pdf》 P138


2.6、Transmit Cancelation

这个其实不复杂,就是图画的太复杂,注意里面的组合片段有opt


2.7、Trigger Transmit Request

多调用了接口

CanIf_TriggerTransmit(Std_ReturnType,PduIdType, PduInfoType*)

2.8、Receive indication (interrupt mode)


2.9、Receive indication (polling mode)


2.10、Read received data

        读取数据的时候是上层做的操作,注意以下几个函数的操作


2.11、Start CAN network(非常重要)

这个是CAN的启动时序,怎么一步一步的把CAN给开启,

注意函数:

CanIf_ControllerModeIndication(Controller,ControllerMode).

        CAN控制器处于STOPPED(停止)模式,CAN控制器转换非常快,因此在转换请求期间调用模式指示。


2.12、BusOff notification

注意事项

重置传输队列以避免在CAN控制器重新启动后传输旧的LPDU。


2.13、BusOff recovery

         Busoff的恢复机制,注意以下,必须在Stopped模式下才可以逐步到start,注意一定要复位传输序列,更要复位CAN Controller。

 

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

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

相关文章

国际物流是怎么给货物打包的

国际物流常见的包装方法有好几种,而且国际物流公司针对物品的包装都是格外重视,国际物流公司会依据物品的不同种类搭配不同的包装,便于物品完好无损的到的目的地。包装无论大小形态,它的核心目的是为了保护性、分辨性与便利性&…

使用pybind11将c++扩展为python

pybind11—python C/C扩展编译 - 简书 (jianshu.com)pybind11在Windows下的使用 - 酱_油 - 博客园 (cnblogs.com)编写 Python 的 C 扩展 - Visual Studio (Windows) | Microsoft Learn首先安装pybind11并在VS中配置安装pybind11:mirrors / pybind / pybind11 GitCo…

数据结构与算法---JS与栈

前言js里,是没有栈这种原生的数据结构。但是我们可以通过自定义创建栈类,来实现对添加/删除元素时更多的控制。创建栈类// 初始化一个基于数组的栈类 class Stack {constructor() {this.items [];} }为什么我们要选择数组作为栈类的存储数据类型&#x…

23.3.9打卡 AtCoder Beginner Contest 259

A题 题解 对于x特判一下就好 代码 void solve() {ll x,d;cin>>n>>m>>x>>t>>d;if(n>m){nmin(n,x);if(n<m){cout<<t;return;}cout<<(m-n)*dt;}else{mmin(m,x);cout<<(m-n)*dt;}return; }B 三角函数全还给高中老师了 题…

ARM 学习(一)

ARM 处理器的运行模式ARM处理器共有7种运行模式&#xff0c;如下表所示&#xff1a;处理器模式描述用户模式&#xff08;User&#xff09;正常程序运行模式中断模式&#xff08;IRQ&#xff09;用于通常的中断处理快速中断模式&#xff08;FIQ&#xff09;用于高速传输和通道处…

qt控件增加渐变色效果

ui->returnBtn->setStyleSheet("color: rgb(0, 0, 0);""background:qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, ""stop:0 #5f5f5f, stop:0.5 #ffffff, stop:0.98 #5f5f5f);""border:none;");效果如下图&#xff1a; …

java-3月xly笔记

时间安排&#xff1a; 朱祥祥 会议号&#xff1a;417 523 3263 服务器&#xff1a;doc.canglaoshi.org jdk下载&#xff1a;https://repo.huaweicloud.com/java/jdk/ jdk配置环境变量 检测命令&#xff1a; &#xff08;1&#xff09;winr&#xff0c;输入cmd&#xff0c…

ActiveMQ反序列化漏洞原理+复现

ActiveMQ反序列化漏洞 ActiveMQ ActiveMQ是开源消息总线&#xff0c;消息中间件 工作原理 通过使用消息队列&#xff0c;实现服务的异步处理&#xff0c;主要目的是减少请求响应时间和解耦合。 消息队列&#xff0c;服务器A将客户发起的请求放入服务器B的消息队列中&#…

裸辞两个月还能不能找到工作?亲身经历告诉你结果·····

这是我在某论坛看到的一名网友的吐槽&#xff1a; 软件测试四年&#xff0c;主要是手动测试&#xff08;部分自动化测试和性能测试&#xff0c;但是用的是公司内部自动化工具&#xff0c;而且我自动化方面是弱项。&#xff09;现在裸辞两个月了&#xff0c;面试机会少而且面试…

树与二叉树(二叉树的表示,性质,遍历,还原)

基本术语&#xff1a;A&#xff08;或B&#xff09;是I的祖先&#xff0c;I是A&#xff08;或B&#xff09;的子孙&#xff1b;D是I的双亲&#xff0c;I是D的孩子&#xff1b;节点的孩子个数称为节点的度&#xff1b;树中节点的最大度数称为树的度&#xff1b;度大于0的节点称为…

Git 命令行5步解决冲突方法(亲测有效)

总体步骤如下&#xff1a; git pull --rebase 解决冲突文件 file1.c。git add file1.cgit commit -m "*****" git pushgit rebase --continue &#xff0c;此时冲突消失强推&#xff0c;git push origin xxxx -f 本人解决的例子如下&#xff1a; 第一步、拉取…

SSH框架 (一) SpringMVC

1.SpringMVC 1.1 概述 Spring MVC 是 Spring 提供的一个基于 MVC 设计模式 的轻量级 Web 开发框架&#xff0c;本质上相当于 Servlet相当于对其的进一步封装 核心组件 DispatcherServlet。 Spring MVC框架 内部采用松耦合、可插拔的组件结构&#xff0c; 具有高度可配置性&am…

1/4车、1/2车、整车悬架H2/H∞控制仿真合集

目录 前言 1. 1/4悬架系统 1.1数学模型 1.2 H2/H∞求解反馈阵阵 1.3仿真分析 2. 1/2悬架系统 2.1数学模型 2.2 H2/H∞求解反馈阵阵 2.3仿真分析 3. 整车悬架系统 3.1数学模型 整车7自由度主动悬架数学模型 3.2 H2/H∞求解反馈阵阵 3.3仿真分析 4.总结 参考文献 …

Java-Web之s2-001与CommonsCollections

本文源自我个人入坑Java-Web安全的一点小经验&#xff0c;献给那些看得懂java代码但不知道从哪里入手代审的师傅们&#xff1a;&#xff09; Struts2之s2-001 环境配置 说说环境配置的问题&#xff0c;大多数人对漏洞复现的恐惧感还是来自于环境的配置&#xff0c;也许配了大…

在 Ubuntu 下编写 C++

在 Ubuntu 下编写 C 在 Ubuntu 上面编写 C&#xff0c;本章节内容主要介绍在 Ubuntu 在终端窗口下使用 vi/vim 编辑一 个 C源文件。通过编写最简单的示例“Hello,World&#xff01;”。带领大家学习如何在 Ubuntu 终端下编 辑和编译 C。这里要求大家会在 Ubuntu 上使用 vi/vim…

图片动画化应用中的动作分解方法

作者 | FesianXu 前言 最近基于AI的换脸应用非常的火爆&#xff0c;同时也引起了新一轮的网络伦理大讨论。如果光从技术的角度看&#xff0c;对于视频中的人体动作信息&#xff0c;通常可以通过泰勒展开分解成零阶运动信息与一阶运动信息&#xff0c;如文献[1,2]中提到的&…

Multisim 14.3 安装教程

1、首先解压Multisim 安装包。 2、解压完成后&#xff0c;双击点进去&#xff0c;找到setup这个文件&#xff0c;点进去。 3、找到setup文件里面的install.exe文件&#xff0c;并鼠标右键 “找到以管理员身份运行”。 4、选择“我接受上述许可协议”&#xff0c;点击下一步。 …

InceptionTime 复现

下载数据集&#xff1a; https://www.cs.ucr.edu/~eamonn/time_series_data/ 挂梯子&#xff0c;开全局模式即可 配置环境 虚拟环境基于python3.9&#xff0c; tensorflow下载&#xff1a;pip install tensorflow&#xff0c;不需要tensorflow-gpu&#xff08;高版本python&…

电脑怎么既录屏又录人脸?分享2个宝藏方法,轻松学会

在如今的数字时代&#xff0c;视频已成为人们表达和传递信息的最佳方式。无论是用于工作、教育、演示还是娱乐&#xff0c;录制高质量的视频已成为不可或缺的需求。然而&#xff0c;有些场景需要同时录制屏幕和人脸&#xff0c;电脑怎么既录屏又录人脸&#xff1f;本文将分享两…

Unity入门精要03---透明效果

本节知识架构 1.渲染顺序与渲染队列 如果采用了透明度混合即要是实现半透明效果&#xff0c;那么就要关闭深度写入&#xff0c;那么此时渲染顺序就会变得非常非常重要&#xff0c;不然会出现不正确的遮挡效果。具体的分析可见书中解释 一句话概括就是因为没有写入深度&#xf…