摘要:如何让现场总线通讯更加稳定可靠,不丢失,这向来都是工程师们难以解决的问题。本文将运用国际规范的通讯协议来展示怎样才能搭建好握手通讯。

服务数据对象 SDO(Service data object)

SDO 主要用于 CANopen 主站对从节点的参数配置。服务确认是 SDO 的最大的特点,为每个消息都生成一个应答,确保数据传输的准确性。如图 1 所示,这就像快递,需要收方签收后,给寄方发送一个已经签收的确认才算完成一次投递。

图 1  SDO 与快递签收

在一个 CANopen 系统中,通常 CANopen 从节点作为 SDO 服务器,CANopen 主节点作为客户端(称为 CS 通讯)。SDO 客户端通过索引和子索引,能够访问 SDO 服务器上的对象字典。这样 CANopen 主节点可以访问从节点的任意对象字典项的参数,并且 SDO 也可以传输任何长度的数据(当数据长度超过 4 个字节时就拆分成多个报文来传输)。

通讯原则(communication principle)

SDO 的通讯原则非常单一,发送方(客户端)发送 CAN-ID 为 600h+Node-ID 的报文,其中 Node-ID 为接收方(服务器)的节点地址,数据长度均为 8 字节;

接收方(服务器)成功接收后,回应 CAN-ID 为 580h+Node-ID 的报文。这里的 Node-ID 依然是接收方(服务器)的节点地址,数据长度均为 8 字节。如图 2 所示。

图 2  SDO 通讯原则

快速 SDO 协议(Expedited SDO protocol)

最常用最常见的 SDO 协议是快速 SDO,所谓快速,就是 1 次来回就搞定。前提是读取和写入的值不能大于 32 位。如图 3 所示,为快速 SDO 协议的示意图。命令中直接包含了要读写的索引、子索引、数据。可谓直接命中。

快速 SDO 的难点在于 CS 命令符的记忆,需要读者收藏这个示意图。

图 3  快速 SDO 示意图

通过快速 SDO,可以直接对 CANopen 节点的对象字典中的值进行读取和修改,所以在做参数配置之外,也经常作为关键性数据传输之用。比如 CANopen 控制机器人的电机转动角度时,就使用 SDO 来传输,保证可靠到达。

普通 SDO 协议(Normal SDO protocol)

当需要传输的值超过 32 位时,就不能使用快速 SDO 传输。必须使用普通 SDO 进行分帧传输。在应用中较少用到,一般用于 CANopen 节点的程序固件升级,或者做网关转换 MVB 总线之类数据最大可达 256 位的应用。

普通 SDO 协议难点在于分包逻辑与 CS 命令符的变化。依然难以记忆,需要读者将以下示意图进行收藏。

当然普通 SDO 的 CAN 帧 ID 与快速 SDO 相同,依然发送方(客户端)发送的报文 CAN-ID 为 600h+Node-ID,接收方(服务器)成功接收后,回应 CAN-ID 为 580h+Node-ID 的报文。

下载协议 download protocol 如图 4 所示。

图 4  普通 SDO 下载协议

上传协议 upload protocol 如图 5 所示。

图 5  普通 SDO 上传协议

