目录 1、CAN总线简介 2、CAN节点组成 3、CAN总线结构 4、CAN总线物理电气特性 ---- 在之前的博文中分享过一系列一文搞懂:SPI协议、I2C协议、PID算法、Modbus协议等文章, to the Controller Area Network(CAN)-行业报告文档类资源 1、CAN总线简介 CAN总线协议(Controller Area Network),控制器局域网总线,是德国 ; 可以通过发送远程帧请求其它节点发送数据; 消息数据长度0~8Byte; 节点数最多可达110个; 错误检测功能。 3、CAN总线结构 CAN总线是一种广播类型的总线,可支持线形拓扑、星形拓扑、树形拓扑和环形拓扑等。 低速开环CAN(低速容错CAN)通信如下图所示: 4、CAN总线物理电气特性 在CAN总线上,利用CAN_H和CAN_L两根线上的电位差来表示CAN信号。
目录 1、高速CAN总线 1.1、电气特性 1.2、终端电阻 1.3、总线长度 1.4、布线电缆 1.5、设备数量 2、低速CAN总线 2.1、电气特性 2.2、终端电阻 2.3、总线长度 2.4、布线电缆 ,并没有关于总线拓扑结构的说明):高速CAN总线和低速CAN总线,区别表如下所示: 本篇博文将详细介绍两者的特性和区别。 1、高速CAN总线 ISO 11898-2中定义了通信速率为125Kbps~1Mbps的高速闭环CAN通信标准,当通信总线长度≤40米,最大通信速率可达到1Mbps,高速闭环CAN(高速CAN)通信如下图所示 放置终端电阻位置如下所示: 1.3、总线长度 高速CAN总线,总线长度最大为40m,当总线长度超过40m后,总线的速率会受到影响。 该标准允许在CAN总线连线失败时CAN总线通信得以继续进行。
目录 1、错误状态的种类 2、故障界定规则 ---- 对汽车电子技术感兴趣的小伙伴请关注公众号:美男子玩编程,公众号优先推送最新技术博文,创作不易,请各位朋友多多点赞、收藏、关注支持~ CAN总线故障界定的目标是实现数据传输系统即使在节点发生故障的情况下也能维持很高的可用性 1、错误状态的种类 对故障界定而言,CAN节点根据错误计数结果的不同,可以处于下列3种状态之:主动错误状态、被动错误状态和总线关闭态。 1、主动错误状态 主动错误状态是可以正常参加总线通信的状态。 处于被动错误状态的单元虽能参加总线通信,但为不妨碍其它单元通信,接收时不能积极地发送错误通知。 处于被动错误状态的单元即使检测出错误,而其它处于主动错误状态的单元如果没发现错误,整个总线也被认为是没有错误的。 处于被动错误状态的单元检测出错误时,输出被动错误标志。 在开始下次发送前,在间隔帧期间内必须插入“延迟传送”(8 个位的隐性位)。 3、总线关闭态 总线关闭态是不能参加总线上通信的状态。信息的接收和发送均被禁止。
CAN总线标准 CAN总线标准只规定了物理层和数据链路层,需要用户自定义应用层。不同的CAN标准仅物理层不同。 ? CAN收发器负责逻辑电平和物理信号之间的转换。 ? 仲裁段 CAN总线是如何解决多点竞争的问题? 由仲裁段给出答案。 CAN总线控制器在发送数据的同时监控总线电平,如果电平不同,则停止发送并做其他处理。 数据段 为0-8字节,短帧结构,实时性好,适合汽车和工控领域; ? CRC段 CRC校验段由15位CRC值和CRC界定符组成。 ? 也可以使用CAN隔离收发器(集成滤波器和抗干扰电路)。 ? ? CAN控制器与MCU的连接方式 ? SJA1000可被视为外扩RAM,地址宽度8位,最多支持256个寄存器 ? ? ; } 发送函数 unsigned char SJA_CAN_Filter[8] = { // 定义验收滤波器的参数,接收所有帧 0x00, 0x00, 0x00
由于各个接收节点发现错误的时间可能不同,所以总线上实际的错误标志可能由6~12个显性位组成。 错误界定符由 8 个位的隐性位构成。 当错误标志发生后,每一个CAN 节点监视总线,直至检测到一个显性电平的跳变。此时表示所有的节点已经完成了错误标志的发送,并开始发送8个隐性电平的界定符。 发送单元发送完错误帧后,将再次发送数据帧或遥控帧,错误标志输出时序如下表所示: ---- 详解CAN总线:什么是CAN总线? 详解CAN总线:高速CAN总线和低速CAN总线的特性 详解CAN总线:CAN协议分层结构及功能 详解CAN总线:CAN节点硬件构成方案 详解CAN总线:常用CAN连接器的使用方法 详解CAN总线:CAN 总线报文格式—数据帧 详解CAN总线:标准数据帧和扩展数据帧 详解CAN总线:CAN总线报文格式—遥控帧
目录 1、数据帧和遥控帧的优先级 2、标准格式和扩展格式的优先级 ---- 在详解CAN总线:CAN总线报文格式—数据帧文章中,讲解到仲裁段。 仲裁段用于写明需要发送到目的CAN节点的地址、确定发送的帧类型(当前发送的是数据帧还是遥控帧),并确定发送的帧格式是标准帧还是扩展帧。 本篇文章将讲解仲裁段的另一个重要功能:通信优先级。 在CAN总线空闲态,最先开始发送消息的单元获得发送权。多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁,连续输出显性电平最多的单元可继续发送。所以,帧ID值越小,优先级越高。 仲裁的过程如下图所示: 1、数据帧和遥控帧的优先级 具有相同 ID 的数据帧和遥控帧在总线上竞争时,数据帧优先级高,因为数据帧仲裁段的最后一位(RTR)为显性位具有优先权,可继续发送。 数据帧和遥控帧的仲裁过程如下图所示: 2、标准格式和扩展格式的优先级 标准格式 ID 与具有相同 ID 的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的 RTR 位为显性位优先级更高,优先发送
目录 1、遥控帧格式 2、数据帧和遥控帧的区别 ---- CAN总线上传输的信息称为报文,当总线空闲时任何连接的单元都可以开始发送新的报文。 CAN通信是通过以下5种类型的帧进行的: 数据帧 遥控帧 错误帧 过载帧 帧间隔 另外,数据帧和遥控帧有标准格式和扩展格式两种格式。 各种帧的用途如下表所示: 近期打算写5篇文章,分别详细介绍这5种类型的CAN总线报文格式,本篇博文将详细讲解CAN遥控帧格式,创作不易,请各位朋友多多点赞、收藏、关注支持~ 关注公众号:美男子玩编程, ---- 拓展学习: 详解CAN总线:CAN总线报文格式—数据帧 详解CAN总线:标准数据帧和扩展数据帧 CSDN话题挑战赛第2期 参赛话题:学习笔记
然而这些产品核心控制器与电池都是走的CAN总线通讯,而工控机本身是没有CAN通讯,那么工控机就需要通讯桥梁(025-68250795)来扩展CAN通道。 而在工控机当中有nimipcie接口,如此就用可以用minipcie接口转CAN的一个模块来实现扩充CAN口。 miniPCIe接口CAN卡是PCI Express mini卡槽的工控机或单板电脑快速扩展CAN通道的利器。 产品特性 PCI Express mini卡槽扩展CAN通道 30×51×6.35mm极小体积 使用UL认证CAN-bus专用双绞线 使用高规格品牌镀金接插件 CAN波特率支持5Kbps ~1Mbps 符合CAN 2.0A/2.0B规范 最高帧流量高达14000帧/s 2路CAN通道(ISO 11898-2) 经由连接线和D-Sub 9针接口板引出CAN接口 CAN接口电气隔离高达
CAN通信(一)——认识CAN总线 CAN总线 背景 CAN总线是什么 网络拓扑 节点、报文、信号 CAN总线 背景 作为并非通信专业的汽车工程师,汽车CAN通信是必须掌握的,但是,记得刚开始上来一看什么定义 CAN总线是什么 CAN总线,并不是他很能,只是一个缩写 CAN:Controller Area Network。 控制器局域网络总线 绝大多数汽车制造厂商采用CAN总线来实现汽车内部控制系统之间的数据通信,CAN总线也叫CAN BUS BUS? 恩,这不是公交的意思么,没错,公共汽车是可以运输大量的乘客的,CAN通信也就可以传输大量的信号。下边这个图片很形象 简单的说,CAN总线就是用于传输数据的通信协议。 车辆CAN总线通讯 这个CAN总线图是不是和BUS一样额 网络拓扑 网关是整个CAN网络的核心, 控制着整车几条CAN总线的信号转发与处理,示意图只展示了其中的两条。
Ø 灵活性:每个ECU包含一个用于CAN总线收发芯片,随意添加CAN总线节点。 2、CAN总线网络 CAN总线网络主要挂在CAN_H和CAN_L,各个节点通过这两条线实现信号的串行差分传输,为了避免信号的反射和干扰,还需要在CAN_H和CAN_L之间接上120欧姆的终端电阻。 即从CAN控制芯片输出逻辑电平到CAN收发器,然后经过CAN收发器内部转换将逻辑电平转换为差分信号输出到CAN总线上,CAN总线上的节点都可以决定自己是否需要总线上的数据。 具体的引脚定义如下: 4、CAN信号表示 CAN总线采用不归零码位填充技术,也就是说CAN总线上的信号有两种不同的信号状态,分别是显性的(Dominant)逻辑0和隐形的(recessive)逻辑1, 数据段 一个数据帧传输的数据量为0~8个字节,这种短帧结构使得CAN-bus实时性很高,非常适合汽车和工控应用场合如图27所示。
位时序的主要知识点 CAN总线通讯协议的每一个数据帧可以看作一连串的电平信号,每一个电平信号代表一位(一个字节8位的位),所以一帧中包含了很多个位,由发送单元在非同步的情况下发送的每秒钟的位数称为位速率 PBS2 段的初始大小可以为 2~8Tq。 (2) 总线空闲 隐性电平,无长度限制(0 亦可)。 本状态下,可视为总线空闲,要发送的单元可开始访问总线。 (3) 延迟传送(发送暂时停止) 8 个位的隐性位。 随之而来的是帧间隔,并且连带着8位隐性位的 “延迟传送” 段;这样总线电平就呈现出连续11位隐性位,总线上的其它节点就能判定总线处于空闲状态,就能参与总线竞争。 ,开始监控总线是否为隐性位,当总线为隐性位时,开始发送错误界定符(8个连续的隐性位); 3.5 CAN的特性总结 1) 多主控制 在总线空闲时,所有单元都可以发送消息(多主控制),而两个以上的单元同时开始发送消息时
CAN总线上传输的信息称为报文,当总线空闲时任何连接的单元都可以开始发送新的报文。 CAN通信是通过以下5种类型的帧进行的: 数据帧 遥控帧 错误帧 过载帧 帧间隔 另外,数据帧和遥控帧有标准格式和扩展格式两种格式。 各种帧的用途如下表所示: 近期打算写5篇文章,分别详细介绍这5种类型的CAN总线报文格式,本篇博文将详细讲解CAN帧间隔格式,创作不易,请各位朋友多多点赞、收藏、关注支持~ 关注公众号:美男子玩编程, 唯一可以执行的操作是通报超载状态; 总线空闲段:总线空闲时间长短不限。总线一经确认处于空闲状态,则任何节点都可以访问总线来传送信息。因另一帧正在传送而延期发送的帧是从间歇之后的第一位开始送出的。 通过对总线进行检测,出现在总线空闲期间的显性位将被认为是帧起始; 延迟传送段:处于错误认可状态的节点完成其发送动作后,在被允许发送下一帧以前,它要在间歇之后送出8个隐性位。
目录 1、帧起始 2、仲裁段 2.1、标准数据帧 2.2、扩展数据帧 3、控制段 4、数据段 5、CRC段 6、ACK段 7、帧结束 ---- CAN总线上传输的信息称为报文,当总线空闲时任何连接的单元都可以开始发送新的报文 各种帧的用途如下表所示: 近期打算写5篇文章,分别详细介绍这5种类型的CAN总线报文格式,本篇博文将详细讲解CAN数据帧格式,创作不易,请各位朋友多多点赞、收藏、关注支持~ 关注公众号:美男子玩编程, 总线空闲时,发送节点发送帧起始,其他接收节点同步于该帧起始位。 总线上的电平有显性电平和隐性电平两种。 总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。 数据长度码(DLC)与数据的字节数的对应关系如下表所示: 数据的字节数必须为 0~8 字节,但接收方对 DLC = 9~15 的情况并不视为错误。 4、数据段 数据段由数据帧中的发送数据组成,它可以为0~8字节,每字节包含了8位,首先发送最高有效位MSB,依次发送至最低有效位LSB。
CAN总线上传输的信息称为报文,当总线空闲时任何连接的单元都可以开始发送新的报文。 过载界定符由8个位的隐性位组成,过载界定符的构成与错误界定符的构成相同。过载标志发送完毕后,每个节点都对总线进行监察,直到检测到一个隐性位为止。 此时,每个节点均已发送完各自的过载标志,接着所有节点还要同时开始发送7个隐性位,配齐长达8位的过载界定符。 过载帧的构成如下图所示: ---- 详解CAN总线:什么是CAN总线? 详解CAN总线:高速CAN总线和低速CAN总线的特性 详解CAN总线:CAN协议分层结构及功能 详解CAN总线:CAN节点硬件构成方案 详解CAN总线:常用CAN连接器的使用方法 详解CAN总线:CAN 总线报文格式—数据帧 详解CAN总线:标准数据帧和扩展数据帧 详解CAN总线:CAN总线报文格式—遥控帧 详解CAN总线:CAN总线报文格式—错误帧
CAN总线 CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO 11898) ,是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。 @server:~$ candump can0 |head can0 607 [8] 61 00 00 00 0F A0 06 C8 can0 601 [8] 00 3C 00 02 01 01 44 0B can0 602 [8] 00 00 00 00 00 00 00 00 can0 605 [8] 1F C8 4D 40 00 2C F6 00
1.汽车和CAN bus总线之间的重要联系: CAN与你家的轿车Car! 2.CAN总线的历史起源和发展历程: CAN bus History (CAN总线历史) What is CAN? 例如,CAN总线可以快速且可靠地在汽车的刹车系统和引擎之间共享信息。 让我们想象一下,你的汽车就像人体:CAN总线就像神经系统,使通信成为可能。 一辆现代汽车可以轻松拥有70多个ECUs——每个ECU都在总线上与其他ECUs共享信息。 CAN总线上的任何ECU都可以准备和广播信息(例如传感器数据)。 CAN收发器:CAN收发器将CAN控制器连接到物理的CAN线上,将控制器数据转换为CAN总线上的差分信号,反之亦然。它还提供电气保护。 关于CAN总线的OSI模型我们下期详细和大家分享,敬请期待!
CAN总线没有主从节点之分,所有CAN总线上的节点都是地位等价的。 CAN总线的优先权由发送数据报文中的标识符决定报文占用总线的优先权;标识符越小,优先权越高。 5. CAN总线的仲裁机制:只要总线空闲,任何节点都可以向总线发送报文。 CAN总线物理层主要采用两个差分传输信号线组成CAN总线网络,分别为CANH和CANL,所有CAN总线上的节点都可以连接到这两条差分信号传输网络上进行通信。 五、CAN总线延时分析: 1. CAN总线的数据传输总会有一定的延时,例如:隔离器件延时、CAN控制器延时、CAN收发器延时、传输线延时等。下图是CAN总线传输过程的延时示意图。 由此可见,CAN总线的通信距离和通信速率是和CAN总线数据通信的传输延时密切相关的。 2.
物理层 Physical layer (ISO 11898-2) CAN总线的物理层定义了电缆类型、电信号水平、节点要求、电缆阻抗等。 例如,物理层规定了以下内容: 波特率:节点必须通过双线总线连接,波特率可达1 Mbit/s(经典CAN)或8 Mbit/s(CAN FD) 电缆长度:最大CAN电缆长度应在500米(125 kbit/s )到40米(1 Mbit/s)之间 终端电阻:CAN总线必须在总线的两端使用120欧姆的终端电阻进行终止 数据链路层 Data link layer(ISO 11898-1) CAN总线的数据链路层定义了例如 CAN总线访问,并通过基于ID的优先级避免冲突。 关于CAN Bus的详细内容(Standard CAN 及 Extended CAN)我们下期接着说明,敬请关注!
最近在整理CAN总线相关资料时,居然发现CAN总线还有更高层级的协议! CAN作为底层协议,CAN提供了通信的基础,但除此之外并不多。 例如,CAN标准没有指定如何处理大于8字节的消息或者如何解码原始数据。 因此,存在一套更高级别的协议,以进一步详细说明如何在给定网络的CAN节点之间通信数据。 高层级的CAN 下面我们提供了最常见的汽车/工业CAN协议的概述: CAN总线高级协议层OSI模型 OBD2 车载诊断用于汽车/卡车的诊断、维护和排放测试。 关于每项协议的具体内容这里不做描述,我们可以利用AI工具进行搜索的哈 CAN总线与高层协议区别 CAN总线和高层协议之间的区别可能会令人困惑,让我们尝试揭开它的神秘面纱。 记录与理解数据:声音记录器能够记录任何人类对话,就像CAN总线数据记录器可以记录任何基于CAN的通信一样。但要有意义地解释信息,你需要理解语言,即高层协议。
就要看CAN总线了 ECU ---- 如何传输数据? 现在将车上的每个设备用一条总线连接起来 要想CAN通讯,就必须要专门的CAN收发器,经过CAN收发器,普通信号就会转化成差分信号(差分信号由两根线表示) 如果输入0,CAN收发器的两根线分别输出3.5V 这就得看11位的识别码了,它不仅指定了哪个设备,还表示了优先级 当总线同时为1或0,总线会被置为0(即优先执行电平0) 总结 了解完了CAN总线,或许会有一个疑惑点? CAN总线和RS485是不是有点相似,对吧? 虽然的确有些相似之处,但CAN总线是专门用于汽车领域的,就比如数据可靠性,CAN总线检测到数据不一致,就会重新发送,而485就发一次,不管是不是正确的数据 相对485不止一个优点,碍于文字,就不过多叙述了