CANopen CiA 协议全景:重点规范、核心内容与组合关系

在这里插入图片描述

@[toc]
在这里插入图片描述

本文面向 CANopen 工程学习、设备选型、对象字典设计和协议组合判断。
本版按你的要求移除了原文末尾的项目建议和评审清单类章节。
图片均为 PNG,不包含 SVG;交付格式为 Markdown + images 目录。

1. 结论

CANopen 的协议体系可以按三层理解:

  1. 通信基础层:以 CiA 301 / CiA 1301 为核心,定义对象字典、通信服务和网络管理。
  2. 横向功能层:例如 CiA 320 处理 sleep/wake-up,CiA 710 处理 bootloader,CiA 305 处理 LSS,CiA 306 处理 EDS/DCF。
  3. 设备与应用 Profile 层:例如 CiA 401、402、406、445、461、434 等,为某类设备定义应用对象、过程数据、配置参数、诊断信息和默认 PDO 思路。

本版重点单独展开 8 个规范:CiA 320、CiA 710、CiA 401、CiA 402、CiA 445、CiA 406、CiA 461、CiA 434

在这里插入图片描述

2. CANopen 协议族总体结构

CANopen 不是单个协议文件,而是一组围绕对象字典和通信对象构建的规范族。CiA 301 定义 CANopen Classic 的应用层和通信 Profile,包括数据类型、编码规则、对象字典对象、通信服务、网络管理服务,以及 Emergency、Time-stamp、Sync 等通信对象内容。CiA 1301 则定义 CANopen FD 的应用层和通信 Profile,覆盖 CAN FD 数据链路层映射和 CAN 物理介质附加选项。

工程上可以按下面方式划分:

层级 典型规范 作用 主要风险
基础通信 CiA 301 / CiA 1301 NMT、SDO/USDO、PDO、SYNC、TIME、EMCY、Heartbeat、对象字典 CAN-ID、PDO 映射、NMT 状态、错误控制
配置与描述 CiA 305 / 306 / 1305 / 1311 LSS、EDS/DCF、XDD、设备配置 工具文件与固件对象字典不一致
横向功能 CiA 320 / 710 低功耗、休眠唤醒、固件升级 休眠与升级冲突、升级失败不可恢复
设备 Profile CiA 401 / 402 / 406 / 445 / 461 等 某类设备的应用对象、PDO、参数、诊断 对象区间、默认 PDO、设备行为冲突
应用 Profile CiA 417 / 422 / 434 等 系统级虚拟设备和交互关系 虚拟设备、广播 PDO、错误处理策略冲突

3. CiA 320:Sleep / Wake-up 处理

3.1 定位

CiA 320 定义 CANopen 设备的 sleep 和 wake-up 处理服务与协议。它面向支持低功耗模式或 selective wake-up 能力的 CAN 收发器,也适用于轻型电动车、特种车辆附加设备、服务机器人、AGV、电池供电模块等能源受限系统。

3.2 大概内容

CiA 320 通过 power manager(PM)管理网络中的 power management device(PM device)。PM 通常位于当前有效的 CANopen NMT commander 中,用于控制本地 Sleep FSA 以及网络中 PM device 的远程 Sleep FSA。

公开资料显示:PM 使用 CAN-ID 691h 的 CAN 数据帧向 PM device 发送命令;PM device 使用 CAN-ID 690h 的 CAN 数据帧以及 CiA 301 中定义的 EMCY write protocol 向 PM 发送请求。

3.3 核心与重点

  • 核心对象不是运动或 I/O,而是电源状态管理
  • 需要定义哪些节点可以睡眠、哪些节点必须保持在线。
  • Sleep / wake-up 要和 NMT、Heartbeat、EMCY、LSS、Bootloader 规则统一。
  • 若节点睡眠后 Heartbeat 消失,主站不能简单把它当作故障掉线,必须区分“计划睡眠”和“异常离线”。
  • 若节点在执行固件下载或关键动作,必须禁止进入睡眠。

3.4 组合关系

组合对象 结论 说明
CiA 320 + CiA 301 可结合 CiA 320 是 CANopen 服务扩展,仍需要基础通信服务。
CiA 320 + CiA 401/402/406/445/461/434 可结合但需约束 低功耗会改变节点在线状态,影响 PDO、Heartbeat 和诊断。
CiA 320 + CiA 710 高风险组合 固件升级期间进入睡眠可能导致下载中断或校验失败。
CiA 320 + Safety 高约束 安全相关节点是否允许睡眠要经过系统安全设计。