canopen服务器协议,CANOpen协议如何保证通讯不丢帧?-通信/网络-与非网相关推荐

  1. 服务器芯片即将填补中国空白,我国实现无线路由器芯片自研,填补了该领域的技术空白-通信/网络-与非网...

    作为网络"神经末梢"的无线路由器,每年我国出货量达上亿台,但是路由器的核心芯片都不是自主研发的.1 月 15 日,中国大陆首款自主研发的无线路由器芯片 SF16A18 在北京发布, ...

  2. 服务器 希捷1t硬盘,希捷推出全球首款SAS接口1TB硬盘-通信/网络-与非网

    希捷科技(Seagate Technology)宣布已开始向全球出货配置Serial Attached SCSI(SAS)接口的1TB企业级Barracuda® ES.2硬盘,比目前采用SATA接口硬 ...

  3. omc服务器操作维护与日志管理,中兴通讯WCDMA网管综合解决方案-通信/网络-与非网...

    一. 中兴通讯WCDMA网管概述 中兴通讯作为第三代移动通信组织3GPP的独立成员,直接参与了WCDMA系统相关规范的制定,这使得中兴通讯WCDMA系统的研发一直处于领先地位.目前中兴通讯已推出基于3 ...

  4. 通信网络基础期末复习-第一章和第二章-概论和端到端的传输协议

    写在前面:本课程授课教师为韩彦芳.本文仅供个人复习学习.构建知识体系所用. 文章目录 第1章 通信网络概述及数学基础 1.1 通信网络的基本构成 1.2 协议体系及分层的概念 1.2.1分层的概念 1 ...

  5. canopen服务器协议,CANopen

    CAN應用層和CANopen CANopen 概述 CANopen是附加了一套设备子协议的高层(第7层)CAN通信协议.作为一种标准化.高度可配置的嵌入式网络解决方案,它广泛应用于实时工业应用.机器人 ...

  6. canopen服务器协议,CANopen协议详情讲解.docx

    精品文档 精品文档 PAGE PAGE #欢迎下载 精品文档 精品文档 PAGE PAGE #欢迎下载 根据DS301的内容进行介绍 1.CAN总线 45二爺 45二爺 CAN标准报文 CAN 标准报 ...

  7. canopen 报文格式_CANopen协议介绍

    1.CANopen协议简介 从OSI 网络模型的角度来看,CAN总线只定义了OSI网络模型的第一层(物理层) 和第二层(数据链路层),而在实际设计中,这两层完全由硬件实现,设计人员无需再为此开发相关软 ...

  8. CANopen总线的高级协议详解

    目录 简介 CAL(CAN Application layer) CANopen CANopen对象字典(CANopen Object Dictionary) CANopen communicatio ...

  9. CANOpen系列教程07_CANOpen协议概述

    置顶公众号,不错过每一条消息! 本教程由作者strongerHuang于2018年10月原创发布. 标签:CAN. CANOpen. CanFestival 版权所有:禁止商用 申明:该文档仅供个人学 ...

最新文章

  1. docker 建mysql
  2. 【Android Gradle 插件】ProductFlavor 配置 ( AppExtension#externalNativeBuild 配置 | cmake 配置 | ndkBuild 配置 )
  3. 初级Java开发面试必问项!!! 标识符、字面值、变量、数据类型,该学学了!
  4. ecshop 收货人信息电话必填改为手机必填
  5. 【OpenCV】OpenCV函数精讲之 -- 鼠标操作
  6. poj1958 Strange Towers of Hanoi 题解报告
  7. python解压缩tar.gz文件
  8. 计算机组成原理中EMAR是什么,计算机组成原理复习资料+试题
  9. 拓端tecdat|python算法对音频信号处理Sonification :Gauss-Seidel迭代算法
  10. C语言区分大小写字母
  11. 《推荐系统实践》算法纯享(附代码链接)(六)—— 借助社交网络推荐篇
  12. Arm mini China新公司传预定四月分割Arm中国业务
  13. 谷歌地图 街景 api_Google使街景在地图中更加突出
  14. 一、时间序列(1)资产收益率、随机过程、白噪声序列定义
  15. 2021租房合同样板
  16. UNIX发展史(BSD,GNU,linux)
  17. 解决VMware虚拟机无法联网问题
  18. SAS硬盘和SATA硬盘傻傻分不清?不懂的看这里
  19. 【什么是 Nodejs ?】
  20. ProGuard技术详解

热门文章

  1. R语言做统计检验绘图如何添加p-value和显著性标记?——详细介绍如何通过ggpubr包为ggplot图添加p-value以及显著性标记?
  2. 币乎作者@安安anan | 国产公链之光,实至名归
  3. QQ斗地主刷分工具的源码
  4. 基于Hyper-V的centos7虚拟机配置静态ip
  5. Au 入门系列之四:降噪与修复
  6. 用java代码计算BMI指数
  7. python学习100天从新手到老手,Github项目
  8. Camunda工作流集成SpringBoot(二)
  9. 【Unity3d学习】魔鬼与牧师过河游戏智能帮助
  10. 钢材铝材出入库存管理使用什么仓库管理软件