【CANopen进阶日记】③ CANopen对象字典工具

news2024/11/24 1:21:48

【CANopen进阶日记】专栏目录

第一章 CAN协议栈详解
第二章 CANopen协议栈详解
第三章 CANopen对象字典工具


文章目录

  • 【CANopen进阶日记】专栏目录
  • 前言
  • 一、对象字典简介
  • 二、CANopen协议栈框架
  • 三、NMT主从
  • 四、SDO客户端服务器
  • 五、PDO生产者消费者
    • 5.1 RPDO
    • 5.2 TPDO同步周期
    • 5.3 TPDO同步非周期
  • 总结


前言

在这个专栏中,你可以找到大量与CANopen协议有关的知识和技能,包括CANopen协议的基础、如何配置和管理网络、如何使用CANopen对象字典和数据类型等,旨在帮助读者更好地掌握和应用CANopen。

本章介绍了CANopen对象字典工具的基本概念,以及如何使用对象字典工具实现主从机的SDO、PDO通讯。


一、对象字典简介

对象字典就是一个有序的对象组,描述了对应 CANopen 节点的所有参数,包括通讯数据的 存放位置也列入其索引,这个表变成可以传递形式就叫做 EDS 文件。

每个对象采用一个 16 位的索引值来寻址,这个索引值通常被称为索引,其范围在 0x0000 到 0xFFFF 之间为了避免数据大量时无索引可分配,所以在某些索引下也定义了一个 8 位 的索引值,这个索引值通常被称为子索引,其范围是 0x00 到 0xFF 之间。索引范围及描述如下如所示:
在这里插入图片描述
对象索引与子索引在通讯中应用如下表所示:
在这里插入图片描述
举一个例子,使用 SDO 消息将值 0x20F0 写入到 ID 为 2 的索引为 1801H,子索引为 3
的对象字典中。
在这里插入图片描述

二、CANopen协议栈框架

在阅读以下内容前需要对整体的CANopen协议栈系统先做一个整体的了解:
在这里插入图片描述

三、NMT主从

  1. 主要是心跳生产者和消费者的监测的问题;
  2. 通过NMT主机也可以控制从节点的状态;
    在这里插入图片描述
    NMT主节点设置监测的节点和心跳包查询时间1000ms:
    在这里插入图片描述
    NMT从节点设置心跳包时间100ms:
    在这里插入图片描述

四、SDO客户端服务器

注意,CANopen主节点是客户端,CANopen从节点是服务器这里实现了一个CANopen主机控制两个从节点的心跳包时间,即修改0x1017数值:
在这里插入图片描述

五、PDO生产者消费者

SDO方式实际上已经可以访问控制任何词典对象,但是由于经典CAN方式,每次只能传输4个字节,并且还要处理应答,所以就有了PDO方式,PDO方式虽然解决了SDO方式痛点,无需应答,但玩法也复杂很多。

重要:使用PDO要先明白一个本质的东西,CANopen是没用硬件过滤的,全靠软件过滤,也就是说发送TPDO发送的消息,所有的接收RPDO设备都可以接收到。

PDO通信里面的异步通信比较简单,难点是后面两个同步周期和同步非周期传输。

5.1 RPDO

RPDO通信案例:
在这里插入图片描述

  1. CANopen主机词典配置:
    在这里插入图片描述
    在这里插入图片描述

  2. CANopen从机词典配置:
    在这里插入图片描述

5.2 TPDO同步周期

  1. 同步周期方式:
    在这里插入图片描述
  2. 同步时间设置:
    在这里插入图片描述
    在这里插入图片描述
  3. 发送5个同步包后开始第1个TPDO2消息,每个两个同步包传输1次数:
    在这里插入图片描述

5.3 TPDO同步非周期

  1. 同步非周期方式:
    在这里插入图片描述
  2. 传输类型设置非周期:
    在这里插入图片描述

总结

本章介绍了CANopen对象字典工具的基本概念,以及如何使用对象字典工具实现主从机的SDO、PDO通讯。

关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1304884.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python代码200行左右,python100行代码案例

大家好,小编来为大家解答以下问题,python代码200行左右,python100行代码案例,今天让我们一起来看看吧! 有用的 Python 单行代码片段,只需一行代码即可解决特定编码问题! 在本文中,我…

CTF V8 pwn入门(一)

仍然是因为某些原因,需要学学浏览器pwn 环境 depot_tools建议直接去gitlab里下,github上这个我用魔法都没下下来 下完之后执行 echo export PATH$PATH:"/root/depot_tools" >> ~/.bashrc路径换成自己的就ok了 然后是ninja git clo…

DSP28335之CAN通信易错点总结

一、CAN初始化流程 ①接收发送引脚初始化; ②接收和发送邮箱设置; ③邮箱使能; ④波特率配置; ⑤接收掩码设置; ⑥中断配置。 二、几个重要的知识点 ①影子寄存器 因为ECanbRegs是不可以单独对位操作&#xf…

SD-WAN架构:优化连接以提升性能

