(完整版)CAN总线解析

合集下载

CAN总线详解.pdf

CAN总线详解.pdf

CAN总线§1 CAN总线的性能特点§2 CAN总线的技术规范§3 CAN器件及开发
CAN(Controllor Area Network)总线技术,由于其高性能、高可靠性以及独特的设计,越来越受到人们的重视。

已被列入ISO国际标准,称为ISO11898。

CAN最初是由BOSCH公司为汽车监测、控制系统而设计的。

由于CAN总线本身的特点,其应用范围已不再局限于汽车工业,而向过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械等领域发展。

主要特点如下:
1、多主方式工作;
2、具有不同的优先级;
3、采用非破坏性总线仲裁技术
4、CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的“调度”;
5、节点数主要取决于总线驱动电路;
6、采用短帧结构,传输时间短,受干扰概率低,具有极好的检错效果。

7、CAN的每帧信息都有CRC校验及其他检错措施,保证了数据出错率极低。

8、CAN节点在错误严重的情况下具有自动关闭输
出的功能,以使总线上其他节点的操作不受影响。

9、直接通讯距离最远可达10km(速率在5Kbps以下);通信速率可达1Mbps(通信距离最长为
40m);
§2 CAN总线的技术规范§2.1 CAN的通信参考模型
§2.2 CAN总线介质装置
§2.3 报文传送与帧结构
§2.4 错误类型和界定
§2.5 位仲裁技术。

CAN总线简介(2024版)

CAN总线简介(2024版)
目前汽车上的网络连接方式主要采用2条CAN, 一条用于驱动系统的高速CAN,速率达到500kb/s; 另一条用于车身系统的低速CAN,速率是100kb/s。
驱动系统的高速CAN
• 驱动系统CAN主要连接对象是发动机控制器 (ECU)、ABS控制器、安全气囊控制器、 组合仪表等等,它们的基本特征相同,都是 控制与汽车行驶直接相关的系统。
倍。这种传统布线方法不能适应汽车的发展。CAN总线可有效减少线束,节省空间。
例如某车门-后视镜、摇窗机、门锁控制等的传统布线需要20-30 根,应用总线 CAN 则
只需要 2 根。(3)关联控制在一定事故下,需要对各ECU进行关联控制,而这是传统
汽车控制方法难以完成的表1 汽车部分电控单元数据发送、接受情况
• (5)直接通信距离最远可达10km(速率5Kbps以下)。
• (6)通信速率最高可达1MB/s(此时距离最长40m)。
• (7)节点数实际可达110个。
• (8)采用短帧结构,每一帧的有效字节数为8个。
• (9)每帧信息都有CRC校验及其他检错措施,数据出错 率极低。
• (10)通信介质可采用双绞线,同轴电缆和光导纤维,一 般采用廉价的双绞线即可,无特殊要求。
可靠性高:传输故障(不论是由内部还是外部引起 的)应能准确识别出来 使用方便:如果某一控制单元出现故障,其余系统 应尽可能保持原有功能,以便进行信息交换 数据密度大:所有控制单元在任一瞬时的信息状态 均相同,这样就使得两控制单元之间不会有数据偏 差。如果系统的某一处有故障,那么总线上所有连 接的元件都会得到通知。 数据传输快:连成网络的各元件之间的数据交换速 率必须很快,这样才能满足实时要求。
• (2)网络上的节点(信息)可分成不同的优先级,可以满 足不同的实时要求。

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

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总线概述(完整版)

一.CAN总线简介1. CAN总线的发展历史20世纪80年代初期,欧洲汽车工业的蓬勃发展,车辆电子信息化程度的也不断提高。

当时,由于消费者对于汽车功能的要求越来越多,而这些功能的实现大多是基于电子操作的,这就使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线,但是传统的线束式汽车电子系统已经不能满足车辆电子信息功能发展的需求。

为了解决这一制约现代汽车电子信息化发展的瓶颈,德国Bosch公司设计了一个单一的网络总线,所有的外围器件可以被挂接在该总线上,经过试验,这一总线能够有效解决现代汽车中庞大的电子控制装置之间的通讯,并且能够减少不断增加的信号线。

