周立功阅读笔记-CANopen轻松入门基于DS301(一)

CANopen阅读笔记
4.CANopen的预定义报文和ID分类
5.对象字典OD(Object dictionary)
6.网络管理NMT(Network management)与CANopen主站
7.过程数据对象PDO(Process data object)
8.服务数据对象SDO(Service data object)
9.特殊协议
CAN-OPEN
–NMT主机
—-过程数据对象PDO
——–TPDO(发送PDO):有四种数据对象,详见表4-2
——–RPDO (接收RPDO):有四种数据对象,详见表4-2
—-服务数据对象SDO
–CANopen从机
—-过程数据对象PDO
——–TPDO(发送PDO):有四种数据对象,详见表4-2
——–RPDO (接收RPDO):有四种数据对象,详见表4-2
—-服务数据对象SDO
——–问SDO的CAN帧的ID:600h+node-ID。这里Node-ID节点地址
——–被问节点地址Node-ID:答:SDO的CAN帧就是:580h+node-ID。详见表4-2

【四.CANopen的预定义报文和ID分类】
4_1 报文传输采用 CAN 标准帧格式。即 11bit 的 ID 域,以尽量减小传输时间。
4_2 需要接收方确认的配置参数一般都是采用快速单字传输。即 1 个报文最多传送 1
个 32 字节的参数变量,避免了分帧引起的实时性降低。
4_3 需要设置一个网络管理主机,NMT 主机一般是 CANopen 网络中具备监控的 PLC 或者 PC。
网络管理中,同一个网络中只允许有一个主节点、一个或多个从节点,并遵循主从模式。
【STM32需要自己写一个主机,自己写一个从机,主机是NMT主机】
NMT 与特殊协议的 CAN-ID 定义,
关键是怎么定义这种结构体,我个人猜测STM32里面的库就把这个弄好了。

读者必须需要记住的是绿色底纹的这些常用的CAN-ID 含义,在研发和应用 CANopen 中,这三类是最为常用的 NMT 与特殊协议报文。

NMT网络管理命令: CiA301 000h
Sync同步报文: CiA301 080h
Emergency紧急报文: CiA301 081h to 0FFh

4_4 过程数据对象(PDO)和服务数据对象(SDO)的报文ID分类
需要传递的配置信息和应用信息,两个重要的对象,即:
【过程数据对象PDO(Process data object)】
【服务数据对象SDO(Service data object)】
这就是CiA301 协议所规定的基础协议——“箩筐”。
【PDO】属于过程数据,即单向传输,无需接收节点回应CAN 报文来确认,从通讯术语上来说是属于“生产消费”模型。CAN数据帧0-8字节 CAN-ID:0-2048
【SDO】(需要确认)属于服务数据,有指定被接收节点的地址(Node-ID),并且需要指定的接收节点回应 CAN 报文来确认已经接收, 如果超时没有确认,则发送节点将会重新发送原报文。这种通讯方式属于常见的“服务器客户端”的通信模型,即我们通常所说的轮询式。
CAN-ID 称为 COB-ID(通信对象编号):COB-ID:通讯对象的报文帧ID,即 CAN 报文的 11 位 ID。
Node-ID:节点 ID 号,即 CANopen 网络中的节点地址。
每个CANopen节点的输入和输出,所以 PDO 分为 TPDO(发送 PDO)和(接收 RPDO),
发送和接收是以 CANopen 从站节点为参考(如果 CAN 主站就相反)。TPDO和 RPDO 分别有4个数据对象,每种数据对象就是 1 条 CAN 报文封装。
CAN-OPEN
–NMT主机
—-过程数据对象PDO
——–TPDO(发送PDO):有四种数据对象,详见表4-2
——–RPDO (接收RPDO):有四种数据对象,详见表4-2
—-服务数据对象SDO
–CANopen从机
—-过程数据对象PDO
——–TPDO(发送PDO):有四种数据对象,详见表4-2
——–RPDO (接收RPDO):有四种数据对象,详见表4-2
—-服务数据对象SDO
——–问SDO的CAN帧的ID:600h+node-ID。这里Node-ID节点地址

