CAN总线协议学习笔记(一)

合集下载

can总线知识点梳理

can总线知识点梳理

can总线知识点梳理CAN总线是一种串行通信网络,用于实现分布式实时控制。

它是由德国的BOSCH公司开发的,具有传输速度快、通信距离远、无损位仲裁机制、多主结构等优点。

CAN总线标准只规定了物理层和数据链路层,需要用户自定义应用层。

CAN总线采用差分电压传送,使用两条信号线(CAN_H和CAN_L),静态时均为2.5V左右,显性时,通常电压值为:CAN_H=3.5V,CAN_L=1.5V。

在CAN总线中,多个节点连接,只要有一个为低电平,总线就为低电平,只有所有节点输出高电平时,才为高电平。

CAN总线有5个连续相同位后,就插入一个相反位,产生跳变沿,用于同步,从而消除累积误差。

CAN总线的数据帧结构包括帧起始、仲裁段、控制段、数据段、CRC校验段、应答段和帧结束。

其中,仲裁段决定了报文的优先级,ID值越低,优先级越高。

控制段中包含数据长度代码(DLC),表示数据段的长度。

数据段包含发送的数据,可以有0~8个字节。

此外,CAN总线还支持扩展帧和标准帧两种格式,IDE位表示帧类型(0为标准帧,1为扩展帧),RTR位表示帧类型(0为数据帧,1为远程帧)。

在实际应用中,MCU负责实现对功能电路和CAN控制器的控制,包括初始化CAN控制器参数、通过CAN控制器读取和发送CAN 帧、处理CAN控制器的中断异常、根据接收到的数据输出控制信号等。

同时,接口管理逻辑解释MCU指令,寻址CAN控制器中的各功能模块的寄存器单元,向主控制器提供中断信息和状态信息。

在具体的CAN应用场景中,如汽车行业,现在每一辆汽车上都装有CAN总线。

同时,为了实现不同的功能,不同的CAN标准仅物理层不同,而应用层协议也有多种选择,如CANOpen、DeviceNet、J1939、iCAN等。

CAN CANopen学习笔记

CAN CANopen学习笔记

PART1——CAN1 CAN 基础知识CAN 总线是一种通用的串行通信协议,包含OSI 网络模型中的物理层和数据链路层,全部通过硬件来实现。

CAN 总线不分主从,每个节点只要需要,都可作为主站,向网络上其他节点发送信息。

物理层主要是通过CAN 收发器来实现。

1.1 CAN 收发器CAN 收发器安装在CAN 控制器内部,负责逻辑信号和电信号的转换,也即信息的收发。

将逻辑信号转为电信号,并将其送入传输线;或者,将传输线的电信号转为逻辑信号。

传输线跟电线一样,分一高一低,即CANH 和CANL 。

TIPS :电信号,指随着时间而变化的电压或电流CAN 收发器如图1.1所示。

由一个电路进行控制,也意味着控制单元的某个时间段只能进行一个操作,收或者发。

图1.1 收发器原理图开关闭合输出低电平,用逻辑“0”来表示,即显性电平; 开关断开输出高电平,用逻辑“1”来表示,即隐性电平。

当总线上连接有多个节点时,只要其中1个节点输出低电平,则总线激活,总线电平为低电平;总线上所有节点都输出高电平时,总线电平才为高电平,此时总线未激活。

原理如图1.2所示。

图1.2 多节点收发器原理图1.2 CAN 总线终端电阻CAN 网络中,网络的源端(起始节点)和末端需各安装一个终端电阻。

注:上图所示电阻并非终端电阻。

有两种接法,一般采用左图接法,如图1.3所示,左边高速,右边低速。

主要作用是:● 提高总线抗干扰能力 ● 提高信号质量。

通过终端电阻来消除在通信电缆中的信号反射,在通信过程中,有两种原因导致信号反射:阻抗不连续和阻抗不匹配。

阻抗不连续,信号在传输线末端突然遇到电缆阻抗很小甚至没有,信号在这个地方就会引起反射。

数据收发器与传输电缆之间的阻抗不匹配,这种原因引起的反射,主要表现在通讯线路处在空闲方式时,整个网络数据混乱,为了提高网络节点的拓扑能力,CAN 总线两端需要接有120Ω的抑制反射的终端电阻。

图1.3 两种终端电阻接线方式1.3 CAN 报文CAN 总线的报文有5种类型,数据帧、远程帧、错误帧、过载帧和帧间隔。

CAN总线基础知识总结(建议收藏)

CAN总线基础知识总结(建议收藏)

CAN总线基础知识总结一、CAN总线简介1、CAN总线(Controller Area Network,控制器局域网)是由德国BOSCH(博世)公司在1986年为汽车而设计的,它是一种串行通信总线,只需两根线CAN_H和CAN_L。

2、隐性(逻辑1)与显性(逻辑0)的概念:CAN总线在数据传输过程中,实际上传输的是CAN_H和CAN_L之间的电位差。

CAN_H只能是高电平(3.5V)或悬浮状态(2.5V),CAN_L只能是低电平(1.5V)或悬浮状态(2.5)V,当CAN_H和CAN_L都为2.5V 时,是隐性,表示逻辑1,当 CAN_H为3.5V、CAN_L都为2.5V时,是显性,表示逻辑0。

表示隐性和显性逻辑的能力是CAN总线仲裁方法的基本先决条件,即所有节点都为隐性时,总线才处于隐性状态;只要有一个节点发送了显性,总线就呈现为显性状态。

3、120Ω电阻:必须在总线的每一节点的CAN_H和CAN_L之间接一个120Ω左右的电阻,以避免出现信号反射。

4、CAN技术规范CAN2.0A和CAN2.0B:CAN2.0A只有标准帧(标识符(ID)有11位);CAN2.0B除了标准帧,还有扩展帧(标识符(ID)有29位)。

