CAN总线学习笔记(1、CAN总线定义)

news2024/11/25 15:51:31

CAN总线学习笔记(1、CAN总线定义)

江协科技CAN总线入门教程视频学习笔记

CAN特性

  • 两根通信线(CAN_H\CAN_L),两根线,无需工地

  • 差分信号,抗干扰能力强

  • 高速CAN(ISO11898):125K-1Mbps,<40m

  • 低速CAN(ISO11519):10K-125Kbps,<1km

  • 异步,无需时钟线,通信速率由设备各自约定

  • 半双工,可挂载多设备,多设备同时发送数据时通过仲裁判断先后顺序

  • 11/29位报文ID,用于区分消息功能,同时决定优先级

  • 可配置1-8字节有效载荷

  • 可实现广播式和请求式两种传输方式

  • 应答、CRC校验、位填充、位同步、错误处理等特性

CAN硬件电路

在这里插入图片描述

CAN电平标准

在这里插入图片描述

帧格式

帧类型

用途

数据帧

发送设备主动发送数据(广播式)

遥控帧

接收设备主动请求数据(请求式)

错误帧

某个设备检测出错误时,向其他设备通知错误

过载帧

接收设备通知其尚未做好接收准备

帧间隔

用于将数据帧及遥控帧与前面的帧分离开

数据帧和遥控帧使用最多,其它3种帧做了解即可

数据帧

在这里插入图片描述

  • 在ack槽时,可以有多个接收方同时拉开总线,因为一个报文可以被多个设备同时接收。

  • SOF(start of frame):帧起始。表示后面一段波形为传输的数据位

  • ID(identify):标识符,区分功能,同时决定优先级

  • RTR(remote transmission request):远程请求位,区分数据帧和遥控帧

  • IDE(identifier Extension):扩展标志位,区分标准格式和扩展格式

  • SRR(substitute remote request):替代RTR,协议升级时留下的无意义位

  • r0/r1(reserve):保留位,为后续协议升级留下空间

  • DLC(data length code):数据长度,指示数据段有几个字节

  • Data:数据段的1-8个字节有效数据

  • CRC(cyclic redundancy check):循环冗余校验,校验数据是否正确

  • ACK(acknowledgement):应答位,判断数据有没有被接收方接收

  • CRC/ACK界定符:为应答位前后发送方和接收方释放总线留下时间

  • EOF(end of fram):帧结束,表示数据位已经传输完毕
    在这里插入图片描述

遥控帧

遥控帧无数据段,RTR为隐形电平1,其它部分与数据帧相同
在这里插入图片描述

仲裁

多设备同时发送时的规则

  • 数据帧和遥控帧ID一样时,数据帧RTR位为显性电平0,所以数据帧的优先级高于遥控帧

  • 数据帧的标准格式和扩展格式的高11位一样时,扩展帧的SRR为隐性电平1,所以标准格式的优先级高于扩展格式

  • 标准遥控帧和扩展数据帧高11位一样时,标准遥控帧的IDE位为显性电平0,所以标准遥控帧的优先级高于扩展数据帧

先到先得

  • 已有设备在操作总线发送数据帧/遥控帧,则其它设备不能再同时发送数据帧/遥控帧(可以发送错误帧/过载帧破坏当前数据)

  • 只有在总线空闲时(连续检测到11个隐性电平),设备才能发送数据帧/遥控帧

非破坏性仲裁

  • CAN总线根据ID进行非破坏性仲裁,ID号小的(优先级高)取到总线控制权,ID号大的(优先级低)仲裁失利后将转入接收状态,等待下一次总线空闲时再尝试发送。

  • 线与特性:总线上任何一个设备发送显性电平0时,总线就会呈现显性电平0状态;只有总线上所有设备都发送隐性电平1时,总线才会呈现隐性电平1状态

  • 回读机制:每个设备发出一个数据位后,都会读回总线当前的电平状态,以确定自己的电平被发送。

错误处理

错误类型

错误类型

错误的内容

错误的检测帧(段)

检测单元

位错误

比较输出电平和回读信号,当两电平不一样时产生此错误

  • 数据帧(SOF-EOF)

  • 遥控帧(SOF-EOF)

  • 错误帧

  • 过载帧

发送单元

接收单元

填充错误

连续检测到6位相同电平时产生此错误

  • 数据帧(SOF-CRC)

  • 遥控帧(SOF-CRC)

发送单元

接收单元

