车载网络测试 - CANCANFD - 基础篇_03

news2024/11/20 1:51:44

十、发送方式与过滤方式

1、广播发送及规则

        我们以小组讨论现场为例来说明CAN总线广播发送规则:

        1)一个房间代表同一路CAN总线,每一个小组代表一个CAN Node,每一个小组成员发言代表发送一帧CAN报文,对所有的小组成员进行编号,代表一个CAN报文的ID

        2)所有小组成员都可以发言(多主的基于优先级的总线访问),如果想要发言,先报个人编号,然后进行发言。

        3)如果两个人同时报个人编号,则个人编号较小的人先发言,编号较大的人停止发言并听编号小的人发言完毕,然后再开始发言(非破坏性的总线仲裁机制

        4)如果发言的人说的话其他小组未听清,则需要发言人重复发言(报文自动重发)。

        5)如果发言的小组长时间说话别的小组无法听清,则将发言小组禁言一段时间(CAN busoff),时间结束后,则可以再次进行发言(BusOFF恢复)(故障码机制

        6)房间内的每个小组成员都可以随时离开,也可以随时进入房间加入交流(配置灵活

        7)位填充:如果CAN总线发送的报文出现连续重复的报文需要插入相反的位进行填充,本条未想到适合举例方法,只能以这种方法描述了。

2、报文过滤

MASK1  1  1  0  1  0  0  0  1  1  0

ID:       0  1  0  0  1  1  0  1  0  0  0

Code:  0  1  0  x  1  x  x  x  0  0  x

        一下子看这个可能会有点懵,如果mask为1,则总线上报文ID的位与Mask对应为相同才会接收,否则不接收;如果mask为0,则总线上的报文ID在该位任意值都接收;我们来举个例子可能大家就比较清楚的知道是如何实现过滤的了。

        1)假如一个节点配置的Mask为0x7FF,则该节点将会接收总线上报文ID为0x7FF的报文。如果其他报文设置mask为0x7FF,则该节点仅接收它自身相同的报文。

        2)假如一个节点配置的Mask为0x7F0,则该节点将会最多接收总线上报文ID为0x7F0 - 0x7FF的报文。

        通过上面这2个例子,不知道大家能够有一点明白呢?

3、标识符定义 (ID)

        1)标识符是唯一的,它描述了数据的特定含义,也决定了报文的优先级
        2)标识符数值越小,优先级越高
        3)最高优先级的报文在总线仲裁的过程中获得总线访问权
        4)低优先级报文在下一个总线空闲自动重发

4、位填充

位填充是为了提供足够的跳变沿口

        填充位出现在5个连续的相同极性的位之后

        填充位与其前面的位极性相反

        其实说到底也是为了保证通信的准确性,如果长时间没有跳变沿,那么接收方和发送方的同步性就有很大可能变差,这样就有可能导致后续通信信号的错乱,因此才会在出现连续5个相同记性的位之后,就插入一个极性相反的位,更好的去保证通信双方的准确性。

 

5、常见的国际标准文件

ISO11898

        11898-1 数据链路层和物理信令

        11898-2 高速媒体访问单元(物理层)

        11898-3 低速、容错、介质相关接口(物理层)

        11898-5 具有低功耗模式的高速介质访问单元(物理层)

6、显性位与隐性位

        在CAN网络中实现通信顺畅(尤其是总线访问、故障指示和应答)的基本前提是总线显性电平和总线隐性电平之间存在明显差别。总线显性电平对应于逻辑“0”,总线隐性电平对应于逻辑“1”。
        显性电平优先级高于隐性电平。当不同CAN节点同时发送显性和隐性总线电平时,CAN总线将呈现显性总线电平。只有当所有CAN节点都发送隐性电平时,CAN总线才呈现隐性总线电平。

        0:显性位

        1:隐性位