5、CAN的国际标准ISO11898和ISO11519:CAN 协议经ISO 标准化后有ISO11898和ISO11519两种标准,它们对于数据链路层的定义相同,但物理层不同。

ISO11898 是波特率为125kbps-1Mbps 的CAN高速通信标准。

ISO11519 是波特率为125kbps 以下的CAN低速通信标准。

高速通信标准和低速通信标准的硬件规格也不一样,所以需要选用不同的收发器。

在收发器的规格书上都会注明高速通信用还是低速通信用,或者是符合ISO11898标准还是ISO11519标准。

6、CAN总线协议只定义了物理层和数据链路层,要将CAN总线应用于工程项目中必须制定上层的应用协议。

CAN总线协议基础概念知识

CAN总线协议基础概念知识
示。数据的字节数必须是0-8个字节,但接收方对DLC=9-15的情况并不视
为错误。
(4)数据域,对标准的或扩展的格式都是一样的。这个域是传输的数
据,可以是0到8个字节,字节数载控制域中指明。数据输出开始于MSB。
如图19所示:
(5)CRC域,对标准的或扩展的格式都是一样的。这个域用来检查帧是
否有传输错误,它由15bitCRC码和一个bitCRC定界符(delimiter)
显性具有优先的意味,只要有一个单元输出显性电平,总线上即为显性电
平,并且,隐性具有包容的意味,只有所有的单元都输出隐性电平,总线上
才为隐性电平。(显性电平比隐性电平更强)
(2)仲裁域,这个域表示数据的优先级别。这个域的结构,对标准和扩
展的格式是有差别的。
注1:关于ID:
标准格式的ID有11bit,从ID28到ID18被依次发送,禁止高7位全为隐
(5)CRC域:这个域用于检查帧的传输错误。
(6)ACK域:是对帧已经被正常接收的一个证实。
(7)帧结束:指示数据帧结束
(1)帧开始(SOF),对标准的或扩展的格式都是一样的。它指示一帧的
开始,由1bit的显性位组成。
显性电平和隐性电平:
总线上的电平有显性电平和隐性电平两种。
总线上执行逻辑上的线与时,显性电平的逻辑值为0,隐性电平为1。
表6帧类型和每种类型帧的作用
1.2数据帧
数据帧由发送单元使用,用来发送信息给接收单元,这是用户操作的基本
帧。
数据帧有7个域组成。图15显示了数据帧的结构。
(1)帧开始(SOF):这个域表示数据帧的开始。
(2)仲裁域:这个域表示一个帧的优先级
(3)控制域:这个域表示保留位和数据字节数

can的知识点总结

can的知识点总结

can的知识点总结一、CAN的起源和发展1993年首次应用于汽车网络通信,它是一种串行网络协议通信系统,广泛应用于汽车领域,其设计初衷是连接各部件以实现可靠的传输和通信能力。

CAN协议特点是高速、实时、可靠、抗干扰能力强,支持多主机,多任务,多帧结构等功能。

二、CAN的基本原理CAN总线是一种串行通信总线,其基本原理是利用两个线进行通讯——CAN_H和CAN_L,并通过差分信号进行通讯。

差分信号指的是CAN_H和CAN_L两根线上的电压相差约2.5V,传输数据时如果CAN_H线上电压高于CAN_L线,则代表逻辑“0”,反之则代表逻辑“1”。

三、CAN的逻辑帧结构CAN中的数据传输以帧的形式进行,帧包括了标识符、控制域、数据域和CRC校验等。

逻辑帧分为标准帧和扩展帧两种,标准帧数据域长度为0-8字节,扩展帧数据域长度可以达到64字节。

四、CAN的速度与通信距离CAN的通信速度可以达到1Mbps,而实际应用中一般选择500kbps为主。

CAN的通信距离可以达到40m左右,但是实际应用中一般不超过10m。

五、CAN的应用领域CAN总线广泛应用于汽车、工程机械、船舶、电力系统、工业控制等领域。

在汽车领域,CAN总线被广泛应用于车载电子控制单元(ECU)之间的数据传输和通信,使得车辆系统可以实现智能化和自动化。

六、CAN的主要特点1. 高可靠性:CAN总线采用了许多技术手段来提高系统的可靠性,如CRC校验、差分传输、冲突检测等。

2. 抗干扰能力强:CAN总线采用了差分传输的方式,使得其对电磁干扰的抗性能非常强。

3. 实时性好:CAN总线支持时间触发,且数据传输速率高,因此实时性较好。

4. 多帧结构的支持:CAN总线支持标准帧和扩展帧,数据域长度可以达到64字节,满足不同应用场景的需求。

5. 主机与多任务支持:CAN总线支持多主机通信和多任务的功能。

七、CAN的局限性1. 数据传输速率有限:CAN总线的最高数据传输速率为1Mbps,对于某些高数据吞吐量的应用场景可能无法满足需求。

CAN协议学习(一)

CAN协议学习(一)

CAN协议学习(一)一、CAN协议的特点1)在总线空闲时,所有单元都可以发送消息,两个以上单元同时发送消息时,对各消息的Identifier进行逐位仲裁比较,仲裁获胜的单元(具有较高优先级)可继续发送消息,仲裁失败的单元停止发送。

2)消息中没有地址,消息广播到总线上,任何总线上的单元都可以接收消息。

在总线上增加单元,不会影响到其它的单元。

3)最高数据传输速率1Mbps(距离小于40m),最远传输距离10km(速率低于5kbps)。

CAN总线两个节点之间的通讯距离与波特率成反比。

工程常用为500kbit/s的通信速率。

4)CAN总线上可挂载多个单元,理论上挂载单元数没有上限,但受总线的时间延迟和电气负载限制。

降低通信速率,可增加单元数量。

5)所有单元具有错误检测功能,检测出错误后会立即通知其他单元。

正在发送消息的单元一旦检测出错误,会结束当前的发送。

