初出茅庐的小李博客之CAN通信基础知识

CAN是什么?

CAN 是 Controller Area Network 的缩写,中文是控制器局域网路,是 ISO 国际标准化的串行通信协议之一。

在这里插入图片描述

CAN:控制器局域网( Controller Area Network)属于 现场总线的范畴,是一种有效支持 分布式控制系统的 串行通信网络

CAN是由 德国博世公司在20世纪80年代专门为汽车行业开发的一种 串行通信总线。由于其高性能、高可靠性以及独特的设计而越来越受到人们的重视,被广泛应用于汽车业、航空业、工业控制、安全防护等领域。
随着CAN总线在各个行业和领域的广泛应用,对其的通信格式标准化也提出了更严格的要求。1991年CAN总线技术规范(Version2.0)制定并发布。该技术规范共包括A和B两个部分。其中2.0A给出了CAN 报文标准格式,而2.0B给出了标准的和扩展的两种格式。CAN总线协议是一种ISO 国际标准化的串行通信协议,有ISO-11898 和 ISO-11519两个系列。

其定义有:

ISO-11898 定义了通信速率为 125 Kbps ~1Mbps 的高速 CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度 ≤ 40米,如图1。

在这里插入图片描述

ISO11519 定义了通信速率为 10~125 kbps 的低速 CAN 通信标准,属于开环总线,传输速率为40kbps时,总线长度可达1000米,如图2。

在这里插入图片描述

现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。 图 3 是车载网络的构想示意图。CAN 通信协议的开发,使多种 LAN 通过网关进行数据交换得以实现。

在这里插入图片描述

Controller是什么?

通常意义上指控制器,多个控制器之间进行通信,可以通过CAN线使其进行连接

在这里插入图片描述

典型用例:

在这里插入图片描述

CAN线如何连接呢

两根线:

CAN_H线

CAN_L线

在这里插入图片描述

CAN的两种电平

总线上的电平有显性电平和隐性电平两种。 总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。 “显性”具有“优先”的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐 性”具有“包容”的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平。(显性电平比 隐性电平更强)

****显性电平:****逻辑0:CAN_H 和 CAN_L 的电压一个3.5V一个1.5V 电位差是2V

****隐形电平:****逻辑1:CAN_H 和 CAN_L 的电压都是是2.5V 电位差是0V

CAN 协议经 ISO 标准化后有 ISO11898 标准和 ISO11519-2 标准两种。ISO11898 和 ISO11519-2 标准对于数据 链路层的定义相同,但物理层不同。

  1. ISO11898 是通信速度为 125kbps-1Mbps 的 CAN 高速通信标准。 目前,ISO11898 追加新规约后,成为 ISO11898-1 新标准。
  2. ISO11519 是通信速度为 125kbps 以下的 CAN 低速通信标准

在这里插入图片描述

3.ISO11898和ISO11519的主要不同点

在这里插入图片描述

下图是描述的就是压差为2V的逻辑0,跟压差为0V的逻辑1

在这里插入图片描述

单片机如何进行CAN通信

串行电平转换成差分电平

在这里插入图片描述

为什么要用差分线呢

主要是下面两个原因

  1. 抗干扰性:双绞线可以有效地减少电磁干扰的影响。CAN总线常常被应用于工业环境和汽车领域,这些环境中存在大量的电磁干扰源,如电机、继电器等。双绞线通过将两根导线紧密地绞合在一起,可以减少对外部电磁干扰的敏感性,从而提高通信的可靠性。
  2. 抗噪声性:双绞线还可以降低信号传输中的串扰噪声。当信号通过一根导线传输时,周围的导线可能会产生电磁场,从而对信号产生干扰。双绞线中的两根导线通过彼此绞合,可以减小这种串扰噪声的影响,提高信号的完整性和准确性。

在这里插入图片描述

这也就是CAN通信比串口通信传输更远的原因可以达到1000米。

CAN的协议桢

