当前位置:文档之家› 汽车can总线协议

汽车can总线协议

汽车can总线协议

篇一:史上最全can总线协议规则

一、CAN总线简介

CAN是控制器局域网络(Controller Area Network,CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH 公司开发了的,并最终成为国际标准(ISO11898)。是国际上应用最广泛的现场总线之一。在建立之初,CAN总线就定位于汽车内部的现场总线,具有传输速度快、可靠性高、灵活性强等优点。上世纪90年代CAN总线开始在汽车电子行业内逐步推广,目前已成为汽车电子行业首选的通信协议,并且在医疗设备、工业生产、楼宇设施、交通运输等领域中取得了广泛的应用。

二、CAN总线技术及其规范

2.1性能特点

(1) 数据通信没有主从之分,任意一个节点可以向任何其他(一个或多个)节点发起数据通信,通信方式灵活,且无需站地址等节点信息;

(2) CAN网络上的节点信息分成不停的优先级,可满足不同的实时要求,高优先级节点信息最快可在134μs内得到传输;

(3) 采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动退出发送,而高优先级的节点可不受影响的继续发送数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪的情况;

(3) 通信距离最远可达10KM(速率低于5Kbps)速率可达到1Mbps(通信距离小于40M);

(4) 通信的硬件接口简单,通信线少,传输介质可以是双绞线,同轴电缆或光缆。CAN总线适用于大数据量短距离通信或者长距离小数据量,实时性要求比较高,多主多从或者各个节点平等的现场中使用。

(5) 采用短帧结构,传输时间短,受干扰概率低,每帧信息都有CRC校验及其他检验措施,数据出错率极低;

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

(7) CAN总线使用两根信号线上的差分电压传递信号,显性电平可以覆盖隐形电平。

2.2技术规范

2.2.1CAN的分层结构

图1 CAN的分层结构

逻辑链路控制子层(LLC)的功能:为数据传送和远程数据请求提供服务,确认由LLC子层接收的报文实际上已被

接收,为恢复管理和通知超载提供信息。在定义目标处理时,存在许多灵活性。

介质访问控制子层(MAC)的功能:主要是传送规则,即控制帧结构、执行仲裁、错误检测、出错标定和故障界定。MAC子层也要确定当开始一次新的传送时,总线是否开放或者是否马上开始接收。位定时特性也是MAC子层的一部分。

2.2.2CAN的报文传送和帧结构

报文传送由以下四种不同的帧类型所表示和控制。

·数据帧:数据帧携带数据从发送器至接收器;

·远程帧:总线单元发出远程帧,请求发送具有同一识别符的数据帧;·错误帧:任何单元检测到一总线错误时发出的错误帧;

·超载帧:超载帧用来在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。

数据帧或远程帧通过帧空间与前述的各种帧分开。

2.2.2.1数据帧

数据械是用来传输数据的帧,由7个位场组成:1.帧起始位场、2.仲裁场、

3.控制场、

4.数据场、

5.CRC场、

6.应答场、7帧结尾。数据帧的组成如图2所示。

CAN2.0B中存在两种不同的帧格式,其主要区别在于仲裁场

的标示符长度。具有11位标示符的帧称为标准帧,包括29位标示符的帧称为扩展帧。标准帧和扩展帧的仲裁场格式如图3所示。

图3 标准帧和扩展帧的仲裁场格式

·帧起始

帧的起始场仅仅包含一个显性位,当CAN总线空闲时,总线保持隐性位,出现一个显性位即表示总线开始数据传输。CAN总线上的节点只能在总线空闲时发送数据,而检测到起始位之后节点就进入接收状态。

·仲裁场

仲裁场由标识符和远程发送请求位(RTR位)组成。RTR 位在数据帧中为显性,在远程帧中为隐性。其结构如图4所示。

图4 CAN总线数据帧仲裁场结构

对于CAN2.0B标准,标准格式帧与扩展格式帧的仲裁场标识符格式不同。标准格式里,仲裁场由11位识别符和RTR (RTR=0)位组成。识别符位由ID.28~ID.18组成。而在扩展格式里,仲裁场包括29位识别符、替代远程请求位SRR、标识位IDE、远程发送请求位RTR(RTR=1)。其识别符由ID.28~ID.0组成,其格式包含两个部分:11位(ID.28~ID.18)基本ID、18位(ID.17~ID.0)扩展ID。扩展格式里,基本ID首先发送,其次是SRR位和IDE位。扩展ID的发送位

于SRR位和IDE位之后。

SRR的全称是“替代远程请求位(Substitute Remote Request BIT)”,SRR

是一隐性位。它在扩展格式的标准帧RTR位上被发送,并代替标准帧的RTR位。因此,如果扩展帧的基本ID和标准帧的识别符相同,标准帧与扩展帧的冲突是通过标准帧优先于扩展帧这一途径得以解决的。

IDE的全称是“识别符扩展位(Identifier Extension Bit)”,对于扩展格式,IDE位属于仲裁场;对于标准格式,IDE位属于控制场。标准格式的IDE位为“显性”,而扩展格式的IDE位为“隐性”。

·控制场

控制场由6个位组成,包括数据长度码和两个将来作为扩展用的保留位。其结构如图5所示。

图5 CAN总线数据场结构图标准格式和扩展格式的控制场格式不同。标准格式里的帧包括数据长度代码、IDE位(为显性位)及保留位r0。扩展格式里的帧包括数据长度代码和两个保留位:r1和r0。其保留位必须发送为显性,但是接收器认可“显性”和“隐性”位的任何组合。

·数据场

数据场由数据帧里的发送数据组成。它可以为0~8个字节,每字节包含了8个位,首先发送最高有效位(MSB)。

·CRC场

CRC场由15位CRC序列和1位隐性CRC界定符组成,,其结构如图6所示。

图6 CAN总线CRC场结构图

CRC序列用于检测报文传输错误,CRC校验是由硬件完成的。

·应答场

应答场长度为两个位,包含应答间隙(ACK slot)和应答界定符(ACK delimiter

),其结构如图7所示。

图7 CAN总线应答场结构图

在应答场里,发送站发送两个“隐位”。当接收器正确的接收到有效的报文时,接收器就会在应答间隙期间(发送ACK 信号)向发送器发送一“显性”位以示应答。所接收到匹配CRC序列的站会在应答间隙期间用一“显性”位写入发送器的“隐性”位来做出回答。ACK界定符是ACK场的第二个位,并且必须为隐位。因此应答间隙被两个“隐性”位所包围,也就是CRC界定符和ACK界定符。

·帧结束

每一个数据帧或远程帧均由一串七个隐性位的帧结束域结尾。这样,接收节点可以正确检测到一个帧的传输结束。2.2.2.2远程帧

通过发送远程帧,作为某数据接收器的站通过其资源节点对不同的数据传送进行初始化设置。远程帧由6个不同的位场组成,即帧起始、仲裁场、控制场、

CRC场、应答场、帧结束。其结构如图8所示。

图8 CAN总线远程帧结构

与数据帧相比,远程帧的RTR位为隐性,没有数据域,数据长度编码域可以是0~8个字节的任何值,这个值是远程帧请求发送的数据帧的数据域长度。当具有相同仲裁域的数据帧和远程帧同时发送时,由于数据帧的RTR位为显性,所以数据帧获得优先。发送远程帧的节点可以直接接收数据。 2.2.2.3错误帧

错误帧由两个不同的域组成:第一个域是来自控制器的错误标志;第二个域为错误分界符。其结构如图9所示。

篇二:面向汽车的CAN 通信协议

面向汽车的CAN 通信协议

摘要

CAN总线是为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。对于汽车工业而言,它的实时性、灵活性、可靠性、低成本以及良好的故障珍断和纠错能力都有着很大的吸引力及市场空间。CAN作为控制器联网的手段,已广泛应用于各品牌汽

车。在控制发动机、变速箱、ABS等车身安全模块,都是以CAN网为主网。相信CAN技术将会成为汽车领域发展的新途径。

关键字CAN总线通信协议网络现场总线总线结构引言

CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO 11898)。是国际上应用最广泛的现场总线之一。由于其高性能,高可靠性,及独特的设计,CAN总线越来越受到人们的重视。在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。