二、网络拓扑CAN节点挂载在CAN_L和CAN_H之间,为降低反射,高速CAN 在CAN总线两端增加了120Ω电阻,低速CAN和单线CAN在节点位置增加了电阻。

低速CAN在总的终端电阻为100Ω时性能最佳,因此,确定低速CAN的终端电阻,需要先确定网络中的节点数,每个终端提供100Ω的一部分,并不要求每个终端有相同的阻值,但总值应该为100Ω。

如总线中有3个CAN节点,则接到网络上的6个终端电阻值均为600Ω。

对于高速CAN,当CAN_H - CAN_L < 0.5 时为隐性,即逻辑1;当 CAN_H-CAN_L>0.9V时为显性,即逻辑0。

对于低速CAN,当CAN_L = 5V,CAN_H = 0V时为隐性;当CAN_H = 3.6V,CAN_L = 1.4V时为显性。

相较于高速CAN,低速CAN显性和隐性的电平差异更大,抗干扰能力更强,单线CAN只有一根线,要求节点有较好的共地性,抗干扰能力较弱。

三、总线仲裁总线空闲时,任何节点都可以发送报文。

CAN学习笔记

CAN学习笔记

笔记一:CAN传输的假想在学习笔记第一本中,最后一个个人秀,利用了两个CAN节点建立了简单的CAN 通讯,这回就强化一下CAN节点与节点之间通讯的概念。

传送这词在人们的脑海里就好想邮差送信的概念,邮差将一封封的信件逐个送到每一户目的地址,不过在CAN总线里通讯的节点们比起邮差的概念,“广播”的概念更贴切,广播有如电视台将节目广播开来,谁家只要搭起天线选择适合的频道就能接收到节目。

CAN总线的传输就是这么一回事。

换另一句话说:某个节点(假设节点1),发送报文在总线上,这时报文以广播的方式在总线上传输,如果当中两个点(假设节点2与3),他们拥有与报文标示符一样的接受代码的话,那么经过验收滤波动作,报文就会被接入它们RXFIFO当中。

当然还有一点要项必须注意,报文发送时必须先申请发送请求,然后报文才会发在总线上。

这个概念很重要必须稳固在脑海中。

笔记二:自检模式估计刚开始接触CAN的第一个实验就是PIAE的CAN自检测试,说老实话刚开始的时候我真的不明白自检模式到底时什么一回事,但是经过几个小时的测试后,终于得出结论,好了立马进入这篇笔记的主题吧。

回顾一下我们的好朋友模式寄存器,在MODR(模式寄存器)中的第三位也就MOD.2?它设置了节点的自检模式,自检模式说白了就是测试模式节点用来测试自己。

在图表中包含了一条信息,“using self reception request command”,这才是最关键,如果在报文发送的时候忘了给命令寄存器设置“自接收请求-self reception request”,自检模式时无法完成的。

(我就是遗漏了这条信息,苦了自己瞎搞那么久,哈哈)。

在自检模式中,节点包含了几个特性:(一)可以孤独的一个节点在工作(二)必须使用自接收请求命令发送报文(三)验收滤波动作无视,也就是说无视ACR,AMR的设置(四)报文标示符无视(五)节点依然参与总线概念图如以上图标的感觉(图凑合看就好了!呵呵),话多无用,还是开始编写程式。

现场总线CANopen学习笔记一

现场总线CANopen学习笔记一

现场总线CANopen学习笔记一通过对《现场总线CANopen设计与应用》的学习,总结了一些学习CANopen 的知识要点,希望能够对CANopen初学者有所帮助。

首先让我介绍一下这本书,原名为德语《CANopen----das standardisierte , eingebttete Netzwerk》,中文是《现场总线CANopen设计与应用》。

作者,Holger Zeltwanger ,是CAN总线技术专家,兼任ISO国际标准化组织CAN标准工作组主席,组织领导发布了ISO11898系列标准,是CAN工业的奠基人,1992年创立了CiA组织(CAN in Automation)并担任主席至现在。

本书的内容简介:介绍作为工业现场总线协议重要成员之一的CANopen协议和基本原理、规则及相关背景,重点介绍CANopen协议的工作机制,力求向读者展现CANopen协议的概貌,使读者能够理解为什么CANopen需要制定如此的工作流程。

全书分为4个部分:第一部分由第1~3章组成,主要介绍通信的基本通信以及CANopen 协议物理层和链路层的基本特性(CAN总线)。

第二部分由第4~5章组成,主要介绍CANopen的基本核心工作机制和CANopen主站设备的特点。

第三部分由第6~8章组成,主要介绍CANopen 应用中的设备子协议规范。

第四部分主要介绍CANopen 协议的应用及调试的方法和工具。

很荣幸,我手上看的这本书是Holger 亲笔签名的书,读起来的感觉就是不一样。

哈哈。

闲话少说,直入主题。

因为我也算是学习CANopen 的小白,主要采用总结归纳知识点的方式来读。

以下就是总结了CANopen的主要知识点和一些自己的理解。

书看一遍,刚入味,各种不懂;再看一遍,重新理解之前不明白的,整合知识点,将其联系起来。

首先我觉得还是先看一下CAN总线,了解什么叫CAN ,即CAN总线的基本定义、基本原理、CAN协议等等,从而了解得知CAN协议主要是针对物理层与数据链路层的协议规范。

can总线知识点

can总线知识点

can总线知识点(原创版)目录1.CAN 总线的概述2.CAN 总线的基本原理3.CAN 总线的主要特点4.CAN 总线的应用领域5.CAN 总线的发展前景正文一、CAN 总线的概述CAN 总线,全称为控制器局域网(Controller Area Network),是一种用于实时控制的串行通信总线。

它最初由德国的 Robert Bosch GmbH 公司于 1980 年代研发,用于汽车电子设备的通信。

后来,CAN 总线逐渐被广泛应用于各种工业自动化领域。

二、CAN 总线的基本原理CAN 总线采用多主控制器结构,所有连接在总线上的节点(设备)都可以发送和接收信息。

