一、CANopen 协议概述
CAN(Controller Area Network)现场总线仅仅定义了物理层、数据链路层,没有规定应用层;本身并不完整,需要一个高层协议来定义 CAN 报文中的各个数据位的具体作用。同时,随着 CAN 总线在工业自动化的应用越来越需广泛,就更加迫切的需要一个开放的、标准化的高层协议。
CANopen 是一种以 CAN 为基础的上层协议,是 CiA(CAN-in-Automation)定义的标准协议,在发布后不久就获得了广泛的承认。依靠 CANopen 协议的支持,可以将不同厂商遵循CANopen 标准的设备通过 CAN 总线进行网络连接。
咳咳,简单来说就是,CAN总线报文太简单了,没有一个协议,就像你有网线却永远只能发送0001111这样,所以我们要定义一个协议在这个网络上面用。所以CANopen就出来了,这就类似于我们计算机中的应用层的TCP协议,自己封装包,自己解包
在 OSI 模型中,CAN 标准与 CANopen 协议之间的关系如下图所示:

CANopen 协议提供了一套标准的通讯对象:包含过程
数据对象 PDO(Process Data Objects)、服务数据对象 SDO(Service Data Objects) 和一些特定功能的时间戳(Time Stamp),同步信息(Sync message),紧急信息(Emergency message);
另外还制定了网络管理数据(network management data),
如开机信息(Boot-up message)、网络管理信息(NMT message)和错误控制信息( Error Control message)。
二、CANopen 预定义连接集
为了减小简单网络的组态工作量,CANopen 定义了强制性的缺省标识符(CAN-ID)分配表。这些标志符在预操作状态下可用,通过动态分配还可修改它们。CANopen 设备必须向它所支持的通讯对象的提供相应的标识符。
缺省 ID 分配表是基于 11 位 CAN-ID,包含一个 4 位的功能码部分和一个 7 位的节点
ID(Node-ID)部分,如下图所示:

Node-ID 范围是 1~127(0 不允许被使用)。
预定义的连接集定义了 4 个接收 PDO(RXPDO),4 个发送 PDO(TXPDO),1 个 SDO

本文介绍了CANopen协议,作为CAN的上层标准,它定义了PDO、SDO、NMT等通信对象,对象字典用于设备参数管理和网络行为描述。重点讲解了预定义连接集、对象字典结构、网络管理(NMT)及其功能,以及PDO和SDO的工作原理。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



