CANOpen SDO

news/2025/3/22 14:07:12/

文章目录

  • SDO分类
  • SDO 段下载
    • 快速SDO下载
    • 普通SDO段下载发起
    • 普通SDO段下载
  • SDO 段上传
    • 快速SDO上传
    • 普通SDO发起段上传
    • 普通SDO段上传
  • SDO 块下载
    • SDO块下载发起
    • SDO子块下载
    • SDO块下载结束
  • SDO 块上传
    • SDO块上传发起
    • SDO上传子块
    • SDO块上传结束

SDO分类

根据应用程序需求,以下服务可以应用于SDO:

  • SDO下载分为如下几个部分
    • SDO下载发起
    • SDO段下载
  • SDO上传分为如下几个部分
    • SDO上传发起
    • SDO段上传
  • SDO终止传输

普通SDO(分段传输)进行下载和上传服务时,应用程序负责将SDO作为一个分段序列进行传输。与此同时,快速SDO也应当得到支持。如果传输的数据长度大于4字节,则应支持SDO分段传输。

SDO块下载服务作为可选项,可用于进行高速的SDO块数据传输:

  • SDO块下载分为如下几个部分
    • SDO块下载发起
    • SDO块下载
    • SDO块下载结束
  • SDO块上传分为如下几个部分
    • SDO块上传发起
    • SDO块上传
    • SDO块上传结束

当使用SDO块下载和SDO块上传服务时,应用程序负责将负责将数据作为一个块的序列传输。

SDO 段下载

使用SDO读写对象时,如果数据长度不大于4字节,使用快速SDO可以在一个来回之间完成通讯,读写对象超过4字节时需要进行分段传输,流程如下:
在这里插入图片描述

快速SDO下载

在这里插入图片描述

普通SDO段下载发起

在这里插入图片描述

  • ccs = 1发起段下载请求
  • scs = 3 发起段下载应答
  • n 当e和s均为1时有效,其他时候为0,当其有效时代表快速SDO通讯中后4字节数据区中非段数据的字节数。
  • e 传输类型
    • 0 普通SDO
    • 1 快速SDO
  • s 数据长度标识
    • 0 请求中不包含数据长度
    • 1 请求中包含数据长度
  • byte4 - byte7
    • e = 0, s = 1,4字节表示下载的字节数
    • e = 1, s = 1,前4-n字节为被下载的数据

普通SDO段下载

在这里插入图片描述

  • ccs = 0 段下载请求
  • scs = 1 段下载应答
  • toggle 反转位
    • 第一帧的toggle为0,该位每传输一帧会自动进行反转,发送的请求和接收到的应答中的toggle位应该相同。
  • n 7字节中非段数据的字节数
  • c 是否还有段需要下载
    • 0 还有段需要下载
    • 1 没有段需要下载

SDO 段上传

在这里插入图片描述

快速SDO上传

在这里插入图片描述

普通SDO发起段上传

在这里插入图片描述

  • ccs = 2 发起段上传请求。
  • scs = 2 发起段上传应答。
  • n 当e和s均为1时有效,其他时候为0,当其有效时代表快速SDO通讯中后4字节数据区中非段数据的字节数。
  • e 传输类型
    • 0 普通SDO
    • 1 快速SDO
  • s 数据长度标识
    • 0 请求中不包含数据长度
    • 1 请求中包含数据长度
  • byte4 - byte7
    • e = 0, s = 1,4字节表示上传的字节数
    • e = 1, s = 1,前4-n字节为被上传的数据

普通SDO段上传

在这里插入图片描述

  • ccs = 3 段上传请求
  • scs = 0 段上传应答
  • toggle 反转位
    • 第一帧的toggle为0,该位每传输一帧会自动进行反转,发送的请求和接收到的应答中的toggle位应该相同。
  • n 7字节中非段数据的字节数
  • c 是否还有段需要上传
    • 0 还有段需要上传
    • 1 没有段需要上传

SDO 块下载

在这里插入图片描述

SDO块下载发起

在这里插入图片描述

  • ccs = 6 块下载
  • scs = 5 块下载
  • s 数据长度标识
    • 0 请求中不包含数据长度
    • 1 请求中包含数据长度
  • cs 客户端子命令
    • 0 发起块下载请求
  • ss 服务端子命令
    • 0 发起块下载应答
  • sc 服务端CRC支持
    • 0 服务端不支持生成CRC
    • 1 服务端支持生成CRC
  • blksize 客户端可用于发送的每个块中段的数量

SDO子块下载

在这里插入图片描述

  • 服务端仅在最后一个分段传输完成后会进行应答
  • scs = 5 块下载
  • ss 服务端子命令
    • 2 块下载应答
  • seq 段序号 (0 < seq < 128)
  • data 最多7字节数据
  • ackseq 在上一次块下载期间成功接收到的最后一段的序列号,如果服务端将其设置为0,表明服务端未正确接收到序列号为1的包,客户端需要重新传输所有的分段。
  • blksize 客户端可用于发送的每个块中段的数量

SDO块下载结束

在这里插入图片描述

  • ccs = 6 块下载
  • scs = 5 块下载
  • s 数据长度标识
    • 0 请求中不包含数据长度
    • 1 请求中包含数据长度
  • cs 客户端子命令
    • 1 结束块下载请求
  • ss 服务端子命令
    • 0 结束块下载应答
  • n 最后一个块中最后一个分段里非数据的字节数
  • crc 数据集的16位CRC
  • x 未使用填0
  • sc 服务端CRC支持
    • 0 服务端不支持生成CRC
    • 1 服务端支持生成CRC
  • blksize 客户端可用于发送的每个块中段的数量

