2024年最全CAN通信----基本原理_can通讯,阿里P7大佬手把手教你

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

STM32标准库开发

文章链接:
STM32F103标准库开发----目录
STM32F103标准库开发----CAN总线通信实验----初始化/波特率
STM32F103标准库开发----CAN总线通信实验----发送和接收

资源链接:
本例程已经调试成功,下载即可使用。
STM32F103标准库开发----CAN通信收发实验----程序源码


一、CAN总线简介

CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO国际标准化的串行通信协议。
在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。
由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个 LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的 CAN 通信协议。
此后,CAN 通过 ISO11898 及 ISO11519 进行了标准化,现在在欧洲已是汽车网络的标准协议。
现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。

CAN总线特点:

  1. 多主控制
  2. 系统柔软性
  3. 速度快,距离远
  4. 具有错误检测、错误通知和错误恢复功能
  5. 故障封闭功能
  6. 连接节点多

CAN总线标准

CAN 协议经 ISO 标准化后有 ISO11898 标准和 ISO11519-2 标准两种。
ISO11898 和 ISO11519-2 标准对于数据链路层的定义相同,但物理层不同。
在这里插入图片描述
总线拓扑图
在这里插入图片描述

闭环总线网络----ISO11898

闭环总线网络高速、短距离,它的总线最大长度为 40m,通信速度最高为 1Mbps,总线的两端各要求有一个120 欧的电阻。
在这里插入图片描述

开环总线网络----ISO11519

开环总线网络低速、远距离,它的最大传输距离为 1km,最高通讯速率为 125kbps,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个2.2千欧的电阻。
在这里插入图片描述

差分信号

CAN总线采用差分信号传输,通常情况下只需要两根信号线就可以进行正常的通信。
在差分信号中,逻辑0和逻辑1是用两根差分信号线的电压差来表示。

当处于逻辑1,CAN_High和CAN_Low的电压差小于0.5V时(0V),称为隐性电平(Recessive);
当处于逻辑0,CAN_High和CAN_Low的电压差大于0.9V时(2V),称为显性电平(Dominant)。

在这里插入图片描述
在这里插入图片描述
差分信号的传输的优点:

  • 抗干扰能力强
  • 能有效抑制它对外部的电磁干扰
  • 时序定位精确

二、CAN 协议

CAN 帧格式

为了更有效地控制通讯,CAN 一共规定了 5 种类型的帧。
它们的类型及用途说明如表所示:

帧用途
数据帧用于发送单元向接收单元传送数据的帧
遥控帧用于接收单元向具有相同 ID 的发送单元请求数据的帧
错误帧用用于当检测出错误时向其它单元通知错误的帧
过载帧用于接收单元通知其尚未做好接收准备的帧
帧间隔用于将数据帧及遥控帧与前面的帧分离开来的帧

1. 数据帧

数据帧由 7 个段构成,具体数据帧构成图如下:
在这里插入图片描述

(1)帧起始(标准、扩展格式相同)

表示帧开始的段,1个位的显性位
在这里插入图片描述

(2)仲裁段(标准、扩展格式不同)

仲裁段结构图如下图所示:
在这里插入图片描述

表示该帧优先级的段,标准格式扩展格式在仲裁段的构成有所不同。

标准格式 ---- 共12位11位基本ID1位RTR位

  • 帧ID
    标准格式的 ID 有 11 个位,从 ID28 到 ID18 被依次发送。
    禁止高7位都为隐性(禁止设定:ID=1111111XXXX)。
  • RTR位 ---- 远程传输请求位
    用于区分数据帧和遥控帧的:显性电平 ---- 数据帧,隐性电平 ---- 遥控帧

