CANopen协议详情讲解

实用标准文案

根据DS301的内容进行介绍

1、CAN总线

CAN标准报文

精彩文档

实用标准文案

2、CANopen应用层协议

CANopen 协议不针对某种特别的应用对象,具有较高的配置灵活性,高数据传输能力,较低的实现复杂度。同时,CANopen 完全基于CAN 标准报文格式,而无需扩展报文的支持,最多支持127个节点,并且协议开源。

一个标准的CANopen 节点(下图),在数据链路层之上,添加了应用层。该应用层一般由软件实现,和控制算法共同运行在实时处理单元内。

一个标准的CANopen 节点

CANopen 应用层协议细化了CAN 总线协议中关于标识符的定义。定义标准报文的11 比特标识符中高4 比特为功能码,后7 比特为节点号,重命名为通讯对象标识符(COB-ID)。功能码将所有的报文分为7个优先级,按照优先级从高至低依次为:

网络命令报文(NMT) 同步报文(SYNC)

紧急报文(EMERGENCY) 时间戳(TIME)

过程数据对象(PDO) 服务数据对象(SDO)

节点状态报文(NMT Err Control)

7 位的节点号则表明CANopen 网络最多可支持127个节点共存(0 号节点为主站)。 下表给出了各报文的COB-ID 范围。

精彩文档

实用标准文案

NMT 命令 为最高优先级报文,由CANopen 主站发出,用以更改从节点的运行状态。

SYNC 报文 定期由CANopen 主站发出,所有的同步PDO 根据SYNC报文发送。 EMERGENCY报文 由出现紧急状态的从节点发出,任何具备紧急事件监控与处理能力的节点会接收并处理紧急报文。

TIME 报文 由CANopen 主站发出,用于同步所有从站的内部时钟。 PDO 分为4 对发送和接收PDO,每一个节点默认拥有4对发送PDO 和接收PDO,用于过程数据的传递。

SDO 分为发送SDO 和接收SDO,用于读写对象字典。

MT Error Control报文 由从节点发出,用以监测从节点的运行状态。

状态机

CANopen 的每一个节点都维护了一个状态机。该状态机的状态决定了该节点当前支持的通讯方式以及节点行为。

初始化时,节点将自动设置自身参数和CANopen 对象字典,发出节点启动报文,并不接收任何网络报文。

初始化完成后,自动进入预运行状态。在该状态,节点等待主站的网络命令,接收主站的配置请求,因此可以接收和发送除了PDO 以外的所有报文。 运行状态为节点的正常工作状态,接收并发送所有通讯报文。 停止状态为一种临时状态,只能接收主站的网络命令,以恢复运行或者重新启动。

精彩文档

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4