CAN Open转载分享
CAN Open基础知识
本文章为 周立功CANopen轻松入门 所摘抄的学习笔记 转载分享
1 CANopen与CAN的关系
2 网络管理(NMT)
2.1 NMT节点状态
2.2 NMT 节点状态切换命令
2.3 NMT节点上线报文
2.4 NMT节点状态与心跳报文
2.5 NMT节点守护
3 对象字典OD(Object dictionary)
3.1 通讯对象子协议区(Communication profile area)
3.2 制造商特定子协议(Manufacturer-specific Profile)
3.3 标准化设备子协议(Standardized profile area)
4 服务数据对象SDO(Service data object)
4.1 通讯原则(communication principle)
4.2 SDO协议(Expedited SDO protocol)
4.3 普通SDO协议(Normal SDO protocol)
5 过程数据对象PDO(Process data object)
5.1 PDO的CAN-ID定义
5.2 PDO 的传输形式
5.3 PDO的通信参数
5.4 PDO的映射参数
6 特殊协议(Special protocols)
6.1同步协议(Sync protocol)
6.2 时间戳协议(Time-stamp protocol)
6.3 紧急报文协议(Emergency protocol)
1 CANopen与CAN的关系
原始的CAN总线在OSI 7层网络模型中仅仅定义了物理层和数据链路层,没有规定应用层。因此,基本每个行业的 CAN 应用,都需要一个高层协议来定义 CAN 报文中标识符和数据段的内容。
CANopen协议是在20世纪90年代末,由总部位于德国纽伦堡的CiA组织——CAN-in-Automation,在 CAL(CAN Application Layer)的基础上发展而来。CiA 在 CANopen 基础协议——CiA 301 之上,对各个行业不断推出设备子协议,使 CANopen 协议在各个行业得到的发展与推广。
所谓的子协议,就是针对不业的应用对象,对CANopen 内部的数据含义进行重新定义,或者添加新的控制逻辑。
2 网络管理(NMT)
CANopen网络为了稳定可控,都需要置一个网络管理主机NMT-Master(Network Management-Master)。所以每个 CANopen 从节点的 CANopen 协议栈中,具备 NMT 管理的相应代码,这是节点具备 CANopen 协议的基本的要素。
NMT主机一般是CANopen网络中具备监控的PLC或者PC(当然也可以是一般的功能节点),所以也成为CANopen主站。相对应的其他CANopen节点就是NMT从机(NMT-slaves)。
NMT主机和NMT从机之间通讯的报文就称为NMT网络管理报文。管理报文负责层管理、网络管理和 ID 分配服务。例如,初始化、配置和网络管理(其中包括节点保护)。网络管理中,同一个网络中只允许有一个主节点、一个或多个从节点,并遵循主从模式。
3 对象字典OD(Object dictionary)
CANopen对象字典(OD: Object Dictionary)是CANopen协议为的概念。所谓的对象字典就是一个有序的对象组,描述了对应CANopen节点的所有参数,包括通讯数据的存放位置也列入其索引,这个表变成可以传递形式就叫做EDS文件(电子数据文档Electronic Data Sheet)。
每个对象采用一个16位的索引值来寻址,这个索引值通常被称为索引,其范围在0x0000到0xFFFF之间。为了避免数据大量时无索引可分配,所以在某些索引下也定义了一个8位的索引值,这个索引值通常被称为子索引,其范围是0x00到0xFF之间。每个索引内具体的参数,大用32位的变量来表示,即Unsigned32,四个字节。
CANopen对象字典中的项由一系列子协议来描述。子协议为对象字典中的每个对象都描述了它的功能、名字、索引、子索引、数据类型,以及这个对象是否必需、读写属性等等,这样可不同厂商的同类型设备兼容。
网上看到的一个理解:对象字典就相当于菜单(OD),比如你去饭店吃饭,看到有好多菜(OD中的对象),菜都编着号(索引),然后有一些还会让你选甜口还是咸口,微辣还是加辣,也编着(子索引)。如果你选择困难,觉得自己点太麻烦,又看到有套餐(PDO),套餐包含的样式有限(64bit),然后你告诉服务员,我要套餐A(已经映射好OD中的对象的PDO),服务员听到后(PDO发送成功),不一会一下上来好几个菜。
4 服务数据对象SDO(Service data object)
5 过程数据对象PDO(Process data object)
6 特殊协议(Special protocols)6.1同步协议(Sync protocol)
同步(SYNC),该报文对象主要实现整个网络的同步传输,每个节点都以该同步报文作为 PDO 触发参数,因此该同步报文的COB-ID具有比较高的级以及短的传输时间。一般选用80h作为同步报文的 CAN-ID
同步协议有2个约束:
(1)同步窗口时间:同步帧发送后, 从节点发送PDO的时效, 即在这个时间内发送的PDO 才有效, 过时间的PDO将被丢弃;
(2)通讯循环周期:规定了同步帧的循环周期。
6.2 时间戳协议(Time-stamp protocol)
时间戳协议采用广播方式,节点应答,CAN-ID为100h,数据长度为6,数据为当前时刻与 1984 年1月1日0时的时间差。节点将此时间存储在对象字典1012h的索引中。
6.3 紧急报文协议(Emergency protocol)
紧急事件对象(Emergency),是当设备内部发生错误,触发该对象,发送设备内部错误代码,提示 NMT主站。紧急报文属于诊断性报文,一般不会影响CANopen通讯,其CAN-ID存储在 1014h的索引中,一般会定义为080h +node-ID,数据包含8个字节。
rouist88.cn.b2b168.com/m/