Technical 
  Note 
CANopen 轻松入门 
入门教程 
TN01010101 
  V1.00 
  Date:2015/10/01 
工程技术笔记   
类别 
关键词 
摘    要 
内容 
CANopen DS301 
用于初次接触 CANopen 的用户,主要以 CANopen DS301
为主要教授方向 
 
广州致远电子股份有限公司 
 
 
              广州致远电子股份有限公司 
CANopen 轻松入门 
入门教程 
修订历史 
版本 
V1.00 
 
日期 
2015/10/01 
 
原因 
创建文档 
 
工程技术笔记                                                        ©2013 Guangzhou ZHIYUAN Electronics Stock Co., Ltd. 
   
i 
              广州致远电子股份有限公司 
CANopen 轻松入门 
入门教程 
目    录 
4.1 
4.2 
5.1 
5.2 
5.3 
5.4 
5.5 
5.6 
1.  前言 ........................................................................................................................... 1 
2. CANopen 在 ISO 层级中的位置 .............................................................................. 2 
3. CANopen 协议诞生和发展 ...................................................................................... 3 
4. CANopen 的预定义报文 ID 分类 ............................................................................ 5 
网络管理(NMT)与特殊协议(Special protocols)报文 ID 分类 .................... 5 
过程数据对象(PDO)和服务数据对象(SDO)的报文 ID 分类 ..................... 7 
5.  对象字典 OD(Object dictionary) ........................................................................... 9 
对象字典概述 ......................................................................................................... 10 
通讯对象子协议区(Communication profile area) ............................................ 10 
通用通讯对象(General communication objects) .............................................. 10 
制造商特定子协议(Manufacturer-specific Profile) .......................................... 11 
标准化设备子协议(Standardized profile area) ...................................................... 12 
对象字典和 EDS 文件实例 ................................................................................... 12 
6.  网络管理 NMT(Network management)  与 CANopen 主站 .............................. 16 
NMT 节点状态 ....................................................................................................... 16 
NMT 节点上线报文 ............................................................................................... 17 
NMT 节点状态与心跳报文 ................................................................................... 18 
NMT 节点守护 ....................................................................................................... 18 
NMT 节点状态切换命令 ....................................................................................... 19 
CANopen 主站设备 ................................................................................................ 20 
7.  过程数据对象 PDO(Process data object) ............................................................ 22 
PDO 的 CAN-ID 定义 ............................................................................................ 22 
PDO 的传输形式 .................................................................................................... 23 
PDO 的通信参数 .................................................................................................... 24 
PDO 的映射参数 .................................................................................................... 24 
8.  服务数据对象 SDO(Service data object) ......................................................... 26 
通讯原则(communication principle) ................................................................. 26 
快速 SDO 协议(Expedited SDO protocol) ....................................................... 27 
普通 SDO 协议(Normal SDO protocol) ........................................................... 27 
9.  特殊协议(Special protocols) ............................................................................. 30 
同步协议(Sync protocol)................................................................................... 30 
时间戳协议(Time-stamp protocol) ................................................................... 31 
紧急报文协议(Emergency protocol)................................................................. 33 
10.  免责声明 ............................................................................................................... 35 
8.1 
8.2 
8.3 
6.1 
6.2 
6.3 
6.4 
6.5 
6.6 
7.1 
7.2 
7.3 
7.4 
9.1 
9.2 
9.3 
工程技术笔记                                                        ©2013 Guangzhou ZHIYUAN Electronics Stock Co., Ltd. 
   
1 
              广州致远电子股份有限公司 
CANopen 轻松入门 
入门教程 
1. 前言 
本教程适用于 CIA CANopen 协议 DS301 又名 CIA301 标准。用户须已经掌握 CAN2.0A
协议的基本知识。即基本的帧结构、ID、数据、DLC 等知识,本文不再从 CAN 底层开始
叙述。如果读者需要了解 CAN 底层,推荐北京航空航天出版社出版的《项目驱动——
CAN-bus 现场总线基础教程》。 
本文由广州致远电子股份有限公司周立功、黄敏思等整理和编撰。文章引用 CANopen
协会 CiA 组织的蔡豪格主席肖像与多篇示意图,再次表示非常感谢! 
工程技术笔记                                                        ©2013 Guangzhou ZHIYUAN Electronics Stock Co., Ltd. 
   
1 
              广州致远电子股份有限公司 
CANopen 轻松入门 
入门教程 
2. CANopen 在 ISO 层级中的位置 
从 OSI 的 7 层网络模型的角度来看同,CAN(Controller  Area  Network)现场总线仅仅
定义了第 1 层(物理层,见 ISO11898-2 标准)、第 2 层(数据链路层,见 ISO11898-1 标准);
而在实际设计中,这两层完全由硬件实现,设计人员无需再为此开发相关软件(Software)
或固件(Firmware),只要了解如何调用相关的接口和寄存器,即可完成对 CAN 的控制。如
图  2.1 所示。 
图  2.1    CAN 控制器结构 
 
但 CAN 没有规定应用层。也就是没有规定与实际应用相关的逻辑,比如开关量输入输
出,模拟量输入输出。所以本身对于应用来说,是不完整的。这就像铁矿石(物理层)冶炼
成铁锭(数据链路层),然后针对具体应用,再加工做成汽车、轮船、钢筋、坦克、钢结构
建筑等等。如图  2.2 所示。 
图  2.2  从物理层到应用层 
 
