一、CANopen简介
canopen协议属于应用层协议,是由一系列子协议组成,分为通讯子协议和设备子协议。
通讯子协议例如CIA 301子协议,其对canopen网络的架构进行了规范 ,针对某些特定的对象字典中的数据对象规定了相应的功能。
设备子协议目前在电机控制中主要使用CIA 402设备子协议,CIA 402子协议定义了电机控制相关的数据对象,状态机制,控制模式等。
CAN标识符分配表:
在CANOPEN协议中,规定COB-ID的11位中包含4位的功能吗和7位的节点地址
Node-ID —— 即伺服的站号,Node-ID 范围是 1~127;
Function Code ——数据传输的功能码,定义各种 PDO、SDO、管理报文的传输级别,
功能码越小,优先级越高。
CANOPEN 中包含以下几种报文,及其功能码如下:
2.1 服务数据对象SDO
SDO报文主要是访问设备对象字典,处理实时性不高的数据,SDO 通讯方式基于客户端/服务器模型,发送的报文会收到接收者的应答,访问者为客户端,被访问的设备为服务器,传输类型分为三种快速SOD传输,分段SDO传输,块传输。
根据SDO upload协议,根据访问的对象字典数据类型,分为SDO upload expedited(小于4个字节)和SDO upload normal(大于4个字节,一般访问string或者文件传输可能用到) 两种;
SDO快速写操作格式:
SDO快速读操作格式:
例如:
SDO读写操作实例:
402状态机