一、CAN-BUS介绍
1.CAN的基本概念、特点
CAN 是 Controller Area Network的缩写(以下称为 CAN),是 ISO*1国际标准化
的串行通信协议。
CAN 协议如表 3 所示涵盖了 ISO 规定的 OSI 基本参照模型中的传输层、数据链路层及物理层。
CAN 协议中关于 ISO/OSI 基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义如图所示。
. ISO/OSI
ISO/OSI 基本参照模型 7 层:应用层 6 层:表示层 软件控制 基本参照模型
各层定义的主要项目 由实际应用程序提供可利用的服务。 进行数据表现形式的转换。 如:文字设定、数据压缩、加密等的控制 5 层:会话层 4 层:传输层 为建立会话式的通信,控制数据正确地接收和发送。 控制数据传输的顺序、传送错误的恢复等,保证通信的品质。 如:错误修正、再传输控制。 3 层:网络层 进行数据传送的路由选择或中继。 如:单元间的数据交换、地址管理。 2 层:数据链路层 制 将物理层收到的信号(位序列)组成有意义的数据,提供传输错误控等数据传输控制流程。 如:访问的方法、数据的形式。 硬件控制 通信方式、连接控制方式、同步方式、检错方式。 应答方式、通信方式、包(帧)的构成。 位的调制方式(包括位时序条件)。 1 层:物理层 现 规定了通信时使用的电缆、连接器等的媒体、电气信号规格等,以实设备间的信号传送。 如:信号电平、收发器、电缆、连接器等的形态。 【注】 *1 OSI:Open Systems Interconnection (开放式系统间互联)
CAN的特点
CAN 协议具有以下特点。 (1) 多主控制
在总线空闲时,所有的单元都可开始发送消息(多主控制)。 最先访问总线的单元可获得发送权。
(2) 消息的发送
在 CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符
(Identifier 以下称为 ID)决定优先级。ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息 ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。
(3) 系统的柔软性
与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。
(4) 通信速度
根据整个网络的规模,可设定适合的通信速度。
在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。
(5) 远程数据请求
可通过发送“遥控帧” 请求其他单元发送数据。 (6) 错误检测功能·错误通知功能·错误恢复功能 所有的单元都可以检测错误(错误检测功能)。
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。
正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。
(7) 故障封闭
CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。
(8) 连接
CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。
2. CAN协议及标准规格
2.1 ISO 标准化的CAN协议
CAN 协议经 ISO 标准化后有 ISO11898 标准和 ISO11519-2 标准两种。ISO11898和 ISO11519-2 标准对于数据链路层的定义相同,但物理层不同。
(1) 关于 ISO11898
ISO11898 是通信速度为 125kbps-1Mbps 的 CAN 高速通信标准。 目前,ISO11898 追加新规约后,成为 ISO11898-1 新标准。 (2) 关于 ISO11519
ISO11519 是通信速度为 125kbps以下的 CAN 低速通信标准。 ISO11519-2 是 ISO11519-1 追加新规约后的版本。
【注】 *1 通信速度 通信速度根据系统设定。 *2 总线长度
总线的长度根据系统设定。
通信速度和最大总线长度的关系如下图所示。
CAN 收发器根据两根总线(CAN_High 和 CAN_Low)的电位差来判断总线电平。
总线电平分为显性电平和隐性电平两种。 总线必须处于两种电平之一。 总线上执行逻辑上的线“与”时,显性电平为“0”,隐性电平为“1”。物理层的特征如下图所示。