所以在1986年Bosch公司正式公布了这一总线,且命名为CAN总线。

CAN控制器局部网(CAN—Controller Area Network)属于现场总线的畴,它是一种有效支持分布式控制或实时控制的串行通讯网络,它具有很高的网络安全性、通信可靠性和实时性,简单实用,网络成本低,特别适用于汽车计算机控制系统和环境恶劣、电磁辐射强和振动大的工业环境,因此CAN总线在诸多现场总线中独占鳌头,成为汽车总线的代名词,CAN总线开始进入快速发展时期:1987年Intel公司生产出了首枚CAN控制器(82526)。

不久,Philips公司也推出了CAN 控制器82C200;1991年,Bosch颁布CAN 2.0技术规,CAN2.0包括A和B两个部分为促进CAN以与CAN协议的发展,1992在欧洲成立了国际用户和厂商协会(CAN in Automation,简称CiA),在德国Erlangen注册,CiA总部位于Erlangen。

CiA提供服务包括:发布CAN的各类技术规,免费下载CAN文献资料,提供CANopen规DeviceNet规;发布CAN产品数据库,CANopen产品指南;提供CANopen 验证工具执行CANopen认证测试;开发CAN规并发布为CiA标准。

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总线详解

汽车CAN总线详解概述CAN(Controller Area Network)总线协议是由 BOSCH 发明的一种基于消息广播模式的串行通信总线,它起初用于实现汽车内ECU之间可靠的通信,后因其简单实用可靠等特点,而广泛应用于工业自动化、船舶、医疗等其它领域。

相比于其它网络类型,如局域网(LAN, Local Area Network)、广域网(WAN, Wide Area Network)和个人网(PAN, Personal Area Network)等,CAN 更加适合应用于现场控制领域,因此得名。

CAN总线是一种多主控(Multi-Master)的总线系统,它不同于USB或以太网等传统总线系统是在总线控制器的协调下,实现A节点到B节点大量数据的传输,CAN网络的消息是广播式的,亦即在同一时刻网络上所有节点侦测的数据是一致的,因此比较适合传输诸如控制、温度、转速等短消息。

CAN起初由BOSCH提出,后经ISO组织确认为国际标准,根据特性差异又分不同子标准。

CAN国际标准只涉及到 OSI(开放式通信系统参考模型)的物理层和数据链路层。

上层协议是在CAN标准基础上定义的应用层,市场上有不同的应用层标准。

发展历史1983年,BOSCH开始着手开发CAN总线;1986年,在SAE会议上,CAN总线正式发布;1987年,Intel和Philips推出第一款CAN控制器芯片;1991年,奔驰500E 是世界上第一款基于CAN总线系统的量产车型;1991年,Bosch发布CAN 2.0标准,分 CAN 2.0A (11位标识符)和 CAN 2.0B (29位标识符);1993年,ISO发布CAN总线标准(ISO 11898),随后该标准主要有三部分:ISO 11898-1:数据链路层协议ISO 11898-2:高速CAN总线物理层协议ISO 11898-3:低速CAN总线物理层协议注意:ISO 11898-2和ISO 11898-3物理层协议不属于BOSCH CAN 2.0标准。

CAN总线详细讲解1

CAN总线详细讲解1

同步 字符
数据 数据 字符1 字符2

