《CANopen 轻松入门》要点(周立功团队 TN01010101)

来源:云盘 /日常学习资料/CAN OPEN 协议/CANopen_easy_begin.pdf(广州致远电子/周立功、黄敏思,2015,39 页,DS301 方向入门教程)。CANopen 学习路径公认首选读物,本笔记按章节浓缩全书骨架 + 必背表格。

1-3 协议定位

  • CAN 只定义物理层+数据链路层(ISO 11898),应用层空白 → 需要标准化高层协议;CANopen 由 CiA 在 CAL 基础上发展,开放/免费/非盈利,最流行的 CAN 应用层协议
  • 设备结构三部分:用户应用层 / 对象字典(核心) / 通信
  • 子协议 CiA 4xx = 在 CiA 301 之上按行业重定义数据含义(如轨道:CiA 421 列车控制、423 柴油机、424 门控等)
  • 设计前提:小网络 + 控制信号实时通信——11bit 标准帧、控制报文最小字节(心跳仅 1 字节)、PDO 免应答、SDO 快速单字传输

4 预定义 COB-ID(必背表)

COB-ID = 报文帧 ID(4 位 Function-ID + 7 位 Node-ID);Node-ID 最大 128。

报文CAN-ID
NMT 命令000h
Sync080h
Emergency080h+Node-ID
Time stamp100h
TPDO1-4180/280/380/480h+Node-ID
RPDO1-4200/300/400/500h+Node-ID
SDO 应答(server→client)580h+Node-ID
SDO 请求(client→server)600h+Node-ID
Boot-up/心跳700h+Node-ID
  • PDO=生产消费模型单向免应答;SDO=客户端/服务器请求应答,超时重发
  • TPDO/RPDO 以从站为参考(T=从站发出);每方向 4 个数据对象

5 对象字典 OD 与 EDS

  • OD 是节点全部参数的有序对象组:16 位索引 + 8 位子索引,值最大 Unsigned32;对外交换形式即 EDS 文件(INI 风格文本:FileInfo/DeviceInfo/MandatoryObjects/[1018] 段)
  • 索引分区:1000-1FFF 通讯区 / 2000-5FFF 制造商区 / 6000-9FFF 标准化设备子协议区
  • 通用通讯对象 1000-1029 必备否则无法入网:1000 设备类型、1001 错误寄存器、1005/1006 同步 COB-ID 与周期、100C/100D 守护时间/寿命因子、1010/1011 保存/恢复参数、1014/1015 紧急报文、1016/1017 消费者/生产者心跳时间、1018 身份对象(vendor-id 等四元组,LSS 基础)
  • 厂商码必须向 CiA 申请唯一值(例:致远 0x2B6=694)

6 NMT 与主站

  • 6 状态:Initializing → Application Reset → Communication Reset → Pre-operational(可 SDO/NMT 不可 PDO)→ Operational(PDO 启动)→ Stopped(停 PDO 留 SDO);除初始化外均可由主站命令切换
  • boot-up:上线发 700h+Node-ID、数据 00(热插拔/防撞号)
  • 心跳:从站按 1017h 周期发 700h+Node-ID(04=Stopped/05=Operational/7F=Pre-op);主站按 1016h 消费超时判离线
  • 节点守护(guarding):远程帧轮询模式,与心跳二选一,旧式
  • NMT 命令格式:000h + [命令字, Node-ID];命令字 01 启动/80 停止/81 预操作/82 复位通讯/83 复位应用

7-9 PDO/SDO/特殊协议

  • PDO 传输类型:同步(SYNC 触发)/ 异步(事件/定时)/ 定时同步;通信参数 1400/1800h 区,映射参数 1600/1A00h 区(最难理解,映射表把 OD 条目拼进 8 字节帧)
  • SDO:快速协议 ≤4 字节一帧完成;普通协议分段(expedited/normal/segmented);CS 命令字查表
  • SYNC(080h)协调同步传输,SYNC 窗口对象 1007h;TIME(100h)网络时间戳;EMCY 携带错误码分类

工程关联