打印
[应用相关]

canopen 简单的入门

[复制链接]
5062|96
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
stm32jy|  楼主 | 2018-11-30 21:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
CANopen 在 ISO 层级中的位置
从 OSI 的 7 层网络模型的角度来看同, CAN(Controller Area Network)现场总线仅仅
定义了第 1 层(物理层,见 ISO11898-2 标准)、第 2 层(数据链路层,见 ISO11898-1 标准);
而在实际设计中,这两层完全由硬件实现,设计人员无需再为此开发相关软件(Software)
或固件(Firmware),只要了解如何调用相关的接口和寄存器,即可完成对 CAN 的控制。  

沙发
stm32jy|  楼主 | 2018-11-30 21:48 | 只看该作者
CAN 控制器结构

使用特权

评论回复
板凳
stm32jy|  楼主 | 2018-11-30 21:49 | 只看该作者
基本每个行业的 CAN 应用,都需要一个高层协议来定义 CAN 报文中的 11/29
位标识符、 8 字节数据的使用。但在 CAN 总线的工业自动化应用中, 由于设备的互通互联
的需求越来越多,所以需要一个开放的、标准化的高层协议:这个协议支持各种 CAN 厂商
设备的互用性、互换性,能够实现在 CAN 网络中提供标准的、统一的系统通讯模式,提供
设备功能描述方式,执行网络管理功能。

使用特权

评论回复
地板
stm32jy|  楼主 | 2018-11-30 21:49 | 只看该作者
应用层(Application layer):为网络中每一个有效设备都能够提供一组有用的服务与协议。

使用特权

评论回复
5
stm32jy|  楼主 | 2018-11-30 21:50 | 只看该作者
通讯描述(Communication profile):提供配置设备、通讯数据的含义,定义数据通讯方式。

使用特权