数据字 数 据 校 验 符n-1 字符n 字 符
(校验 字符)
CAN 总线系统-基础概念
异步通信(Asynchronous Communication) 在异步通信中,数据通常是以字符或字节为单位组成数据帧进行传送的。收、
发端各有一套彼此独立,互不同步的通信机构,由于收发数据的帧格式相同, 因此可以相互识别接收到的数据信息。
CAN 总线系统-基础概念 3. 循环冗余码校验(CRC)
循环冗余码校验的基本原理是将一个数据块看成 一个位数很长的二进制数,然后用一个特定的数去除 它,将余数作校验码附在数据块之后一起发送。接收 端收到该数据块和校验码后,进行同样的运算来校验 传送是否出错。 目前CRC已广泛用于数据存储和数据通信中,并 在国际上形成规范,市面上已有不少现成的CRC软件 算法。
通过CANBUS-技术找到了 解决办法和可能性
只是为了必要的数据交换 还能以此来实现必要的 数据交换吗? 原始网络
... ... ...
...
... ...
... ... ... ...
... ... ...
?
...
...
...
CAN 总线-优点
各控制单元之间的所有信息都通过两根数据线进行交换—— CAN数据总线
由于CAN总线的特点,得到了Motorola,Intel,Philip,Siemence,NEC等公 司的支持,它广泛应用在离散控制领域,其应用范围目前已不仅局限于汽车行业, 已经在自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、 机器人、数控机床、医疗器械及传感器等领域中得到了广泛应用。
48
CAN 总线组成-硬件(通信节点)

CAN总线技术详解

CAN总线技术详解

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

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

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

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

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

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

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

CAN总线技术原理CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。

CAN与I2C总线的许多细节很类似,但也有一些明显的区别。

当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。

对每个节点来说,无论数据是否是发给自己的,都对其进行接收。

每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。

在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。

当几个站同时竞争总线读取时,这种配置十分重要。

当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。

CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。

每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。

由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。

我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。

当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。

CAN总线原理与应用基础

CAN总线原理与应用基础

CAN总线原理与应用基础CAN总线(Controller Area Network)是一种多控制器通信协议,广泛应用于汽车电子、工业自动化和其他领域的实时通信系统。

CAN总线的原理与应用基础包括物理层、数据链路层和应用层三个方面。

物理层是CAN总线的最底层,用于传输电信号。

CAN总线使用差分信号传输,即利用两根线分别传输CAN_H和CAN_L两个信号。

CAN_H和CAN_L之间的电压差为2V,CAN_H为高电平,CAN_L为低电平。

这种差分传输方式能够抵抗干扰噪声,并提供良好的通信质量和稳定性。

数据链路层是CAN总线的核心部分,用于实现节点之间的高效通信。

CAN总线采用CSMA/CR(Carrier Sense Multiple Access withCollision Resolution)的访问机制。

节点在发送数据前检测总线是否闲置,如果闲置则发送数据;如果检测到总线中有节点正在发送数据,则等待该节点发送完毕后再发送。

若多个节点同时发送数据导致冲突,CAN总线使用位决策算法进行冲突解决。

数据链路层还包括帧格式的定义和错误检测与纠正机制。

CAN总线数据帧分为标准帧和扩展帧两种格式。

标准帧包括ID优先级、数据长度码和数据域等组成部分,总长度为11位。

扩展帧增加了消息标识码的长度,总长度为29位。

CAN总线还使用CRC(循环冗余检验)和ACK(确认)机制来检测和纠正传输过程中的错误。

应用层是CAN总线的最上层,用于定义具体应用场景下的数据传输协议和通信规则。

不同的应用场景需要定义不同的数据内容和帧格式。

例如,在汽车电子中,CAN总线应用层定义了诸如引擎控制、仪表盘显示、安全气囊等功能的通信协议。

在工业自动化中,CAN总线应用层定义了诸如传感器数据采集、控制指令传输等功能的通信协议。

CAN总线在汽车电子领域有着广泛的应用。

它能够同时连接多个电子控制模块,实现实时高效的数据传输和控制。

通过CAN总线,不同的模块可以实现相互之间的通信和协调工作。

CAN总线详解

CAN总线详解

CAN总线§1 CAN总线的性能特点§2 CAN总线的技术规范§3 CAN器件及开发CAN(Controllor Area Network)总线技术,由于其高性能、高可靠性以及独特的设计,越来越受到人们的重视。

已被列入ISO国际标准,称为ISO11898。

CAN最初是由BOSCH公司为汽车监测、控制系统而设计的。

由于CAN总线本身的特点,其应用范围已不再局限于汽车工业,而向过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械等领域发展。