本文主要对CAN总线技术的介绍,深入研究面向汽车的CAN通信协议的特点,优势,应用等。

1 基本概念

CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少

线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及

ISO11519 进行了标准化,在欧洲已是汽车网络的标准协议。CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。

2 优势

CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。较之许多RS-485基于R线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性:

2.1网络各节点之间的数据通信实时性强

首先,CAN控制器工作于多种方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余

结构,提高系统的可靠性和系统的灵活性。而利用RS-485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差;

2.2缩短了开发周期

CAN总线通过CAN收发器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会在出现在RS-485网络中的现象,即当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于“死锁”状态。而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些是仅有电气协议的RS-485所无法比拟的。

2.3已形成国际标准的现场总线

另外,与其它现场总线比较而言,CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线。这些也是CAN总线应用于众多领域,具有强劲的市场竞争力的重要原因。

2.4最有前途的现场总线之一

CAN 即控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。由于其良好的性能及独特的设计,CAN 总线越来越受到人们的重视。它在汽车领域上的应用是最广泛的,世界上一些著名的汽车制造厂商,如BENZ(奔驰)、BMW(宝马)、PORSCHE(保时捷)、ROLLS-ROYCE(劳斯莱斯)和JAGUAR(美洲豹)等都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。同时,由于CAN总线本身的特点,其应用范围已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。CAN已经形成国际标准,并(10)故障界定

(Confinement) CAN节点能区分瞬时扰动引起的故障和永久性故障。故障节点会被关闭。

(11)应答接收对正确接收的给出应答,对不一致报文进行标记。

(12)CAN通讯距离最大是10公里(设速率为5Kbps),或最大通信速率为1Mbps(设通信距离为40米)。

(13)CAN总线上的节点数可达110个。通信介质可在双绞线,同轴电缆,光纤中选择。

(14)是短帧结构,短的传送时间使其受干扰概率低,CAN

有很好的校验机制,这些都保证了CAN通信的可靠性。

特点

CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率最高可达1Mbps。

篇三:J1939 汽车CAN总线协议中文

J1939协议简介

型号: PXF0945

J1939协议简介

缩写

ACK Acknowledgment:应答

BAM Broadcast Announce Message:广播通知消息CAN ontroller Area Network:控制器局域网CRC Cyclic Redundancy Check:循环冗余校验CTS Clear-To-Send:清除发送

DA Destination Address:目标地址DLC Data Length Code:数据长度代码DP Data Page:数据页

EOF End of Frame:框架结束或帧结束IDIdentifier:标志符

IDEIdentifier Extension Bit:标志符扩展位LLCLogical Link Control:逻辑连接控制LSB Least Significant Byte

or Least Significant Bit:最小有意义位或字节

MAC Medium Access Control:媒体通道控制MF Manufacturer:制造商

MSB Most Significant Byte or Most Significant Bit:最大有意义位或字节

NA not Allowed:不应答

NACKNegative-Acknowledgment:错误应答PPriority:优先级