发起通讯的“问”SDO的CAN帧ID就是600h +node-ID, 这里的 Node-ID 是被问的节点地址,而被问的节点应“答”SDO 的 CAN 帧 ID 就是 580h +node-ID。一般在 CANopen 网络中,只有 NMT 主机能发起 SDO 通讯,进行节点参数配置 或者关键性参数的传递。当然从节点也可以对其他从节点发起 SDO 通讯。

五.对象字典OD (Object dictionary)CANopen中最核心的概念。

每个对象采用一个16位的索引值来寻址,这个索引值通常被称为索引,其范围在0x0000 到 0xFFFF 之间。为了避免数据大量时无索引可分配,所以在某些索引下也定义了一个 8 位 的索引值,这个索引值通常被称为子索引,其范围是 0x00 到 0xFF 之间。 每个索引内具体的参数,最大用 32 位的变量来表示,即 Unsigned32,四个字节。 每个 CANopen 设备都有一个对象字典,使用电子数据文档(EDS 文件)来记录这些参 数,而不需要把这些参数记录在纸上。对于 CANopen 网络中的主节点来说,不需要对 CANopen 从节点的每个对象字典项都访问。 CANopen 对象字典中的项由一系列子协议来描述。子协议为对象字典中的每个对象都 描述了它的功能、名字、索引、子索引、数据类型,以及这个对象是否必需、读写属性等等, 这样可保证不同厂商的同类型设备兼容。 CANopen 协议的核心描述子协议是 DS301,其包括了 CANopen 协议应用层及通信结构 描述,其它的协议子协议都是对 DS301 协议描述文本的补充与扩展。在不同的应用行业都 会起草一份 CANopen 设备子协议,子协议编号一般是 DS4xx 。

实质:有序的对象组
描述了对应 CANopen 节点的所有参数, 包括通讯数据的存放位置也列入其索引,这个表变成可以传递形式就叫做 EDS 文件(电子数据文档Electronic Data Sheet) 。
对于 CANopen 网络中的主节点来说,不需要对CANopen 从节点的每个对象字典项都访问。
CANopen 对象字典中的项由一系列子协议来描述。子协议为对象字典中的每个对象都描述了它的功能、名字、索引、子索引、数据类型,以及这个对象是否必需、读写属性等等。
5.1 对象字典概述 用户需要关注的区域是两个区域:通讯对象子协议区和制造商特定子协议区

5.2 通讯对象子协议区:通用通讯对象必须有:1000h to 1029h

5.3 通用通讯对象(General communication objects)
由于通用通讯对象十分重要,NMT 主站(CANopen 主站)在启动时,通常都全部或者部分读取所有从站中通用通讯对象中的索引,所以所有的通用通讯对象都必须在CANopen 从站中实现,使用者也必须熟知这些索引地址与其含义。如表 5.3 所示。



5.4 制造商特定子协议(Manufacturer-specific Profile)
RPDO 的通讯参数存放在 1400h to 15FFh
映射参数存放在 1600h to 17FFh 数据存放为2000h 之后厂商自定义区;
TPDO 的通讯参数存放在 1800h to 19FFh 映射参数存放在 1A00h to 1BFFh 数据存放为
2000h 之后厂商自定义区。
5.5标准化设备子协议(Standardized profile area)

六.网络管理NMT(Network management)与CANopen主站
每个 CANopen 从节点的 CANopen 协议栈中,必须具备 NMT 管理的相应代码,
这是节点具备 CANopen 协议的最基本的要素。
NMT 节点状态:
————————————————
版权声明:本文为CSDN博主「Stupid_Gao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34071268/article/details/78470070