注意:这里和我们的常识刚好相反,一般我们认为显性是1,隐性是0,但是在CAN这里正好反过来记就好了。

        接收时将物理信号转换成逻辑信号,收发器将差分电平信号转换为逻辑信号。 CAN-bus使用两根电缆进行信号传输,分别为CAN_High和CAN-Low(简称CAN_H和CAN_L)。CAN收发器根据两根电缆之间的电压差来判断总线电平,这种传输方式称为“差分传输”。电缆上的电平信号只有两种可能,分别为显性电平(代表逻辑0)和隐形电平(代表逻辑1)

7、CAN总线的线与机制

 总线上可能有两种逻辑状态:

        1 = recessive

        0 = dominant

总线传输特点:

        1) 一旦一个节点传输一个显性位(零),总线就处于显性状态;
        2)仅当所有节点传输隐性位(个)时,总线处于隐性状态。

8、总线仲裁

总线访问机制

载波侦听和带冲突检测协议的多路访问(CSMA/CD)

CAN报文的优先级由标识符值决定

        1)标识符的数值在系统设计的初始阶段分配

        2)不同节点不允许发送相同ID报文(远程帧除外)

        3)标识符数值越小,优先级越高。

        4)总线冲突通过非破坏性位序列仲裁解决

总线仲裁示例:

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

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

相关文章

生成对抗网络

1 GAN基本概念 1.1 GAN介绍 GAN的英文全称是Generative Adversarial Network,中文名是生成对抗网络。它由两个部分组成,生成器和鉴别器(又称判别器),生成网络(Generator)负责生成模拟数据&…

【Python】异常处理 ④ ( 异常处理 else 语句 | 异常处理 finally 语句 )

文章目录 一、Python 异常捕获 else 语句1、异常捕获 else 语句2、代码示例 - 没有触发 else 语句的情况3、代码示例 - 触发 else 语句的情况 二、Python 异常捕获 finally 语句1、异常捕获 finally 语句2、代码示例 - 出现异常后执行 finally 语句 一、Python 异常捕获 else 语…

展示和标注图像:探索Gradio AnnotatedImage模块的功能

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

代码生成器原理分析

代码生成器原理分析 理解代码生成器的需求和实现思路掌握freemaker的使用 理解数据库中的元数据完成环境搭建工作 浅谈代码生成器 概述 在项目开发过程中,关注点更多是在业务功能的开发及保证业务流程的正确性上,对于重复性的代码编写占据了程 序员…

指标综合评价(定性指标定量化、指标正相关化、赋权重)

目录 一、定性指标定量化 二、将指标同型化 线性比例变换法 极差变换法 二、评价指标赋予权重 三、综合评价 战斗机性能的综合评价问题 例:战斗机的性能指标主要包括最大速度、飞行半径、最大负载、隐身性能、垂直起降性能、可靠性、灵敏度等指标和相关费用。…

Vue+Element UI 生鲜管理系统简介及项目搭建,页面布局(一)

文章目录 浅谈一、背景二、搭建创建vue项目vue项目结构简介安装Element UI库安装axios安装querystring安装normalize.css安装echarts运行删除无用组件基础css样式导入 三、页面布局配置路由布局flex布局(弹性盒子)固定布局固定布局配置路由 浅谈 自从入…

【Rust】2、实战:文件、网络、时间、进程-线程-容器、内核、信号-中断-异常

文章目录 七、文件和存储7.2 serde 与 bincode 序列化7.3 实现一个 hexdump7.4 操作文件7.4.1 打开文件7.4.2 用 std::fs::Path 交互 7.5 基于 append 模式实现 kv数据库7.5.1 kv 模型7.5.2 命令行接口 7.6 前端代码7.6.1 用条件编译定制要编译的内容 7.7 核心:LIBA…

【Java高级语法】(十五)lambda表达式:给你一颗语法糖Lambda,解析函数式编程的杰作~

Java高级语法详解之lambda表达式 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法结构3.2 案例3.2.1 无参Lambda3.2.2 带有一个参数3.2.3 带有多个参数3.2.4 方法引用的简化形式 4️⃣ 应用场景5️⃣ 优化技巧6️⃣ 原理7️⃣ 注意性能问题🌾 总结 1️⃣ 概念 Java …

架构设计第十一讲:架构之高并发:限流