CAN(Controller Area Network)协议定义了几种不同类型的数据帧,用于在CAN总线上进行通信。以下是CAN协议中常见的几种数据帧及其作用:

  1. 数据帧(Data Frame):数据帧是CAN协议中最常用的帧类型。它用于在CAN总线上传输数据信息。数据帧包括数据域(Data Field),用于携带有效数据,以及标识符(Identifier),用于标识消息的发送者和接收者。

  2. 远程帧(Remote Frame):远程帧用于请求特定CAN节点发送数据。发送远程帧的节点向目标节点发送一个标识符,目标节点接收到远程帧后,会以数据帧的形式返回请求的数据。远程帧在需要获取其他节点数据时非常有用。有时候也叫遥控桢

  3. 错误帧(Error Frame):错误帧用于在CAN总线上报告错误情况。当节点检测到总线上的错误时,它可以发送错误帧来通知其他节点发生了错误。错误帧中包含有关错误类型和错误位置的信息,用于诊断和故障排除。

  4. 过载帧(Overload Frame):过载帧用于指示CAN节点附近存在过载条件。当节点无法及时处理接收到的消息时,它可以发送过载帧来通知其他节点,以便调整通信负载或采取其他措施。

  5. 错误被动帧(Error Passive Frame):错误被动帧用于指示发送节点处于错误被动状态。当节点连续发送错误帧数量达到一定阈值时,它会进入错误被动状态,此时会发送错误被动帧来通知其他节点。

  6. 帧间隔 :在CAN(Controller Area Network)通信中,帧间隔(Frame Interval)指的是两个连续CAN数据帧之间的时间间隔。帧间隔包括发送帧的间隔和接收帧的间隔

这些数据帧类型在CAN总线上的使用有助于实现可靠的通信和故障诊断。数据帧用于传输实际的数据信息,远程帧用于请求数据,错误帧用于报告错误情况,过载帧用于指示过载条件,而错误被动帧用于指示节点处于错误被动状态。通过这些数据帧,CAN协议能够提供高效、可靠的通信机制,并支持诊断和故障处理。

另外,数据帧和遥控帧有标准格式和扩展格式两种格式,

标准格式有 11 个位的标识符(Identifier: 以下称 ID),

扩展格式有 29 个位的 ID;

在这里插入图片描述

标准的一串数据帧是什么样的

在这里插入图片描述

标准帧(Standard Frame)是CAN(Controller Area Network)协议中常用的一种数据帧格式,用于在CAN总线上传输数据。以下是标准帧的格式及其各个字段的解释:

  1. 帧起始位(Start of Frame,SOF):一个固定为低电平的位,用于指示帧的开始。
  2. 标识符(Identifier):标识符用于唯一地标识发送的消息。它通常是11位长,但在CAN 2.0A协议中,标识符可以是11位或29位长。标识符中的位定义了消息的优先级、发送节点和接收节点等信息。
  3. 远程传输请求位(Remote Transmission Request,RTR):该位用于指示消息是否是远程帧。如果该位为1,则表示发送节点请求接收节点发送数据;如果该位为0,则表示消息是数据帧。
  4. 数据长度码(Data Length Code,DLC):DLC字段指定了数据域中所包含的字节数。它可以是0到8之间的值,表示数据域的长度。
  5. 数据域(Data Field):数据域是用于携带有效数据的部分。它的长度由DLC字段确定,可以包含0到8个字节的数据。
  6. CRC(Cyclic Redundancy Check):CRC字段用于检测数据帧中的错误。它是通过对标识符、RTR、DLC和数据域进行计算得出的校验值。
  7. CRC分隔位(CRC Delimiter):一个固定为1的位,用于分隔CRC字段和确认槽位。
  8. 确认槽位(Acknowledge Slot):确认槽位用于接收节点发送一个确认位(ACK)来指示数据的接收情况。如果接收节点成功接收到数据,则发送一个高电平ACK;如果接收节点检测到错误,则发送低电平ACK错误。
  9. 结束帧位(End of Frame,EOF):一个固定为高电平的位,用于指示帧的结束。

​ 以上是标准帧的基本格式。CAN总线上的节点根据这个格式来发送和接收数据。标准帧通过使用固定长度的标识符和较短的数据域,提供了一种简单、高效的通信方式,适用于许多应用领域,如汽车、工业控制等。

