CAN通讯协议

news/2025/10/29 20:59:02/文章来源:https://www.cnblogs.com/lsksp/p/19170347

CAN通讯是一种多主总线异步通信协议,采用差分信号传输,具有高可靠性、实时性强、抗干扰能力好等特点。它广泛应用于汽车电子、工业控制等领域,用于设备间数据快速准确传输,保障系统稳定运行。

一、CAN物理层

1、电气特性

总线结构物理特征(左:闭环右:开环):

CAN总线由两根信号线组成,使用的是差分信号,是一种异步通讯CAN总线网络的结构有闭环和开环两种,其对应标准分别在ISO11898(高速CAN标准)ISO11519-2(低速CAN)中描述(对OSI七层模型中的数据链路层和物理层进行了标准化),两种标准对比如下图所示:

2、CAN的电平形式

CAN是差分通讯,总线电平分为显性电平(Dominant Level)和隐形电平(Recessive Level)两种,总线必须处于两种电平之一,总线上执行逻辑上的线与时,显性电平为0,隐形电平为1

二、CAN总线帧格式

帧类型 用途
数据帧 发送设备主动发送数据(广播式)
遥控帧 接收设备主动请求数据(请求式)
错误帧 某个设备检测出错误时向其他设备通知错误
过载帧 接收设备通知其尚未做好接收准备
间隔帧 用于将数据帧及遥控帧与前面的帧分离开

1、数据帧

帧起始(标准/扩展格式相同)
  • SOF(Start of Frame):帧起始,一个显性位,表示帧开始的段;
仲裁段(标准/扩展格式不同)
  • ID(Identify)
    • 仲裁段,区分功能,同时决定优先级;
    • 标准CAN有11位ID(ID28-ID18),扩展格式ID包含基本ID(ID28-ID18)和扩展ID(ID17-ID0);
    • 禁止高7为ID全为1(隐形);
  • (标准ID)RTR(Remote Transmission Request ):远程请求位,区分数据帧和遥控帧;
  • (扩展ID)IDE(Identifier Extension):扩展标志位,区分标准格式和扩展格式;
  • (扩展ID)SRR(Substitute Remote Request):替代RTR,协议升级时留下的无意义位;
控制段(标准/扩展格式不同)
  • r0/r1(Reserve):保留位,为后续协议升级留下空间;
  • DLC(Data Length Code):数据长度,指示数据段有几个字节;
  • (标准ID)IDE(Identifier Extension):扩展标志位,区分标准格式和扩展格式;
数据段(标准/扩展格式相同)
  • Data:数据段,0~8个字节;
CRC段(标准/扩展格式相同)
  • CRC(Cyclic Redundancy Check):15位循环冗余校验,校验数据是否正确;
  • CRC界定符1隐性位
ACK段(标准/扩展格式相同)
  • ACK(ACK Slot):应答槽位,发送方发送1(隐形),接收方回应0(显性),判断数据有没有被接收方接收;
  • ACK界定符1隐性位
帧结束(标准/扩展格式相同)
  • EOF(End of Frame ):帧结束,7位隐形位,表示数据位已经传输完毕;

2、遥控帧

遥控帧无数据段,RTR为隐性电平1,其他部分与数据帧相同

image-20250703003936526

3、错误帧

总线上所有设备都会监督总线的数据,一旦发现“位错误”或“填充错误”或“CRC错误”或“格式错误”或“应答错误” ,这些设备便会发出错误帧来破坏数据,同时终止当前的发送设备。

image-20250703004143875

4、过载帧

当接收方收到大量数据而无法处理时,其可以发出过载帧,延缓发送方的数据发送,以平衡总线负载,避免数据丢失。

image-20250703004226473

5、帧间隔

将数据帧和遥控帧与前面的帧分离开

image-20250703004322682

四、位时序

由发送单元在非同步的情况下发送的每秒钟的位数称为位速率。一个位可分为4段,它们都由Time Quantum(Tq)的最小时间的那位组成。

  • 同步段(SS)
  • 传播时间段(PTS)
  • 相位缓冲段1(PBS1)
  • 相位缓冲段2(PBS2)

1 位分为 4 个段,每个段又由若干个 Tq 构成,这称为位时序。

其中采样点位于PBS1结束后

段及其作用如下图所示:

位段

五、波特率的计算

\[baud\ rate=\frac{1}{T_{ss}+T_{PTS}+T_{PBS1}+T_{PBS2}} \]

其中每一个段的时间由Tq组成,Tq = 1/CAN时钟频率;

六、位填充

位填充是为防止突发错误而设定的功能。当同样的电平持续5位时则添加一个位的反型数据。如下图所示:

位填充

1、发送单元的工作

在发送数据帧和遥控帧时,SOF~CRC段间的数据,相同电平如果持续5位,在下一个位(第6个位)则
要插入1位与前5位反型的电平。

2、接收单元的工作

在接收数据帧和遥控帧时,SOF~CRC段间的数据,相同电平如果持续5位,需要删除下一个位(第6个
位)再接收。如果这个第6个位的电平与前5位相同,将被视为错误并发送错误帧。

七、附录

1、数据长度码和字节关系

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

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

相关文章

美客多接口协议学习

授权流程: 授权url: https://global-selling.mercadolibre.com/authorization?response_type=code&client_id=$APP_ID&redirect_uri=$YOUR_URL获取tokenurl:curl -X POST -H accept: application/json -H c…

Python 模块sys详解

一、模块简介 sys 是 Python 的一个内置标准库模块,全名为 “System-specific parameters and functions”(系统特定参数与函数)。 它提供了与 Python 解释器 和 操作系统交互 的接口,使开发者能够访问解释器的运行…

