CAN总线控制器局域网
can总线的国际标准

can总线的国际标准CAN总线,全称为控制器局域网总线(Controller Area Network),是一种用于实时应用的串行通讯协议总线。
由于其高性能、高可靠性、以及灵活的通讯方式,CAN总线在工业自动化、船舶、医疗设备、航空航天等领域得到了广泛应用。
CAN总线的国际标准,具体为ISO 11898系列。
这一系列标准详细规定了CAN 总线的物理层、数据链路层以及应用层的规范。
1.物理层:ISO 11898-1至-3规定了CAN总线的物理层。
这部分标准主要定义了CAN总线的基本电气特性,如位速率、位编码、位同步等。
同时,这些标准还对CAN总线的物理接口,包括连接方式、信号幅度和阻抗等进行了规定。
2.数据链路层:ISO 11898-4至-7规定了CAN总线的数据链路层。
这部分标准主要定义了如何实现节点间的数据传输和错误检测。
标准中规定了如何使用标识符来标识信息,如何发送和接收数据,以及如何处理错误和故障等。
3.应用层:ISO 11898-8至-10规定了CAN总线的应用层。
这部分标准主要定义了如何实现节点间的信息交互和通讯控制。
标准中规定了如何定义通讯协议、如何进行信息交互、如何处理异常情况等。
此外,CAN总线还有几个子标准,包括CAN 2.0、CAN FD(快速数据)等。
这些子标准在原有的CAN总线基础上进行了扩展和改进,以适应更高的数据传输速率和更复杂的应用需求。
总的来说,CAN总线的国际标准为各种不同领域的应用提供了一个通用的通讯平台。
通过遵循这些标准,不同的设备和应用可以方便地实现相互之间的通讯和控制,从而提高了系统的效率和可靠性。
CAN总线简介(2024版)

驱动系统的高速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

1.2.1 CAN的一些基本概念
报文 总线上的信息以不同格式的报文发送,但长度 有限制。当总线开放时,任何连接的单元均可开始发送 一个新报文。
信息路由 在CAN系统中,一个CAN节点不使用有关 系统结构的任何信息(如站地址)。包含一些重要概念:
系统灵活性——节点可在不要求所有节点及其应用 层改变任何软件或硬件的情况下,被接于CAN网络。
随着CAN在各种领域的应用和推广,对其通信格 式的标准化提出了要求。为此,l 991年9月 Philips Semiconductors制订并发布了CAN技术规范Version2.0)。
该技术规范包括A和B两部分。2.0A 给出了CAN 报文标准格式,而2.0B给出了标准的和扩展的两种格 式。
此后,1993年11月ISO正式颁布了道路交通运输工 具-数据信息交换-高速通信控制器局域网(CAN)国际 标准ISO11898,为控制器局域网的标准化、规范化铺 平了道路。
⑦ 采用短帧结构,传输时间短,受干扰概率低, 具有极好的检错效果。
⑧ CAN的每帧信息都有CRC校验及其他检错措施, 保证了数据出错率极低。
⑨ CAN的通信介质可为双绞线、同轴电缆或光纤, 选择灵活。
⑩ CAN节点在错误严重的情况下具有自动关闭输 出功能,以便总线上其他节点的操作不受影响。
1.2 CAN的技术规范
出错标注和恢复时间 已损报文由检出错误的任何节 点进行标注。这样的报文将失效,并自动进行重发送。 如果不存在新的错误,自检出错误至下一个报文开始发 送的恢复时间最多为29个位时间。
故障界定 CAN节点有能力识别永久性故障和短暂 扰动,可自动关闭故障节点。
连接 CAN串行通信链路是一条众多单元均可被连接 的总线,理论上,单元数目是无限的,实际上,单元总 数受限于延迟时间和(或)总线的电气负载。
CAN总线协议