主要特点如下:1、多主方式工作;2、具有不同的优先级;3、采用非破坏性总线仲裁技术4、CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的“调度”;5、节点数主要取决于总线驱动电路;6、采用短帧结构,传输时间短,受干扰概率低,具有极好的检错效果。

7、CAN的每帧信息都有CRC校验及其他检错措施,保证了数据出错率极低。

8、CAN节点在错误严重的情况下具有自动关闭输出的功能,以使总线上其他节点的操作不受影响。

9、直接通讯距离最远可达10km(速率在5Kbps以下);通信速率可达1Mbps(通信距离最长为40m);§2 CAN总线的技术规范§2.1 CAN的通信参考模型§2.2 CAN总线介质装置§2.3 报文传送与帧结构§2.4 错误类型和界定§2.5 位仲裁技术1991年飞利浦半导体公司制定并发布了CAN技术规范。

CAN技术规范(Version2.0)包括A和B两部分:2.0A:CAN报文标准格式2.0B:标准的和扩展的两种格式CAN只采用了ISO/OSI模型中的物理层和数据链路层。

CAN通信模型的分层结构一、物理层CAN技术规范的物理层定义信号怎样进行发送,因而涉及电气连接、驱动器/接收器的特性、位编码/解码、位定时及同步等内容。

can总线底层原理

can总线底层原理

CAN总线底层原理
CAN总线,全称为Controller Area Network,是一种串行通信总线系统,被广泛应用于汽车和工业自动化领域中。

其底层原理主要涉及到以下几个关键部分:
1.物理层:CAN总线的物理层主要包括信号的传输方式、信号的电压范围、电气特性以及物理
接口的规格等。

CAN总线采用差分信号传输方式,通过两条双绞线(通常被称为CAN_H和CAN_L)来传输信号。

这种差分信号传输方式可以有效地抵抗外界干扰,提高信号的稳定性。

2.数据链路层:数据链路层是CAN总线中最为核心的部分。

它定义了通信数据的结构和格式,
包括数据段的长度、数据段的数目、数据的优先级以及错误检测和纠正的机制等。

其中,错误检测和纠正的机制是CAN总线中非常重要的一个环节,它包括位错误检测、填充错误检测、格式错误检测以及应答错误检测等。

3.应用层:应用层是CAN总线中最上层的一层,它定义了设备和应用程序如何使用总线进行
通信。

应用层协议可以因应用需求而定制,因此不同的应用可以有不同的应用层协议。

CAN总线的底层原理是其稳定性和可靠性的基础,使得CAN总线能够实现多主控制、广播通信、自诊断和扩展功能等特点,从而在汽车和工业自动化领域中得到广泛应用。

CAN总线的原理及使用教程

CAN总线的原理及使用教程

CAN总线的原理及使用教程CAN总线的基本原理是基于广播通信和多主机通信机制。

多个节点可以同时发送和接收消息,消息被广播到所有其他节点,每个节点根据消息中包含的标识符来判断该消息是否与自己相关。

如果消息与节点相关,节点将处理该消息;如果消息与节点不相关,节点将忽略该消息。

这种机制使得多个节点可以在同一个总线上同时进行通信,大大提高了总线的利用率。

CAN总线的传输速率通常为1Mbps或以上,并且支持长距离传输。

它采用差分信号线进行传输,其中CAN_H和CAN_L线分别携带正向和负向信号,通过比较CAN_H和CAN_L之间的电压差来判断数值。

差分信号线的使用可以有效地抑制电磁干扰和噪声,提高传输的可靠性。

在CAN总线中,每个节点都有一个唯一的标识符用于区分不同的节点。

当节点需要发送消息时,它会将消息封装成一个帧,包括标识符、数据和一些控制字段。

帧被发送到总线上,其他节点可以接收到该帧并进行相应的处理。

节点还可以发送错误帧来检测和纠正总线上的错误。

为了保证多个节点之间的通信顺序和优先级,CAN总线采用了基于优先级的仲裁机制。

