CAN笔记(19) 网络管理


1. 网络管理

一个 CANOpen 网络中为了保证可靠、可控,必须要 NMT 网络管理

就像一个军队一样,要令行禁止,才能达到稳定、高效的目标

所以每个 CANOpen 从节点的 CANOpen 协议栈中必须具备 NMT 管理的相应代码
这是节点具备 CANOpen 协议的最基本的要素


2. 节点状态

NMT 管理涉及到一个 CANOpen 节点从上电开始的 6 种状态:

在这里插入图片描述

  • 初始化(Initializing):节点上电后对功能部件包括 CAN 控制器进行初始化

  • 应用层复位(Application Reset):节点中的应用程序复位(开始)
    比如开关量输出、模拟量输出的初始值

  • 通讯复位(Communication reset):节点中的CANOpen 通讯复位(开始)
    从这个时刻起,此节点就可以进行CANopen通讯了

  • 预操作状态(Pre-operational):节点的CANOpen 通讯处于操作就绪状态
    此时此节点不能进行PDO通信,而可以进行SDO进行参数配置和NMT网络管理的操作

  • 操作状态(Operational):节点收到NMT主机发来的启动命令后
    CANOpen 通讯被激活,PDO通信启动后, 按照对象字典里面规定的规则进行传输
    同样SDO也可以对节点进行数据传输和参数修改

  • 停止状态(Stopped): 节点收到NMT主机发来的停止命令后
    节点的PDO通信被停止
    但SDO和NMT网络管理依然可以对节点进行操作

除了初始化状态
NMT主机通过NMT命令可以让网络中任意一个的CANOpen 节点进行其他5种状态的切换
当然CANOpen 节点也可以程序自动完成这些状态的切换


3. 节点上线报文

任何一个 CANOpen 从站上线后
为了提示主站它已经加入网络(便于热插拔1),或者避免与其他从站 Node-ID 冲突
这个从站必须发出节点上线报文(boot-up)

在这里插入图片描述

节点上线报文的 ID 为 700h + Node-ID, 数据为 1 个字节 0
生产者为 CANOpen 从站


4. 心跳报文

为了监控 CANOpen 节点 是否在线目前的节点状态

CANOpen 应用中通常都要求在线上电的从站 定时发送 状态报文(心跳报文)
以便于主站确认从站是否故障、是否脱离网络

心跳报文发送的格式:
在这里插入图片描述
CAN-ID与节点上线报文相同为700h + Node-ID
数据为 1 个字节,代表节点目前的状态:
04h:停止状态, 05h:操作状态, 7Fh:预操作状态

CANOpen 从站按其对象字典中 1017h 中填写的心跳生产时间(ms)进行心跳报文的发送
而 CANOpen 主站(NMT 主站)则会按其 1016h 中填写的心跳消费时间进行检查

假设超过诺干次心跳消费时间,没有收到从站的心跳报文
则认为从站已经离线或者损坏


5. 节点守护

在早期 CANOpen 应用中,还有一种可以通过 轮询模式 监视从站状态的节点守护模式
但它与心跳报文模式二者不能并存

通过节点守护, MNT 主机可以检查每个节点的当前状态
NMT-Master 节点发送标准远程帧(无数据)如下:
在这里插入图片描述
NMT-Slave 节点应答发送数据帧, 数据为 1 个字节:

在这里插入图片描述
数据部分包括一个触发位(bit7)
触发位 必须在每次节点保护应答中交替置“0”或者“1”
触发位在第一次节点保护请求时置为“0”

位 0 到位 6(bits0~6)表示节点状态,数值可为:
在这里插入图片描述
由于远程帧在 CAN 发展中逐渐被淘汰,而节点守护由于需要更多的主站开销与增加网络负载
CiA 协会已经不建议使用,被心跳报文所取代


6. 节点状态切换命令

NMT 网络管理中,最核心的就是 NMT 节点状态切换命令
这是 NMT 主站所进行网络管理的“命令”报文

在这里插入图片描述
必须牢记这些命令:

CAN-ID 均为 000h,具备最高的 CAN 优先级

数据为 2 个字节:

  • 第 1 个字节:命令类型
    01h:启动命令(让节点进入操作状态)
    02h:停止命令(让节点进入停止状态)
    80h:预操作状态(让节点进入预操作状态)
    81h:复位节点应用层(让节点的应用恢复初始状态,比如列车门都恢复打开状态)
    82h:复位节点通讯(让节点的 CAN 和 CANOpen 通讯重新初始化,一般用于总线收到干扰,导致节点总线错误被动,或者总线关闭时)
  • 第二个字节:控制的节点 Node-ID
    如果要对整个网络所有节点同时进行控制,则这个数值为 0 即可

7. 主站设备

通常 NMT 主站也称为 CANOpen 主站, 上文所述为 CANOpen 最基本的 NMT 操作

在这里插入图片描述
而作为一个完整的 CANOpen 主站设备,为了满足管理整个 CANOpen 网络的从站设备
需要具备以下功能:

  • 支持 PDO、 SDO 发送与接收
  • 支持 NMT 网络管理
  • 支持 PDO 通信类型并能够支持监控每一个 PDO 目标
  • LSS 层设置功能:从站波特率设置、从站节点编号设置
  • 支持从站管理功能:类型与名称读取、对象字典读写
  • 紧急报文发送功能
  • 扩展 CANOpen 标准指示灯功能

目前有二种形式的主站:

  1. 可编程控制器(PLC) 中的一个单元
    内部集成了CANOpen 的主站功能,这个单元能连接到 CANOpen 总线
    同时因为它是 PLC 中的一个单元,它能与 PLC 的 CPU 交换数据
    因此通过编写 PLC 程序对它所连接的 CANOpen 从站进行管理和控制

  2. PC 扩展主站通信卡
    通过 PC 扩展一个 CANOpen 主站通信卡,从而令 PC 具有管理 CANOpen 通信网络的能力
    推荐使用 PCI 总线或 USB 总线来扩展 CANOpen 通信卡
    使用它们不仅可以令PC 成为一个 CANOpen 网络的管理节点
    还可以开发或测试 CANOpen 网络、拓展连接其他网络


参考:

《CANopen 轻松入门》


相关推荐:

CAN笔记(18) 对象字典
CAN笔记(17) 预定义报文ID
CAN笔记(16) CANOpen简介
CAN笔记(15) STM32-M4 CAN通讯
CAN笔记(14) STM32-M4 寄存器


谢谢!


  1. 热插拔:即带电插拔,指的是在不关闭系统电源的情况下,将模块、板卡插入或拔出系统而不影系统的正常工作,从而提高了系统的可靠性、快速维修性、冗余性和对灾难的及时恢复能力等 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

氢键H-H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值