PDU Protocol Data Unit:协议数据单元PF PDU Format:协议数据单元格式PGN Parameter Group Number:参数组代码PS PDU Specific:协议数据单元细节GE Group Extension:组扩展

DA Destination Address:目标单元地址RReserved:保留RTR Remote Transmission Request:远程传输请求

RTS Request-To-Send:发送请求SA Source Address:原地址SOF Start of Frame:帧开始

SRR Substitute Remote Request:替代远程请求

TP Transport Protocol:传送协议Th Hold Time:保持时间Tr

Response Time:响应时间

un Undefined:没有定义

CAN2.0B包含两种格式的说明:标准格式和扩展格式。SAE

J1939必须使用扩展格式。在CAN网络上也可以有标准格式

图1:标准格式

图2:扩展格式

SAE J1939信息框架格式――CAN扩展格式信息,如图2所示,包含了一个协议数据单元(PDU)。PDU包含7个预先定义的部分:优先级、保留位、数据页、PDU格式、PDU 细节、原地址和数据部分。

表1:

29位标志符11位标志符11位标志符29位标志符J1939 位的位置CAN J1939(1) CAN

SOF SOF(2) 1 SOF SOF(2) ID28 P3 2 ID11 P3

DI27 P2 3 ID10 P2

ID26 P1 4 ID9 P1

ID25 R1 5 ID8 SA8

ID24 DP 6 ID7 SA7

ID23 PF8 7 ID6 SA6

ID22 PF7 8 ID5 SA5

ID21 PF6 9 ID4 SA4

ID20 PF5 10 ID3 SA3

ID19 PF4 11 ID2 SA2

ID18 PF3 12 ID1 SA1

SRR(r) SRR(r) (2) 13 RTR(x) RTR(2)(d) IDE(r) IDE(r) (2) 14 IDE(d) IDE(2) ID17 PF2 15 r 0 r 0(2) ID16 PF1 16 DLC4 DLC4 ID15 PS8 17 DLC3 DLC3 ID14 PS7 18 DLC2 DLC2 ID13 PS6 19 DLC1 DLC1 ID12 PS5 20

ID11 PS4 21

ID10 PS3 22

ID9 PS2 23

ID8 PS1 24

ID7 SA8 25

ID6 SA7 26

ID5 SA6 27

ID4 SA5 28

ID3 SA4 29

ID2 SA3 30

ID1 SA2 31

ID0 SA1 32

RTR(r) RTR(r)(2)(d) 33 r 1 r 1(2) 34

r 0 r 0(2) 35

DLC4 DLC4 36

DLC3 DLC3 37

DLC2 DLC2 38 DLC1 DLC1 39

1. 11位标志位要求的格式

2. CAN定义位,在SAE J1939里面没有改变

3. 注释:

SOF - Start of Frame Bit :框架开始

位ID## - Identifier Bit #n:标志符

SRR - Substitute Remote Request :替代远程请求RTR - Remote Transmission Request Bit :远程传送请求

IDE - Identifier Extension

Bit :标志符扩展位r# - CAN Reserved Bit

#n:CAN保留位

DLC# - Data Length Code Bit #n :数据长度代码位

(d) - dominant bit :显性位

(r) - recessive bit :影性位

(x) - bit state dependent on message :位状态,有信息决定

P# - SAE J1939 Priority Bit #n :SAE J1939优先级位

R# - SAE J1939 Reserved Bit #n:SAE J1939保留位

SA# - SAE J1939 Source Address Bit#n:SAE J1939原地址位DP - SAE J1939 Data Page :SAE J1939数据页

PF# - SAE J1939 PDU Format Bit #n:SAE J1939 PDU 格式位

PS# - SAE J1939 PDU Specific Bit #n :SAE J1939 PDU

详细位

表1 显示了29位标志符CAN、J1939,11位标志符的CAN、J1939仲裁和控制字段。在5。2章节里面定义了每一个SAE J1939的完整定义。

参数组代码:PGN。

在CAN数据框架内有必要标志一个参数组,参数组代码用24位表示。PGN参数组代码是一个24位的值,由如下要素组成:保留位、数据页位、PDU格式域和组扩展域。将域位转换成PGN参数组代码有如下规格。如果PF的值小于240(F0),PGN的低字节设置为0。

注意并不是所有的131071个组合都是可用的。

表2:PGN参数组代码

PGN PGN PGN PGN PGN BYTE1 BYTE1 BYTE 2 BYTE3

BYTE1

Bits R DP PF PS PGN PGN 8-3 Bit2 Bit1 Bits 8-1 Bits 8-1 Dec10 Hex16

0 0 0 0 0 0 000000 239 239 SAE 0 0 0 238 0 60928 00EE00 0 0 0 239 0 61184 00EF00 1 240 MF 0 0 0 240 0 61440 0F000 SAE3840

0 0 0 254 255 65279 00FEFF 4080

0 0 0 255 0 65280 00FF00256MF 0 0 0 255 255 65535

00FFFF 4336

0 0 1 0 0 65536 010000240SAE 0 0 1 239 0 126720 01EF00 4576

0 0 1 240 0 126976 01F0004096SAE 0 0 1 255 255 131071 01FFFF 8672

8672 8672Protocol Data Unit (PDU):协议数据单元