在这里插入图片描述

4. CiA 710:Generic CANopen Bootloader

4.1 定位

CiA 710 是通用 CANopen bootloader 规范,用于统一 CANopen CC 和 CANopen FD 设备的软件更新行为。CiA 技术文档页面显示,CiA 710 version 1.0.0 的 scope 是定义 CANopen 设备的 bootloader mode,以及 bootloader mode 与 application mode 之间的切换。

4.2 大概内容

CiA 710 关注固件升级流程,而不是普通过程数据控制。它要解决的问题包括:

  • 设备如何从 application mode 切换到 bootloader mode;
  • 设备如何保持 bootloader 可访问;
  • 固件如何下载、校验、写入;
  • 下载中断或固件不完整时如何恢复;
  • 固件完整性和有效性校验通过后,如何重新启动应用。

4.3 核心与重点

  • 升级模式必须和正常应用模式隔离。进入 bootloader 后,正常 PDO 控制不应继续驱动设备动作。
  • 必须考虑掉电、通信中断、下载不完整、校验失败
  • 应用有效性检查是关键。设备不应启动无效固件。
  • 恢复能力比下载速度更重要。工业设备升级失败后仍应能重新进入 bootloader。
  • 权限与安全策略需要产品级补充。CiA 710 提供通用框架,但实际项目还要考虑认证、版本回滚、加密签名、升级窗口等。

4.4 组合关系

组合对象 结论 说明
CiA 710 + CiA 301 / 1301 可结合 Bootloader 可面向 Classic 与 FD 设备。
CiA 710 + 任意设备 Profile 可结合 固件升级是横向功能,不改变设备 Profile 的应用语义。
CiA 710 + CiA 320 需谨慎 升级过程中通常应禁止自动睡眠。
CiA 710 + CiA 309 Gateway 可结合但要限权 远程升级要增加权限、日志、超时、恢复策略。

5. CiA 401:Generic I/O Device Profile

5.1 定位

CiA 401 是通用 I/O 设备 Profile,定义带数字输入、数字输出、模拟输入、模拟输出的模块化 CANopen 设备接口。CiA 官方页面说明,最新版本拆为 CiA 401-B(功能行为与参数)、CiA 401-C(映射到 CANopen CC)、CiA 401-F(映射到 CANopen FD)。

5.2 大概内容

CiA 401 关注 I/O 模块的标准化表达。它通常包括:

  • 数字输入和数字输出对象;
  • 模拟输入和模拟输出对象;
  • 默认 TPDO / RPDO;
  • 输入触发条件;
  • 输出在故障情况下的行为;
  • 可选的 bit、word、double-word 访问;
  • 不同模拟分辨率和厂商自定义分辨率。

公开资料指出,CiA 401 的第一个默认 TPDO/RPDO 支持最多 64 路数字输入/输出,并且后续默认 PDO 可传输或接收最多 12 路 16-bit 分辨率的模拟输入/输出。

5.3 核心与重点

  • 重点不是“GPIO 编号”,而是 I/O 语义标准化
  • 输入侧要关注变化触发、滤波、极性、故障值、PDO 触发条件。
  • 输出侧要关注默认值、掉线行为、故障行为、安全状态。
  • 对模块化设备,要处理模块槽位、对象实例和设备描述文件一致性。
  • I/O 和驱动器、RFID、称重、实验室单元结合时,I/O 常作为触发、互锁、状态灯、按钮、工位信号使用。

5.4 组合关系

组合对象 结论 风险
CiA 401 + CiA 402 可组合 驱动器带本地 I/O 时容易出现 PDO 和 Device type 表达不清。
CiA 401 + CiA 445 可组合 I/O 可触发 RFID 读写,但要防止重复触发和边沿误判。
CiA 401 + CiA 461 可组合 I/O 可承载称重设备状态灯、按钮、报警输出。
CiA 401 + CiA 434 可组合 实验室单元可使用 I/O 作为工位、夹具、传感器、执行器接口。

6. CiA 402:Drives and Motion Control

6.1 定位

CiA 402 是驱动器与运动控制设备 Profile。CiA 官方说明,该系列规范标准化伺服驱动器、变频器和步进电机控制器的功能行为,并引入多个 operation mode 及对应配置参数。规范描述中包含 finite state automaton(FSA),用于定义驱动器各状态下的内部与外部行为。

6.2 大概内容