因此,基本每个行业的 CAN 应用,都需要一个高层协议来定义 CAN 报文中的 11/29
位标识符、8 字节数据的使用。但在 CAN 总线的工业自动化应用中,由于设备的互通互联
的需求越来越多,所以需要一个开放的、标准化的高层协议:这个协议支持各种 CAN 厂商
设备的互用性、互换性,能够实现在 CAN 网络中提供标准的、统一的系统通讯模式,提供
设备功能描述方式,执行网络管理功能。其中包括: 
  应用层(Application layer):为网络中每一个有效设备都能够提供一组有用的服务与协议。 
  通讯描述(Communication profile):提供配置设备、通讯数据的含义,定义数据通讯方式。 
  设备描述(Device proflile):为设备(类)增加符合规范的行为。 
 
工程技术笔记                                                        ©2013 Guangzhou ZHIYUAN Electronics Stock Co., Ltd. 
   
2 
              广州致远电子股份有限公司 
CANopen 轻松入门 
入门教程 
3. CANopen 协议诞生和发展 
CANopen 协议是在 20 世纪 90 年代末,由总部位于德国纽伦堡的 CiA 组织——
CAN-in-Automation,(http://www.can-cia.org  )在 CAL(CAN Application Layer)的基础上
发展而来。 
图  3.1 CANopen 与 CiA 
 
由于 CANopen 协议的创始人团队也是 CAN-bus 的创始人团队,此协议充分发挥了
CAN-bus 所具备的所有优势,特别是 CiA 组织的主席蔡豪格(Holger Zeltwanger)先生对于
CANopen 协议坚持开放、免费、非盈利的原则。一经推出便在欧洲得到了广泛的认可与应
用。虽然 CiA 组织背后没有强大的财阀支撑,但时至今日已经成为全世界最为流行的 CAN
应用层协议。让我们记住这位可爱的德国老人,如图  3.2 所示。 
图  3.2 CiA 组织蔡豪格主席 
 
经过对 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  辅助设备控制系统 
工程技术笔记                                                        ©2013 Guangzhou ZHIYUAN Electronics Stock Co., Ltd. 
   
3 
              广州致远电子股份有限公司 
CANopen 轻松入门 
入门教程 
  CiA 433 series: Interior light control system  内部灯控制系统 
        如图  3.3 所示,为 CANopen 在轨道列车中的地位,主干网为列车总线(WTB),每接
车厢采用车辆总线(MVB)来连接与列车行驶相关,对实时性要求高的部件。而 CANopen
主要是连接各种非高安全性的部件。 
图  3.3 CANopen 在轨道交通中的应用 
 
图  3.4 所示为 CANopen 设备结构。CANopen 协议通常分为用户应用层、对象字典以及
通信三个部分。 
其中最为核心的是对象字典,描述了应用对象和 CANopen 报文之间的关系。 
CANopen 通信是本文关键部分,其定义了 CANopen 协议通信规则以及与 CAN 控制器
驱动之间对应关系,熟悉这部分对全面掌握 CANopen 协议至关重要。 
用户应用层是用户根据实际的需求编写的应用对象,这部分本入门教程将不作详细。 
图  3.4    CANopen  设备结构   
 
工程技术笔记                                                        ©2013 Guangzhou ZHIYUAN Electronics Stock Co., Ltd. 
   
4 
              广州致远电子股份有限公司 
CANopen 轻松入门 
入门教程 
4. CANopen 的预定义报文 ID 分类 
在 CANopen 创立之初,即使在 CAN 总线应用最广泛的汽车电子行业,网络中的 CAN
节点数量和需要通讯的信息都是比较少的。人们使用 CAN 取代 RS485,主要是看重其可以
突发发送的实时性优势,而在多节点、长距离应用中,CAN 总线和 RS485 比起来并无优势,
比如同样的波特率下,CAN 的通信距离只能达到 RS485 的 0.6-0.8 倍,而多节点通信 CAN
无法进行任意的突发发送,不得不遵循 RS485 那样的轮询通信机制,否则会导致拥堵,如
图  4.1 所示。就像这个十字路口的汽车,如果车只有 10 辆,即使没有交通灯,根本不会拥
堵。而如果有 100 辆,如果任意行驶,就会发生严重拥堵。 
 
 
图  4.1 CAN 的突发优势和多节点拥堵 
CANopen 的创始人是非常了解 CAN 总线这个特征,所以在设计 CANopen 时,对其定
义为小网络、控制信号的实时通讯: 
  报文传输采用 CAN 标准帧格式。即 11bit 的 ID 域,以尽量减小传输时间; 
 
  网络控制报文均采用数据最小字节数。比如心跳报文,只有 1 个字节数据; 
  实时更新的过程数据无需接收方报文应答。即采用生产消费模型,降低总线负载; 
  需要接收方确认的配置参数一般都是采用快速单字传输。即 1 个报文最多传送 1
个 32 字节的参数变量,避免了分帧引起的实时性降低。 
以上这些定义都是为了节约时间开销,最大限度保证实时性。同时为了减小简单网络的
组态工作量,CANopen 定义了强制性的缺省标识符(CAN 帧 ID)分配表,以减少使用者与
维护者的学习时间,快速上手。 
 
 
4.1  网络管理(NMT)与特殊协议(Special protocols)报文 ID 分类 
虽然 CANopen 的通讯发挥了 CAN 的特色,所有节点通信地位平等,运行时允许自行
发送报文,但 CANopen 网络为了稳定可靠可控,都需要设置一个网络管理主机 NMT-Master
(Network Management-Master),就像一个交响乐团的指挥家,所有节点的启动、停止都是
有他进行指挥,如图  4.2 所示。 
工程技术笔记                                                        ©2013 Guangzhou ZHIYUAN Electronics Stock Co., Ltd. 
   
5