初出茅庐的小李
关注 关注
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot/Spring扩展点系列之初出茅庐ApplicationContextInitializer - 第426篇
悟纤学院
05-16 785
简单理解就是:用于在刷新容器之前初始化Spring的回调接口。
CAN与CANOpen(五)
maifansnet的博客
05-15 4万+
4.3通讯对象 CANOpen协议共有 6种通讯对象,分别是: PDO、 SDO、 SYNC、 TIME、 EMCY、 NMT。这 6种通讯对象完成了 CANOpen协议的所有通讯功能。其中我们只介绍使用较多的 PDO、 SDO、 NMT( 4.4)。 4.3.1通信对象ID (COB-ID) CANOpen协议的通讯对象主要利用了 CAN协议中的数
CAN总线协议
热门推荐
u010037269的博客
03-30 13万+
目录 1. 总体概述  1.1 基本概念 1.2 通讯方式 1.3 为什么使用CAN? 1. 总体概述   1.1 基本概念   CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议。在北美和西欧,CAN 总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以 CAN 为底层协议专为大型货车和重工机械车辆设计的 J1939 协议。   1.2 通讯方式   回顾前面学到的 RS23.
五、CAN总线
最新发布
endeavor
09-18 2382
一、基础知识一、基础知识1、can介绍CAN(Controller Area Network),是ISO国际标准化的。为了满足汽车产业的“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需求。(ISO11519)通信速率10~125Kbps,总线长度可达1000米。,经典CAN,(ISO11898)通信速率125Kbps~1Mbps,总线长度≤40米。通信速率可达5Mbps,并且兼容经典CAN,遵循ISO 11898-1 做数据收发。UARTIICSPI2、CAN硬件电路。
CAN总线通俗详解
goforcar的博客
05-25 1万+
想要了解CAN协议,我们首先从最朴素的需求出发,或许对您理解起来会更直白,不过由于个人水平有限如博文有谬误还请各位看官指正勘误,还望海涵。
can的基础介绍
让学习成为一种习惯
03-12 1174
控制器局域网(CAN)为串行通讯协议,能有效地支持具有很高安全等级的分布实时控制。CAN 的应用范围很广,从高速的网络到低价位的多路接线都可以使用 CAN。在汽车电子行业里,使用 CAN 连接发动机控制单元、传感器、防刹车系统、等等,其传输速度可达 1 Mbit/s。同时,可以将 CAN 安装在卡车本体的电子控制系统里,诸如车灯组、电气车窗等等,用以代替接线配线装置。这本技术规范的目的是为了在任何两个 CAN 仪器之间建立兼容性。可是,兼容性有不同的方面,比如电气特性和数据转换的解释。
CAN协议
weixin_53592457的博客
03-15 1176
(2)节点接收数据帧:当其他节点接收到数据帧时,会对数据帧进行检验和解码,如果数据帧正确,则将数据帧中的数据存储到接收缓冲区中。(4)错误检测和纠正:如果数据帧传输中发生错误,接收节点会发送一个错误帧,通知其他节点数据帧传输失败,并进行错误检测和纠正。(1)节点发送数据帧:当一个节点需要发送数据时,它会在总线上发送一个数据帧,包括数据和帧检验序列。(3)节点回复应答帧:当一个节点接收到数据帧后,会发送一个应答帧,表示已经正确接收到数据帧。(2)帧类型:表示数据帧的类型,包括数据帧和远程帧两种类型。
CAN基础知识
dianji2015_的博客
10-18 1万+
CAN(Controller Area Network)即控制器局域网,是现场总线之一,基于串行数据通信协议。最初是应用于汽车控制中,为了实现对汽车整体的控制,将部件挂在CAN总线上,再用网关实现速率的分配。CAN通信介质可以是双绞线、电缆或者光纤,通信速率高达1Mbps。发送方通过使总线电平发生变化,将消息发送给接收方。多主方式,根据消息ID决定优先级因为是差分信号,所以抗电磁干扰强是异步串行通信,采用半双工的方式节点出现错误的情况下,具有自动关闭的功能。
初出茅庐博客之顶松地磅仪表称重数据转换
初出茅庐的小李
05-16 488
顶松通信协议***是一种基于 Ascii 码字节的主从式协议,每个下位机(仪表)都有一个唯一地址,上位机发送指令到指定地址的下位机,下位机收到命令以后,如果校验正确则返回相应信息
小学六年级语文基础知识总复习练习一答案.docx
10-05
小学六年级语文基础知识总复习练习一提供了丰富的成语和文化常识,是提高学生语文素养的重要资料。以下是根据题目内容整理的相关知识点: 1. **成语纠正**: - 成语的正确写法至关重要,如"直接了当"应为"直截了当...
小学六年级语文基础知识总复习练习(一)(答案).doc
09-25
小学六年级语文基础知识总复习练习主要涵盖了汉字书写、成语运用、文学常识、句子补充、成语对对子、成语故事和人物关联等多个方面。这些知识点旨在帮助学生巩固和提高语文基础能力,同时也涉及到中国传统文化的诸多...
CAN协议学习小结
wulawulabiu的博客
01-09 906
发送之后会通过回读的机制来比较发送的内容与实际总线上发送内容是否一致,如节点A与总线上相同位数据不一样,发和回读节点不一样,则A点仲裁失败,失败后A则从发送节点转变成接收节点,后面就不会再发送数据了;CAN采用的是广播寻址的方式,可以实现一对多的发送,即发送节点在发送过程中只负责将数据发送到总线上去,而不会去指定具体的接收节点,所有挂载在总线上面的节点都可以去接收到数据, 但是具体接不接受是由各个接收节点去决定的;,即当遇见访问冲突的时候,会根据每个节点发送的报文id数值,来进行优先级的裁定,
详解CAN总线:CAN总线报文格式—帧间隔
不脱发的程序猿
10-06 1万+
间隔是用于分隔数据帧和遥控帧的帧。数据帧和遥控帧可通过插入帧间隔将本帧与前面的任何帧(数据帧、遥控帧、错误帧、过载帧)分开,过载帧和错误帧前不能插入帧间隔
22条高手总结的CAN总线入门知识!(必看)
木牛的博客
11-13 4289
正常情况下,逻辑高电平为1,逻辑低电平为0,但是CAN总线却是逻辑高电平为0,称为显性,逻辑低电平为1,称为隐性。如果多个节点同时访问总线,CAN使用非破坏式、逐位仲裁的方式决定哪个节点使用总线:各发送节点从仲裁域(标识符和RTR域)的第1位开始进行仲裁,连续输出显性电平(0)最多的节点可以继续发送。标识符数值为0的CAN报文,具有最高优先级,因为它输出的显性电平最多。发送节点的报文帧中,ACK两位是隐性位,当接收器正确地接收到有效的报文,接收器会在应答位期间向发送节点发送一个显性位,表示应答。
CAN 简介
小嵌同学的博客
05-14 4243
CAN(Controller Area Network)是一种串行通信协议,最初由Bosch公司开发,用于在汽车和工业控制等领域中进行数据通信。CAN协议具有高可靠性、高速度和多节点的特点,因此在现代汽车的控制系统中得到了广泛使用。关于协议的细节,参考阅读(我自己看过了,觉得讲的不错,自己就不重复造轮子制造垃圾了):CAN总线详解CAN总线协议详解。
通信协议】CAN 的通信原理
庐陵居士
05-09 540
CAN是一种异步半双工的通信协议,并不是以时钟信号来进行同步的, 它只具有 CAN_High 和 CAN_Low 两条信号线,共同构成一组差分信号线,以 差分信号的形式进行通讯。在涉及到两个或多个节点同时尝试发送数据时,ID值“更低”(在二进制表示中数值更大)的报文具有更高的优先级。芯片有:TJA1050、TJA1042、SIT1050T、注:差分信号的意思后面有讲。1、CAN收发器芯片。
一帧CAN数据需要多长时间发送
dujunqiu的博客
03-08 4041
一帧CAN数据需要多长时间发送
CAN总线协议:过载帧与帧间隔
wojiaxiaohuang2014的博客
03-20 379
CAN总线协议:过载帧与帧间隔
Web开发工程师微专业基础教程-获取5.5GB资源
本教程是针对Web开发工程师的专业基础培训,旨在为学习者提供一个全面且深入的入门路径。课程设计围绕HTML、CSS和JavaScript等核心前端技术展开,通过理论讲解和实战项目相结合的方式,使学员在理论学习的同时掌握...
写文章

