当前位置:文档之家› CAN总线协议入门

CAN总线协议入门


Inter-
frame space
Interframe space
1
11 1 2 4
0 - 64
15 1 1 1 7
Identifier Field
DLC
Control
Data Field
CRC Field
Field
ACK field
•标准数据帧的仲裁域(Arbitration Field )由11位标识符
1 11 7 3
ACK field
0 0/1 1
CAN帧结构-CRC域
Interframe
space
Interframe
space
1
11 1 2 4
0 - 64
15
Identifier Field
DLC
Control
Data Field
CRC Field
Field
循环冗余码(CRC)域(标准格式和扩展格式) •对帧起始、仲裁域、控制域、数据域上的位进行校验 •CRC循环冗余码最适合于短帧报文 •CRC界定符为1位隐性位 •CRC检验仅仅是CAN通讯的一种错误检测
space
Interframe
space
1
11 1 2 4
0 - 64
15 1 1 1 7 3
Identifier Field
DLC
Control
Data Field
CRC Field
ACK field
Field
•帧起始(SoF):标志数据帧和远程帧的起始,仅由1位显 性位组成。 •帧结尾(EoF):标准数据帧和远程帧的结束,由7位隐性 位组成。
• CAN总线具有较高的性能价格比。
CAN总线拓扑图
发动机
刹车系统
动力总成
网关
灯光
车窗及门锁
空调
仪表板
CAN节点模型
CAN整车模型
CAN整车模型
CAN总线分层结构
• CAN覆盖了ISO规定的OSI基本参照模型 中的传输层、数据链路层及物理层。
CAN总线分层结构
ISO/OSI基本参照模型
各层定义的主要项目
3
0 0/1 1
CAN帧结构-数据域
Interframe
space
Interframe
space
1
11 1 2 4
0 - 64
15
Identifier Field
DLC
Control
Data Field
CRC Field
Field
数据域(Data Field)(标准格式和扩展格式) •数据域可以为0~8个字节,首先发送MSB(最高位) •一般情况下都是8个字节 •每个字节可以存储任意的数 •有一些CAN控制器将ID过滤扩展到该域
CAN报文编码
CAN采用“不归零”码
不归零码
0111001001
曼彻斯特码
(Manchester Coding) CAN is NRZ which has
EMC advantages compared with MC
CAN报文编码-位填充
• 连续5个相同极性的位就会插入一个填充位
CAN报文-帧结构
0
•11位标识符或者29位标识符,上图表示11位标识符
0/1
——实现仲裁功能
1
——设置冲突发生时的优先级
•远程发送请求位RTR(Remote Tranmission Request Bit),RTR在数
据帧必须为显性,而在远程帧必须为隐形。
•CAN控制器的过滤功能可以在这里实现。
CAN帧结构-控制域
• 被动错误单元即使检测到错误,而其他处于 主动错误的单元如果没发现错误,整个总线 也被认为是没有错误的。
• 被动错误单元检测出错误时,输出被动错误 标志。
• 被动错误状态单元在发送结束后不能马上再 次开始发送。在开始下次发送前,在间隔帧 期间内必须插入“延迟传送”(8位隐性位)
总结
• CAN总线是车用总线系统中应用最广泛 的现场总线。
CAN帧结构-仲裁域
Interframe
space
Interframe
space
1
11 1 2 4
0 - 64
15 1 1 1 7 3
Identifier Field
DLC
Control
Data Field
CRC Field
ACK field
Field
仲裁域(Arbitration Field )
进行加1或加8操作。
错误处理机制
• 按照发送计数器、接收计数器的计数 值,总线单元的状态分为以下3种:
——主动错误 ——被动错误 ——总线关闭 • 处于不同状态的总线单元,其计数器加
减的法则不同。
错误处理机制
• 错误状态与计数器的关系
单元错误状态 主动错误状态 被动错误状态 总线关闭状态
发送错误计数值(TEC) 接收错误计数值(REC)
格式错误
• 如果一个固定格式的位域含有1个或多个 非法位,则检测到一个格式错误。
• 注意:对于接收器,帧末尾最后一位期 间的显性位不被当作帧错误。
应答错误
• 只要在应答间隙期间所监视的位不为显 性,发送器就会检测到一个应答错误。
错误处理机制
• 每个总线单元都使用2种计数来进行故障 界定:
——发送错误计数器 ——接收错误计数器 • 这些计数器按照检测到的错误类型分别
(Identifier)组成
•控制域(Control Field)
•数据域(Data Field)
•CRC 域(CRC Field)
•应答域(ACK Field)
•帧起始(Start of Frame),帧结尾(End of Frame)
3
0 0/1 1
CAN帧结构-帧起始&帧结尾
Interframe
仲裁机制
仲裁机制-结论
• 显性位具有“优先”意味,只要有一个单 元输出显性电平,总线上即为显性电平。
• 隐性位具有“包容”意味,只有所有单元 都输出隐性电平,总线上才为隐性电平。
• 显性电平比隐性电平更有“权”。 • 标识符越小,优先级越高。
错误类型及处理机制
共有5种错误类型,多种错误可能同时发生。 • 位错误(Bit Error) • 填充错误(Stuff Error) • CRC错误(CRC Error) • 格式错误(Form Error) • 应答错误(Acknowledgment Error)
位错误
• 单元在发送位的同时也对总线进行监视。 如果所发送的位值与所监视的位值不相 符合,则在此位时间里检测到一个位错 误。
填充错误
• 在应当使用位填充法进行编码的报文域 中,出现了第6个连续相同的位电平时, 将检测到一个填充错误。
CRC错误
• CRC序列包括了发送器计算的CRC结果。 接收器计算CRC的方法与发送器相同。 如果计算结果与接收到CRC序列的结果 不相符,则检测到一个CRC错误。
• CAN总线的电平信号 • 速率与传输距离的关系
CAN总线电平信号
VDiff DOM = 2V
V
= 0V
Diff REC
3,5V
Vdiff
CAN_H
2,5V
Vdiff
1,5V
隐性
显性
CAN_L
隐性
速率与传输距离
CAN总线上任意两个节点之间的最大传输距 离与其位速率相关。
位速率/kbps 1000 500 250 125 100 50 20 10 5 最大距离/m 40 130 270 530 620 1300 3300 6700 10000
• CAN上的节点数主要取决于总线驱动电 路,目前可达110个。
• 报文采用短帧结构,传输时间短,受干扰 概率低,数据出错率极低。
CAN总线的特点
• CAN的每帧信息都有CRC校验及其他检错 措施,具有极好的检错效果。
• CAN的通信介质可为双绞线、同轴电缆或 光纤,选择灵活。
• CAN节点在错误严重的情况下具有自动关 闭输出功能,以使总线上其他节点的操作 不受影响。
• 学习CAN总线的重点是了解它的报文结 构,以及其物理特性。
• 在报文标识符上,CAN上的节点分成不同 的优先级,可满足不同的实时要求,优先 级高的数据最多可在134μs内得到传输。
• CAN采用非破坏总线仲裁技术。
CAN总线的特点
• CAN节点只需通过对报文的标识符滤波即 可实现点对点、一点对多点及全局广播几 种方式传送接收数据。
• CAN的直接通讯距离最远可达10km;通信 速率最高可达1Mbps。
规定了通讯时使用的电缆、连接器等的媒体、电 气信号规格等,以实现设备间的信号传送
CAN总线分层结构
• 数据链路层分为MAC子层和LLC子层, MAC子层是CAN协议的核心部分。数据链 路层的功能是将物理层收到的信号组织成 有意义的消息,并提供传送错误控制等传 输控制的流程。具体地说,就是消息的帧 化、仲裁、应答、错误的检测或报告。数 据链路层的功能通常在CAN控制器的硬件 中执行。
CAN总线分层结构
• 物理层定义了信号实际的发送方式、位时 序、位的编码方式及同步的步骤。但具体 地说,信号电平、通信速度、采样点、驱 动器和总线的电气特性、连接器的形态等 均未定义。这些必须由用户根据系统需求 自行确定。
• 传输层定义的是CAN总线的高层协议,具 体由软件实现。
CAN总线物理特性
CAN总线协议入门
目录
• CAN总线的特点 • CAN总线拓扑图及其模型 • CAN总线分层结构 • 物理特性 • CAN总线报文 • 仲裁机制 • 错误类型及处理机制 • 总结
CAN总线的特点
• CAN是到目前为止唯一有国际标准的现场 总线。
• CAN为多主方式工作,网络上任一节点均 可在任意时刻主动地向网络上其他节点发 送信息,而不分主从。
Inter-
frame space
Inter-
frame space
1
11 1 2 4
0 - 64
15 1 1 1 7
Identifier Field
DLC
Control
Data Field
CRC Field
ACK field
Field
控制域(Control Field)(标准格式和扩展格式) •主要功能:数据长度代码(DLC),指示数据帧的字节数目 •DLC可以设置0到8的数字表示数据字节数(超过8的数字则认为 是8,这种情况并不视为出错)。 •两位保留位r1和r0,用于扩展格式帧。保留位必须全部以显性电 平发送,但接收方可以接收显性、隐性及其任意组合的电平。
1 11 7 3
ACK field
0
0/1 1
CAN帧结构-应答域
Interframe
space
Interframe
space
1
11 1 2 4
0 - 64
15
Identifier Field
DLC
Control
Data Field
CRC Field
Field
应答域(ACK Field)(标准格式和扩展格式) •接收确认机制,保证至少一个接收器正确接收到数据 •发送方发送1位隐性位
软 7层:应用层