CiA 402 的典型内容包括:

  • Power Drive System FSA;
  • ControlwordStatusword
  • operation mode 和 mode display;
  • profile position、profile velocity、homing、cyclic synchronous position/velocity/torque 等模式;
  • 目标位置、实际位置、目标速度、实际速度、目标转矩、实际转矩;
  • 默认 RPDO/TPDO;
  • fault、quick stop、enable operation 等状态转换;
  • 运动相关安全参数和 SRDO 参数扩展。

CiA 官方资料说明,host-controller 通过 control-word 改变状态,当前状态通过 status-word 指示;control-word 和命令值可映射到默认 RPDO,status-word 和实际值可映射到 TPDO。

6.3 核心与重点

  • 核心是状态机 + 控制字/状态字 + 操作模式
  • 运动控制不是只写目标位置。必须满足 FSA 的状态转换顺序。
  • PDO 映射要服务控制周期:控制字、目标值、模式、状态字、实际值、错误状态要放在合适的 PDO 中。
  • 402 和 406 编码器组合时,要关注同步、采样时刻、位置数据新鲜度。
  • 402 和 320 组合时,驱动器不可在带功率或执行运动过程中随意休眠。
  • 402 和 710 组合时,进入 bootloader 前必须让驱动进入安全、非使能、非运动状态。

6.4 组合关系

组合对象 结论 风险
CiA 402 + CiA 406 常见组合 编码器数据延迟或不同步会影响位置闭环或诊断。
CiA 402 + CiA 401 可组合 本地 I/O 可用于限位、抱闸、使能,但安全功能不能只靠普通 I/O/PDO。
CiA 402 + CiA 320 高约束 带功率状态和睡眠状态需要明确边界。
CiA 402 + CiA 710 可组合但需停机 升级前应停止运动、关断功率级或进入安全状态。

7. CiA 445:RFID Device Profile

7.1 定位

CiA 445 定义简单和智能 RFID 设备的 CANopen 接口,这类设备用于读取或写入 RFID transponder,也就是 RFID tag。

7.2 大概内容

CiA 445 包含 RFID 设备的物理层、数据链路层、应用层接口,以及过程数据、配置参数和诊断信息。公开资料中提到,该 Profile 定义了四类 RFID 设备,从单 transponder、单频率的 reader,到支持多个 transponder 和多个频率的 reader/writer。

RFID 控制通常涉及:

  • select command:确定目标 tag 组;
  • inventory command:识别某个 tag 组中的单个 tag;
  • access command:读取/写入 tag 存储区,或执行 lock、kill 等 tag 操作;
  • 外部触发命令;
  • tag 进入/离开读取区域事件;
  • 读取区域内 transponder 数量;
  • 最近一次读写错误。

7.3 核心与重点

  • 核心是识别对象和读写命令的标准化
  • 要区分“读到 tag”“读写成功”“tag 离开区域”“读写错误”这几类事件。
  • 外部触发与自动 inventory 需要明确策略,避免重复读取、漏读或读写竞争。
  • 与 I/O 结合时,I/O 通常负责到位、夹紧、门开关、触发信号;RFID 负责身份确认。
  • 与实验室自动化或物流设备结合时,RFID 可用于样本、耗材、工装、载具、托盘识别。

7.4 组合关系

组合对象 结论 风险
CiA 445 + CiA 401 可组合 I/O 触发 RFID 时要处理边沿、去抖、重复读写。
CiA 445 + CiA 434 可组合 可用于样本/耗材识别,但要定义 tag 与任务的绑定关系。
CiA 445 + CiA 320 可组合但需约束 休眠后 reader 不在线,可能影响工位识别流程。
CiA 445 + CiA 710 可组合 升级期间应禁止正常读写任务。

8. CiA 406:Encoder Profile

8.1 定位

CiA 406 是编码器 Profile,面向绝对旋转编码器和线性编码器。CiA 官方页面说明,最新版本包含 CiA 406-B(功能行为与参数)、CiA 406-C(映射到 CANopen CC)、CiA 406-F(映射到 CANopen FD)、CiA 406-J(映射到 J1939)。

8.2 大概内容

CiA 406 定义编码器设备的应用接口,通常包括:

  • 位置值;
  • 速度值;
  • 加速度值;
  • jerk 值;
  • 方向、分辨率、量程、预置值;
  • 诊断信息;
  • CANopen CC / CANopen FD / J1939 映射。