CRC错误

计算的CRC结果和接收到的CRC不一样时产生此错误

  • 数据帧

  • 遥控帧

接收单元

格式错误

再固定电平字段检测到相反电平时产生此错误

  • 数据帧

  • 遥控帧

  • 错误界定符

  • 过载界定符

接收单元

ACK错误

发送单元再ACK槽中检测出隐性电平,即没有接收发应答时产生此错误

  • 数据帧(ACK槽)

  • 遥控帧(ACK槽)

发送单元

错误状态

通过状态机切换设备错误状态

  • 设备初始状态为主动错误状态

  • 主动错误状态检测到错误时,发送主动错误状态帧,会破坏数据传输

  • 当TEC或REC>127时,设备进入被动错误状态,此时检测到错误,发送被动错误,不会破坏数据传输,

  • 当TEC>255时,设备进入总线关闭状态
    在这里插入图片描述
    在这里插入图片描述

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

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

相关文章

伍光和《自然地理学》电子书(含考研真题、课后习题、章节题库、模拟试题)

《自然地理学》&#xff08;第4版&#xff09;由伍光和、王乃昂、胡双熙、田连恕、张建明合著&#xff0c;于2018年11月出版。作为普通高等教育“十一五”国家级规划教材&#xff0c;本书不仅适用于高校地球科学各专业的基础课程&#xff0c;还可供环境、生态等有关科研、教学人…

Idea如何推送项目到gitee

第一步&#xff1a;先在你的gitee创建一个仓库 第二步&#xff1a; 点击推送 点击定义远程&#xff0c;将URL换成你仓库的&#xff0c;填好你的用户名和密码 可以看到已经推送到仓库了

AI笔筒操作说明及应用场景

AI笔筒由来&#xff1a; 在快节奏的现代办公环境中&#xff0c;我们一直在寻找既能提升效率、增添便利&#xff0c;又能融入企业文化、展现个人品味的桌面伙伴。为此&#xff0c;我们特推出专为追求卓越、注重细节的您设计的AI笔筒礼品版&#xff0c;它集高科技与实用性于一身…

【C++】内存管理(二):operator new/delete

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解C的operator new/delete&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 1 new/delete的底层2 new/delete的底层调用顺序3 delete[ ]调用析构函数的次数…

【工具变量】中国制造2025试点城市数据集(2000-2023年)

数据简介&#xff1a;《中国制造2025》是中国ZF于2015年5月8日印发的一项战略规划&#xff0c;旨在加快制造业的转型升级&#xff0c;提升制造业的质量和效益&#xff0c;实现从制造大国向制造强国的转变。该规划是中国实施制造强国战略的第一个十年行动纲领&#xff0c;明确提…

小菜家教平台(一):基于SpringBoot+Vue打造一站式学习管理系统

前言 现在已经学习了很多与Java相关的知识&#xff0c;但是迟迟没有进行一个完整的实践&#xff08;之前这个项目开发到一半&#xff0c;很多东西没学搁置了&#xff0c;同时原先的项目中也有很多的问题&#xff09;&#xff0c;所以现在准备从零开始做一个基于SpringBootVue的…

算法专题:字符串

目录 1. 最长公共前缀 1.1 算法原理 1.2 算法代码 2. 最长回文子串 2.1 算法原理 2.2 算法代码 3. 二进制求和 3.1 算法原理 3.2 算法代码 4. 字符串相乘 4.1 算法原理 4.2 算法代码 1. 最长公共前缀 . - 力扣&#xff08;LeetCode&#xff09; 1.1 算法原理 有以…

非线性数据结构之图

一、有向图&#xff08;Directed Graph&#xff09; 1. 定义 有向图是一个由顶点&#xff08;节点&#xff09;和有方向的边&#xff08;弧&#xff09;组成的图。在有向图中&#xff0c;每条边都有一个起点和一个终点&#xff0c;表示从一个顶点到另一个顶点的关系。 2. 特…

虚拟现实技术课程开发思路

文章目录 组队选题立项分工建模说明&#xff1a;场景说明&#xff1a;交互说明&#xff1a; 结语&#xff1a; 前言&#xff1a;最近学弟学妹们反馈水水老师课程开始上强度了。不仅有翻转课堂&#xff0c;还有理论课实验课都要做东西出来。听说理论课是做什么博物馆什么的&…