CAN总线协议CAN总线协议是指控制器局域网(Controller Area Network)的通信协议。
CAN总线协议最初是由德国的博世公司和美国的英特尔公司在20世纪80年代开发出来的。
其主要目的是用于汽车中各种电子系统的通信,例如电子控制单元(ECU)。
但是,现在这种协议已经被广泛应用于其他领域,如航空航天、医疗设备、机器人和工业自动化等。
总线结构:一个CAN总线可以被分为总线主控器(Bus Master)和多个从设备(Slave Device)。
总线主控器通常是一个集成了处理器和CAN总线通信控制器的电子控制器。
每个从设备包含一个CAN总线通信控制器、一些传感器和执行器。
CAN总线协议定义了一个基于广播方式的分布式通信系统,可以使总线上的所有设备相互交流。
CAN总线的特性:1. 抗干扰能力高。
CAN总线协议使用差分信号的方式进行通信,具有较强的抗干扰能力。
2. 速度快。
CAN总线协议的通信速度高达1Mbps,使得其适用于高速通信系统。
3. 数据可靠。
CAN总线协议采用了CRC(循环冗余校验)和ACK(确认)机制,保证数据的可靠性。
4. 支持多设备接入。
CAN总线协议支持多个设备接入总线,这使得它非常适合于大型控制系统的应用。
5. 简单易用。
CAN总线协议的编程接口简单明了,易于使用。
CAN总线协议的数据格式:CAN总线协议定义了两种数据帧:数据帧(Data Frame)和远程帧(Remote Frame)。
1. 数据帧:数据帧是一种常见的CAN总线数据格式,用于发送数据。
数据帧由以下组成部分:a) 比特时间:用于标志一个数据帧的开始。
b) 报文ID标识符:用于标识一个CAN总线上的数据帧。
c) 控制域:包含两个控制比特,分别用于控制CAN总线数据帧的传输。
d) 数据域:用于传输数据。
e) CRC(循环冗余校验):用于检测数据传输中的位错误。
f) 结束位:标志一个数据帧的结束。
2. 远程帧:远程帧用于在总线上请求数据,而不是实际传输数据。
can总线的标准(一)

can总线的标准(一)CAN总线的标准1. 简介CAN(Controller Area Network,控制器局域网)总线是一种常用于汽车电子系统的通信协议。
它广泛应用于汽车领域,并逐渐渗透到其他领域。
CAN总线的标准化使得不同厂商的设备能够互联互通,提高了系统的可靠性和稳定性。
2. 标准化过程ISO 11898ISO 11898标准是CAN总线的基础标准,规定了物理层和数据链路层的要求。
它定义了CAN总线的传输速率、信号电平、线缆类型等关键参数,确保了不同设备之间的兼容性。
ISO 16845ISO 16845标准是CAN总线的高层协议标准,定义了CANopen协议的物理层和数据链路层。
CANopen是一种在CAN总线上实现的通信协议,用于设备之间的数据交换和控制。
ISO 16845确保了不同厂商的CANopen设备的互操作性。
SAE J1939是一种基于CAN总线的通信协议,广泛应用于商用车辆领域。
它定义了CAN总线上节点之间的消息格式、ID分配和协议规则等内容,使得不同厂商的商用车辆能够实现互联互通。
3. CAN总线的优势•高可靠性:CAN总线采用冗余机制和差错校验,能够在数据传输过程中检测和纠正错误,提高了系统的可靠性。
•高扩展性:CAN总线支持节点的动态增减和消息的动态分配,使得系统的扩展更加灵活。
•高实时性:CAN总线的通信速率较高,能够满足实时控制和数据传输的要求。
•简化布线:CAN总线使用双线传输,相对于传统的点对点连接,减少了线缆的使用量和布线的复杂性。
4. CAN总线的应用•汽车电子系统:CAN总线广泛应用于汽车中的电子控制单元(ECU)之间的通信,如发动机控制单元、刹车系统等。
•工业自动化:CAN总线可用于连接不同的工业设备,实现数据交换和控制,提高生产效率。
•医疗设备:CAN总线能够连接医疗设备,如监护仪、输液泵等,实现数据的传输和设备的控制。
CAN总线的标准化使得不同厂商的设备能够互联互通,提高了系统的可靠性和稳定性。
CAN总线

