小言_互联网的博客

CAN笔记(16) CANOpen简介

329人阅读  评论(0)


1. CAN 在 ISO 层级中的位置

从 OSI 的 7 层网络模型的角度来看同
CAN现场总线仅仅定义了第 1 层(物理层)、第 2 层(数据链路层)

而在实际设计中,这两层完全由硬件实现
设计人员无需再为此开发相关软件( Software)或固件(Firmware)
只要了解如何调用相关的接口和寄存器,即可完成对 CAN 的控制
也就是之前 CAN笔记(1) CAN简介CAN笔记(15) STM32-M4 CAN通讯 所做的

但 CAN 没有规定应用层,也就是没有规定与实际应用相关的逻辑
比如开关量输入输出, 模拟量输入输出
所以本身对于应用来说,是不完整的

这就像铁矿石(物理层)冶炼成铁锭(数据链路层)
然后针对具体应用,再加工做成汽车、轮船等等


2. 通信协议需求

前面内容是建立底层通信,只有在底层通信成功基础上
才能实现上一层的 通信协议

而基本每个行业的 CAN 应用
都需要一个高层协议来定义 CAN 报文中的 11/29位标识符、 8 字节数据的使用
但在 CAN 总线的工业自动化应用中, 由于设备的互通互联的需求越来越多
所以需要一个开放的、标准化的高层协议:

  • 支持各种 CAN 厂商设备的互用性、互换性
  • 实现在 CAN 网络中提供标准的、统一的系统通讯模式
  • 提供设备功能描述方式
  • 执行网络管理功能

其中包括:

  • 应用层(Application layer):为网络中每一个有效设备都能够提供一组有用的服务与协议
  • 通讯描述(Communication profile):提供配置设备、通讯数据的含义,定义数据通讯方式
  • 设备描述(Device proflile):为设备(类)增加符合规范的行为

3. CANopen 协议诞生

CANOpen 是一个基于 CAN 串行总线的网络传输系统的 应用层协议,遵循 ISO/OSI 标准模型
网络中不同的设备通过 对象字典或者对象 来相互交换数据


CANOpen 协议是在 20 世纪 90 年代末
由总部位于德国纽伦堡的 CiA 组织——CAN-in-Automation
CAL(CAN Application Layer)的基础上发展而来

由于 CANOpen 协议的创始人团队也是 CAN-bus 的创始人团队
此协议充分发挥了CAN-bus 所具备的所有优势

特别是 CiA 组织的主席蔡豪格(Holger Zeltwanger) 先生对于 CANOpen 协议
坚持开放、免费、非盈利的原则
一经推出便在欧洲得到了广泛的认可与应用


虽然 CiA 组织背后没有强大的财阀支撑
但时至今日已经成为全世界最为流行的 CAN 应用层协议


4. 设备子协议

经过对 CANOpen 协议规范文本的多次修改
使得 CANOpen 协议的稳定性、实时性、抗干扰性都得到了进一步的提高
并且 CiA 在 CANOpen 基础协议——CiA 301 之上,对各个行业不断推出设备子协议
使 CANOpen 协议在各个行业得到更快的发展与推广

所谓的子协议:
针对不同行业的应用对象,对 CANOpen 内部的数据含义进行重新定义,或者添加新的控制逻辑

目前 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 辅助设备控制系统
  • CiA 433 series: Interior light control system 内部灯控制系统


如图所示,为 CANOpen 在轨道列车中的地位,主干网为列车总线(WTB)
每接车厢采用车辆总线(MVB)来连接与列车行驶相关,对实时性要求高的部件
而 CANOpen 主要是连接各种非高安全性的部件


5. CANOpen设备结构

CANOpen 协议通常分为:

  • 用户应用层
  • 对象字典
  • 通信

如下图CANOpen 的设备模型:

CANOpen 通信:本文关键部分
其定义了 CANOpen 协议通信规则以及与 CAN 控制器驱动之间对应关系
熟悉这部分对全面掌握CANOpen 协议至关重要

CANOpen 其中最为核心的是 对象字典
其描述了 应用对象CANOpen报文 之间的关系

而CANOpen 用户应用层:用户根据实际的需求编写的应用对象

先了解个大概,知道CANOpen 是基于CAN的应用层协议
主节点 通过 过程数据对象 (PDO)或者 服务数据对象 (SDO)来 获取 或者 修改 其它节点 对象字典列表 中的 数据,这样的概念就行了先


参考:

《CANopen 轻松入门》
CANOpen系列教程07_CANOpen协议概述


相关推荐:

CAN笔记(15) STM32-M4 CAN通讯
CAN笔记(14) STM32-M4 寄存器
CAN笔记(13) STM32-M4 bxCAN
CAN笔记(12) 同步
CAN笔记(11) 位时序


谢谢!


转载:https://blog.csdn.net/qq_32618327/article/details/100709166
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场