CANopen模块的服务数据对象SDO协议是什么?
CANOPEN的SDO协议用于设置和从远程设备的对象字典中读取值。访问对象字典的设备是SDO服务器,访问远程设备的设备是SDO客户端。通讯始终由SDO客户端启动。下面由CANOPEN模块厂家无锡凌科自动化为大家介绍一下服务数据对象SDO协议。
在CANopen术语中,从SDO服务器查看通信,以便从对象字典中进行读取会导致SDO上传,而对字典条目的写入即是SDO下载。
因为对象字典值可以大于CAN帧的八个字节限制,所以SDO协议实现了对较长消息的分段和反分段。实际上,有两种协议:SDO下载/上传和SDO块下载/上传。SDO块传输是标准的更新版本,它允许以较少的协议开销传输大量数据。
可以在对象字典中设置从客户端到服务器以及从服务器到客户端的各个SDO传输消息的COB-ID。在对象字典中可以在地址0x1200-0x127F上最多设置128个SDO服务器。同样,可以使用变量0x1280-0x12FF来配置设备的SDO客户端连接。但是,预定义的连接集定义了一个SDO通道,即使在启动后(处于预操作状态)也可以使用该SDO通道来配置设备。该通道的COB-ID为0x600 +用于接收的节点ID和0x580 +用于发送的节点ID。
要启动下载,SDO客户端会在CAN消息中使用SDO通道的“接收” COB-ID发送以下数据。
字节1 | 字节2-3 | 字节4 | 字节5-8 | ||||
3位元 | 1位元 | 2位元 | 1位元 | 1位元 | 2字节 | 1个字节 | 4字节 |
ccs = 1 | 保留(= 0) | n | e | s | 索引 | 子索引 | 数据 |
ccs是SDO传输的客户端命令说明符,对于SDO段下载为0,对于SDO段下载为1,对于启动下载为2,对于启动SDO段上传,为3为SDO段上传,4为中止SDO传输,5为SDO块上传,6 SDO块下载
n是消息的数据部分中不包含数据的字节数,仅当设置了e和s时有效
e(如果已设置)表示加急传输,即,所有交换的数据都包含在消息中。如果清除此位元,则消息是分段传输,其中数据不适合一条消息,而使用多条消息。
s(如果已设置)表示在n(如果已设置e)或消息的数据部分中指定了数据大小
index是要访问的数据的对象字典索引
subindex是对象字典变量的子索引
数据包含在快速传输(设置为e)的情况下要上传的数据,或要上传的数据的大小(设置为s,未设置e)
以上便是CANopen模块的SDO协议的介绍,了解更多关于CANOPEN模块、DEVICENET模块作用等等现场总线知识,欢迎大家前往CANOPEN主站模块厂家无锡凌科自动化公司。