控 6层:表示层 制
由实际应用程序提供可利用的服务 进行数据表现形式的转换
5层:会话层
为建立会话式的通讯、控制数据正确地接收和发 送
4层:传输层
控制数据传输的顺序、传送错误的恢复等,保证 通信的品质
3层:网络层
进行数据传送的路由选择或中继
硬 2层:数据链路层

控 1层:物理层 制
将物理层收到的信号组成有意义的数据,提供传 输错误控制等数据传输控制流程
注:这里的最大通信距离是指同一条总线上两个节点之间 的距离。
CAN总线报文
• 数据帧:将数据从发送器传输到接收器。 • 远程帧:请求发送具有同一标识符的数
据。 • 错误帧:任何单元检测到总线错误就发
出错误帧。 • 过载帧:用在相邻数据帧或远程帧之间
提供附加的延时。
注:数据帧和远程帧可以使用标准帧及扩展帧2种格式。
• 错误标志包括主动错误标志和被动错误标志两种 ——主动错误标志:6位显性位 ——被动错误标志:6位隐性位 • 错误界定符由8位隐性位构成
CAN报文-过载帧
• 过载帧用于接收方通知发送方尚未准备好接收数据,过载 帧由过载标志和过载界定符构成
• 过载标志由6位显性位构成 • 过载界定符由8位隐性位构成
0~127

0~127
128~255

128Βιβλιοθήκη Baidu255
256~
——
错误处理机制
错误处理机制
• 主动错误是可以正常参与总线通信的状 态,并在检测到错误时发出“主动错误” 标志。
• 检测到主动错误的计数器加8。
错误处理机制
• 被动错误是易引起错误的状态。
• 被动错误单元虽能参与总线通信,但为不妨 碍其他单元通信,接收时不能积极地发送错 误通知。
1 11 7 3
ACK field
0 0/1 1
•任何接收方接收到数据,则向发送方发送1位显性位以示应答
•应答界定符是应答域的第2个位,并且必须是1个隐性位
CAN帧结构-标准帧&扩展帧
CAN报文-远程帧
• 远程帧并无数据域,其数据长度代码表示的是所请求 数据帧的数据长度代码
CAN报文-错误帧
• 错误帧用于在接收和发送消息检测到错误时向网络通知 错误,该帧由错误标志和错误界定符构成
相关主题