周立功阅读笔记-CANopen轻松入门基于DS301(一)相关推荐

  1. 1、Canopen 轻松入门

    Canopen 轻松入门--笔记 1.Canopen在ISO层级中的位置 2.CANopen 的预定义报文 ID 分类 2.1 网络管理(NMT)与特殊协议(Special protocols)报文 ...

  2. [阅读笔记]Dependency-Based Word Embeddings(基于依存的词向量) _Omer Levy and Yoav Goldberg

    [阅读笔记]Dependency-Based Word Embeddings(基于依存的词向量) _Omer Levy and Yoav Goldberg 文章目录 [阅读笔记]Dependency- ...

  3. 超零协议(SERO)轻松入门——基于CENTOS7

    1. 机器配置 以目前Beta上链的规模,满足以下配置 CPU 4线程以上 MEM 4GB以上 DISK 50G以上 就能很好的运行了. #本文中测试机配置 --------------------- ...

  4. 学习笔记--深度学习入门--基于Pyrhon的理论与实现--[日]斋藤康毅 -- 持续更新中

    关于这本 "神作" 的简介 这本书上市不到 2 年,就已经印刷 10 万册了.日本人口数量不大,但是却有这么多人读过这本书,况且它不是一本写真集,是实实在在的技术书,让人觉得很不可 ...

  5. 论文阅读笔记(3)---基于深度学习的节律异常或传导阻滞多标签心电图自动诊断

    论文地址:Automatic multilabel electrocardiogram diagnosis of heart rhythm or conduction abnormalities wi ...

  6. 15w4k58s4引脚图_《51单片机轻松入门—基于STC15W4K系列》连载

    1.1.4本书配套实验板及相关学习工具介绍 本书配套了2个实验板,一个作为主实验板,外形如图1-2所示,可以完成流水灯.定时器/计数器.串口通信.I2C通信.SPI通信.按键.数码管.LCD1602液 ...

  7. 论文阅读笔记(4-1)---基于深度神经网络的动态心电图心律不齐检测与分类

    原文链接 Cardiologist-level arrhythmia detection and classification in ambulatory electrocardiograms usi ...

  8. 基于深度学习的表面缺陷检测方法综述-论文阅读笔记

    //2022.3.2日阅读笔记 原文链接:基于深度学习的表面缺陷检测方法综述 (aas.net.cn) 个人对本篇综述内容的大致概括 论文首先介绍了表面缺陷检测中不同场景下的成像方案,主要根据表面颜色 ...

  9. 深度学习超分辨率综述阅读笔记(翻译)

    深度学习超分辨率综述阅读笔记(翻译) https://arxiv.org/abs/1902.06068 摘要:图像超分辨率(SR)是计算机视觉中增强图像和视频分辨率的一类重要图像处理技术.近几年来,图 ...

最新文章

  1. 多线程之pthread_create()函数
  2. 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)
  3. spss非线性回归分析步骤_SPSS与简单线性回归分析
  4. C++派生类对象和基类对象赋值
  5. web开发课程,CSS标准文档流与脱离文档流,已整理成文档
  6. 在unity中设置多种怪物数据_Unity可编程渲染管线(SRP)系列(三)——光照(单通道 正向渲染)...
  7. 大数据技术包含哪些结构层次
  8. 全面认识scratch
  9. HIBOX/OPENBOX接收JBS、蜻蜓的遥控器设置
  10. OJ 2530: 小勇玩lol
  11. Axure 设计原型图 使用总结
  12. SpringBoot 自动配置初探
  13. 树莓派homebridge开机启动和后台运行
  14. 半导体代理商名录---芯片代理商、MLCC代理商
  15. Markdown使用教程(详细)
  16. 硕士学位数据分析师工资_值得拥有数据科学方面的硕士学位
  17. 接口技术课程设计——一种基于MFC构造自动测量系统
  18. 达人评测 酷睿i9 12950hx和i9 12900hx区别哪个强
  19. POI导出excel并设置单元格样式和单元格内容中文自适应
  20. vue 导出excel表格 自定义表结构

热门文章

  1. mysql索引长度超过767bytes问题解决。Specified key was too long; max key length is 767 bytes
  2. 学习微信小程序开发框架之脚本语言WXS
  3. kwgt 歌词_eight for kwgt
  4. mysql查询上班打卡sql怎么写_sql查询一段时期里每一天所有员工的打卡记录
  5. omnet 收发信息
  6. 高级软件工程第三次大作业(周帅)
  7. 【How2Pwn】DreamHack x64下的ROP问题
  8. MIT 6.824学习-GFS
  9. 约束条件之主键与外键
  10. 【UNIX网络编程】| 【03】TCP客户/服务器程序示例