热门文章

  • 初出茅庐的小李第84篇博客之驱动WS2812B灯带(一) 14773
  • 毕业设计常用模块之语音模块MY1680使用 5743
  • 毕业设计常用温度测量模块之DS18B20温度传感器介绍 4597
  • 初出茅庐的小李第103篇博客之CC2530资源介绍 4468
  • 初出茅庐的小李博客之STM32F103实现CAN通信 4175

分类专栏

  • STM32 35篇
  • C语言相关 24篇
  • ESP32 5篇
  • 国产芯 2篇
  • 笔记 116篇
  • Linux 1篇
  • Lua学习笔记 6篇

最新评论

  • 初出茅庐的小李第43篇博客之keil编译出错multiply defined (by usart1.o and main.o).

    HelloTonyGo: 谢谢博主给出了一种正确答案。 我的理解是:如果在a.h中给变量a赋值,那么在main.c包含a.h时,在连接的时候,编译器会再次给变量a赋值,就会导致a.o和main.o定义2次变量a。(不知道这样理解对不对)

  • 初出茅庐的小李博客之STM32CubeMx驱动WS2812B实现幻彩(超详)

    小傑瑞: 博主,我的用h7不行,能否指导一下

  • 初出茅庐的小李博客之添加一个DEBUG宏开关

    CSDN-Ada助手: 不知道 算法 技能树是否可以帮到你:https://edu.csdn.net/skill/algorithm?utm_source=AI_act_algorithm

  • 初出茅庐的小李博客之STM32CubeMx驱动WS2812B实现幻彩(超详)

    KARASmailu: 具体怎么样弄?

  • 初出茅庐的小李博客之STM32CubeMx驱动WS2812B实现幻彩(超详)

    weixin_73484496: 为什么我的要拔掉data脚才会亮