当多个节点同时发送消息时,节点根据自己的标识符计算一个仲裁值,仲裁值越小的节点具有较高的优先级,可以发送消息。

其他节点将立即停止发送,并等待仲裁完成后再发送。

这种仲裁机制保证了消息的有序发送,避免了冲突。

除了基本的消息传输外,CAN总线还支持远程帧和错误帧等功能。

远程帧用于请求其他节点发送指定标识符的消息,而错误帧用于报告总线上的错误情况。

这些功能使得CAN总线更加灵活和可靠。

在使用CAN总线时,首先需要选取合适的硬件设备和控制器。

接下来,需要进行总线的布线和连接,保证差分信号线的正确连接和屏蔽的使用。

然后,需要编写相应的软件程序来控制节点的行为,包括发送和接收消息、处理错误等。

最后,进行系统的调试和测试,确保CAN总线的正常工作。

总之,CAN总线是一种高性能的串行通信协议,具有多节点同时通信、高速传输、抗干扰能力强等优势。

CAN总线详细教程

CAN总线详细教程

CAN总线详细教程CAN总线是一种高速串行通信协议,广泛应用于自动化控制系统、汽车电子、工业设备等领域。

它具有高速传输、可靠性强和抗干扰能力强等优点。

本篇文章将介绍CAN总线的基本原理、通信方式、帧格式以及应用示例等内容。

一、CAN总线基本原理CAN(Controller Area Network)总线是一种多主机、多从机的通信系统,包括一个主控器和多个节点。

主控器负责决定总线上的通信速率和优先级,节点之间的通信通过总线上发送和接收的消息进行。

二、CAN总线通信方式1.基于广播的通信方式:主控器发送的消息会被总线上的所有节点接收。

节点根据消息的标识符判断是否需要对其进行处理。

2.基于点对点的通信方式:主控器发送的消息只会被消息的接收者节点接收。

消息的接收者是通过消息的标识符来确定的。

在实际应用中,一般会结合这两种通信方式来实现复杂的通信需求。

三、CAN总线帧格式1.数据帧:用于实际传输数据。

数据帧包括标识符、控制字段、数据字段和校验字段等。

2.远程帧:用于请求节点发送数据。

远程帧只包括标识符和控制字段。

标识符用于标识消息的类型和优先级,控制字段用于进行错误检测和数据传输的控制。

数据字段包含要传输的数据,校验字段用于检测数据传输过程中是否出现错误。

四、CAN总线应用示例以汽车电子控制系统为例,介绍CAN总线的应用。

在汽车上,CAN总线被广泛应用于发动机控制、刹车系统、空调系统等各种电子控制单元之间的通信。

通过CAN总线,这些电子控制单元可以实现信息的共享和协同工作。

例如,发动机控制单元可以将发动机的运行状态通过CAN总线发送给其他控制单元,供其他控制单元进行相应的控制。

刹车系统可以通过CAN总线获取发动机控制单元的信息,判断是否需要进行制动操作。

空调系统可以根据发动机控制单元的信息,调整空调的工作状态等。

总结:CAN总线是一种高速串行通信协议,具有高可靠性和抗干扰能力强的特点。

它采用差分传输技术,实现多主机、多从机的通信。

can总线的原理及应用实例

can总线的原理及应用实例

CAN总线的原理及应用实例1. 什么是CAN总线?CAN(Controller Area Network)总线是一种常用于在电子设备之间进行通讯的串行总线系统。

它最早由德国博世公司开发,并于1986年开始应用于汽车电子领域。

CAN总线具有高可靠性、高传输速率和广泛的应用领域等特点,在汽车、工业自动化、机器人技术等领域得到了广泛的应用。

2. CAN总线的原理CAN总线采用了一种分布式通讯的方式,即所有设备共享同一条总线进行通讯。

CAN总线系统由多个节点组成,每个节点都有一个唯一的标识符。

节点之间通过总线进行数据的传输。

在CAN总线中,使用了一种冲突检测与回避的机制来解决多个节点同时发送数据时可能出现的冲突问题。