应用层或网络层会对PDU进行处理。SAE J1939协议数据单元由7部分组成,他们分别是优先级、保留位、数据页、PDU格式、PDU细节(可以是目标单元地址、组扩展或所有权)、原地址和数据段。这7个部分会被封装成一个或多个CAN数据框架并且通过物理层发送给其他的网络设备。每一个CAN数据框架只有一个PDU。需要注意的是一些PGN定义需要多个CAN数据框架去发送相应的数据。CAN数据框架中的一些段并没有定义在PDU里面,因为他们是由CAN规格定义的,对于数据链接层之上的OSI层是不可见的。这些字段是由CAN协议定义的在SAE J1939里面没有改变。这些字段包括:SOF、SRR、IDE、RTR、CRC、ACK、EOF。在图3中显示了这7个字段。在PDU中的每一个字段在后来的应用中都有定义。图3

P:优先级

R:保留位

DP:数据页

PF:PDU格式

PS:PDU细节

SA:原地址

Date Field:数据字段

P优先级:有三个位用来表示信息发送到总线的优先级。对于接收者来说这三个位应该都认为0,被忽略掉。信息的优先级可以设置为0,最高,或者7,最低。所有控制信息默认的优先级是3,所有的其他的优先级默认为6。

R保留位:SAE为了以后应用保留下来的,暂时无意义。DP数据页:对于参数组描述选色一个辅助的页。请参考图4。

PDU Format(PF):协议数据单元格式。PF是一个8位的字段,由这8个位决定了PDU的格式。这8个位是决定PGN 参数组代码字段的一部分。PGN参数组代码是用来确定或者标志命令、数据、一些请求、应答或不应答。PGN参数组代码确

can总线协议完全解析

CAN总线协议解析 李玉丽 (吉林建筑工程学院电气与电子信息工程学院,吉林长春,130021 ) 摘要:现场总线的发展与应用引起了传统控制系统结构的改变。控制局域网(C AN)总线因其自身的特点被广泛应用于 自动控制领域。本文对C AN总线协议作了详尽解析。 关键词:C AN总线;隐性位;显性位;节点 中图分类号:T U 85 文献标识码:A CAN(Cont roll e r A rea N et work)是分布式实时控 制系统的串行通信局域网,称谓CAN总线。在数据 实时传输中,设计独特、低成本,具有高可靠性,得到 广泛应用。 本文着重解析C AN 技术规范2.0B 版的CAN 的分层结构规范和CAN 报文结构规范。重点在于 充分理解CAN总线协议精髓,有助于CAN总线的 局网设计、软件编程、局网维护。 一、C AN的分层结构 CAN 遵从O SI ( Ope n Syste m I nte rc onnec ti on Re fe re nce Mode l ) 模型,其分层结构由高到低如图1 所示。 图1 C AN的分层结构 对应OSI 模型为两层,实际为三层,即LLC、 MA C、PL S。由此而知,对应于CAN总线系统每个 节点都是三层结构。数据发送节点数据流为LLC→ MA C→P LS ,然后将数据发送到总线上;而对于挂在 总线上的所有节点(包括发送节点)的接收的数据流 为PL S→MA C→LLC。 这种分层结构的规范保证了CAN 总线的多主 方式工作模式,即不分主从,非破坏性的仲裁工作模 式。而LLC 层的报文滤波功能可实现点到点、一点 对多点、全局广播、多点对一点,多点对多点等数据 传递方式。 各分层主要功能如下: LLC 层:接收滤波、超载通知、恢复管理; MAC 层:控制帧结构、执行仲裁、错误检测、出 错标定、故障界定。该层是CAN的核心; PL S 层:位编码/ 解码、位定时。 二、CAN总线的报文规范 CAN报文的传送有4 种不同类型的帧结构,数 据帧、远程帧、出错帧、超载帧。CA B2.0B 有4 种帧 格式。 (一)数据帧

CAN总线协议的物理层和报文类型

CAN总线协议的物理层和报文类型 CAN 总线的物理层是将ECU 连接至总线的驱动电路。ECU 的总数将受限 于总线上义了物理数据在总线上了物理数据在总线上各节点间的传输过程,主 要是连接介质、线路电气特性、数据的编码/解码、位定时和同步的实施标准。BOSCH CAN 基本上没有对物理层进行定义,但基于CAN 的ISO 标准对物理 层进行了定义。设计一个CAN 系统时,物理层具有很大的选择余地,但必须 保证CAN 总线协议中媒体访问层非破坏性位仲裁的要求,即出现总线竞争时, 具有较高优先权的报文获取总线竞争的原则,所以要求物理层必须支持CAN 总线中隐性位和显性位的状态特征。在没有发送显性位时,总线处于隐性状态,空闲时,总线处于隐性状态;当有一个或多个节点发送显性位,显性位覆盖隐 性位,使总线处于显性状态。在此基础上,物理层主要取决于传输速度的要求。 在CAN 中,物理层从结构上可分为三层:分别是物理层信令(Physical Layer Signaling,PLS)、物理介质附件(Physical MediaAttachment,PMA)层和介质从属接口(Media Dependent:Inter-face,MDI)层。其中PLS 连同数据链路层功能由CAN 控制器完成,PMA 层功能由CAN 收发器完成,MDI 层定义了电 缆和连接器的特性。目前也有支持CAN 的微处理器内部集成了CAN 控制器和 收发器电路,如MC68HC908GZl6。PMA 和MDI 两层有很多不同的国际或国 家或行业标准,也可自行定义,比较流行的是ISOll898 定义的高速CAN 发送 /接收器标准。理论上,CAN 总线上的节点数几乎不受限制,可达到2000 个,实际上受电气特性的限制,最多只能接100 多个节点。CAN 的数据链路层 是其核心内容,其中逻辑链路控制(Logical Link control,LLC)完成过滤、过载 通知和管理恢复等功能,媒体访问控制(Medium Aeeess control,MAC)子层完成数据打包/解包、帧编码、媒体访问管理、错误检测、错误信令、应答、串