SDO 块上传

在这里插入图片描述

  • 如图所示,上述协议通常用于SDO块上传,协议以发起段上传作为开始。
  • 客户端可能会向服务端传递一个最小传输阈值,当传递的数据长度小于或者等于该值时,服务端将会使用普通SDO上传协议或者快速SDO上传协议来进行数据传输。

SDO块上传发起

在这里插入图片描述

  • ccs = 5 块上传
  • scs = 6 块上传
  • cs 客户端子命令
    • 0 发起上传请求
    • 3 开始上传
  • ss 服务端子命令
    • 0 发起上传应答
  • cc 客户端CRC支持
    • 0 客户端不支持从数据中产生CRC
    • 1 客户端支持从数据中产生CRC
  • sc 服务端CRC支持
    • 0 服务端不支持从数据中产生CRC
    • 1 服务端支持从数据中产生CRC
  • pst SDO协议切换阈值
    • 0 不允许切换SDO协议
    • pst > 0 当传输长度小于等于该值的时候,将使用普通SDO或者快速SDO协议进行传输
  • s 数据长度标识
    • 0 请求中不包含数据长度
    • 1 请求中包含数据长度
  • size 上传的数据大小
    • 0 保留
    • 1 size为上传数据的大小,单位为字节,小端格式
  • blksize 每个块允许的最大分段数
    • 0 < blksize < 128

SDO上传子块

在这里插入图片描述

  • ccs = 5 块上传
  • cs 客户端子命令
    • 块上传应答
  • c 表示是否还有段需要被上传
    • 0 还有段需要上传
    • 1 没有更多的段需要上传,将进入结束块上传阶段
  • seqno
    • 段序号
  • segment data
    • 分段数据,最大7字节
  • ackseq
    • 在上一次块上传期间成功接收到的最后一段的序列号,如果客户端将其设置为0,表明客户端未正确接收到序列号为1的包,服务端需要重新传输所有的分段。
  • blksize 每个块允许的最大分段数
    • 0 < blksize < 128

SDO块上传结束

在这里插入图片描述

  • ccs = 5 块上传
  • scs = 6 块上传
  • cs 客户端子命令
    • 1 结束块上传请求
  • ss 服务器子命令
    • 1 结束块上传应答
  • n 最后一个块中最后一个分段中非数据的字节数
  • crc 数据集的16位CRC

http://www.ppmy.cn/news/854821.html

相关文章

家政服务小程序开发预约功能

家政服务的需求也越来越大&#xff0c;为了更加方便用户预约服务&#xff0c;很多家政服务平台开始开发微信小程序&#xff0c;为用户提供在线预约服务。那么&#xff0c;如何开发家政服务小程序的预约功能呢&#xff1f;下面我们将结合一些参考信息&#xff0c;为大家详细介绍…

什么是Corner?

什么是Corner&#xff1f; 1.什么是Corner&#xff1f;2.Corner wafer的意义3.Corner Split Table策略4.确认Corner结果5.备注 1.什么是Corner&#xff1f; 芯片制造是一个物理过程&#xff0c;存在着工艺偏差&#xff08;包括掺杂浓度、扩散深度、刻蚀程度等&#xff09;&…

ComOpen

函数名&#xff1a;ComOpen(nPort[,Setting]) 缩写&#xff1a;como 打开串口&#xff0c;返回一个句柄。 返回值&#xff1a; 如果打开成功&#xff0c;返回串口句柄&#xff0c;否则返回空串。 参数&#xff1a; nPort:整型&#xff0c;端口&#xff0c;如1代表com1 [Setting…

CoE协议

参考1&#xff1a;https://zhuanlan.zhihu.com/p/265124581&#xff08;重点参考&#xff09; 参考2&#xff1a;https://blog.csdn.net/ethercat_i7/article/details/53186941 参考3&#xff1a;https://www.shanlily.cn/archives/518 1 EtherCAT 协议 EtherCAT处于七层OSI通…

CoTNet

这次是搬来的JD的哦~~新开源的计算机视觉模块,京东AI研究院提出的一种新的注意力结构。将CoT Block代替了ResNet结构中的3x3卷积&#xff0c;在分类检测分割等任务效果都出类拔萃 论文地址&#xff1a;https://arxiv.org/pdf/2107.12292.pdf 源代码地址&#xff1a;https://g…

Coopen播放器

软件大小:953KB软件授权:免费版软件语言:简体中文运行环境:Win7/XP/2000/2003/Vista软件详细信息: 1)"桌面画报":"桌面画报"有每天更新的时尚、体育等精彩图片和资讯,快来订阅您最喜爱内容吧。 2)"桌面壁纸":"桌面壁纸"每天为您提…

电子森林STEP-MXO2_1 入门部分全部实验

前言 本部分实验基于电子森林小脚丫开发板的数电入门教程实验。实验链接&#xff1a;step-mxo2入门教程 电子森林] (eetree.cn) 其中代码是博主学习后根据自己思路自己敲的&#xff0c;并非直接复制&#xff0c;且仅供学习交流使用&#xff0c;侵删。 lattice 环境配置在此不…

animation.css无法显示动画效果问题解决

在使用【微信开发者工具】开发微信小程序时发现无法在开发者工具中展示出动画效果来 但是真机调试中可以正常的显示动画效果 【关于微信小程序中如何使用animation.css&#xff0c;参考微信小程序使用animation.css_THE WHY的博客-CSDN博客 】 同时发现在官网上点击各个动画并…