8.3 核心与重点

  • 核心是“位置测量设备”的标准化,而不是驱动器控制
  • 与 CiA 402 不同,406 本身不定义驱动状态机,不负责使能功率级。
  • 编码器数据通常通过 TPDO 周期或同步发送,主站或驱动器使用这些数据进行位置反馈、状态监测或同步控制。
  • 需要重点关注采样周期、SYNC、PDO 触发类型、数据新鲜度、分辨率和单位。
  • 多圈编码器、线性编码器和高分辨率位置值要注意数据长度、溢出和标定。

8.4 组合关系

组合对象 结论 风险
CiA 406 + CiA 402 常见组合 位置反馈若不同步,会影响运动控制质量。
CiA 406 + CiA 401 可组合 I/O 可提供 reference、limit、home、trigger 信号。
CiA 406 + CiA 320 可组合但需约束 睡眠导致反馈中断,必须让控制器知道数据不可用。
CiA 406 + CiA 710 可组合 升级期间不要把编码器数据当作有效过程数据。

9. CiA 461:Weighing Devices

9.1 定位

CiA 461 是称重设备 Profile。CiA 的通用设备 Profile 列表中仍列出 CiA 461 series 作为 weighing devices Profile;但 CiA 技术文档页面中可见 CiA 461-1/2/3/4 version 2.0.0 条目显示为 withdrawn。因此,工程项目中使用 CiA 461 时,应先向 CiA 或设备厂商确认当前正式状态、可用版本和兼容性要求。

9.2 大概内容

公开技术文档列表显示 CiA 461 被分为多个部分:

部分 内容
CiA 461-1 general definitions and PDOs
CiA 461-2 load cells
CiA 461-3 scales
CiA 461-4 human machine interface and indicators

根据这些 scope,可推断其关注点包括:

  • 称重设备的 CANopen interface functionality;
  • general communication parameters;
  • Process Data Objects;
  • lower-layer requirements;
  • load cell、scale、HMI、indicator 的过程数据和配置参数;
  • PDO communication and mapping parameters。

9.3 核心与重点

  • 核心是称重过程值、稳定状态、标定、诊断和显示/指示器的标准化
  • 称重值不是普通模拟输入值,还需要考虑稳定时间、去皮、零点、量程、过载、故障状态。
  • 与 HMI/indicator 结合时,要区分“测量值”“显示值”“报警/状态输出”。
  • 与 I/O 结合时,I/O 可用于去皮按钮、清零按钮、报警灯、夹具状态等。
  • 与实验室自动化结合时,称重过程可能成为一条工作计划中的关键步骤。

9.4 组合关系

组合对象 结论 风险
CiA 461 + CiA 401 可组合 按钮、状态灯、报警输出可走 I/O,但称重过程值应保持清晰语义。
CiA 461 + CiA 434 可组合 实验室称重单元可纳入 LAC/LAU 流程,但要处理稳定等待、错误恢复。
CiA 461 + CiA 320 可组合但需约束 休眠前后需重新确认标定、稳定性和过程值有效性。
CiA 461 + CiA 710 可组合 升级后应考虑标定参数保留和版本兼容。

10. CiA 434:Laboratory Automation Systems

10.1 定位

CiA 434 是实验室自动化系统的 CANopen device profile 集合,定义 laboratory automation controller(LAC)与多个 laboratory automation units(LAUs)之间的通信。

10.2 大概内容

CiA 434 包含通用定义和多个设备子类。公开资料中列出的内容包括:

  • CiA 434-1:general definitions;
  • CiA 434-2:dilutors、dispensers、pump units;
  • CiA 434-3:heating、cooling、shaking units;
  • 其他部分还可包括 pipette control units、multi axis control units、drive units、washing units、centrifuge units、stacker units、detection units。

CiA 434 定义 LAU 在 LAC 视角下的 FSA。状态转换可由内部设备事件触发,例如设备错误或本地输入,也可由 LAC 发出的 FSA command 触发。无错误设备可能处于 idle、configuration、interrupted 或 command processor active 等状态。

10.3 核心与重点

  • 核心是 LAC/LAU 主从模型与实验室单元状态机
  • 单元不是只暴露简单 I/O,而是具备任务执行、批处理、配置和中断恢复能力。
  • CiA 434 支持单个 operating command,也支持预配置 work plan 这类 quasi-autonomous 操作。
  • 实验室系统常涉及泵、移液、加热、冷却、振荡、检测、堆栈、离心、多轴运动等多种单元。
  • 与 402/406/401/445/461 组合时,需要明确各自状态机层级:LAU 的任务状态机不能直接等同于驱动器 FSA 或 RFID 命令状态。