CAN总线及CAN通讯协议

CAN总线及CAN通讯协议 CAN,全称为Controller Area Network,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN 被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU 之间交换信息,形成汽车电子控制网络。比如:发 动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN 控 制装置。一个由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如,当使用Philips P82C250 作为CAN 收发器时,同一网络中允许挂接110 个节点。CAN 可提供高达1Mbit/s 的数据传输速率,这使实时控制变得非常容易。另外,硬件的错 误检定特性也增强了CAN 的抗电磁干扰能力。CAN 通讯协议主要描述设备之间的信息传递方式。CAN 层的定义与开放系统互连模型(OSI)一致。每一 层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。CAN 的规范定义了模型的最下面两层:数据链路层和物理层。下表中展示了OSI 开放式互连模型的各层。应用层 协议可以由CAN 用户定义成适合特别工业领域的任何方案。已在工业控制和 制造业领域得到广泛应用的标准是DeviceNet,这是为PLC 和智能传感器设计的。在汽车工业,许多制造商都应用他们自己的标准。CAN 通讯协议主要描述设备之间的信息传递方式。CAN 层的定义与开放系统互连模型(OSI)一致。每一层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的 两层,而设备只通过模型物理层的物理介质互连。CAN 的规范定义了模型的最下面两层:数据链路层和物理层。下表中展示了OSI 开放式互连模型的各层。 应用层协议可以由CAN 用户定义成适合特别工业领域的任何方案。已在工业 控制和制造业领域得到广泛应用的标准是DeviceNet,这是为PLC 和智能传感

汽车can总线协议

汽车can总线协议 篇一:史上最全can总线协议规则 一、CAN总线简介 CAN是控制器局域网络(Controller Area Network,CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH 公司开发了的,并最终成为国际标准(ISO11898)。是国际上应用最广泛的现场总线之一。在建立之初,CAN总线就定位于汽车内部的现场总线,具有传输速度快、可靠性高、灵活性强等优点。上世纪90年代CAN总线开始在汽车电子行业内逐步推广,目前已成为汽车电子行业首选的通信协议,并且在医疗设备、工业生产、楼宇设施、交通运输等领域中取得了广泛的应用。 二、CAN总线技术及其规范 2.1性能特点 (1) 数据通信没有主从之分,任意一个节点可以向任何其他(一个或多个)节点发起数据通信,通信方式灵活,且无需站地址等节点信息; (2) CAN网络上的节点信息分成不停的优先级,可满足不同的实时要求,高优先级节点信息最快可在134μs内得到传输;

(3) 采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动退出发送,而高优先级的节点可不受影响的继续发送数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪的情况; (3) 通信距离最远可达10KM(速率低于5Kbps)速率可达到1Mbps(通信距离小于40M); (4) 通信的硬件接口简单,通信线少,传输介质可以是双绞线,同轴电缆或光缆。CAN总线适用于大数据量短距离通信或者长距离小数据量,实时性要求比较高,多主多从或者各个节点平等的现场中使用。 (5) 采用短帧结构,传输时间短,受干扰概率低,每帧信息都有CRC校验及其他检验措施,数据出错率极低; (6) 节点在严重错误的情况下具有自动关闭输出的功能,以使总线上其他节点的操作不受影响。 (7) CAN总线使用两根信号线上的差分电压传递信号,显性电平可以覆盖隐形电平。 2.2技术规范 2.2.1CAN的分层结构 图1 CAN的分层结构 逻辑链路控制子层(LLC)的功能:为数据传送和远程数据请求提供服务,确认由LLC子层接收的报文实际上已被

CAN总线协议

CAN总线协议 依据国际标准化组织/开放系统互连(International Standardi-zation Organization/Open SystemInterconnection,ISO/OSI)参考模型,CAN的ISO/OSI参考模型的层结构如图7-6所示。下面对CAN协议的媒体访问控制子层的一些概念和特征做如下说明: (1)报文(Message) 总线上的报文以不同报文格式发送,但长度受到限制。当总线空闲时,任何一个网络上的节点都可以发送报文。 (2)信息路由(Information Routing) 在CAN中,节点不使用任何关于系统配置的报文,比如站地址,由接收节点根据报文本身特征判断是否接收这帧信息。因此系统扩展时,不用对应用层以及任何节点的软件和硬件作改变,可以直接在CAN中增加节点。 (3)标识符(Identifier) 要传送的报文有特征标识符(是数据帧和远程帧的一个域),它给出的不是目标节点地址,而是这个报文本身的特征。信息以广播方式在网络上发送,所有节点都可以接收到。节点通过标识符判定是否接收这帧信息。 (4)数据一致性应确保报文在CAN里同时被所有节点接收或同时不接收,这是配合错误处理和再同步功能实现的。 (5)位传输速率不同的CAN系统速度不同,但在一个给定的系统里,位传输速率是唯一的,并且是固定的。 (6)优先权由发送数据的报文中的标识符决定报文占用总线的优先权。标识符越小,优先权越高。 (7)远程数据请求(Remote Data Request) 通过发送远程帧,需要数据的节点请求另一节点发送相应的数据。回应节点传送的数据帧与请求数据的远程帧由相同的标识符命名。 (8)仲裁(Arbitration) 只要总线空闲,任何节点都可以向总线发送报文。如果有两个或两个以上的节点同时发送报文,就会引起总线访问碰撞。通过使用标识符的逐位仲裁可以解决这个碰撞。仲裁的机制确保了报文和时间均不损失。当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先于远程帧。在仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送,如果发送的是“隐性”电平而监视到的是“显性”电平,那么这个单元就失去了仲裁,必须退出发送状态。 (9)总线状态总线有“显性”和“隐性”两个状态,“显性”对应逻辑“0”,“隐性”对应逻辑“1”。“显性”状态和“隐性”状态与为“显性”状态,所以两个节点同时分别发送“0”和“1”时,总线上呈现“0”。CAN总线采用二进制不归零(NRZ)编码方式,所以总线上不是“0”,就是“1”。但是CAN协议并没有具体定义这两种状态的具体实现方式,如图7-7所示。 10)故障界定(Confinement) CAN节点能区分瞬时扰动引起的故障和永久性故障。故障节点会被关闭。 (11)应答接收节点对正确接收的报文给出应答,对不一致报文进行标记。