SD-WAN架构主要分为三种类型,分别为本地架构、支持云的架构、支持云的骨干架构。每一种架构都基于它们利用广域网(WAN)的方式而有其独特的优势。本文将对三种SD-WAN架构进行简要介绍。 SD-WAN本地架构 SD-WAN本地架构是在现场使用SD-WAN盒或…

焦炭冶金工艺3D可视化仿真展示更直观、形象

冶金行业作为重要的工业领域,其岗位实践培训一直面临着诸多挑战,随着web3d开发和VR虚拟仿真技术的不断创新和应用,冶金3D虚拟仿真实践教学平台应运而生,为钢铁生产培训带来了崭新的变革。 冶金3D虚拟仿真实践教学平台采用了先进的…

AIGC专题报告:ChatGPT纪要分享

今天分享的AIGC系列深度研究报告:《AIGC专题报告:ChatGPT纪要分享》。 (报告出品方:久谦中台) 报告共计:135页 OpenAI 高管解密 ChatGPT GPT-3 是一种大型语言模型,被训练用来在给定上下文中…

百度文库下载要用券?Kotlin爬虫几步解决

百度作为国内知名的网站,尤其是文库里面有各种丰富的内容,对我们学习生活都有很大的帮助,就因为其内容丰富,如果看见好用有意思的文章还用复制粘贴等方式就显得有点落后了,今天我将用我所学的爬虫知识给你们好好上一课…

Mac 下 Python+Selenium 自动上传西瓜视频

背景 研究下 PythonSelenium 自动化测试框架,简单实现 Mac 下自动化批量上传视频西瓜视频并发布,分享给需要的同学(未做过多的异常处理)。 脚本实现 首先通过手工手机号登录,保存西瓜视频网站的 cookie 文件 之后加载…

有什么项目可以大量使用c++实现?

有什么项目可以大量使用c实现? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「c的资料从专业入门到高级教程工具包」,点个关注,全部无偿共享给大家!&#x…

《opencv实用探索·十七》calcBackProject直方图反向投影

在了解反向投影前需要先了解下直方图的概念,可以看我上一章内容:opencv直方图计算calcHist函数解析 直方图反向投影是一种图像处理技术,通常用于目标检测和跟踪。通过计算反向投影,可以将图像中与给定模式(目标对象&a…

工作流程flowable(二)流程节点跟踪

flowable 节点跟踪 一、发起1-1 流程模型1-1-1 流程模型定义1-1-2 部署流程模型 {modelId} 1-2 部署管理1-2-1 流程定义列表查询 新的改变 二、我的申请新的改变 三、我的待办新的改变 三、我的已办新的改变 一、发起 1-1 流程模型 1-1-1 流程模型定义 1-1-2 部署流程模型 {…

我的隐私计算学习——隐私集合求交(2)

笔记内容来自多本书籍、学术资料、白皮书及ChatGPT等工具,经由自己阅读后整理而成。 前篇可见:我的隐私计算学习——隐私集合求交(1) (三)PSI应用场景问题 ​在目前的实际应用中,衍生出一些新…

美食大赛的题解

目录 原题描述: 题目描述: 输入格式: 输出格式: 样例输入: 样例输出: 数据规模: 题目大意: 主要思路: 注: 代码: 原题描述&#xff1a…

updateBatch批量更新

java代码 Dao层 int updateBatch(Param("userList") List<User> userList);sql配置文件 <update id"updateBatch" parameterType"java.util.List" ><foreach collection"userList" item"user" separator&quo…

Next.js中的App Router与Page Router,各自的作用和使用方式,如何理解和配置使用?

App Router介绍 Next.js中的App Router是全局的路由器&#xff0c;它用于在应用程序的所有页面之间进行导航。它可以用于在页面之间传递状态和数据&#xff0c;类似于React中的Context。 App Router是通过_app.js文件中的getInitialProps方法来配置的。 在 Next.js 中&#xf…

算法通关村第十三关—数学与数学基础问题(青铜)

数学与数学基础问题 一、统计专题 1.1 符号统计 LeetCode1822给定一个数组&#xff0c;求所有元素的乘积的符号&#xff0c;如果最终答案是负的返回-1&#xff0c;如果最终答案是正的返回1&#xff0c;如果答案是0返回0。  题目比较简单&#xff0c;正数对结果完全没影响&…

RK3568驱动指南|第八篇 设备树插件-第75章ConfigFS的核心数据结构

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

【Docker】进阶之路:(九)Docker网络

【Docker】进阶之路&#xff1a;&#xff08;九&#xff09;Docker网络 Docker网络模式简介bridge网络模式host网络模式none网络模式container网络模式user-defined网络模式1.创建自定义的bridge网络2.使用自定义网络 高级网络配置docker network命令 为什么要了解容器的网络模…

谈谈MYSQL主从复制原理

目录 概述 要点binlog日志 主从复制过程 总结 概述 MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。 MySQL 默认采用异步复制方式。从节点不用一直访问主服务器来更新自己的数据&#xff0c;数据的更新可以在远程连接上进行&#xff0…