CAN总线系统概述CAN总线全称为“控制器局域网”,是德国搏世公司为解决现代汽车系统中众多电控单元(ECU)之间的数据交换而开发的一种串行通信协议;增加了控制器总线串行系统后,把车上相关控制器都联系起来,实现了各种控制器的相互通信,做到全车信息及时共享。
CAN总线系统不仅减少车上直接线束连接,使整车线束布置紧凑,车辆更安全,同时也确保整车在行驶过程中各个部件之间的匹配达到最佳状态,使故障率大大降低,整体安全性能大大提高。
CAN总线系统优点:•数据共享减少了数据的重复处理,节省成本。
例如。
在传统布线形式中,自动变速器、巡航定速控制等都会用到车速数据,结果这些电控单元内部都有一套车速处理电路,浪费了资源。
采用CAN总线技术以后,模块之间的数据信号可以从总线上直接下载共享,减少了车身布线,进一步节省成本。
采用总线技术,模块之间信号传递仅需要两条信号线,使布线局部化,除掉总线,其它横贯车身的线束都不需要了•具有诊断错误的能力和自动恢复能力,节省维护成本。
适当的CAN系统,分析模块可以对总线系统进行判断,如传感器故障判断、车身故障诊断、各个模块诊断以及线路故障诊断等。
对于内部错误,系统可以通过自身软件进行自动恢复。
•各电控单元对连接的CAN总线实时监控,出现故障时电控单元会存储故障码。
•可使用小型控制单元和小型插头,可节省空间。
•总线利用率高。
数据传输距离较长,可长达10km,数据的传输速度可达到1Mbit/s。
•CAN总线具有抗干扰能力强的优点。
•成本优势。
随着CAN总线技术发展,成本会进一步降低。
•CAN总线符合国际标准,因此可应用于不同型号控制单元间的传输。
CAN总线数据传输系统构成;CAN数据传输系统中每组控制单元内部都有一个CAN控制器,一个CAN收发器。
每组控制器外部连接了两条CAN数据总线。
如图:OBD车载自诊断系统与CAN总线:OBD是英文On-Board Diagnostics的缩写,中文翻译为“车载自动诊断系统”。
can总线的工作原理

can总线的工作原理CAN(Controller Area Network,控制器局域网)总线是一种多节点、分布式的串行通信协议,用于在不同的设备(如汽车电子控制单元)之间进行通信。
其工作原理如下:1. 总线结构:CAN总线包括两个主要组成部分:控制器和节点。
控制器负责管理总线上的通信,而节点则是实际的设备。
2. 通信速率:CAN总线使用串行通信方式,在一个时间周期内传输一位的数据。
通信速率可以根据需求进行调整,常见的有125kbps、250kbps和500kbps等。
3. 帧格式:CAN通信使用帧格式进行数据传输。
一个帧包括标识符、控制位、数据段和校验位等。
标识符用于确定帧的优先级和发送者的身份,控制位用于控制数据的传输方式,数据段用于传输实际的数据,校验位用于检查数据的完整性。
4. 预定位位:CAN总线使用预定位位来确保总线上的节点在发送数据之前处于同一状态。
当节点准备好发送数据时,首先发送一个断开位(Dominant),然后等待总线上所有节点一起发送一个随机位(Arbitration)。
节点在发送随机位时会检测总线上的信号,如果发现有其他节点同时发送了同样的位,则会停止发送,并等待下一个时间周期再次发送。
5. 碰撞检测:如果两个或多个节点同时发送数据,会发生碰撞(Collision)。
CAN总线通过监听总线上的信号来检测碰撞,并使用位优先级来解决冲突。
发送高优先级的节点会优先发送数据,低优先级的节点则会停止发送。
6. 增强型CAN(CAN FD):为了提高数据传输速率,增强型CAN通过增加数据段长度和引入一些新的特性来实现更高的传输速率。
总的来说,CAN总线的工作原理是通过预定位位和碰撞检测来保证多个节点间的通信正常进行,从而实现数据的可靠传输。
CAN总线的介绍