总线上的节点通过消息帧进行通信,消息帧包含标识符、数据长度码、数据字段、CRC 字段和应答位等。

CAN 总线采用非同步传输方式,节点间的通信不依赖于固定的时间基准,而是通过消息帧中的定时器来同步。

三、CAN 总线的主要特点1.高速通信:CAN 总线的通信速率最高可达 1Mbps,适用于实时控制系统。

2.多主控制器:总线上的每个节点都可以主动发送信息,不存在固定的主从关系。

3.错误检测与纠正:CAN 总线具有 CRC 校验和应答位机制,可以检测到错误并进行纠正。

4.强抗干扰能力:CAN 总线采用差分信号传输,具有较强的抗干扰能力。

5.扩展性强:CAN 总线可以连接大量节点,最多可达 256 个。

四、CAN 总线的应用领域CAN 总线广泛应用于汽车电子、工业自动化、机器人控制、智能家居等领域。

例如,在汽车电子中,CAN 总线用于连接发动机控制单元、底盘控制单元、仪表盘等设备;在工业自动化中,CAN 总线可以用于传感器数据采集、机床控制等场景。

五、CAN 总线的发展前景随着物联网、工业 4.0 等技术的发展,CAN 总线在未来将发挥更大的作用。

同时,CAN 总线也在不断升级,如 CAN FD(CAN with Flexible Data rate)等新标准已经推出,以满足更高的通信速率和性能要求。

CAN总线学习(一)

CAN总线学习(一)

CAN总线学习(⼀)1.CAN的物理层1.1两种距离不同的通讯⽅式闭环总线⽹络:CAN_High和CAN_High相连,CAN_Low和CAN_Low相连,每个节点的CAN_High和CAN_Low之间⽤⼀个120Ω的电阻连接,形成⼀个闭环。

距离短(40m),速度快(1Mbps)。

开环总线⽹络:两根CAN_High和CAN_Low总线独⽴,并都串联⼀个2.2kΩ的电阻,节点只需要并联接⼊即可。

距离长(1km),速度慢(125kps)。

1.2通讯节点理论上在总线负荷制备节点的接⼊数量是没有上线的,因为CAN协议只对数据内容编码,不对地址编码。

⼀个CAN通讯节点由⼀个CAN控制器和⼀个CAN收发器组成,两者之间由CAN_TX和CAN_RX信号线连接,收发器完成TTL逻辑电平和差分信号互相转化的任务。

1.3差分信号与传统的使⽤单根信号线电压边时逻辑的⽅式相⽐,使⽤差分需要两根线,振幅相同,相位相反,⽤两根线的电压差来边时逻辑0.1(USB协议、485协议、以太⽹协议都使⽤了差分信号传输).以⾼速can协议为例,逻辑1是CAN_High=2.5 CAN_Low=2.5 电压差为0;逻辑0是CAN_High=3.5 CAN_Low=1.5 电压差为2.2.协议层2.1CAN的波特率及位同步波特率的作⽤是保证节点间的异步通信。

位同步则是为了抗⼲扰、吸收误差、实现对信号采样⽽使⽤的。

位同步:CAN协议把⼀个数据位分为ss段、pts段、pbs1段、pbs2段,最⼩的时间单位是1Tq,⼀个完整的位室友8~25个Tq 组成。

采样点分布在pbs1和pbs2之间,通过控制各段的长度来低采样点的位置进⾏偏移,以便精确采样。

SS段:⼤⼩为1Tq,如果通信节点发现总线上信号的跳变沿在SS的范围内,则说明总线和节点是同步的,采样点采集到的就是总线电平就是该位的电平。

PTS段:传播时间段,是⽤来补偿⽹络的物理延时时间的,是总线上输⼊⽐较器延时和输出⽐较器延时和的两倍。

can总线的学习笔记

can总线的学习笔记

CAN学习手记1题记:在这信息爆炸的年代,学习一样新的知识,尤其是IT技术的学习,网络是必不可少的。

一阵狂搜过后,发现基于CAN总线的介绍确实不少,但是大多好像都雷同了,也许是不断转贴的结果吧。

而且这些知识点也都太零散了,让人看了,尤其是初学者有点找不着北的感觉。

所以,本着谦虚好学脚踏实地的菜鸟精神,决定把网上搜的,书上看的,再添油加醋的做一番比较系统的整理。

算是为学习CAN总线理清思路,快速上手打基础吧。

一、什么是CAN总线?CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。

最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。

比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置。

一个由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。

实际应用中,节点数目受网络硬件的电气特性所限制。

例如,当使用Philips P82C250作为CAN收发器时,同一网络中允许挂接110个节点。

CAN 可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。

另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。

二、CAN 总线是如何发展的?CAN最初出现在80年代末的汽车工业中,由德国Bosch公司最先提出。

当时,由于消费者对于汽车功能的要求越来越多,而这些功能的实现大多是基于电子操作的,这就使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线。

提出CAN总线的最初动机就是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的表1 OSI开放系统互连模型CAN能够使用多种物理介质,例如双绞线、光纤等。

最常用的就是双绞线。

信号使用差分电压传送,两条信号线被称为“CAN_H”和“CAN_L”,静态时均是2.5V左右,此时状态表示为逻辑“1”,也可以叫做“隐性”。

CAN总线学习心得 摘抄

