查看: 4381|回复: 14
收起左侧

[教程经验] 7.通信章节:2.2 CANopen协议介绍

C3143 2020-2-8 15:09:54 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
本帖最后由 C3143 于 2020-2-9 19:38 编辑

2.2.1 CiA301协议简介
CAN(Controller Area Network)现场总线仅仅定义了第1层、第2层(见ISO11898标准); 实际设计 中, 这两层完全由硬件实现, 设计人员无需再为此开发相关软件(Software)或固件(Firmware)。同时, CAN只定义物理层和数据链路层, 没有规定应用层, 本身并不完整, 需要一个高层协议来定义CAN报文中的11/29 位标识符、8字节数据的使用

CANopen是一种架构在CAN上的高层通讯协定,CiA301协议规定了基本的CANopen通讯子协定和设备子协定。

CiA301定义了 CANopen 应用层。包括数据类型、编码规则、对象字典以及CANopen 通信服务协议。此外, 还定义了CANopen 网络管理服务协议。

CiA301协议规定了 CANopen 通信协议, 例如物理层、通信对象标识符预定义连接集、应急对象 (Emergency)、时间戳和同步通信对象。
2.2.2 对象字典的概念
CANopen 对象字典(OD: Object Dictionary)是 CANopen 协议最为核心的概念。所谓的对象字典就是一个有序的对象组,描述了对应 CANopen 节点的所有参数,包括通讯数据的存放位置也列入其索引,这个表变成可以传递形式就叫做EDS。

每个对象采用一个16位的索引值来寻址,这个索引值通常被称为索引,其范围在0x0000到 到 0xFFFF 之间。为了避免数据大量时无索引可分配,所以在某些索引下也定义了一个 8位的索引值,这个索引值通常被称为子索引,其范围是0x00到0xFF之间。每个索引内具体的参数,最大用32位的变量来表示,即 Unsigned32 ,四个字节。

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

CANopen 协议的核心描述子协议是 DS301,其包括了 CANopen 协议应用层及通信结构描述,其它的协议子协议都是对 DS301 协议描述文本的补充与扩展。在不同的应用行业都会起草一份 CANopen 设备子协议,子协议编号一般是 DS4xx 。
1 对象字典的概述

2 通讯对象子协议区
通讯对象子协议区(Communication profile area)定义了所有和通信有关的对象参数,其中索引范围 1000 h to 1029 h 为通用通讯 对象,所有 CANopen节点都必须具备这些索引,否则将无法加入 CANopen  网络。

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


4 制造商特定子协议
对象字典索引2000 h to 5FFF h 为制造商特定子协议,通常是存放所应用子协议的应用数据。而上文所描述的通讯对象子协议区(Communication profile area)是存放这些应用数据的通信参数。对于在设备子协议中未定义的特殊功能,制造商也可以在此区域根据需求定义对象字典对象。因此这个区域对于不同的厂商来说,相同的对象字典项其定义不一定相同。
5 标准化设备子协议
标准化设备子协议,为各种行业不同类型的标准设备定义对象字典中的对象。目前已有十几种为不同类型的设备定义的子协议,例如 DS401、DS402、DS406 等,其索引值范围为 0x6000~0x9FFF。同样,这个区域对于不同的标准化设备子协议来说,相同的对象字典项其定义不一定相同。
2.2.3 PDO与SDO的区别
PDO:过程数据对象(Process Data Object),过程数据的发送,实时、速度快,提供对设备应用对象的直接访问通道,它用来传输实时短帧数据,具有较高的优先权。PDO 传输的数据必须少于或等于 8 个字节,在应用层上不包含传输控制信息,报文利用率极高。
SDO:服务数据对象(Service Data Obiect),服务数据的发送接收,实时性要求不高,SDO一般用来配置和获得节点的配置参数(即主要用于从站的配置),其优先级只比心跳(Heartbeat)高。
区别
1 数据长度:PDO的数据长度为1-8个字节,SDO的数据长度均为8个字节。
2 通讯模型:PDO为生产者-消费者通讯模型,单向传输,无需接收节点回应CAN报文来确认。SDO为客户端-服务器通讯模型,需一问一答。
3 对象字典的使用:SDO使用对象字典的Index和SubIndex来访问CAN节点的对象字典,可以读或者写。而PDO则不使用Index和SubIndex,它是两个CANopen节点间约定好传输的数据内容对应哪些对象字典索引,收到数据后就直接读写相应的对象字典索引里的值。
4 作用时间:SDO主要用于从站的配置,PDO主要用于过程数据的发送。
5 实时性:SDO实时性要求不高,PDO实时性高速度快。
2.2.4 PDO种类与区别
TPDO:以CANopen从站节点自身为参考,TPDO用来传输数据,支持TPDO的节点都是PDO数据的生产者。

RPDO:以CANopen从站节点自身为参考,RPDO用来接收PDO数据,支持RPDO的节点是PDO数据的消费者。

点评

b不错不错  发表于 2023-7-22 23:33




上一篇:7.通信章节:2.1 CANopen使用介绍
下一篇:【电子凸轮系列教程】5.5.1 凸轮曲线追剪

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部