当前位置:首页 > 技术学院 > 技术前线
[导读]周立功阅读笔记-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 CAN-ID

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节点地址

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

实质:有序的对象组

描述了对应 CANopen 节点的所有参数, 包括通讯数据的存放位置也列入其索引,这个表变成可以传递形式就叫做 EDS 文件(电子数据文档Electronic Data Sheet) 。

对于 CANopen 网络中的主节点来说,不需要对CANopen 从节点的每个对象字典项都访问。

CANopen 对象字典中的项由一系列子协议来描述。子协议为对象字典中的每个对象都描述了它的功能、名字、索引、子索引、数据类型,以及这个对象是否必需、读写属性等等。

5.1 对象字典概述 用户需要关注的区域是两个区域:通讯对象子协议区和制造商特定子协议区

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

5.3 通用通讯对象(General communication objects)

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

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 节点状态:

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

全世界数以百万计的工程师和科学家都在使用 MATLAB® 分析和设计改变着我们的世界的系统和产品。基于矩阵的 MATLAB 语言是世界上表示计算数学最自然的方式。

关键字: matlab 编程 入门

单片机stm32零基础入门之--初识STM32 标准库

关键字: STM32 入门

计算机电子电路原理图,电路图讲解 电路图基础知识

关键字: 电路图 入门

CanOpen转Profinet网关的常规数据

关键字: canopen profinet

CanOpen转Profinet网关的常规数据

关键字: canopen profinet

CANopen学习笔记

关键字: canopen C KEIL

CAN和CANopen区别

关键字: canopen can

简单来讲,CANopen是EtherCAT在应用层使用的Mailbox protocols中的一种。 要搞清楚EtherCAT和CANopen的关系,先要了解EtherCAT的一些基础知识。EtherCAT设计时仅 显...

关键字: canopen ethercat

CAN 提供了所有的网络管理服务和报文传送协议,但并没有定义对象的内容或者正在通讯的对象的类 型(它只定义了 how,没有定义 what),而这正是 CANopen 切入点。CANopen 的核心概念是设备对象字典(O...

关键字: canopen 协议

CAN 提供了所有的网络管理服务和报文传送协议,但并没有定义对象的内容或者正在通讯的对象的类 型(它只定义了 how,没有定义 what),而这正是 CANopen 切入点。CANopen 的核心概念是设备对象字典(O...

关键字: canopen 协议
关闭
关闭