当多个节点同时发送数据时,会发生冲突。

CAN总线会检测到冲突并自动进行回避,以保证数据传输的可靠性。

CAN总线采用了差分传输的方式,通过两根线(CAN_H和CAN_L)来传输数据。

CAN_H和CAN_L线分别代表高电平和低电平,通过比较CAN_H和CAN_L之间的电平差异来判断传输的数据是0还是1。

3. CAN总线的应用实例3.1 汽车电子系统CAN总线在汽车电子系统中得到了广泛的应用。

汽车中的各种电子控制单元(ECU)通过CAN总线进行通讯,实现各个系统之间的数据传输和互联。

例如,发动机控制单元、制动系统控制单元、空调系统控制单元等都通过CAN总线进行通讯,实现整车各个系统的协调工作。

3.2 工业自动化在工业自动化领域,CAN总线也被广泛应用。

工业设备中的各个控制单元通过CAN总线进行通讯,实现对整个生产过程的控制和监测。

例如,机械臂控制单元、传感器控制单元、PLC等设备都可以通过CAN总线进行互联,实现自动化生产。

3.3 机器人技术CAN总线在机器人技术中的应用也非常广泛。

机器人系统中的各个模块通过CAN总线进行通讯,实现机器人的控制和操作。

例如,机器人的运动控制模块、传感器模块、视觉系统等都可以通过CAN总线进行互联,实现机器人的智能化操作。

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