CAN总线的特点及J1939协议通信原理、内容和应用

CAN总线的特点及J1939协议通信原理、内 容和应用 众多国际知名汽车公司早在20世纪80年代就积极致力于汽车网络技术的研究及应用。迄今已有多种网络标准,如专门用于货车和客车上的SAE的J1939、德国大众的ABUS、博世的CAN、美国商用机器的AutoCAN、ISO的VAN、马自达的PALMNET等。 在我国的轿车中已基本具有电子控制和网络功能,排放和其他指标达到了一定的要求。但货车和客车在这方面却远未能满足排放法规的要求。计划到2006年,北京地区的货车和客车的排放要满足欧Ⅲ标准。因此,为了满足日益严格的排放法规,载货车和客车中也必须引入计算机及控制技术。采用控制器局域网和国际公认标准协议J1939来搭建网络,并完成数据传输,以实现汽车内部电子单元的网络化是一种迫切的需要也是必然的发展趋势。 1 CAN总线特点及其发展 控制器局域网络(CAN)是德国Robert bosch公司在20世纪80年代初为汽车业开发的一种串行数据通信总线。CAN是一种很高保密性,有效支持分布式控制或实时控制的串行通信网络。CAN的应用范围遍及从高速网络到低成本底多线路网络。在自动化电子领域、发动机控制部件、传感器、抗滑系统等应用中,CAN的位速率可高达1Mbps。同时,它可以廉价地用于交通运载工具电气系统中,如灯光聚束、电气窗口等,可以替代所需要的硬件连接。它采用线性总线结构,每个子系统对总线有相同的权利,即为多主工作方式。CAN网络上任意一个节点可在任何时候向网络上的其他节点发送信息而不分主从。网络上的节点可分为不通优先级,满足不同的实时要求。采用非破坏性总线裁决技术,当两个节点(即子系统)同时向网络上传递信息时,优先级低的停止数据发送,而优先级高的节点可不受影响地继续传送数据。具有点对点、一点对多点及全局广播接收传送数据的功能。 随着CAN在各种领域的应用和推广,对其通信格式的标准化提出了要求。1991年9月Philips Semiconductors制定并发布了CAN技术规范(Versio 2.0)。该技术包括A和B两部分。2.OA给出了CAN报文标准格式,而2.OB给出了标准的和扩展的两种格式。1993年11月ISO颁布了道路交通运输工具-数据信息交换-高速通信局域网(CAN)国际标准ISO11898,为控制局域网的标准化和规范化铺平了道路。美国的汽车工程学会SAE于2000年提出的J1939,成为货车和客车中控制器局域网的通用标准。 2.J1939协议通信原理及内容 (1)J1939与CAN J1939是一种支持闭环控制的在多个ECU之间高速通信的网络协议冈。主要运用于载货车和客车上。它是以CAN2.0为网络核心。表1介绍了CAN2.0的标准和扩展格式,及J1939协议所定义的格式。表2则给出了J1939年的一个协议报文单元的具体格式。可以看出,J1939标识符包括:PRIORTY(优先权位);R(保留位);DP(数据页位);PDU FORMAAT(协议数据单元);PDU SPECIFIC(扩展单元)和SOURCE ADDRESS(源地址)。而报文单元还包括64位的数据场。

CAN总线自定义协议使用说明

CAN总线自定义协议使用说明 用C语言实现自己的协议 进入EV5000安装目录下builddriver目录(如图1),这个目录里面的fbserver.c文件即协议程序,用户不需要了解CAN口的细节编程,只需要按照该框架,用C语言来编写自己的协议即可。不可随意更改该文件中的函数名及头文件引用。 图1

CAN 自定义协议程序的流程图 接收线程流程 主程序流程 图2 需要用户实现的函数 void Init(CAN_PORT canport) 调用方式:仅在组态程序运行的时候执行一次 功能:用户程序的初始化 void main_process (CO_Data* d, UNS32 id) 调用方式:周期性执行,默认周期为10ms ,周期可以在void Init(CAN_PORT canport)中调用Set_Cycle 来设定,最小周期为10ms 功能:用户程序的“main 函数” void MsgDispatch (CO_Data* d, Message *m) 调用方式:每接收到一帧CAN 数据,就执行一次 功能:常用于对接收到的数据做解析,或者做出响应

