广州周立功单片机发展有限公司 Tel: 020-38730976 38730977 Fax:38730925 http://www.zlgmcu.com
- 1 -
CAN-bus 规范 V2.0 版本
引言
随着串行通讯进入更多应用领域,因此,在一些应用里,需要对通讯功能的报文识别位提出分配标准
化的要求。原先的地址范围由 11 个识别位定义,如果地址范围扩大,则这些应用就可以更好地由 CAN 来
实现。
因此引入了第二种报文格式(‘扩展格式’)的概念,其定义的地址范围更宽,由 29 位定义。系统设计
者将从考虑定义良好的结构命名方案中得到解放。有的用户不需要由扩展格式提供的识别符范围,可以继
续沿用常规的 11 位识别符范围(‘标准格式’),在这种情况下,可以采用市场上可用的 CAN 仪器,或使
用兼容这两种模式的新控制器类仪器。
为了区别标准格式和扩展格式,按 CAN 1.2 规范定义,使用了 CAN 报文格式的第一个保留位。因为
CAN1.2 定义的信息格式相当于标准格式,因此仍然是有效的。此外,由于扩展格式已经定义,因此网络
中会共存标准格式和扩展格式的报文。
这本 CAN 规范技术规范由两部分组成:
• A 部分:CAN 的报文格式说明(按 CAN1.2 规范定义)。
• B 部分:标准格式和扩展格式的说明。
为了兼容 CAN2.0,要求 CAN 的仪器应兼容 A 部分或 B 部分。
注意:
只要没有用到扩展格式,那么,根据 A 部分或 CAN 旧版本设计的仪器可以和根据 B 部分设计的仪器
相互间进行通讯。
广州周立功单片机发展有限公司 Tel: 020-38730976 38730977 Fax:38730925 http://www.zlgmcu.com
- 2 -
A 部分
目录
1.介绍 ............................................................................................................................................................. 3
2.基本概念 ..................................................................................................................................................... 3
3.报文传输 ..................................................................................................................................................... 6
3.1 帧类型 ...................................................................................................................................................6
3.1.1
数据帧
............................................................................................................................................ 6
3.1.2
远程帧
............................................................................................................................................ 9
3.1.3
错误帧
.......................................................................................................................................... 10
3.1.4
过载帧
.......................................................................................................................................... 11
3.1.5
帧间空间
...................................................................................................................................... 11
3.2 发送器/接收器的定义......................................................................................................................... 12
4.报文校验 ................................................................................................................................................... 12
5.编码 ........................................................................................................................................................... 13
6.错误处理 ................................................................................................................................................... 13
6.1 错误检测 ............................................................................................................................................. 13
6.2 错误标定 ............................................................................................................................................. 13
7.故障界定 ................................................................................................................................................... 13
8.位定时要求 ............................................................................................................................................... 15
9 增加 CAN 振荡器容差............................................................................................................................... 16
9.1 协议修改 ............................................................................................................................................. 17
广州周立功单片机发展有限公司 Tel: 020-38730976 38730977 Fax:38730925 http://www.zlgmcu.com
- 3 -
1.介绍
控制器局域网(CAN)为串行通讯协议,能有效地支持具有很高安全等级的分布实时控制。CAN 的应
用范围很广,从高速的网络到低价位的多路接线都可以使用 CAN。在汽车电子行业里,使用 CAN 连接发
动机控制单元、传感器、防刹车系统、等等,其传输速度可达 1 Mbit/s。同时,可以将 CAN 安装在卡车本
体的电子控制系统里,诸如车灯组、电气车窗等等,用以代替接线配线装置。
这本技术规范的目的是为了在任何两个 CAN 仪器之间建立兼容性。可是,兼容性有不同的方面,比如
电气特性和数据转换的解释。为了达到设计透明度以及实现柔韧性,CAN 被细分为以下不同的层次:
• CAN 对象层(the object layer)
• CAN 传输层(the transfer layer)
• 物理层(the phyical layer)
对象层和传输层包括所有由 ISO/OSI 模型定义的数据链路层的服务和功能。对象层的作用范围包括:
z 查找被发送的报文。
z 确定由实际要使用的传输层接收哪一个报文。
z 为应用层相关硬件提供接口。
在这里,定义对象处理较为灵活。传输层的作用主要是传送规则,也就是控制帧结构、执行仲裁、错
误检测、出错标定、故障界定。总线上什么时候开始发送新报文及什么时候开始接收报文,均在传输层里
确定。位定时的一些普通功能也可以看作是传输层的一部分。理所当然,传输层的修改是受到限制的。
物理层的作用是在不同节点之间根据所有的电气属性进行位信息的实际传输。当然,同一网络内,物
理层对于所有的节点必须是相同的。尽管如此,在选择物理层方面还是很自由的。
这本技术规范的目的是定义传输层,并定义 CAN 协议于周围各层当中所发挥的作用(所具有的意义)。
2.基本概念
CAN 具有以下的属性:
• 报文的优先权
• 保证延迟时间
• 设置灵活
• 时间同步的多点接收
• 系统宽数据的连贯性
• 多主机
• 错误检测和标定
• 只要总线一处于空闲,就自动将破坏的报文重新传输
• 将节点的暂时性错误和永久性错误区分开来,并且可以自动关闭错误的节点
广州周立功单片机发展有限公司 Tel: 020-38730976 38730977 Fax:38730925 http://www.zlgmcu.com
- 4 -
CAN 节点的层结构(Layered Structure od a CAN node)
应用层
对象层
- 报文滤波
- 报文和状态的处理
- 传输层
- - 故障界定
- - 错误检测和标定
- - 报文校验
- - 应答
- - 仲裁
- - 报文分帧
- - 传输速率和定时
物理层
- 信号电平和位表示
- 传输媒体
z 物理层定义实际信号的传输方法。本技术规范没有定义物理层,以便允许根据它们的应用,对发
送媒体和信号电平进行优化。
z 传输层是 CAN 协议的核心。它把接收到的报文提供给对象层,以及接收来自对象层的报文。传输
层负责位定时及同步、报文分帧、仲裁、应答、错误检测和标定、故障界定。
z 对象层的功能是报文滤波以及状态和报文的处理。
这本技术规范的目的是为了定义传输层及定义 CAN 协议在周围各层中所发挥的作用(所具有的意义)。
报文(Messages)
总线上的信息以不同的固定报文格式发送,但长度受限(见第 3 节的报文传输)。当总线空闲时任何
连接的单元都可以开始发送新的报文。
信息路由(Information Routing)
在 CAN 系统里,节点不使用任何关于系统配置的信息(比如,站地址)。以下是几个重要的概念。
z 系统灵活性
:不需要改变任何节点的应用层及相关的软件或硬件,就可以在 CAN 网络中直接添加
节点。
z 报文路由
:报文的内容由识别符命名。识别符不指出报文的目的地,但解释数据的含义。因此,
网络上所有的节点可以通过报文滤波确定是否应对该数据做出反应。
z 多播
:由于引入了报文滤波的概念,任何数目的节点都可以接收报文,并同时对此报文做出反应。
z 数据连贯性
:在 CAN 网络内,可以确保报文同时被所有的节点接收(或同时不被接收)。因此,
系统的数据连贯性是通过多播和错误处理的原理实现的。
位速率(Bit rate)
:
不同的系统,CAN 的速度不同。可是,在一给定的系统里,位速率是唯一的,并且是固定的。
优先权(Priorities)
:
在总线访问期间,识别符定义一静态的报文优先权。
广州周立功单片机发展有限公司 Tel: 020-38730976 38730977 Fax:38730925 http://www.zlgmcu.com
- 5 -
远程数据请求(Remote Data Request):
通过发送远程帧,需要数据的节点可以请求另一节点发送相应的数据帧。数据帧和相应的远程帧是由
相同的识别符(IDENTIFIER)命名的。
多主机(Multimaster)
:
总线空闲时,任何单元都可以开始传送报文。具有较高优先权报文的单元可以获得总线访问权。
仲裁(Arbitration)
:
只要总线空闲,任何单元都可以开始发送报文。如果 2 个或 2 个以上的单元同时开始传送报文,那么
就会有总线访问冲突。通过使用识别符的位形式仲裁可以解决这个冲突。仲裁的机制确保信息和时间均不
会损失。当具有相同识别符的数据帧和远程帧同时初始化时,数据帧优先于远程帧。仲裁期间,每一个发
送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送。如果发
送的是一“隐性”电平而监控视到一“显性”电平(见总线值),那么该单元就失去了仲裁,必须退出发送
状态。
安全性(Safety)
:
为了获得最安全的数据发送,CAN 的每一个节点均采取了强有力的措施以进行错误检测、错误标定及
错误自检。
错误检测(Error Detection):
为了检测错误,必须采取以下措施:
- 监视(发送器对发送位的电平与被监控的总线电平进行比较)
- 循环冗余检查
- 位填充
- 报文格式检查
错误检测的执行(Performance of Error Detection):
错误检测的机制要具有以下的属性:
- 检测到所有的全局错误
- 检测到发送器所有的局部错误
- 可以检测到一报文里多达 5 个任意分布的错误
- 检测到一报文里长度低于 15(位)的突发性错误
- 检测到一报文里任一奇数个的错误
对于没有被检测到的错误报文,其残余的错误可能性概率低于:报文错误率* 4.7 * 10
–11
。
错误标定和恢复时间(Error Sinalling and Recovery Time):
任何检测到错误的节点会标志出已损坏的报文。此报文会失效并将自动地开始重新传送。如果不再出
现新错误的话,从检测到错误到下一报文的传送开始为止,恢复时间最多为 29 个位的时间。
故障界定(Fault Confinement)
:
CAN 节点能够把永久故障和短暂扰动区分开来。永久故障的节点会被关闭。
连接(Connections)
:
CAN 串行通讯链路是可以连接许多单元的总线。理论上,可连接无数多的单元。但由于实际上受延迟
时间以及/或者总线线路上电气负载的影响,连接单元的数量是有限的。
- 1
- 2
- 3
- 4
前往页