架构设计第十一讲:架构之高并发:限流 每个系统都有服务的上线,所以当流量超过服务极限能力时,系统可能会出现卡死、崩溃的情况,所以就有了降级和限流。限流其实就是:当高并发或者瞬时高并发时,为…

rabbitmq第三课-RabbitMQ高级功能详解以及常用插件实战

一、选择合适的队列. 实际上是可以选择三种队列类型的,classic经典队列,Quorum仲裁队列,Stream流式队列。 后面这两种队列也是RabbitMQ在最近的几个大的版本中推出的新的队列类型。3.8.x推出了Quorum仲裁队列,3.9.x推出了Stream流…

MyBatis何时使用一级缓存,何时使用二级缓存?

Mybatis设计2级缓存来提升数据检索效率,避免每次都查询数据库。 一、一级缓存 一级缓存 Mybatis 的一级缓存是指 SQLSession,一级缓存的作用域是 SQlSession , Mabits 默认开启一级缓存。 在同一个SqlSession中,执行相同的SQL查询时&#x…

基于STM32CUBEMX驱动TOF模块VL6180与VL6180X(2)----修改测量范围

概述 当使用VL6180传感器进行测距时,可以通过修改缩放因子来改变可测量的距离范围。VL6180是一种基于飞行时间原理的传感器,通过测量光信号的往返时间来确定物体与传感器之间的距离。 默认情况下,VL6180传感器的测距范围约为0至200毫米。然…

显卡检测工具:GPU-Z

今天小编为大家测试了一款轻量级的GPU显卡的测试工具,可以查看GPU的详细信息,以供各位同学们学习。 一、简单介绍 GPU-Z是一款方便实用的软件工具,专门为用户提供视频卡和GPU的详尽信息。它具有轻巧的特点,不需要安装即可使用&am…

2023版智慧高速智慧公路总体建设方案,售前人员必备方案

导读:原文《智慧高速智慧公路总体建设方案》共83页PPT(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 如需获取完整的电子版内容参考学习 您可以关注评论…

【雷达原理】基本雷达方程的推导

基本雷达方程 一、研究目的二、推导过程1、基本雷达方程常用的表达形式2、计算案例3、仿真代码 参考文献 一、研究目的 雷达方程定量地描述了作用距离与雷达参数及目标特性之间的关系。 研究雷达方程主要有以下作用: (1)根据雷达参数来估算雷…

慕课:笔记

课程链接:直面JavaScript中的30个疑难杂症_JavaScript面试题-慕课网 第二章:数据类型 数据类型是每门编程语言的必修之课,你是否对JavaScript的数据类型和检测存在困惑,本章节将为你揭晓其中的奥秘,让你对数据类型有…

矩阵压缩算法

当矩阵中存在着重复元素时,为了节省空间会采用压缩算法,关键在于原矩阵空间与压缩后数据结构的对应; 1.对称压缩:数据沿对角线对称的情况; 将矩阵压缩为一维数组,数组的长度是: 对于num[n][n…

VMware虚拟机暴露端口至公网方法流程详解

目录 需求背景 解决方法 准备工作 虚拟机ip设置方法 需求背景 一台电脑需要连接另一台电脑上的虚拟机的端口,直接ping是无法ping通的,因为本地虚拟机的端口未暴露至公网。 解决方法 虚拟机:CentOS 7 64 Linux 本机:Window…

C专家编程 —— 运行时数据结构

文章目录 代码和数据段代码与可执行文件中对应的位置可执行文件中的段在内存中的布局加入动态链接库的内存空间布局堆栈段的作用过程活动记录函数调用过程记录举例 static和auto关键字 汇编嵌入C代码 代码和数据 代码和数据的区别可以理解为编译时和运行时的分界线。 代码&…

guacamole 纯web rdp预研:相关JAVA基础

文章目录 guacamole 纯web rdp预研:相关JAVA基础1. pom.xml2 scm标签3 application/octet-stream4. tomcat webapps下war包5 maven-assembly-plugin maven assembly插件介绍什么是assembly? 6. Mavenz中的source插件的使用和注意事项。7. Maven私库安装与配置8. 配置…