评论回复
6
stm32jy|  楼主 | 2018-11-30 21:50 | 只看该作者
CANopen 协议是在 20 世纪 90 年代末,由总部位于德国纽伦堡的 CiA 组织——
CAN-in-Automation,(http://www.can-cia.org )在 CAL(CAN Application Layer)的基础上发展而来

使用特权

评论回复
7
stm32jy|  楼主 | 2018-11-30 21:50 | 只看该作者
由于 CANopen 协议的创始人团队也是 CAN-bus 的创始人团队,此协议充分发挥了
CAN-bus 所具备的所有优势,特别是 CiA 组织的主席蔡豪格(Holger Zeltwanger) 先生对于
CANopen 协议**开放、免费、非盈利的原则。 一经推出便在欧洲得到了广泛的认可与应
用。 虽然 CiA 组织背后没有强大的财阀支撑,但时至今日已经成为全世界最为流行的 CAN
应用层协议。

使用特权

评论回复
8
stm32jy|  楼主 | 2018-11-30 21:51 | 只看该作者
经过对 CANopen 协议规范文本的多次修改,使得 CANopen 协议的稳定性、实时性、抗
干扰性都得到了进一步的提高。并且 CiA 在 CANopen 基础协议——CiA 301 之上,对各个
行业不断推出设备子协议,使 CANopen 协议在各个行业得到更快的发展与推广。 所谓的子
协议,就是针对不同行业的应用对象,对 CANopen 内部的数据含义进行重新定义,或者添
加新的控制逻辑。

使用特权

评论回复
9
stm32jy|  楼主 | 2018-11-30 21:52 | 只看该作者
目前 CANopen 协议已经在运动控制、车辆工业、轨道交通、电机驱动、工程机械、船舶
海运等行业得到广泛的应用。 比如轨道交通中的城市轻轨车辆(低地板车)中, CiA 联合西
门子、庞巴迪等轨道交通厂商,共同制定了以下轨道交通相关的 CANopen 子协议:
 CiA 421 series: Train vehicle control system 列车车辆控制系统
 CiA 423 series: Diesel engine control system 柴油机控制系统
 CiA 424 series: Door control system 门控制系统
 CiA 426 series: Exterior light control system 外部灯控制系统
 CiA 430 series: Auxiliary equipment control system 辅助设备控制系统

使用特权

评论回复
10
stm32jy|  楼主 | 2018-11-30 22:16 | 只看该作者
CANopen 协议通常分为用户应用层、对象字典以及通信三个部分。
其中最为核心的是对象字典,描述了应用对象和 CANopen 报文之间的关系。

使用特权

评论回复
11
stm32jy|  楼主 | 2018-11-30 22:16 | 只看该作者
CANopen 通信是本文关键部分,其定义了 CANopen 协议通信规则以及与 CAN 控制器
驱动之间对应关系,熟悉这部分对全面掌握 CANopen 协议至关重要。

使用特权

评论回复
12
stm32jy|  楼主 | 2018-11-30 22:17 | 只看该作者
CANopen 设备结构

使用特权

评论回复
13
stm32jy|  楼主 | 2018-11-30 22:20 | 只看该作者
CANopen 的预定义报文 ID 分类
在 CANopen 创立之初,即使在 CAN 总线应用最广泛的汽车电子行业,网络中的 CAN
节点数量和需要通讯的信息都是比较少的。人们使用 CAN 取代 RS485, 主要是看重其可以
突发发送的实时性优势,而在多节点、长距离应用中, CAN 总线和 RS485 比起来并无优势,
比如同样的波特率下, CAN 的通信距离只能达到 RS485 的 0.6-0.8 倍,而多节点通信 CAN
无法进行任意的突发发送, 不得不遵循 RS485 那样的轮询通信机制,否则会导致拥堵。

使用特权

评论回复
14
stm32jy|  楼主 | 2018-11-30 22:22 | 只看该作者
网络管理(NMT) 与特殊协议(Special protocols) 报文 ID 分类
虽然 CANopen 的通讯发挥了 CAN 的特色,所有节点通信地位平等, 运行时允许自行
发送报文,但 CANopen 网络为了稳定可靠可控,都需要设置一个网络管理主机 NMT-Master
(Network Management-Master),就像一个交响乐团的指挥家,所有节点的启动、停止都是
有他进行指挥。

使用特权

评论回复
15
stm32jy|  楼主 | 2018-11-30 22:23 | 只看该作者
NMT 主机一般是 CANopen 网络中具备监控的 PLC 或者 PC(当然也可以是一般的功能
节点),所以也成为 CANopen主站。相对应的其他 CANopen节点就是 NMT从机(NMT-slaves)。

使用特权

评论回复
16
stm32jy|  楼主 | 2018-11-30 22:32 | 只看该作者
NMT 主机和 NMT 从机之间通讯的报文就称为 NMT 网络管理报文。管理报文负责层管
理、网络管理和 ID 分配服务。例如,初始化、配置和网络管理(其中包括节点保护)。网络
管理中,同一个网络中只允许有一个主节点、一个或多个从节点,并遵循主从模式。

使用特权

评论回复
17
stm32jy|  楼主 | 2018-11-30 22:43 | 只看该作者
协调各个节点的同步、心跳、时间、错误提示等通讯控制, CANopen 还定义了一系列特殊协议(Special protocols)报文。

使用特权

评论回复
18
stm32jy|  楼主 | 2018-11-30 22:43 | 只看该作者
过程数据对象(PDO)和服务数据对象(SDO) 的报文 ID 分类
用户应用 CANopen 时,需要传递的配置信息和应用信息都是放在过程数据对象 PDO
(Process data object) 和服务数据对象 SDO (Service data object)里面。

使用特权

评论回复
19
stm32jy|  楼主 | 2018-11-30 22:43 | 只看该作者
PDO 和 SDO 的通讯区别在于, PDO 属于过程数据,即单向传输,无需接收节点回应
CAN 报文来确认,从通讯术语上来说是属于“生产消费”模型。

使用特权

评论回复
20
stm32jy|  楼主 | 2018-11-30 22:45 | 只看该作者
SDO 属于服务数据,有指定被接收节点的地址(Node-ID),并且需要指定的接收节
点回应 CAN 报文来确认已经接收, 如果超时没有确认,则发送节点将会重新发送原报文。
这种通讯方式属于常见的“服务器客户端”的通信模型,即我们通常所说的轮询式。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

1118

帖子

4

粉丝