CAN总线学习心得 摘抄
3. 每次调用 CanSendData(CAN1,cSlfSendCmd,TempBufPt),都将导致
CANMOD_RM=1,发送错误计数器累加,好象是总线离线状态.郁闷啊
还请斑竹和大虾们指点迷津
答:CAN总线至少需要2个节点才好调试,要不怎样才能组成总线呢?
答:网站可以下载代码,请参照配套的文档进行测试。
问:在使用周的底层驱动时出了点问题,不知是什么原因
用LPC2119中断方式做了一个转发器件,中断很正常,中断程序调用写环形环形缓冲区;主程序是读环形缓冲区,但是读时发生了数据中止,不解,就是下面第二句出了问题
stcRxBUF *RxBuf;
*RxBuf = CANRcvBufApp.RcvBuf[CAN1][CANRcvBufApp.ReadPoint1];
答:周立功公司已经有现成的“PC104-CAN”接口卡提供。
问:DP51+上BasicCAN测试程序的问题
在DP51+上用BasicCAN测试程序按键操作向其它节点发送数据时,总出现E-F8的错误,检查连线和波特率的设置也没有问题,真不知道是什么原因?也没法收到其它节点发送过来的数据。有可能这是收发器TJA1050T出现问题了吗?
郁闷的不行,恳请帮助!
答:就把它看作像id那样的一个bit看待吧。
问:SJ1000T中基本模式下只能检测8位的ID,但发送时确有11位ID,请问ID2-0有什么用?
答:你指的是BasicCAN模式下的"验收过滤";其实,两种模式的所有11位或29位都有效。
问:BasicCAN模式下的"验收过滤"只能过滤ID10-3,请问ID2-0对接受有影响吗?资料显示并没有对ID2-0进行核对。

CAN总线总结

CAN总线总结

CAN总线技术学习(一)CAN总线是控制器局域网络(ControllerAreaNetwork,CAN)的简称,是德国BOSCH公司开发,是国际上应用最广泛的现场总线之一,CAN总线已成为汽车计算机和嵌入式工控局域网标准总线。

为了全面了解CAN总线,需要先对其有个整体的概念,这中间还有一个小故事,一个应届毕业生到公司去应聘,负责招聘的经理问他:“你会哪方面的技术?”,毕业生说:“我会CAN总线”,经理疑惑的问:“你会看什么总线?”。

那么什么是CAN总线呢?1、首先CAN总线是一种串行总线,不是并行的,是用来传输电子数据的,就像串口总线、USB总线、以太网一样;2、CAN总线是半双工传输模式,发的时候不能收,收的时候不能发;3、CAN总线使用双线传输,一根定义为CAN_H,—根定义为CAN_L,使用差分信号传输(差分信号就是通过计算两线压差);4、CAN总线的波特率最高可达1Mbps,传输距离最远10公里,传输波特率和传输距离成反比,波特率越高有效传输距离越短;5、组网时总线两端CAN_H和CAN_L之间要分别连接一个120欧的终端电阻(起吸收反射波、高频抗干扰的作用)。

那么CAN总线有什么优势呢?1、CAN总线作为现场总线只有两根传输线,比以太网组网简单,成本也低很多,在不需要大数据量传输的设备通讯上有相当的优势;2、CAN总线使用差分信号和屏蔽线传输,抗干扰能力强,数据传输稳定,因为在某点有干扰时两根信号会被同步干扰,不会影响信号传输的信息;3、CAN总线波特率最高可达1Mbps,传输速率相对串口快很多,同时总线协议中加入CRC校验,相对于串口的奇偶校验,数据安全性强;4、CAN总线使用差分双线传输,易于组网,布线简单;5、CAN总线通讯不分主从,网络上每个设备都可以主动发送数据;6、CAN总线协议应用非破坏性逐位仲裁机制,即通过发送帧的帧ID的大小作为优先级判断网络上数据发送冲突,优先级高的信息发送,优先级低的数据停止发送,极大提供总线的利用率;7、CAN总线协议设置对发送的自动重发机制,当发送监测到发送冲突时,停止发送,等总线空闲后自动重发;8、通过设置总线控制器中验收寄存器和屏蔽寄存器,可以使节点在硬件层允许接收某些帧或屏蔽接收某些无用帧,节约单片机ECU接收和判断处理的时间。

CAN总线相关知识点归纳(1)

CAN总线相关知识点归纳(1)

CAN总线相关知识点归纳I概述CAN (Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。

想到CAN就要想到德国的Bosch公司,因为CAN就是这个公司开发的(和Intel) CAN 有很多优秀的特点,使得它能够被广泛的应用。

比如:传输速度最高到IMbps, 通信距离最远到IOkm,无损位仲裁机制,多主结构。

近些年来,CAN控制器价格越来越低,很多MeU也集成了CAN控制器。

现在每一辆汽车上都装有CAN总线。

一个典型的CAN应用场景:y∙7:7、行电机・控制第〃接近开关“s光电开关1信号调理模块I CAN总线标准CAN总线标准只规定了物理层和数据链路层,需要用户自定义应用层。

不同的CAN 标准仅物理层不同。

CAN收发器负责逻辑电平和物理信号之间的转换。

将逻辑信号转换成物理信号(差分电平),或者将物理信号转换成逻辑电平。

CAN 标准有两个,即IoSII898和K)SII519,两者差分电平特性不同。

ISOII898高速CAN电平高低电平幅度低,对应的传输速度快;物理层CAN有三种接口器件多个节点连接,只要有一个为低电平,总线就为低电平,只有所有节点输出高电平时,才为高电平。

所谓〃线与〃。

CAN 总线有5个连续相同位后,就插入一个相反位,产生跳变沿,用于同步。

从 而消除累积误差。

和485、232 一样,CAN 的传输速度与距离成反比。

因为电缆的特性阻抗为120。

,为了模拟无限远的传输线数据链路层CAN 总线传输的是CAN 帧,CAN 的通信帧分成五种,分别为数据帧、远程帧、 错误帧、过载帧和帧间隔。

数据帧用来节点之间收发数据,是使用最多的帧类型;远程帧用来接收节点向发 送节点接收数据;错误帧是某节点发现帧错误时用来向其他节点通知的帧;过载 帧是接收节点用来向发送节点告知自身接收能力的帧;用于将数据帧、远程帧与 前面帧隔离的帧。