供用户调用的API函数 void Set_Cycle(ms) 功能:用于设定main_process的运行周期, 参数:ms的单位为毫秒, 非零 UNS8 Send_Msg(CAN_PORT port, Message *m,UNS8 bExtended) 功能:向CAN总线发送一帧CAN数据 参数:port指向已打开CAN口的句柄,m指向Message结构体的指针,bExtended为1时按扩展帧发送,为0时按标准帧发送 void Write_LW8K (UNS32 n,UNS16 val) 功能:将val 写入LW8000+n的寄存器 参数:n偏移量、最大999,val待写入的值 UNS16 Read_LW8K (UNS32 n) 功能:读取LW8000+n的寄存器的值 参数:n偏移量、最大999 void Set_Timer(TimerCallback_t callback,TIMEVAL value, TIMEVAL period) 功能:使用定时器,经过设定的时间后,调用callback函数 参数:callback回调函数指针,value单次定时时间,period周期定时时间 void CopyToLW(UNS32 offset,const void *src, size_t n); 功能:由src所指内存区域复制n个字节到LW8000+offset所在内存区域 说明:src和LW8000+offset所在内存区域不能重叠 void CopyFromLW(UNS32 offset,const void *src, size_t n); 功能:由LW8000+offset所在内存区域复制n个字节src所指内存区域 说明:src和LW8000+offset所在内存区域不能重叠 相关的结构体定义 typedef struct { UNS32 w; /* 32 bits */ } SHORT_CAN; /** Can message structure */ typedef struct { SHORT_CAN cob_id; /* l'ID du mesg */ UNS8 rtr; /* remote transmission request. 0 if not rtr, 1 for a rtr message */

can总线的通信协议

竭诚为您提供优质文档/双击可除 can总线的通信协议 篇一:停车场系统can总线通信协议 停车场系统can总线通信协议 本系统主控制器采用Rs485通信方式以同管理机(pc)通信。主控制器同分控制器之间采用can通信方式。协议按can2.0a规范设计。 标识符用法定义如下: 1定义通行的主机和从机,主控制器为主机,分控制器为从机。2通信速率为100kbps,使用can2.0a标准帧格式。 3使用id10为命令/应答标志,id10=1时该帧为命令帧,id10=0时该帧为应答帧。4id9出/入口标志,0表示入口/1表示出口;id8~id3为系统标识地址。5id2广播标识。0为广播帧,1为非广播帧。 主/从机在发送数据时必须判断总线上的数据是否为多帧数据,若是则必须等多帧数据结束才可以上传数据,而不至于使多帧数据被打断。 (1)有效数据包含命令和数据。 (2)主机/从机接收数据后,分析data1若为本机机号或

广播地址,则必须处理后续数 据,否则不予处理。主机/从机接收的有效数据应该从 数据场的第二个字节开始,共7个字节。 二)应用层协议 该层协议定义了主机和从机之间的命令和数据格式(定 义在报文的数据区,由于data1参与了滤波,所以从data2 开始),包括两部分:从机主机协议和主机从机协议。主从 机之间相互传递的有效数据的最后一个字节为有效数据中 除去命令字节和数据长度字节之外所有数据的异或和(bcc)。 1)从机主机协议:说明: 1.如果数据长度超过5个字节,则必须多帧发送。2.分机主动上传卡号时,data2=5ah。,数据长度=05h(其中卡号data4—data6为 卡号,data8为bcc。 3.数据长度为data4至data8有效数据字节数。 4.从机应答命令:在分机接收到主机的命令后,返回 一个应答帧。通知主机是否接正 确收到命令和返回执行命令的结果。此时,如果接收命令和执行命令正确,data2为主机发送的命令字节数据,如 果接收的命令不正确或执行失败,则data2为将主机发送的命令字节数据的最高位置1后的字节数据。5.从机请求命令:(1).command:5bh功能:上传开闸设置length:3

史上最全can总线协议规则

一、CAN总线简介 CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO11898)。是国际上应用最广泛的现场总线之一。在建立之初,CAN总线就定位于汽车内部的现场总线,具有传输速度快、可靠性高、灵活性强等优点。上世纪90年代CAN总线开始在汽车电子行业内逐步推广,目前已成为汽车电子行业首选的通信协议,并且在医疗设备、工业生产、楼宇设施、交通运输等领域中取得了广泛的应用。 二、CAN总线技术及其规范 2.1性能特点 (1)数据通信没有主从之分,任意一个节点可以向任何其他(一个或多个)节点发起数据通信,通信方式灵活,且无需站地址等节点信息; (2)CAN网络上的节点信息分成不停的优先级,可满足不同的实时要求,高优先级节点信息最快可在134μs内得到传输; (3)采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动退出发送,而高优先级的节点可不受影响的继续发送数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪的情况; (3)通信距离最远可达10KM(速率低于5Kbps)速率可达到1Mbps(通信距离小于40M); (4)通信的硬件接口简单,通信线少,传输介质可以是双绞线,同轴电缆或光缆。CAN总线适用于大数据量短距离通信或者长距离小数据量,实时性要求比较高,多主多从或者各个节点平等的现场中使用。 (5)采用短帧结构,传输时间短,受干扰概率低,每帧信息都有CRC校验及其他检验措施,数据出错率极低; (6)节点在严重错误的情况下具有自动关闭输出的功能,以使总线上其他节点的操作不受影响。 (7)CAN总线使用两根信号线上的差分电压传递信号,显性电平可以覆盖隐形电平。 2.2技术规范 2.2.1CAN的分层结构

CAN232MB CAN总线协议转换器用户手册

GY850X CAN232MB/CAN485MB/CAN422MB CAN总线协议转换器 型号产品名称描述 CAN总线协议转换器 CAN总线转RS232 GY8502 CAN232MB CAN总线协议转换器 CAN总线转RS485 GY8503 CAN485MB CAN总线协议转换器 CAN总线转RS422 GY8504 CAN422MB 说明书时间硬件版本软件版本 V1.0 2006年11月V1.0 V1.0 Beta发布 V2.2 2008年4月V2.1 V2.1 CAN232MB,CAN485MB手册整理V2.3 2008年5月 V2.2 V2.2 说明书整理,增加CAN422MB