大家在看

  • 论文 Python 实现WOA-CNN-BiGRU-Attention数据分类预测 64
  • 手环押金原路退回系统——足浴店——东方仙盟

最新文章

  • 初出茅庐的小李博客之添加一个DEBUG宏开关
  • 初出茅庐的小李博客之DEV自动格式化代码风格
  • 初出茅庐的小李博客之C语言文件操作
2024年18篇
2023年46篇
2022年24篇
2021年39篇
2020年55篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家吉林景观玻璃钢雕塑制作深圳玻璃钢马雕塑贵州玻璃钢雕塑订制玻璃钢花盆批发哪里有卖青海玻璃钢景观雕塑安装玻璃钢大熊雕塑连云港百货商场美陈佛山玻璃钢卡通雕塑图片湖南玻璃钢雕塑定做价格玻璃钢雕塑投标标书范本集美园林玻璃钢雕塑采购商场异形门头美陈确山玻璃钢雕塑厂家无锡佛山玻璃钢雕塑兰州博物馆玻璃钢雕塑江苏商场美陈制造辽宁大型商场创意商业美陈作品玻璃钢雕塑保养妙招卡通玻璃钢雕塑介绍鞍山和平区玻璃钢雕塑制作汕尾玻璃钢仙鹤雕塑厦门潮州玻璃钢卡通雕塑东莞玻璃钢雕塑哪家好佛山玻璃钢人物雕塑公司广东玻璃钢蔬菜雕塑韶关党建文化玻璃钢人物雕塑嘉定区玻璃钢雕塑诚信企业艺术玻璃钢手加工雕塑6南通景观灯玻璃钢花盆绍兴玻璃钢花盆价格香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化