数据帧根据仲裁段长度不同分为标准帧(2. OA)和扩展帧(2. OB)帧起始低速 CAN-bus 终端电阻接法高速CAN∙bus 终端电阻接法为什么是120 Ω, 使线路阻抗连续,信号波形完帧起始由一个显性位(低电平)组成,发送节点发送帧起始,其他节点同步于帧 起始;帧结束由7个隐形位(高电平)组成。

CAN笔记

CAN笔记

CAN总线活动讲座十:CAN总线基础扫盲讲座/html/41/n-41.htmlCAN总线学习专区/html/6/category-catid-6.html1、CAN协议(Conroller Area Network Protocol)为Robert Bosch公司开发(1982年),最初应用于汽车内部网络的通讯。

CAN通讯具有严格的错误检测机制、高传输速率,兼低成本、易于实施,特别适合节点之间关键数据传输的小型嵌入式网络通讯;2、CAN网络各节点平等竞争,无所谓主从,CAN通讯基于生产/消费者模型,一个节点生产(发送)的数据可同时为网络上的一个或几个节点同时消费也即接收(本人强烈鄙视某些教科书上将CAN网络描述为多主方式!!);3、CAN协议严格的规范了OSI模型中的数据链路层,并未对物理层作出强硬的约束,因此,CAN帧msg可传输在各种物理介质上,比较常见的为双绞线信号传输;4、CAN总线上的逻辑电平:CAN-bus采用差分电压信号驱动,用显性电平(逻辑0)、隐性电平(逻辑1)标识,当CAN-bus表现为显性时,CAN-bus为差分电压驱动状态,CANL电平为“Gnd”偏上,CANH电平为“Vcc”偏下;当CAN-bus表现为隐性状态时,CAN-bus为未驱动空闲状态,此时CANL、CANH电平均为“Vcc”的一半,比如:假设Gnd=0V,Vcc=5V,则C ANH=CANL=2.5V。

总线上的先行隐性电平会被显性电平所改写;5、CAN-bus上的位流序列:仲裁场-CANID最高位最先发送;数据场-Data0最先发送,Data 7最后传输,对应每一个字节,高位msb将会先发送;位填充规则:位流序列中一旦出现五个连续的显性位将插入一个隐性位,如下图示;同时位流序列中一旦出现五个连续的隐性位将插入一个显性位。

位编码规则:1、错误帧和过载帧形式固定,并不通过位填充编码;2、数据帧或远程帧的CRC界定符、应答场、帧结束等位场形式固定,不通过位填充编码;3、数据帧或远程帧的帧起始、仲裁场、控制场、数据场、CRC序列等位场,均通过位填充规则编码。

can总线知识点

can总线知识点

can总线知识点一、Can总线简介1.Can总线的发展历程Can总线(控制器局域网,Controller Area Network)最早由德国的Robert Bosch GmbH公司于1980年代研发,用于汽车电子设备的通信。

随着技术的不断发展,Can总线逐渐成为了一种广泛应用于各个领域的通信协议。

2.Can总线的应用领域Can总线起初主要用于汽车电子设备之间的通信,如发动机控制、刹车系统、仪表盘等。

如今,Can总线已广泛应用于工业自动化、智能建筑、医疗设备、交通运输等多个领域。

二、Can总线的基本原理1.Can总线的通信模式Can总线采用多主通信模式,即网络中的每个节点(设备)都可以主动发送或接收数据,不存在固定的主从关系。

通过这种方式,保证了通信的实时性和高效性。

2.Can总线的数据传输速率Can总线的数据传输速率一般在1Mbps左右,适用于实时性要求较高的场景。

同时,Can总线支持高速、中速和低速三种传输速率,可以根据实际应用需求进行选择。

三、Can总线的硬件结构1.Can控制器Can控制器是Can总线的核心部分,负责处理报文发送、接收、错误检测等功能。

常见的Can控制器有82C200、82C500等。

2.Can总线驱动器Can总线驱动器负责将Can控制器发出的信号转换为实际的电信号,驱动Can总线传输。

常见的Can总线驱动器有TJA1020、MCP2003等。

3.Can总线传输介质Can总线的传输介质主要有两种:一种是双绞线,另一种是光纤。

双绞线传输速率较低,但成本较低;光纤传输速率较高,但成本较高。

四、Can总线的软件协议1.Can总线的报文格式Can总线的报文格式包括起始符、仲裁字段、控制字段、数据字段、CRC 字段、应答位和结束符。

其中,仲裁字段包含了发送优先级,保证了高优先级的消息优先发送。

2.Can总线的通信规则Can总线的通信规则主要包括报文发送、报文接收、错误检测与处理等方面。

can总线协议讲解

can总线协议讲解

竭诚为您提供优质文档/双击可除can总线协议讲解篇一:can总线协议学习笔记(一)1,基本概念:(1),报文:总线上的信息以不同格式的报文发送,但长度有限。

当总线开放时,任何连接的单元均可开始发送一个新报文。

(2),信息路由:在can系统中,一个can节点不使用有关系统结构的任何信息,这里包含一些重要的概念:系统灵活性——节点可以在不要求所有节点及其应用层改变任何软件或硬件的情况下,被接于can网络。

报文通信——一个报文的内容由其标示符id命名,id并不指出报文的目的,但描述数据的含义,以便网络中的所有节点有可能借助报文滤波决定该数据是否使它们激活。

成组——由于采用了报文滤波,所有节点均可接受报文,并同时被相同的报文激活。

数据相容性——在can网络中,可以确保报文同时被所有的节点或者没有节点接受,因此,系统的数据相容性是借助于成组和出错处理达到的。

(3),位速率:can的数据传输率在不同的系统中是不同的,而在一个系统中是固定的速率。

(4),优先权:在总线访问期间,标示符定义了一个报文静态的优先权。

(5),远程数据请求:通过发送一个远程帧,需要数据的节点可以请求另一个节点发送相应的数据帧,该数据帧与对应的远程帧以相同的标示符id命名。

(6),多主站:当总线开放时,任何单元均可以开始发送报文,发送具有最高优先权报文的单元会赢得总线的访问权。