目录 目 录 (2) 第一章 产品简介 (4) 1.1 概述 (4) 1.2 性能与技术指标 (4) 1.3 典型应用 (5) 1.4 产品销售清单 (6) 1.5 技术支持与服务 (6) 第二章 硬件描述与使用方法 (7) 2.1 产品外观 (7) 2.2 CAN总线接口定义 (7) 2.3 DB9端接口定义 (8) 2.4 指示灯定义 (8) 2.5 CAN总线连接 (8) 第三章 配置说明 (9) 3.1 配置方法 (9) 3.2 软件说明 (9) 3.2.1 配置基本参数 (10) 3.2.2 配置串口参数 (12) 3.2.3 配置CAN接口参数 (12) 3.2.4 举例介绍验收滤波的设置 (14) 3.2.5 软件下方按钮说明 (16) 第四章 应用说明 (16) 4.1 模式1 透明转换模式 (17) 4.1.1 串行帧转CAN 报文 (17) 4.1.2 CAN报文转串行帧 (18) 4.2 模式2 透明带ID标识转换 (18) 4.2.1 串行帧转CAN 报文 (18) 4.2.2 CAN报文转串行帧 (20)

CAN总线协议转换器

GY850X CAN232MB/CAN485MB CAN总线协议转换器 型号 产品名称 描述 GY8502 CAN232MB CAN总线协议转换器 CAN总线转RS232 GY8503 CAN485MB CAN总线协议转换器 CAN总线转RS485 说明书 时间 V1.0 2006年11月 Beta发布 V2.2 2008年4月 CAN232MB,CAN485MB手册整理 V2.3 2008年5月 说明书整理 V2.4 2008年10月 增加ModbusRTU协议支持 V2.5 2009年3月 增加透明带协议头转换模式 V2.51 2010年6月 文档整理,去掉422接口产品说明

目 录 目 录 (2) 第一章 产品简介 (4) 1.1 概述 (4) 1.2 性能与技术指标 (4) 1.3 典型应用 (5) 1.4 产品销售清单 (5) 1.5 技术支持与服务 (6) 第二章 硬件描述与使用方法 (6) 2.1 产品外观 (6) 2.2 CAN总线接口定义 (7) 2.3 DB9端接口定义 (7) 2.4 指示灯定义 (8) 2.5 CAN总线连接 (8) 第三章 配置说明 (8) 3.1 配置方法 (9) 3.2 软件说明 (9) 3.2.1 配置基本参数 (10) 3.2.2 配置串口参数 (12) 3.2.3 配置CAN接口参数 (12) 3.2.4 举例介绍验收滤波的设置 (13) 3.2.5 软件下方按钮说明 (15) 第四章 应用说明 (16) 4.1 模式1 透明转换模式 (16) 4.1.1 串行帧转CAN 报文 (17) 4.1.2 CAN报文转串行帧 (17) 4.2 模式2 透明带ID标识转换 (18) 4.2.1 串行帧转CAN 报文 (18) 4.2.2 CAN报文转串行帧 (19) 4.3 模式3 Modbus RTU转换 (20)

CAN总线和iCAN协议的介绍

CAN总线和iCAN协议的介绍 在进行系统信息传输网络的设计时,根据本系统的特性和实际的应用性从现有的几种较为普遍的车用总线中选择了CAN总线作为通信网络。 作为车用总线系统中覆盖范围最广的总线,CAN总线的主要特点是: 1.总线为多主站总线,通信灵活; 2.采用独特的非破坏性总线仲裁技术,从而避免了总线冲突,满足了实时性要求; 3.支持多主工作方式,支持点对点,一点对多点的全局广播方式接受/发送数据方式; 4.采用短帧结构传输,每帧有效字节数最多为8个,数据传输时间短,并有CRC及其他校验措施,数据出错率极低; 5.具有自动关闭严重错误节点的功能,抗干扰能力强,可靠性高; 6.系统走线少,扩充容易,改型灵活; 7.最大传输速率可达1MB/S,直接通信距离最远可达l0KM; 8.总线上的节点数量主要取决于总线驱动电路,标准帧(11位报文标识符)可达110个,而扩展帧(29位报文标识符)个数几乎不受限制[i]。 系统要求车身信息及时显示,各检测模块与主屏显示模块间的信息传输速率范围在10KB/S~125KB/S间;显示模块与检测模块之间能实现点对点,一点对多点、全局广播的数据通信模式;当总线上的一个模块出现问题时不影响到其他模块的通信。基于以上的设计要求本系统选择了B类CAN总线作为通信网络。 由于CAN总线协议只规定了物理层和数据链路层,没有对应用层进行规定,导致整体功能并不完整[ii]。因此在基于CAN总线技术的分布式控制系统中,有些功能必须要通过一个更高层的协议来实现,从而实现在CAN网络中通讯模式、网络管理功能执行、以及设备功能描述方式的统一[iii]。 目前占领主要国际市场的两个应用层协议为:CANOpen 协议和DeviceNet 协议。CANopen协议适用于产品内部的嵌入式网络通信应用,DeviceNet协议是用于工业自动化控制,两种协议规范的复杂度较高,理解开发的难度较大[iv]。这两种协议本车载信息系统设计中均不太适用,因此选用了一种简单可靠的CAN 总线应用层标准协议——iCAN协议。 iCAN 协议全称为“Industry CAN-bus ApplicatI/On Protocol”,即工业CAN 总线应用层协议,该协议为现场设备和管理设备之间的连接提供了一种成本低廉,结构简单的通信方案,详细的定义了传输的CAN 报文中各ID 以及数据的分配和应用,定义了各设备的I/O资源和访问规则,建立起了统一的设备模型[v]。

相关主题