CAN总线的介绍CAN总线是指控制器局域网络(Controller Area Network)的缩写,是一种被广泛应用于汽车电子系统的通信总线。
它最初由德国汽车制造商BOSCH于1983年开发,用于解决传统有线电缆在多个控制单元之间进行数据传输过程中所遇到的问题。
CAN总线的设计目标是提供高可靠性的实时通信,优化汽车电子系统的性能,并节省系统成本。
CAN总线的特点之一是在一个相对短的物理线路上能实现高速数据传输。
它的传输速率通常为1 Mbps,且可在特殊情况下扩展至10 Mbps。
CAN总线可以支持多达110个节点连接在同一总线上,并且在同一车辆或系统内部的多个子网之间提供通信。
CAN总线使用了一种全双工的通信方式,即任何节点都可以同时发送和接收数据。
这也意味着不同的节点可以通过总线实时地进行数据沟通。
此外,CAN总线还具备高度容错性和冗余性,即使在总线上存在故障或节点故障的情况下,仍能保持通信稳定和可靠。
CAN总线的传输机制采用了一种基于优先级的非中断方式。
当一个节点想要发送数据时,它会使用一个帧来尝试传输。
如果总线上没有其他节点正在发送数据,则该帧可以立即传输。
如果有多个节点同时发送数据,CAN总线会根据每个节点的优先级来确定哪个节点能够成功发送,从而实现数据的有序传输。
CAN总线还支持多种类型的帧结构,包括数据帧、远程帧和错误帧。
其中,数据帧用于发送实际数据,远程帧用于请求其他节点发送数据,而错误帧则用于报告数据传输过程中的错误情况。
这些帧结构使得CAN总线能够满足不同类型的通信需求。
在汽车电子系统中,CAN总线被广泛应用于各种控制单元之间的通信,例如引擎控制单元、变速器控制单元、车身电子控制单元等。
它能够实现这些控制单元之间的实时数据交换,提高整车系统的性能和安全性。
此外,CAN总线还可以支持诊断和配置功能,让技术人员能够对车辆的电子系统进行故障排查和参数调整。
总之,CAN总线是一种可靠、高效的通信总线,被广泛应用于汽车电子系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CAN总线控制器局域网CAN,全称为“CONtroller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。
最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。
比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置。
一个由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。
实际应用中,节点数目受网络硬件的电气特性所限制。
例如,当使用Philips P82C250作为CAN收发器时,同一网络中允许挂接110个节点。
CAN 可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。
另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。
CAN总线特性o CA N具有十分优越的特点,使人们乐于选择。
这些特性包括:1、低成本;2、极高的总线利用率;3、很远的数据传输距离(长达10Km);4、高速的数据传输速率(高达1Mbit/s);5、可根据报文的ID决定接收或屏蔽该报文;6、可靠的错误处理和检错机制;7、发送的信息遭到破坏后,可自动重发;8、节点在错误严重的情况下具有自动退出总线的功能;9、报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。
CAN总线特点o(1)它是一种多主总线,即每个节点机均可成为主机,且节点机之间也可进行通信。
(2)通信介质可以是双绞线、同轴电缆或光导纤维,通信速率可达1Mb/s。
(3)通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余校验、优先级判别等项工作。
(4)CAN协议的一个最大特点是废除了传统的站地址编码,雨代之以对通信数据块进行编码。
采用这种方法的优点是可使网络内的节点个数在理论上不受限制,数据块的标识码可由11位或29位二进制数组成,因此可以定义211或229个不同的数据块,这种数据块编码方式,还可使不同的节点同时接收到相同的数据,这一点在分步式控制中非常重要。
(5)数据段长度最多为8个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。
同时,8个字节不会占用总线时间过长,从而倮证了通信的实时性。
(6)CAN协议采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。
CAN总线所具有的卓越性能、极高的可靠性和独特设计,特别适合工业设各测控单元互连。
因此备受工业界的重视,并已公认为最有前途的现场总线之一。
CAN总线数据格式o所有CAN总线通信在应用上都是一致的,但有两种硬件和两个版本的数据格式,分为基本型和完全型,如图1所示。
几乎所有新的处理器内部嵌入的CAN总线模块都支持这两种操作模式,其中基本型主要用于对成本要求比较敏感的系统中。
基本型(BASIC—CAN)主要有以下特点:●MCU内核和CAN总线模块采用闭环连接方式;●有1个发送缓冲;●有2个接收缓冲;●需要使用软件选择输入的消息。
完全型(FULL—CAN)主要有以下特点:●提供消息服务;●对输人消息进行更大范围的接收滤波;●邮箱允许用户配置;●邮箱的存储区以及邮箱的大小与具体的芯片有关;●先进的错误识别功能。
此外,CAN2.OB总线规范定义了2种不同的数据格式(标准帧和扩展帧),其主要区别在于标识符域的长度不同:标准帧有II位的标识符,扩展帧有29位的标识符,如图1所示。
CAN总线的标准数据帧的长度是44~108位,而扩展数据帧的长度是64~128位。
根据数据流代码的不同,标准数据帧可以插入28位填充位,扩展数据帧可以插人28位填充位。
因此,标准数据帧最长为131位,扩展数据帧最长为156位。
图1 CAN总线应用类型图2 数据格式类型图1给出了构成标准/扩展数据帧各位在整个数据帧中的位置,主要包括:●帧起始位;●包含标识符和发送消息类型的仲裁域;●包含数据位数的控制域;ELTMS320X281x∶DSP jffilE&C柳;ffilBTT,荃∶●最多8字节的数据域;●循环冗余检查位(CRC);●应答位;●帧结束位。
图3 数据帧格式CAN总线消息主要由仲裁区、数据区、CRC校验区以及帧结束区荃部分构成。
各区主要情况如下。
●仲裁区:◇定义消息的优先级;◇消息的逻辑地址(标识符);◇标准帧11位标识符;◇扩展帧29位标识符。
●数据区:◇每个消息最多可以包含8字节的数据;◇允许不包含数据帧的帧存在(数据区长度为0字节)。
●CRC校验区:包含循环冗余校验位。
●帧结束区:帧结束区消息响应标识、错误消息、消息结束。
图3给出的数据帧包含起始位、标识符、远程传输请求、标识扩展等,所有相关的仲裁、数据、CRC校验以及帧结束构成了完整的CAN总线消息帧,各部分的具体含义如下。
起始位(1 bit)标识一个消息帧的开始,在空闲时间的下降沿同步所有的总线模块;标识符(11 bits):定义消息的逻辑地址和优先级,优先级的数字越小优先级越高;RTR(1 bit):远程传输请求,如果RTR=1表示在数据帧中没有有效数据,请求远程节点向发出请求帧的节点发送数据;IDE(1 bit):标识符扩展,如果IDE=1,则采用扩展的数据帧传送数据;r0 保留;DLC(4 bits):数据长度代码,数据帧长度允许的数据字节数为{0~8),其他长度数值不允许使用;数据(0~8字节):消息数据;CRC(15 bits):循环冗余校验码”只用于检测错误而不能校正;ACK(2 bits)每一个接听者接收到消息后必须发送响应位(ACK):EOF(7 bits=1,recesslve):帧的结束;IFS(3 bits=1,recessive):内部帧空间,将接收到的消息从总线处理单元复制到缓冲,只有扩展模式有该位;SRR(1 bit=recesslve): 替代标准帧中的远程帧请求位(RTR);r0:保留。
CAN总线的仲裁o CAN总线采用的是一种叫做“载波监测,多主掌控/冲突避免”(CSMA/CA)的通信模式。
这种总线仲裁方式允许总线上的任何一个设各都有机会取得总线的控制权并向外发送数据。
如果在同一时刻有2个或2个以上的设各要求发送数据,就会产生总线冲突,CAN总线能够实时地检测这些冲突并对其进行仲裁,从而使具有高优先级的数据不受任何损坏地传输。
当总线处于空闲状态时呈隐性电平,此时任何节点都可以向总线发送显性电平作为帧的开始。
如果2个或2个以上同时发送就会产生竞争。
CAN总线解决竞争的方法同以太网的CSMA/CD(Carrier Sense Multiple Access with Collislon Detection)方法基本相似,如图1所示。
此外,CAN总线做了改进并采用CSMA/CA(Carrier SenseMultiple Access with Collision Avoidance)访问总线,按位对标识符进行仲裁。
各节点在向总线发送电平的同时,也对总线上的电平读取,并与自身发送的电平进行比较,如果电平相同继续发送下一位,不同则停止发送退出总线竞争。
剩余的节点继续上述过程,直到总线上只剩下1个节点发送的电平,总线竞争结束,优先级高的节点获得总线的控制权。
图1 Ethernet采用的CSMA/CD总线访问过程CAN总线以报文为单位进行数据传输,报文的优先级结合在44位标识符中(扩展帧的标识符29位),具有最小二进制数的标识符的节点具有最高的优先级。
这种优先级一旦在系统设计时确定就不能随意地更改,总线读取产生的冲突主要靠这些位仲裁解决。
之所以CAN总线不采用以太网使用的延时避免冲突,主要是为了保证具有更高优先级的节点能够完整地实时传输,而且CSMA/CA可以有效地避免冲突。
如图2所示,节点A和节点B的标识符的第lO、9、8位电平相同,因此两个节点侦听到的信息和它们发出的信息相同。
第7位节点B发出一个“1”,但从节点上接收到的消息却是“0”,说明有更高优先级的节点占用总线发送消息。
节点B会退出发送处于单纯监听方式而不发送数据;节点A成功发送仲裁位从而获得总线的控制权,继而发送全部消息。
总线中的信号持续跟踪最后获得总线控制权发出的报文,本例中节点A的报文将被跟踪。
这种非破坏性位仲裁方法的优点在于,在网络最终确定哪个节点被传送前,报文的起始部分已经在网络中传输了,因此具有高优先级的节点的数据传输没有任何延时。
在获得总线控制权的节点发送数据过程中,其他节点成为报文的接收节点,并且不会在总线再次空闲之前发送报文。
图3为CAN总线上节点的电平逻辑,总线上的节点电平对于总线电平而言是相与的关系,只有当3个节点的电压都等于1(隐性电平),总线才会保持在ycc(隐性电平)状态。
只要有1个节点切换到0状态(显性电平),总线就会被强制在显性状态(0)。
这种避免总线冲突的仲裁方式能够使具有高优先级的消息没有延时地占用总线传输。
图3 CAN总线上节点的电平逻辑CAN总线的物理连接o CAN总线采用的是一种叫做“载波监测,多主掌控/冲突避免”(CSMA/CA)的通信模式。
这种总线仲裁方式允许总线上的任何一个设各都有机会取得总线的控制权并向外发送数据。
如果在同一时刻有2个或2个以上的设各要求发送数据,就会产生总线冲突,CAN总线能够实时地检测这些冲突并对其进行仲裁,从而使具有高优先级的数据不受任何损坏地传输。
当总线处于空闲状态时呈隐性电平,此时任何节点都可以向总线发送显性电平作为帧的开始。
如果2个或2个以上同时发送就会产生竞争。
CAN总线解决竞争的方法同以太网的CSMA/CD(Carrier Sense Multiple Access with Collislon Detection)方法基本相似,如图1所示。
此外,CAN总线做了改进并采用CSMA/CA(Carrier SenseMultiple Access with Collision Avoidance)访问总线,按位对标识符进行仲裁。
各节点在向总线发送电平的同时,也对总线上的电平读取,并与自身发送的电平进行比较,如果电平相同继续发送下一位,不同则停止发送退出总线竞争。
剩余的节点继续上述过程,直到总线上只剩下1个节点发送的电平,总线竞争结束,优先级高的节点获得总线的控制权。
图1 Ethernet采用的CSMA/CD总线访问过程CAN总线以报文为单位进行数据传输,报文的优先级结合在44位标识符中(扩展帧的标识符29位),具有最小二进制数的标识符的节点具有最高的优先级。
这种优先级一旦在系统设计时确定就不能随意地更改,总线读取产生的冲突主要靠这些位仲裁解决。
之所以CAN总线不采用以太网使用的延时避免冲突,主要是为了保证具有更高优先级的节点能够完整地实时传输,而且CSMA/CA可以有效地避免冲突。