扩展格式 ---- 共32位11位基本ID1位SRR位1位IDE位18位扩展ID1位RTR位

  • 帧ID
    扩展格式的 ID 有 29 个位。基本 ID 从 ID28 到 ID18,扩展 ID 由 ID17 到 ID0 表示。基本 ID 和标准格式的 ID 相同。禁止高 7 位都为隐性(禁止设定:基本 ID=1111111XXXX)。
  • SRR 位
    只存在于扩展格式,它用于替代标准格式中的 RTR位。
    由于扩展帧中的 SRR 位为隐性位,RTR 在数据帧为显性位,所以在两个 ID 相同的标准格式报文与扩展格式报文中,标准格式的优先级较高
  • IDE 位 ---- 标识符扩展位
    用于区分标准格式与扩展格式:显性电平 ---- 标准格式,隐性电平 ----- 扩展格式
  • RTR位 ---- 远程传输请求位
    用于区分数据帧和遥控帧的:显性电平 ---- 数据帧,隐性电平 ---- 遥控帧
(3)控制段(标准、扩展格式不同)

控制段结构图如下图所示:
在这里插入图片描述

表示数据的字节数及保留位的段,标准格式和扩展格式的构成有所不同。
6 个位构成:

标准格式1位IDE位1位r0保留位4位DLC数据长度码

  • IDE 位 ---- 标识符扩展位
    用于区分标准格式与扩展格式:显性电平 ---- 标准格式,隐性电平 ----- 扩展格式
  • 保留位 ---- r0
    保留位必须全部以显性电平发送。
    但接收方可以接收显性、隐性及其任意组合的电平。
  • 数据长度码 ---- DLC
    表示发送/接收的数据长度(字节)。
    数据的字节数必须为 0~8 字节,但接收方对 DLC = 9~15 的情况并不视为错误。

扩展格式2位 r0 和 r1 保留位4位DLC数据长度码

  • 保留位 ---- r0、r1
    保留位必须全部以显性电平发送。
    但接收方可以接收显性、隐性及其任意组合的电平。
  • 数据长度码 ---- DLC
    表示发送/接收的数据长度(字节)。
    数据的字节数必须为 0~8 字节,但接收方对 DLC = 9~15 的情况并不视为错误。

数据长度码与数据的字节数的对应关系如下表所示:

数据长度码数据字节数
DLC3DLC2
D-显-0D-显-0
D-显-0D-显-0
D-显-0D-显-0
D-显-0D-显-0
D-显-0R-隐-1
D-显-0R-隐-1
D-显-0R-隐-1
D-显-0R-隐-1
R-隐-1D-显-0
(4)数据段(标准、扩展格式相同)

数据段可包含 0~8 个字节的数据。
从 MSB(最高位)开始输出。
在这里插入图片描述

(5)CRC段(标准、扩展格式相同)

CRC 段是检查帧传输错误的帧。
由 15 个位的 CRC 顺序和 1 个位的 CRC 界定符(用于分隔的位)构成。
在这里插入图片描述
CRC 顺序—15位
CRC 顺序是根据多项式生成的 CRC 值,CRC 的计算范围包括帧起始、仲裁段、控制段、数据段。
接收方以同样的算法计算 CRC 值并进行比较,不一致时会通报错误。

CRC 界定符
用于分隔的位

(6)ACK段(标准、扩展格式相同)

ACK 段用来确认是否正常接收。
由 1位 ACK 槽(ACK Slot) 和1位 ACK 界定符 构成。
在这里插入图片描述
ACK 槽(ACK Slot)
发送单元在 ACK 段发送 2 个位的隐性位。
接收到正确消息的单元在 ACK 槽(ACK Slot)发送显性位,
通知发送单元正常接收结束。这称作“发 送 ACK”或者“返回 ACK”。

ACK 界定符
用于分隔的位

(7)帧结束(标准、扩展格式相同)

帧结束是表示该该帧的结束的段。由 7 个位的隐性位构成。
在这里插入图片描述

2. 遥控帧(远程帧)

接收单元向发送单元请求发送数据所用的帧。
遥控帧由 6 个段组成,遥控帧没有数据帧的数据段

具体遥控帧构成图如下:
在这里插入图片描述
遥控帧的 RTR 位为隐性位,没有数据段。

3. 错误帧

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

(img-A7v5A6nR-1715630671724)]
[外链图片转存中…(img-LkqJLFVh-1715630671725)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值