FPGA视频GTH 8b/10b编解码转PCIE3.0传输,基于XDMA中断架构,提供工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的PCIE方案我已有的 GT 高速接口解决方案 3、PCIE基础知识扫描4、工程详细设计方案工程设计原理框图输入Sensor之-->芯片解码的HDMI视频数据组包基于GTH高速接口的视频传输架构GTH IP 简介GTH 基本结构GTH 发送和接收处理…

CSS中常见的两列布局、三列布局、百分比和多行多列布局!

目录 一、两列布局 1、前言&#xff1a; 2. 两列布局的常见用法 两列布局的元素示例&#xff1a; 代码运行后如下&#xff1a; 二、三列布局 1.前言 2. 三列布局的常见用法 三列布局的元素示例&#xff1a; 代码运行后如下&#xff1a; 三、多行多列 1.前言 2&…

jmeter结合ansible分布式压测--1数据准备

一、搭建ansible环境 ansible是基于python开发&#xff0c;通过ssh连接客户机执行任务。ansible可以批量系统配置、批量程序部署、批量运行命令等。 1、安装yum install ansible 2、检查ansible的版本:ansible --version 二、利用ansible在其他机器上准备压测数据 1、本地准…

蓬勃发展:移动开发——关于软件开发你需要知道些什么

一、前言 移动开发一直都是软件开发领域中最有趣的领域之一&#xff0c;这是因为&#xff1a; 1、移动开发为“只有一个人”的开发团队提供了一个非常独特的机会&#xff0c;让他可以在相对较短的时间内建立一个实际的、可用的、有意义的应用程序&#xff1b; 2、移动开发也代…

gitmakegdb

git git reset 命令 | 菜鸟教程 (runoob.com) 像嫁接一样 make Makefile | 爱编程的大丙 (subingwen.cn) # 举例: 有源文件 a.c b.c c.c head.h, 需要生成可执行程序 app ################# 例1 ################# app:a.c b.c c.cgcc a.c b.c c.c -o app################# 例…

网络安全认证的证书有哪些?

在网络安全领域&#xff0c;专业认证不仅是个人技术能力的象征&#xff0c;也是职业发展的重要推动力。随着网络安全威胁的日益严峻&#xff0c;对网络安全专业人才的需求也在不断增长。本文将介绍一些网络安全认证的证书&#xff0c;帮助有志于从事网络安全行业的人士了解并选…

初阶数据结构的各种排序方法——冒泡,直接插入,希尔,快排,选择,归并(C语言)

1.交换排序 交换排序基本思想&#xff1a; 所谓交换&#xff0c;就是根据序列中两个记录键值的⽐较结果来对换这两个记录在序列中的位置 交换排序的特点是&#xff1a;将键值较⼤的记录向序列的尾部移动&#xff0c;键值较⼩的记录向序列的前部移动。 1.1冒泡排序 例子&…

qt QFileInfo详解

1、概述 QFileInfo是Qt框架中用于获取文件信息的工具类。它提供了与操作系统无关的文件属性&#xff0c;如文件的名称、位置&#xff08;路径&#xff09;、访问权限、类型&#xff08;是否为目录或符号链接&#xff09;等。此外&#xff0c;QFileInfo还可以获取文件的大小、创…

Charles抓包_Android

1.下载地址 2.破解方法 3.安卓调试办法 查看官方文档&#xff0c;Android N之后抓包要声明App可用User目录下的CA证书 3.1.在Proxy下进行以下设置&#xff08;路径Proxy->Proxy Settings&#xff09; 3.1.1.不抓包Windows&#xff0c;即不勾选此项&#xff0c;免得打输出不…

软件压力测试有多重要?北京软件测试公司有哪些?

软件压力测试是一种基本的质量保证行为&#xff0c;它是每个重要软件测试工作的一部分。压力测试是给软件不断加压&#xff0c;强制其在极限的情况下运行&#xff0c;观察它可以运行到何种程度&#xff0c;从而发现性能缺陷。 在数字化时代&#xff0c;用户对软件性能的要求越…

【Python】【数据可视化】【商务智能方法与应用】课程 作业一 飞桨AI Studio

作业说明 程序运行和题目图形相同可得90分&#xff0c;图形显示有所变化&#xff0c;美观清晰可适当加分。 import matplotlib.pyplot as plt import numpy as npx np.linspace(0, 1, 100) y1 x**2 y2 x**4plt.figure(figsize(8, 6))# yx^2 plt.plot(x, y1, -., labelyx^2,…