请问

请问报告名称:AR(AA Reverse)fin cut工艺业务需求与数据目标报告 版本:V1.0 日期:2025-9-4 编制人:[李晓睿/数字智能部] 审核人:[姓名/部门] 引言 1.1 背景与业务场景项目发起背景(业务痛点、现有问题等) 工艺…

2024 暑期模拟赛 #5

100 + 100 + 60 + 0 = 260, Rank 1/6.2024暑期CSP-S&NOIP模拟赛第5套 链接:link 题解:link 时间:4h (2025.10.29 14:00~18:00) 题目数:4 难度:A B C D\(\color{#FFC116} 黄\) \(\color{#52C41A} 绿\) \(\colo…

中断向量表10.29

今天学到了一个咩用的知识,台式电脑的主板有的支持集成显卡和独立显卡同时输出,有的不支持。只能同时单个输出,但是可以在一个显卡上接两个显示器实现分屏。此电脑-属性-设备管理器-显示适配器 单片机在启动时一般先…

Nordic无线开发---nRF Connect SDK 3.0更新版的安装入门介绍

2025.10.14更新: 增加了NCS v3.1.0和v3.1.1在中文Windows系统上编码问题的解决方案 增加了说明,nrfutil sdk-manager以及解决了SDK在Windows系统上git状态错误的问题 nRF Connect SDK,简称NCS,是Nordic最新的SDK平…

macOS镜像下载地址

macOS Catalina 10.15.7 (19H2) (无第三方引导)文件:macOS Catalina 10.15.7 19H2.dmg大小:7.71GBMD5:5F15506A22A11A0FE17E3DAE463FCEB8SHA1:43EBEDD8CDE672B2FC29A38DDAB91B3FD56571C5SHA256:D3AA8D17B9CF123…

关于 google 登陆的一些奇妙技巧

起源是某一次在机房心血来潮登 google 账号,在被此电话号码无法用于验证弄红温之后疯狂回退,结果意外发现登上了! 具体操作如下: 首先点击登录界面,正常输入邮箱、密码,然后会让你验证一下手机, 这个时候我们选…

移位寄存器 蓝色 与 粉红色 有什么区别

移位寄存器 蓝色 与 粉红色 有什么区别你已经注意到 LabVIEW 的移位寄存器 会出现不同颜色,比如 蓝色 和 粉红色,这其实代表的是 数据类型(Data Type)不同,并不影响移位寄存器的逻辑功能。🎨 一、颜色 = 数据类…

第9天(中等题 滑动窗口)

打卡第九天 2道中等题题目:代码: class Solution { public:int longestOnes(vector<int>& nums, int k) {int ans = 0, left = 0, cnt0 = 0;for (int right = 0; right < nums.size(); right++) {cnt0 +=…

Palantir Ontology 技术深度解析:化繁为简,连接数据与决策的数字孪生

Palantir Ontology 技术深度解析:化繁为简,连接数据与决策的数字孪生Palantir Technologies,这家以《指环王》中“真知晶球”命名的大数据分析公司,其核心技术之一 Ontology(本体) 正是其平台(如 Foundry 和 Go…

CF1196F K-th Path

经典赛前活动脑子。 一般碰到这种题思考一些特殊性。 考虑答案一定不大于边权第 \(k\) 小的边权,所以现在只有起点为前 \(k\) 小边权的端点能够成为答案,暴力跑即可。 还是要想到单独一条边的情况。

转换FastText训练数据格式到Parquet(Polars,KIMI)

转换FastText训练数据格式到Parquet(Polars,KIMI)User: 你知道fasttext用于训练的数据格式吗? Kimi: FastText 的训练数据格式非常简单:每一行代表一个训练样本。 对于文本分类任务,每行的开头是标签(label) ,…

PlantAssistant-VUE属性数据

PlantAssistant-VUE属性数据 引言 依托主流工厂设计软件数字化交付数据文件,AVEVA公司PDMS/E3D的RVM和Intergraph公司SP3D的VUE:VUE 属性数据 SP3D的VUE文件一般可以导出两种属性文件,一种是XML文件,一种是MDB2文件…

由 Mybatis 源码畅谈软件设计(四):动态 SQL 执行流程

本节我们探究动态 SQL 的执行流程,由于在前一节我们已经对各个组件进行了详细介绍,所以本节不再赘述相关内容,在本节中主要强调静态 SQL 和动态 SQL 执行的不同之处。在这个过程中,SqlNode 相关实现值得关注,它为…

数学证明的一些记录

T[2025/10/29]: 题目链接:https://codeforces.com/gym/105578/problem/B \(n与m互质,i从1到n,j从1到m,式子im+jn \% nm\),对于任何一对\(i j\),式子的值都不同 要证明这个式子,即证明不存在一对i,j使得 f(i1,j1)…

10.29(续)

代码大全2的6-10章读后感: 第 6 章 “变量命名的艺术” 看似基础,却直击编程中的 “沟通痛点”。书中强调 “好的命名应能自我说明,让读者无需查看上下文就能理解变量含义”,这一点让我深受触动。以往我常为图方便…

DicomObjects .NET 8.48.231.0 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025.10.29__jyu每日一题题解

完全平方数 题目大意 给定一个正整数 \(n\),找到最小的正整数 x,使得它们的乘积是一个完全平方数。 思路 1. 定理 算术基本定理指出:任何大于1的自然数 \(N\),要么本身是素数,要么可以唯一地分解为有限个素数的乘…