(7),仲裁:当总线开放时,任何单元均可以开始发送报文,若同时有两个或者更多的单元开始发送,总线访问冲突运用逐位仲裁规则,借助标示符id解决,这种仲裁规则可以使信息和时间均无损失,若具有相同标示符的一个数据帧和一个远程帧同时发送,数据帧优先于远程帧,仲裁期间,每个发送器都对发送位电平与总线上检测到的电平进行比较,若相同则该单元可以继续发送,当发送一个隐性电平,而在总线上检测为显性电平时,该单元退出仲裁,并不再传送后继位了。

(8),安全性:为了获得尽可能高的数据传输安全性,在每个can节点中均设有错误检测,标定和自检的强有力措施。

CAN通讯协议学习笔记(1)

CAN通讯协议学习笔记(1)

CAN通讯协议学习笔记(1)⽬录 CAN 通讯协议前沿:理论的协议和写CAN通讯程序(收发)是两回事,像CRC循环检测或错误检测都是硬件完成的,不需要我们再编写,最初的时候我也是⼀头雾⽔,不知道该如何下⼿,这就是程序员和芯⽚设计者的不同。

总之,不要以为看了协议就会写程序,还是⽹上找⼀个对应芯⽚的demo,好好研究其流程及可。

1.来源与定义2.物理构成3.总线逻辑4.帧的格式以及分类5.数据竞争机制6.错误类型(5种)1.来源与定义CAN是控制器局域⽹络(Controller Area Network,CAN)上的物理层和链路层的协议。

是由德国BOSCH公司开发,并最终成为国际标准11898,是汽车计算机控制系统和嵌⼊式⼯业⽹络控制的现场总线。

CAN属于现场总线范畴,她是⼀种有效⽀持分布式控制或实时控制的串⾏通信⽹络。

协议11898.1,2,3(其中1是controor,2是⾼速收发器,例如检测或控制汽车车速,3是低速收发器,例如控制⾬刮器)----------->引出疑问?(1)什么是物理层和链路层?设备之间通讯需要遵循⼀定的规范,物理层从硬件的⾓度实现链路层的逻辑电平。

开放式系统互联通讯参考模型(Opensystem interconnection Reference Model,简称OSI),⼀种试图将各种计算机在世界范围内互联的标准框架。

其中物理层:表现电⽓特性和机械特性,两根总线加总线两端连接120欧姆的电阻。

数据链接层:表现帧的格式,传输⼤⼩,过滤的设置。

(1)什么是分布式控制?分布式控制就是总线空闲时间内上任意节点都可以竞争发送消息,没有所谓的主机和从机的概念。

(3)与其他通讯协议⽐较?2.物理构成CAN总线⽹络主要挂在CAN_H和CAN_L,各个节点通过两条线实现信号的串⾏差分传输,为了避免信号的反射和⼲扰,还需要在CAN_H和CAN_L之间接上120Ω的终端电阻。

为什么是120欧姆,因为其电缆的阻抗特性为120Ω。

CAN总线基础知识学习笔记

CAN总线基础知识学习笔记

CAN总线基础知识学习笔记依照瑞萨公司的《CAN入门书》的组织思路来学习CAN通信的相关知识,并结合网上相关资料以及学习过程中的领悟整理成笔记。

好记性不如烂笔头,加油!1 CAN的一些基本概念1.1 什么是CAN总线CAN 是Controller Area Network 的缩写,是ISO 国际标准化的串行通信协议。

通俗来讲,CAN总线就是一种传输数据的线,用于在不同的ECU之间传输数据。

CAN总线有两个ISO国际标准:ISO11898 和ISO11519。

其中:ISO11898 定义了通信速率为125 kbps~1 Mbps 的高速CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度≤40米。

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

Tips: :又称为总线的通信速率,指的是位速率。

或称为比特率(和波特率不是一回事),表示的是:单位时间内,通信线路上传输的二进制位的数量,其基本单位是bps 或者b/s (bit per second)。

1.2 CAN的拓扑结构下图中,左边是高速CAN总线的拓扑结构,右边是低速CAN总线的拓扑结构。

如图中所示,CAN总线包括CAN_H 和CAN_L 两根线。

节点通过CAN控制器和CAN 收发器连接到CAN总线上。

TIps :通常来讲,ECU内部集成了CAN控制器和CAN收发器,但是也有没集成的,需要自己外加。

1.3 CAN信号表示在CAN总线上,利用CAN_H和CAN_L两根线上的电位差来表示CAN信号。

CAN总线上的电位差分为显性电平和隐性电平。

其中显性电平为逻辑0,隐性电平为逻辑1。

ISO11898标准(125kbps ~ 1Mbps)和ISO11519标准(10kbps ~ 125kbps)中CAN信号的表示分别如下所示:1.4 CAN信号传输发送过程: CAN控制器将CPU传来的信号转换为逻辑电平(即逻辑0-显性电平或者逻辑1-隐性电平)。

CAN学习笔记

CAN学习笔记

CAN--- Controller Area NetworkCAN理论概述1..CAN的分层结构(依照OSI标准):--CAN与以太网类似---包含最底的两层(物理层和数据链路层)。

--另外还包含传输层---用于发送控制(单次触发或发送失败时永久重发)。

--应用层即为发送接收相关的发送/接收函数、中断及数据的处理。

--因此虽然标准CAN不包含OSI中的七层,但也可以构成简易的网络,--CANopen是一种架构在控制局域网路(Control Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。

CANopen 实作了OSI模型中的网络层以上(包括网络层)的协定。

CANopen 标准包括寻址方案、数个小的通讯子协定及由设备子协定所定义的应用层。

CANopen 支援网络管理、设备监控及节点间的通讯,其中包括一个简易的传输层,可处理资料的分段传送及其组合。

一般而言资料链结层及实体层会用CAN来实作。

除了 CANopen 外,也有其他的通讯协定(如EtherCAT)实作 CANopen 的设备子协定。

--CAN与CANOPEN是两种协议,没有CANOPEN也可以组成CAN网络及应用。

--CAN+CANOPEN组成较完整的OSI;这类似于TCP/IP+以太网组成互联网。

--从OSI网络模型的角度来看同,现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层)。

