CANopen 总览与工作原理

CANopen 总览与工作原理

CANopen = 基于 CAN 的标准化嵌入式网络高层协议
CiA(CAN in Automation)维护 · 经典版 CANopen CC(CiA 301 / EN 50325-4)
演进版:CANopen FD(CiA 1301,基于 CAN FD)


1. CANopen 是什么

CANopen 是一套跑在 CAN(Controller Area Network) 之上的应用层与通信行规

  • 物理层 / 数据链路层:通常按 ISO 11898-2 / ISO 11898-1
  • 应用层:对象字典、NMT、SDO、PDO、SYNC、EMCY、Heartbeat 等(CiA 301
  • 设备/应用行规:如驱动器 CiA 402、I/O CiA 401

设计目标一句话:在可靠、低成本的 CAN 总线上,用统一的对象模型与通信对象,实现可配置、可互操作的设备网络。

属性
维护组织 CAN in Automation(CiA)
经典标准 CiA 301 v4.2.0(应用层与通信行规)
国际对应 EN 50325-4(CANopen)
底层总线 CAN CC(经典)或 CAN FD(CANopen FD)
典型速率 10 kbit/s ~ 1 Mbit/s(CiA 301 位定时)
寻址 主要使用 11-bit CAN-ID(也支持 29-bit)
最大经典节点数 实践上常 ≤ 127(Node-ID 1~127)

官方概述:CiA — CANopen


2. 为什么需要 CANopen(而不只是裸 CAN)

裸 CAN 只保证:

  • 帧优先级仲裁
  • CRC / ACK
  • 多主广播

不规定

  • 节点如何上线、复位、启停
  • 参数如何读写
  • 周期过程数据如何组织
  • 错误如何上报
  • 不同厂商设备如何互换

CANopen 补齐的是应用语义

1
2
裸 CAN:能把字节送到总线上
CANopen:约定“这些字节表示什么、谁在什么状态、如何配置、如何同步”

3. 设备内部三层结构

CiA 将一个 CANopen 设备抽象为三部分:

1
2
3
4
5
6
7
8
9
┌─────────────────────────────────────────┐
│ Application │ 控制逻辑 / IO / 电机算法
├─────────────────────────────────────────┤
│ Object Dictionary │ 参数与过程数据的统一入口
├─────────────────────────────────────────┤
│ CANopen Protocol Stack │ NMT/SDO/PDO/EMCY/...
├─────────────────────────────────────────┤
│ CAN Controller │ ISO 11898
└─────────────────────────────────────────┘
层次 职责
应用 设备功能:读传感器、跑伺服环、驱动 IO
对象字典(OD) 所有可访问参数/数据的索引表;通信栈与应用的交界
协议栈 把 OD 项映射到 COB(通信对象),在 CAN 上收发

对象字典是理解 CANopen 的钥匙:主站配置从站、读诊断、映射 PDO,本质上都是在访问 OD。


4. 通信对象(COB)一览

COB 用途 实时性 典型方向
NMT 网络管理(启停/复位节点) 高优先 Master → Slave
SYNC 同步触发 通常 Master 广播
EMCY 紧急错误报告 Slave → 网络
TIMESTAMP 时间戳 可选
PDO 过程数据(周期/事件) 双向可配置
SDO 配置与诊断 低(请求-响应) Client ↔ Server
Heartbeat 节点存活与状态 Producer → Consumer
LSS 改 Node-ID / 波特率 配置阶段 Master ↔ Slave

详细见 03-SDO与PDO通信.md02-NMT与错误控制.md


5. 主站 / 从站角色

CANopen 网络通常有:

  • NMT Master:负责网络启停、监视节点(Heartbeat Consumer)
  • NMT Slave:受控设备(驱动器、IO、传感器)
  • SDO Client / Server:配置时 Client 读写 Server 的 OD
  • PDO Producer / Consumer:过程数据发布者与消费者

注意:一个节点可同时具备多种角色(例如主站既是 NMT Master,也消费从站 TPDO)。


6. 典型上电与运行时序(概念)

1
2
3
4
5
6
7
1. 上电 / 复位
2. 节点进入 Initialization → Pre-Operational
3. (可选)LSS 配置 Node-ID / 波特率
4. 主站用 SDO 配置通信参数、PDO 映射、应用参数
5. 主站发 NMT Start → Operational
6. 周期:SYNC(可选)+ PDO 交换过程数据
7. 并行:Heartbeat 监视;异常时 EMCY

7. CANopen CC vs CANopen FD vs CoE

体系 传输 标准入口 典型场景
CANopen CC 经典 CAN CiA 301 工控、车身、医疗设备、移动机器人底盘
CANopen FD CAN FD CiA 1301 更大 PDO、更高吞吐
CoE EtherCAT ETG + CiA 语义 高速多轴伺服、机器人关节

对机器人工程师:

  • CANopen 对象模型 + CiA 402,在 CAN 总线和 EtherCAT(CoE)两边都能复用。
  • 差别主要在带宽、拓扑、同步精度与主站实现,不是对象语义本身。

8. 关键规范地图(先记住这些)

文档 内容
CiA 301 应用层、通信行规、OD、NMT/SDO/PDO/SYNC/EMCY
CiA 302 额外通信框架(框架、管理等,工程上常遇子集)
CiA 305 LSS(Node-ID / 波特率配置)
CiA 306 EDS / DCF 电子描述
CiA 401 通用 I/O 模块行规
CiA 402 驱动与运动控制(伺服/变频/步进)
CiA 1301 CANopen FD 应用层

正式 PDF 多数需 CiA 会员登录下载:
CiA Technical Documents


9. 术语速查

术语 含义
Node-ID 节点地址 1~127
COB-ID 通信对象标识(映射到 CAN-ID)
OD Object Dictionary
RPDO / TPDO 接收/发送过程数据对象
EDS Electronic Data Sheet(设备能力描述)
DCF Device Configuration File(含具体参数值的配置)
FSA Finite State Automaton(如 CiA 402 驱动状态机)

下一篇:01-对象字典与预定义连接集.md

文章互动

阅读 --

留言

0 条留言

正在加载留言…