CANBUS协议-物理层及链路层详细分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字节2-5 为报文识别码(过滤ID的高29位) 字节6-13 为数据帧的实际数据,远程帧时无效
ISO 15765协议数据格式(一)
N_AI:地址信息部分 N_PCI:协议控制信息部分 N_Data:数据区
ISO 15765协议数据格式(二)
SF_DL:单帧数据域的字节长度,N_PCI的长度不包括在内 FF_DL:多包数据的数据域字节总长度 SN:多包数据的数据包编号 FS:流控制状态信息 BS:数据块大小(Block Size) STmin:多包数据传输的最小时间间隔
第一个字节的低4位表示除报文识别码的两个字节外其他字节 的长度,第四个字节03表示后面有效数据的长度。
命令交互方式(三)
发一帧回多帧: Tools : 08H FCH ECU : 08H FDH Tools : 08H FCH ECU : 08H FDH ECU : 08H FDH ECU : 08H FDH … ECU : 08H FDH ECU : 08H FDH ECU : 08H FDH ECU : 08H FDH
CAN,全称为“Controller Area Network”, 即控制器局域 网,是国际上应用最广泛的现场总线之一。最初,CAN 被设计作为汽 车环境中的微控制器通讯,在车载各电子控制装置ECU 之间交换信 息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、 仪表装备、电子主干系统中,均嵌入CAN 控制装置。
CAN如何工作(一)
CAN 通讯协议主要描述设备之间的信息传递方式。CAN 层的定义 与开放系统互连模型OSI 一致。每一层与另一设备上相同的那一层通 讯,实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物 理层的物理介质互连,CAN 的规范定义了模型的最下面两层:数据链 路层和物理层。物理层:规定通讯介质的物理特性(如电气特性和信 号交换的解释);数据链路层:规定了在介质上传输的数据位的排列 和组织(如数据校验和帧结构)。
CAN的主要特性
低成本 极高的总线利用率 很远的数据传输距离(长达10Km) 高速的数据传输速率(高达1Mbit/s) 可根据报文的ID决定接收或屏蔽该报文 可靠的错误处理和检错机制 发送的信息遭到破坏后,可自动重发 节点在错误严重的情况下具有自动退出总线的功能 报文不包含源地址或目标地址,仅用标志符来指示功能、优先级信息
CAN的物理层描述
可分为单线CAN协议和双线CAN协议。单线CAN协议目前主要出现 在GM和OPEL车系里面,1号脚通讯,波特率为33.3K。双线CAN协议常 见的波特率有500K(6/14)、 500K(3/8)、 250K(6/14)、125K(3/11)、 50K(1/9),括号内为通讯脚位。单、双线CAN协议的命令交互格式基 本一致。
命令交互方式(一)
发一帧回一帧 发一帧回多帧 发多帧回一帧 发多帧回多帧 流控制帧说明
命令交互方式(二)
发一帧回一帧:
Tools : 08H FCH 00H 03H 19H 02H FFH 00H 00H 00H 00H ECU : 08H FDH 00H 04H 59H 02H FFH 01H 80H 01H 00H
在这种情况下的交互,将发1帧回多帧和发多帧回1帧结合就可 以了。需要注意的是,对于不同的ECU,有的时候会通过一条 流控制帧将所有数据一次收完,有时候则是采用一对一的方式。
命令交互方式(六)
流控制帧说明:
流控制帧的第4个字节一般为0x30,第5个字节表示Receiver允许 Sender连续发送的最大帧数,若需要发送的帧数超过该值时, 则需要Sender再次发送流控制帧(如果该字节为0,表示发送多 帧的帧数无限制),第6个字节表示发送多帧时各帧之间最小的 时间间隔。
00H 02H 21H 00H 00H 00H 00H 00H 00H 00H 10H 82H 61H 00H 4CH 46H 50H 48H 00H 30H 00H 00H 00H 00H 00H 00H 00H 00H 21H 34H 41H 42H 43H 35H 36H 39H 00H 22H 30H 31H 38H 34H 32H 33H FFH 00H 23H FFH FFH FFH 2AHFFH FFH FFH
CAN的链路层描述
CAN2.0A标准帧格式 CAN2.0B扩展帧格式 ISO 15765协议数据格式 命令交互方式
CAN2.0A标准帧格式
7
6
5
4
3
2
1
0
字节1
FF
RTR
x
x
DLC 数据长度
字节2
报文识别码 ID.10-ID.3
字节3
ID.2-ID.0
x
x
x
x
x
字节4
数据1
字节5
数据2
字节6
数据3
00H 2FH FFH FFH FFH FFH FFH FFH FFH 00H 20H FFH FFH FFH FFH FFH FFH FFH 00H 21H FFH FFH FFH FFH FFH FFH FFH 00H 22H FFH E4H 81H FFH 30H 00HBaidu Nhomakorabea00H
发出请求帧后,如果响应帧的第四个字节高四位为1,则表示回多 帧。响应帧有效数据长度为0x1082&0x0FFF=0x82????,表示有130个有效 数据。设备紧跟着发送流控制帧来接收下面的有效回复数据,这个
中是指从字节4-字节11. 字节2-3 :为报文识别码(过滤ID的高11位) 字节4-11:为数据帧的实际数据,远程帧时无效。
CAN2.0B扩展帧格式
7
6
5
4
3
2
1
0
字节1
FF
RTR
x
x
DLC 数据长度
字节2
报文识别码
ID.28-ID.21
字节3
ID.20-ID.13
字节4
ID.12-ID.5
字节5
CANBUS协议物理层 及链路层详细分析
2012-2-20
目的
本文档的目的是指导我们熟悉CANBUS通讯协议的物理层及链路层,便于我 们更好的开展有关CANBUS的相关工作。
培训内容
什么是CAN CAN的发展历程 CAN的主要特性 CAN如何工作 CAN的物理层描述 CAN的链路层描述
什么是CAN
字节7
数据4
字节8
数据5
字节9
数据6
字节10
数据7
字节11
数据8
CAN2.0A标准帧为11个字节,包括信息和数据两部分,前3个字节为信息部分。 字节1 :第7位FF表示帧格式(在标准帧中FF=0,在扩展帧中FF=1);第6位RTR 表示帧的 类型(RTR=0表示为数据帧 RTR=1表示为远程帧);DLC 表示在数据帧时实际的数据长度,上图
流控帧在不同的车上可能会不一样。
命令交互方式(四)
发多帧回一帧:
Tools : 08H FCH00H 10H 16H 01H 02H 03H 04H 05H 06H ECU : 08H FDH00H 30H 00H 00H 00H 00H 00H 00H 00H Tools : 08H FCH00H 21H 07H 08H 09H 0AH0BH 0CH 0DH Tools : 08H FCH00H 22H 07H 0EH 0FH 10H 11H 12H 13H Tools : 08H FCH00H 23H 14H 15H 16H 00H 00H 00H 00H ECU : 08H FDH00H 04H 41H 02H FFH 01H 00H 00H 00H
ID.4-ID.0
x
x
x
字节6
数据1
字节7
数据2
字节8
数据3
字节9
数据4
字节10
数据5
字节11
数据6
字节12
数据7
字节13
数据8
字节1:为帧信息 第7位FF 表示帧格式(在标准帧中FF=0,在扩展帧中FF=1);第6位RTR 表示
帧的类型(RTR=0表示为数据帧 RTR=1表示为远程帧); DLC表示在数据帧时实际的数据长度, 上图中是 指字节6-字节13
Tools : 08H FCH00H 10H 09H 01H 02H 03H 04H 05H 06H ECU : 08H FDH00H 30H 00H 00H 00H 00H 00H 00H 00H Tools : 08H FCH00H 21H 07H 08H 09H 00H 00H 00H 00H ECU : 08H FDH00H 10H 0FH 59H 02H FFH 01H 80H 00H Tools : 08H FCH00H 30H 00H 00H 00H 00H 00H 00H 00H ECU : 08H FDH00H 21H FFH 01H 79H F1H E3H 01H 62H ECU : 08H FDH00H 22H F1H FFH 00H 00H 00H 00H 00H
谢谢!
CAN如何工作(二)
CAN 能够使用多种物理介质,例如双绞线、光纤等,最常用的就 是双绞线。信号使用差分电压传送,两条信号线被称为“CAN_H” 和 “CAN_L”, 静态时均是2.5V 左右,此时状态表示为逻辑1 ,也可 以叫做“隐性” 。用CAN_H 比CAN_L 高表示的逻辑0, 称为“显 性”,此时通常电压值为CAN_H =3.5V 和CAN_L = 1.5V 。
发第一条请求帧的时候,如果请求帧第4个字节高四位为1,41H是对 01的肯定应答 则表示发多帧,发送的命令数据长度有第4,第5个字节一起 决定,在这里数据长度为16H,这时候ECU响应0x30的流控制帧, Tools继续发送请求帧,发送完后,ECU响应正确的命令回复。
命令交互方式(五)
发多帧回多帧:
一个由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。 实际应用中,节点数目受网络硬件的电气特性所限制。例如当使用 Philips P82C250 作为CAN 收发器时,同一网络中允许挂接110 个节 点。
一个典型的CAN应用于汽车控制的例子如下所示:
CAN的发展历程
CAN 最初出现在80 年代末的汽车工业中,由德国Bosch 公司最 先提出。当时由于消费者对于汽车功能的要求越来越多,而这些功能 的实现大多是基于电子操作的,这就使得电子装置之间的通讯越来越 复杂,同时意味着需要更多的连接信号线。提出CAN 总线的最初动机 就是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断 增加的信号线。于是他们设计了一个单一的网络总线,所有的外围器 件可以被挂接在该总线上。1993 年,CAN 已成为国际标准 ISO11898(高速应用)和ISO11519 低速应用。由于CAN总线具有很高的 实时性能,因此,CAN已经在汽车工业、航空工业、工业控制、安全 防护等领域中得到了广泛应用。