CANopen 可编程设备框架 DS-302(V3.1.1)要点

云盘原件:/日常学习资料/CAN OPEN 协议/DS302.pdf(CiA DSP-302 V3.1.1,Framework for Programmable CANopen Devices,约 55 页,文本型)

定位

DS-301 只覆盖”非智能”设备(I/O 模块、驱动器、调节器——不运行应用级程序的器件)。DS-302 是 DS-301 之上的扩展框架,面向运行应用程序的智能设备:PLC、HMI、CANopen 工具。它不定义具体设备,而是给 DS-4xx 智能设备 profile 提供公共机制。与既有笔记 CANopen-CiA301-V4.2.0-中文注释版、CiA-102-CAN物理层规范工业应用 属同一协议簇。

核心机制(六大件)

  1. CANopen Manager 概念:明确”网络控制设备”的网络职能称谓,区别于普通节点。
  2. Boot-Up 启动流程:完整的网络启动状态机(主流程 2 部分 + 若干预定义子流程:Boot slave、Check node state、Check and update software version、Check configuration)。允许管理器在总线启动阶段逐个初始化从站、校验软硬件版本、下装配置。最简启动过程可以只发 NMT Reset 不管从站(图 11”Simplest possible NMT Boot Process”)。
  3. Configuration Manager 配置管理器:开机时向未配置节点下装配置。DCF 存储、精简配置存储(concise configuration storage)、配置校验流程、Request Configuration、EDS 存储。
  4. SDO 连接动态建立:SDO Manager 允许设备间运行时动态建立 SDO 连接(DS-301 只有预定义的成对 SDO);连接集可扩展到 1016 条连接。
  5. 对象字典动态索引分配:可编程节点(PLC)可在对象字典里动态分配条目表示 I/O 数据,配套 EDS/DCF 描述。
  6. 程序下载:通用的程序数据下载与程序控制机制。

NMT Master 相关对象(启动/网络清单)

  • 1F80h:管理器行为位(bit0 = 本节点是否指定为 NMT master 等)。
  • 1F81h:网络行为配置位(bit1 = 单独/全局发命令;bit4 = keep-alive、非零禁发 Reset Communication All;bit5 = 强制应用软件版本校验)。历史版 1F81h bit1 已废弃删除。
  • 1F84h–1F88h Network List:预期从站清单。按 Node-ID 作子索引(子索引 0 = 127),启动时读从站 1018h(Identity:Vendor-ID/ProductCode/RevisionNumber/SerialNumber)与 1F85h–1F88h 期望值逐一比对(0x0000 = don’t care),不匹配即启动失败报错。Device Type Identification 也在比对之列。
  • 1F89h:Boot 超时(bootmaster timeout,超时则 boot slave 流程以错误结束)。
  • 1016h Consumer Heartbeat Time / 1017h:心跳生产者/消费者配置;支持 DS-301 V3 与 V4 两代设备。

NMT 主站协商与 Flying Master

  • Error Control:启动期错误处理子流程 + Request NMT(手动发 NMT 命令)。
  • Flying Master(流动主站):无固定 NMT master 的网络,通过”Active NMT Master 检测协议 → NMT Master 协商协议(触发时隙 + 等待期)→ 可强制重新协商”三步决定谁来当主站;可检测具备 NMT master 能力的设备。适合无中央控制器的对等系统。

工程启示(对医疗器械嵌入式通讯)

  • 网络身份校验(1018h vs 1F84-1F88 清单)是防止”换错备件导致通讯异常”的注册机制,值得在自家仪器的上位机自检里借鉴。
  • DS-302 的 BootUp 状态机是 CANopen 认证测试(CiA test tool)中最复杂的部分,改从站固件时务必保持 heartbeat 时序。
  • 本规范化入 study/canopen/ 子目录,与 CANopen-LSS协议DS305-中文译本要点、CANopen电子数据表规范-DS306-V1.3 构成完整 DS30x 簇。