因为现场总线通常只包括一个网段,因此不需要第3层(传输层)和第4层(网络层),也不需要第5层(会话层)第6层(描述层)的作用。

2..CAN技术特点:(1)工作方式:CAN为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,而不分主从,通信方式灵活,且无需站地址等节点信息。

(2)消息的发送:CAN网络上的节点信息分成不同的优先级,可满足不同的实时要求,高优先级的数据最多可在134us内得到传输。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1,基本概念:(1),报文:总线上的信息以不同格式的报文发送,但长度有限。

当总线开放时,任何连接的单元均可开始发送一个新报文。

(2),信息路由:在CAN系统中,一个CAN节点不使用有关系统结构的任何信息,这里包含一些重要的概念:系统灵活性——节点可以在不要求所有节点及其应用层改变任何软件或硬件的情况下,被接于CAN网络。

报文通信——一个报文的内容由其标示符ID命名,ID并不指出报文的目的,但描述数据的含义,以便网络中的所有节点有可能借助报文滤波决定该数据是否使它们激活。

成组——由于采用了报文滤波,所有节点均可接受报文,并同时被相同的报文激活。

数据相容性——在CAN网络中,可以确保报文同时被所有的节点或者没有节点接受,因此,系统的数据相容性是借助于成组和出错处理达到的。

(3),位速率:CAN的数据传输率在不同的系统中是不同的,而在一个系统中是固定的速率。

(4),优先权:在总线访问期间,标示符定义了一个报文静态的优先权。

(5),远程数据请求:通过发送一个远程帧,需要数据的节点可以请求另一个节点发送相应的数据帧,该数据帧与对应的远程帧以相同的标示符ID命名。

(6),多主站:当总线开放时,任何单元均可以开始发送报文,发送具有最高优先权报文的单元会赢得总线的访问权。

(7),仲裁:当总线开放时,任何单元均可以开始发送报文,若同时有两个或者更多的单元开始发送,总线访问冲突运用逐位仲裁规则,借助标示符ID解决,这种仲裁规则可以使信息和时间均无损失,若具有相同标示符的一个数据帧和一个远程帧同时发送,数据帧优先于远程帧,仲裁期间,每个发送器都对发送位电平与总线上检测到的电平进行比较,若相同则该单元可以继续发送,当发送一个隐性电平,而在总线上检测为显性电平时,该单元退出仲裁,并不再传送后继位了。

(8),安全性:为了获得尽可能高的数据传输安全性,在每个CAN节点中均设有错误检测,标定和自检的强有力措施。

检测措施包括:发送自检,循环冗余校验,位填充,和报文格式检查。

(9),出错标注和恢复时间:已损坏的报文由检验出错的节点进行标注。

这样的报文将失效,并自动进行重发送。

如果不存在新的错误,从检出错误到下一个报文开始发送的恢复实践最多为29个位时间。

(10),故障界定:CAN节点又能力识别永久性的故障和暂时扰动,可自动关闭故障节点。

(11),连接:CAN串行通信链路是一条众多单元均可被连接的总线,理论上单元数目是无限的,实际上,单元总数受限于延迟时间和总线的电器负载。

(12),应答:所有接收器均对接收报文的相容性进行检查,回答一个相容的报文,并标注一个不相容的报文。

2,CAN的特点:属于串行通信网络,(1),通信方式灵活。

多主从方式工作,网络上任何节点均可以在任何时刻主动的向其他节点发送信息,不分主从。

无需站地址等节点信息。

可以构成多机备份系统。

(2),CAN网络上的节点信息分成不同的优先级,可以满足不同的实时要求。

(3),CAN采取非破坏性的总线仲裁技术,多个节点同时发送信息时,优先级低的节点会主动退出发送。

(4),CAN只需通过报文滤波就可以实现点对点,1点对多点及全局广播等几种方式传送接收,无需调度。

(5),CAN的直接通信距离最远可达10KM(5Kb/s),通信速率最高可达1Mb/s (40M)。

(6),CAN上的节点数目前可达110个;报文标示符可达2032种(CAN2.0A ),而CAN2.0B报文标示符几乎不受限制。

(7),CAN通信采用短帧格式,传输时间短,抗干扰强,极好的验错效果,每帧最多8B足以满足控制要求,不会占用过长总线时间,实时性强。

(8),CAN每帧都有CRC校验及其他验错措施。

(9),接口中集成了CAN协议的物理层和数据链路层。

(10),CAN的通信介质可为双绞线或同轴电缆,光纤。

(11),CAN节点在错误严重情况下具有自动关闭输出功能。

3,CAN总线基本规则:
(1),总线访问:采用载波监听多路访问,CAN控制器之恩能够在总线空闲时,就是节点侦听到网络上至少存在3个空闲位(隐性位)时开始发送,采用硬同步,所有的控制器同步都为与帧的起始的前沿。

过了一定时间,并在一定条件后,重同步。

(2),仲裁:各节点向总线发电平时,也对总线上电平进行读取,并于自身发送的电平进行比较,相同则发下一位,直至全部发完。

不同则说明网络上有更高优先级的信息帧正在发送,即停止发送,退出竞争。

(3),编码/解码:帧起始域,仲裁域,控制域,数据域和CRC序列均使用位填充技术进行编码,就是5个连续的同状态电平插入一位与它相补的电平,还原时每5个同状态的电平后的相补电平被删除。

(4),出错标注:当检测到位错误,填充错误,形式错误或应答错误时,检测出错条件的CAN控制器将发送一个出错标志。

(5),超载标注,一些控制器会发送一个或多个超载帧以延迟下一个数据帧或远程帧的发送。

相关文档
最新文档