一、概述CAN(Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。

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

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

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

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

一个典型的CAN应用场景:二、CAN总线标准CAN总线标准只规定了物理层和数据链路层,需要用户来自定义应用层。

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

CAN收发器负责逻辑电平和物理信号之间的转换,将逻辑信号转换成物理信号(差分电平)或者将物理信号转换成逻辑电平。

CAN标准有两个,即IOS11898和IOS11519,两者差分电平特性不同。

(有信号时,CANH 3.5V,CANL 1.5V,即显性;没有信号时,CANH 2.5V,CANL 2.5V,即隐性)IOS11898高速CAN电平中,高低电平的幅度低,对应的传输速度快。

双绞线共模消除干扰,是因为电平同时变化,电压差不变。

2.1物理层CAN有三种接口器件多个节点连接,只要有一个为低电平,总线就为低电平,只有所有的节点都输出高电平时,才为高电平。

所谓“线与”。

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

从而消除累计误差。

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

CAN总线终端电阻的接法:特点:低速CAN在CANH和CANL上串入2.2kΩ的电阻;高速CAN在CANH和CANL 之间并入120Ω电阻。

为什么是120Ω,因为电缆的特性阻抗为120Ω,为了模拟无限远的传输线。

(因为大多数双绞线电缆特性阻抗大约在100~120Ω。

)120欧姆只是为了保证阻抗完整性,消除回波反射,提升通信可靠性的,因此,其只需要在总线最远的两端接上120欧姆电阻即可,而中间节点并不需要接(接了反而有可能会引起问题)。

因此各位在使用CAN Omega做CAN总线侦听的时候,大多数情况下是不需要这个120欧姆电阻的,当然,即使当前网络中并没有终端匹配电阻,只要传输线长度不长(比如SysCan360比赛环境中,传输线只有1-2米)CAN节点数量不多的情况下,不要这个120欧姆电阻也完全可以工作,甚至,你接任意电阻都是不会有影响的。

因为此时传输线长度和波长还相差甚远,节点不多的情况下,反射波的叠加信号强度也不会很强,因此传输线效应完全可以忽略。

而哪些情况需要呢,主要就是,当使用2个CAN Omega对发或者当前网络中仅有2个CAN设备的时候,此时两个端点最好都加上终端匹配电阻,当然,前面也说过了,传输线长度不长的时候,也可以不需要2端120欧姆电阻,但为了信号完整性考虑,加上这两个电阻才是严谨的。

2个120欧姆电阻的意义在于,使用USB CAN调试某些不带终端电阻的中间节点设备时,有时候CAN总线上没有2个120欧姆电阻通信可能会异常,此时可以接入2个120欧姆电阻作为2个终端电阻来作阻抗匹配,这时候其他端点不应接入任何终端电阻!并且,这2个120欧姆电阻不可用1个60欧姆电阻代替!125kHz载波的波长大概在(c / f) = (3e8m/s) / (125e3Hz)=2.4km,其临界长度为2.4kM/ 10 = 240m >> 2m,也即传输线长度不超过240m,分布阻抗带来的影响可以忽略不计2.2数据链路层CAN总线传输的是CAN帧,CAN的通信帧分成五种,分别为数据帧、远程帧、错误帧、过载帧和帧间隔。

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

数据帧根据仲裁段长度不同分为标准帧(2.0A)和扩展帧(2.0B)2.3帧起始帧起始由一个显性位(低电平)组成,发送节点发送帧起始,其他节点同步于帧起始;帧结束由7个隐形位(高电平)组成。

2.4仲裁段CAN总线是如何解决多点竞争的问题?由仲裁段给出答案。

CAN总线控制器在发送数据的同时监控总线电平,如果电平不同,则停止发送并做其他处理。

如果该位位于仲裁段,则退出总线竞争;如果位于其他段,则产生错误事件。

帧ID越小,优先级越高。

由于数据帧的RTR位为显性电平,远程帧为隐性电平,所以帧格式和帧ID相同的情况下,数据帧优先于远程帧;由于标准帧的IDE位为显性电平,扩展帧的IDE 位为隐形电平,对于前11位ID相同的标准帧和扩展帧,标准帧优先级比扩展帧高。

2.5控制段共6位,标准帧的控制段由扩展帧标志位IDE、保留位r0和数据长度代码DLC组成;扩展帧控制段则由IDE、r1、r0和DLC组成。

2.6数据段为0-8字节,短帧结构,实时性好,适合汽车和工控领域;2.7CRC段CRC校验段由15位CRC值和CRC界定符组成。

2.8ACK段当接收节点接收到的帧起始到CRC段都没错误时,它将在ACK段发送一个显性电平,发送节点发送隐性电平,线与结果为显性电平。

2.9远程帧远程帧分为6个段,也分为标准帧和扩展帧,且RTR位为1(隐性电平)CAN是可靠性很高的总线,但是它也有五种错误。

CRC错误:发送与接收的CRC值不同发生该错误;格式错误:帧格式不合法发生该错误;应答错误:发送节点在ACK阶段没有收到应答信息发生该错误;位发送错误:发送节点在发送信息时发现总线电平与发送电平不符发生该错误;位填充错误:通信线缆上违反通信规则时发生该错误。

当发生这五种错误之一时,发送节点或接受节点将发送错误帧为防止某些节点自身出错而一直发送错误帧,干扰其他节点通信,CAN协议规定了节点的3种状态及行为。

2.10过载帧当某节点没有做好接收的"准备"时,将发送过载帧,以通知发送节点。

2.11帧间隔用来隔离数据帧、远程帧与他们前面的帧,错误帧和过载帧前面不加帧间隔。

2.12构建CAN节点构建节点,实现相应控制,由底向上分为四个部分:CAN节点电路、CAN控制器驱动、CAN应用层协议、CAN节点应用程序。

虽然不同节点完成的功能不同,但是都有相同的硬件和软件结构。

CAN收发器和控制器分别对应CAN的物理层和数据链路层,完成CAN报文的收发;功能电路,完成特定的功能,如信号采集或控制外设等;主控制器与应用软件按照CAN报文格式解析报文,完成相应控制。

CAN硬件驱动是运行在主控制器(如P89V51)上的程序,它主要完成以下工作:基于寄存器的操作,初始化CAN控制器、发送CAN报文、接收CAN报文;如果直接使用CAN硬件驱动,当更换控制器时,需要修改上层应用程序,移植性差。

在应用层和硬件驱动层加入虚拟驱动层,能够屏蔽不同CAN控制器的差异。

一个CAN节点除了完成通信的功能,还包括一些特定的硬件功能电路,功能电路驱动向下直接控制功能电路,向上为应用层提供控制功能电路函数接口。

特定功能包括信号采集、人机显示等。

CAN收发器是实现CAN控制器逻辑电平与CAN总线上差分电平的互换。

实现CAN收发器的方案有两种,一是使用CAN收发IC(需要加电源隔离和电气隔离),另一种是使用CAN 隔离收发模块。

推荐使用第二种。

CAN控制器是CAN的核心元件,它实现了CAN协议中数据链路层的全部功能,能够自动完成CAN协议的解析。

CAN控制器一般有两种,一种是控制器IC(SJA1000),另一种是集成CAN控制器的MCU(LPC11C00)。

MCU负责实现对功能电路和CAN控制器的控制:在节点启动时,初始化CAN控制器参数;通过CAN控制器读取和发送CAN帧;在CAN控制器发生中断时,处理CAN控制器的中断异常;根据接收到的数据输出控制信号;接口管理逻辑:解释MCU指令,寻址CAN控制器中的各功能模块的寄存器单元,向主控制器提供中断信息和状态信息。

发送缓冲区和接收缓冲区能够存储CAN总线网络上的完整信息。

验收滤波是将存储的验证码与CAN报文识别码进行比较,跟验证码匹配的CAN帧才会存储到接收缓冲区。

CAN内核实现了数据链路的全部协议。

2.13CAN协议应用层概述CAN总线只提供可靠的传输服务,所以节点接收报文时,要通过应用层协议来判断是谁发来的数据、数据代表了什么含义。

常见的CAN应用层协议有:CANOpen、DeviceNet、J1939、iCAN等。

CAN应用层协议驱动是运行在主控制器(如P89V51)上的程序,它按照应用层协议来对CAN报文进行定义、完成CAN报文的解析与拼装。

例如,我们将帧ID用来表示节点地址,当接收到的帧ID与自身节点ID不通过时,就直接丢弃,否则交给上层处理;发送时,将帧ID设置为接收节点的地址。

2.14CAN收发器SJA1000的输出模式有很多,使用最多的是正常输出模式,输入模式通常不选择比较器模式,可以增大通信距离,并且减少休眠下的电流。

收发器按照通信速度分为高速CAN收发器和容错CAN收发器。

同一网络中要使用相同的CAN收发器。

CAN连接线上会有很多干扰信号,需要在硬件上添加滤波器和抗干扰电路。

也可以使用CAN隔离收发器(集成滤波器和抗干扰电路)。

CAN控制器与MCU的连接方式SJA1000可被视为外扩RAM,地址宽度8位,最多支持256个寄存器将缓存区的数据连续写入寄存器…… for (i=0;i<len;i++) { WriteSJAReg(RegAdr+i,ValueBuf[i]); }……将连续多个寄存器连续读入缓存区…… for (i=0;i<len;i++) { ReadSJAReg(RegAdr+i,ValueBuf[i]); } ……头文件包含方案:每个程序包含用到的头文件每个程序包含一个公用头文件,公用头文件包含所有其他头文件SJA1000上电后处于复位状态,必须初始化后才能工作。

(1)置位模式寄存器Bit0位进入复位模式;(2)设置时钟分频寄存器选择时钟频率、CAN模式;(3)设置验收滤波,设定验证码和屏蔽码;(4)设置总线定时器寄存器0、1设定CAN波特率;(5)设置输出模式;(6)清零模式寄存器Bit0位退出复位模式;模式寄存器只检测模式:SJA1000发送CAN帧时不检查应答位;只听模式:此模式下SJA1000不会发送错误帧,用于自动检测波特率;SJA1000以不同的波特率接收CAN帧,当收到CAN帧时,表明当前波特率与总线波特率相同。

2.15波特率设置CAN总线无时钟,使用异步串行传输;波特率是1秒发送的数据位;2.16CAN帧发送:发送CAN帧的步骤:1.检测状态寄存器,等待发送缓冲区可用;2.填充报文到发送缓冲区;3.启动发送。

相关文档
最新文档