CANopen原理--SDO(download)

本文介绍CANopen中的SDO download expedited原理,以及在CanFestival中的实现过程。

一、SDO download

当需要写节点中的对象字典的值时,使用SDO download协议。
当对象字典的长度小于或等于4个字节时,使用SDO download expedited。
当对象字典的长度大于4个字节时,使用SDO download normal(segment)。

二、SDO download expedited 帧格式

客户端发送:
这里写图片描述
其中,n与对象字典的长度有关:
这里写图片描述
服务器正常响应:
这里写图片描述
服务器错误响应:
这里写图片描述

三、CanFestival中的实现

以CanFestival作为服务器为例,收到一个客户端SDO请求后的处理流程如下:
这里写图片描述
最终通过函数setODentry()写到相应的对象字典。

四、实例

以下为几个SDO download expedited的示例:
这里写图片描述

序号为274的帧:将0xff写入对象字典0x1400:02,即RPDO1的通信类型为255。
序号为276的帧:将0xff写入对象字典0x1401:02,即RPDO2的通信类型为255。
序号为278的帧:将0xff写入对象字典0x1402:02,即RPDO3的通信类型为255。
序号为280的帧:将0xff写入对象字典0x1403:02,即RPDO4的通信类型为255。
序号为282的帧:将0x0064写入对象字典0x1017:00,即心跳产生周期为100ms。
序号为284的帧:将0x007f012c写入对象字典0x1016:01,即127(0x7f)号节点的心跳监控周期为300(0x012c)ms。

  • 8
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值