搜档网
当前位置:搜档网 › CANOPEN协议详解

CANOPEN协议详解

一、CAN-BUS介绍

1.CAN的基本概念、特点

CAN 是Controller Area Network的缩写(以下称为CAN),是ISO*1国际标准化的串行通信协议。

CAN 协议如表3 所示涵盖了ISO 规定的OSI 基本参照模型中的传输层、数据链路层及物理层。

CAN 协议中关于ISO/OSI 基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义如图所示。

. ISO/OSI 基本参照模型

【注】*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”。物理层的特征如下图所示。

ISO11898、ISO11519-2 的物理层特征

2.2 CAN和标准规格

不仅是ISO,SAE(Society of Automotive Engineers)等其它的组织、团体、企业也对CAN 协议进行了标准化。

基于CAN 的各种标准规格如表 6 所示面向汽车的通信协议以通信速度为准进行了分类。

表 6. CAN 协议和标准规格

3. CAN协议帧发送细节

3.1 帧的种类

通信是通过以下5 种类型的帧进行的。

? 数据帧

? 遥控帧

? 错误帧

? 过载帧

? 帧间隔

另外,数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有11 个位的标识符(Identifier: 以下称ID),

扩展格式有29 个位的ID。

各种帧的用途如表所示。

帧的种类及用途

3.2 数据帧

数据帧由7 个段构成。

数据帧的构成如图所示。

(1) 帧起始

表示数据帧开始的段。

(2) 仲裁段

表示该帧优先级的段。

(3) 控制段

表示数据的字节数及保留位的段。

(4) 数据段

数据的内容,可发送0~8 个字节的数据。

(5) CRC 段

检查帧的传输错误的段。

(6) ACK段

表示确认正常接收的段。

(7) 帧结束

表示数据帧结束的段。

下面对帧的构成进行说明。

数据帧的构成

(1) 帧起始(标准、扩展格式相同)

表示帧开始的段。1 个位的显性位。

数据帧(帧起始)

总线上的电平有显性电平和隐性电平两种。

总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。

相关主题