10.4 组合关系

组合对象 结论 风险
CiA 434 + CiA 301 必然依赖 CiA 434 设备使用 CiA 301 通信技术。
CiA 434 + CiA 302 可结合 复杂配置、程序/工作计划管理可使用附加应用层功能。
CiA 434 + CiA 402 可组合 多轴、泵或驱动单元可能需要运动控制,但状态机要分层。
CiA 434 + CiA 445 可组合 RFID 可做样本、耗材、托盘、工位识别。
CiA 434 + CiA 461 可组合 称重单元可作为实验流程中的测量步骤。

11. 8 个重点规范的组合矩阵

在这里插入图片描述

12. 设备 Profile 设计关注点

在这里插入图片描述

设备 Profile 之间能否组合,主要不是看编号,而是看以下资源是否冲突:

冲突资源 典型问题 处理方式
Node-ID 两个节点或逻辑设备使用相同 Node-ID 统一分配 Node-ID,必要时使用 LSS
COB-ID / CAN-ID 默认 PDO、EMCY、Heartbeat 或自定义 CAN-ID 冲突 重新规划 COB-ID 和 PDO 参数
对象字典 index 多个 Profile 或厂商对象使用同一 index 按正式 Profile 选择对象,厂商对象放入合适区间
PDO 映射 控制周期、数据长度、同步方式不一致 明确 TPDO/RPDO 的角色、周期、触发类型和映射对象
状态机 402 FSA、434 LAU FSA、bootloader mode、sleep FSA 互相混淆 分层定义状态机,不把横向功能当设备动作状态
安全边界 用普通 PDO 实现安全停机或安全互锁 安全功能必须按安全通信和认证要求处理
电源状态 睡眠导致 Heartbeat 消失、过程数据无效 区分计划睡眠和异常掉线,定义 PM 策略
固件升级 升级中断、升级后参数不兼容 Bootloader 具备恢复机制,保留/迁移关键参数

13. 组合建议总结

场景 推荐组合 注意事项
通用 I/O 模块 CiA 301 + CiA 401 关注数字/模拟 I/O 默认 PDO 和故障输出行为
伺服/步进/变频器 CiA 301 + CiA 402 关注 FSA、Controlword/Statusword、操作模式和 PDO 周期
外部编码器反馈 CiA 301 + CiA 406 关注同步、数据新鲜度、分辨率和预置值
RFID 工位识别 CiA 301 + CiA 445 + 可选 CiA 401 I/O 触发与 RFID 读写事件要去抖和去重
称重/计量 CiA 301 + CiA 461 先确认规范当前状态;关注标定、稳定值、HMI/indicator
实验室自动化 CiA 301 + CiA 434 + 可选 402/445/461 LAC/LAU 状态机与底层设备状态机要分层
低功耗系统 CiA 301 + CiA 320 + 设备 Profile 睡眠/唤醒要与 NMT、Heartbeat、EMCY 一致
可升级设备 CiA 301/1301 + CiA 710 + 设备 Profile 升级期间禁止危险动作和睡眠,保证中断恢复

14. 资料来源

  1. CAN in Automation, CANopen CC overview: https://www.can-cia.org/can-knowledge/canopen
  2. CAN in Automation, CiA 401: Generic I/O device profile: https://www.can-cia.org/can-knowledge/cia-401-series-i/o-device-profile
  3. CAN in Automation, CiA 402: Drives and motion control: https://www.can-cia.org/can-knowledge/cia-402-series-canopen-device-profile-for-drives-and-motion-control
  4. CAN in Automation, CiA 406: Encoder profile: https://www.can-cia.org/can-knowledge/cia-406-encoder-profile
  5. CAN in Automation, CiA 445: RFID device profile: https://www.can-cia.org/can-knowledge/cia-445-canopen-device-profile-for-rfid-devices
  6. CAN in Automation, CiA 434: Laboratory automation systems: https://www.can-cia.org/can-knowledge/cia-434-canopen-device-profile-for-laboratory-automation-systems
  7. CAN in Automation, CiA 320: Sleep and wake-up handling: https://www.can-cia.org/can-knowledge/cia-320-canopen-services-and-protocols-for-sleep-and-wake-up-handling
  8. CAN in Automation, Technical documents: https://www.can-cia.org/cia-groups/technical-documents
  9. CAN in Automation, Generic device profiles: https://www.can-cia.org/can-knowledge/generic-device-profiles