

CANopen协议是一个基于CAN总线的高层通信协议,由CiA国际用户和制造商组织维护和标准化。CANopen协议的核心目标是定义一个应用于嵌入式系统的网络层和应用层规范,确保不同制造商生产的设备能够在同一个CAN总线上实现无缝互联和互操作。前文介绍了CANopen协议栈概述介绍,本文将深入解析CANopen协议栈中NMT网络管理的原理、状态机机制及实际应用场景,帮助工程师和开发者掌握这一核心技术。
一、NMT网络管理简介
NMT是CANopen网络的控制中心,负责管理网络中所有设备的生命周期和运行状态,决定了网络中每个设备何时启动、何时运行、何时停止,确保整个系统协调有序地工作。NMT通常采用主从架构模式,一个NMT主站负责管理多达127个NMT从站设备。
l NMT主站(Master):通常由PLC、工控机或专用控制器担任,负责统一管理网络;
l NMT从站(Slave):网络中的各个CANopen设备(如伺服驱动器、I/O模块、传感器等)。
每个CANopen 设备都遵循定义好的 NMT 状态机,设备在不同状态下具有不同的行为和通信能力,NMT 主站通过发送 NMT 命令控制从站的状态转换。
• 描述:设备上电后或接收到复位命令后首先进入此内部状态,执行自检、硬件初始化、加载固件等操作
• 行为:完成初始化后,设备会发送Bootup消息(COB-ID 0x700 + Node-ID,数据 [0x00]),告知网络已启动,随后自动进入Pre-operational状态。
• 描述:设备启动后进入的默认状态,功能受限,主要用于网络的配置和诊断。
• 行为:设备可以响应NMT 命令和 SDO 请求 / 响应,但禁止进行 PDO 通信,允许主站安全地配置 PDO 映射、通信参数等。
• 描述:设备的正常工作状态,所有功能都已激活;
• 行为:设备支持所有的通信对象,可正常发送和接收过程数据,执行预定的应用程序任务,主站通常发送Start Node 命令将设备从Pre-operational 切换到此状态。
• 描述:安全状态,通常由主站发送Stop Node 命令触发。
• 行为:设备停止所有应用程序执行,并停止所有PDO通信,仍会响应NMT命令和发送Heartbeat消息,但不发送或接收PDO数据,常用于紧急停止、维护或安全断开设备。

NMT命令由NMT主站发出,COB-ID固定为0x000,数据包含命令码和目标Node-ID。
主站希望使Node-ID 0x10 进入Operational状态。
• COB-ID:0x000 (NMT 命令的固定 COB-ID,最高优先级);
• Data:[0x01, 0x10]
◦ 0x01 是NMT 命令码,表示 "Start Node"(启动节点)。
◦ 0x10 是目标Node-ID,表示该命令仅针对 Node-ID 为 0x10 的设备。
• 0x02:Stop Node (停止节点);
• 0x80:Enter Pre-operational (进入预操作状态);
• 0x81:Reset Node (复位节点,包括应用层和通信层);
• 0x82:Reset Communication (仅复位通信层)。
如果NMT命令的目标Node-ID为0x00,则表示该命令是广播命令,网络中所有从站都将执行该命令(例如:[0x01, 0x00] 会启动所有节点)。
NMT网络管理是CANopen协议的基石机制,其主从架构和严格的状态机设计为工业网络带来了多方面的优势。它提供了明确的状态转换规则,确保系统行为的确定性;具备紧急停止和故障隔离能力,保障设备和人员安全;支持在线配置和热插拔功能,提供灵活的系统维护能力;单主站可管理127个从站的架构设计,保证了良好的可扩展性。
掌握NMT不仅是理解CANopen的入门钥匙,更是开发高可靠工业通信系统的必备技能。在实际项目中,建议结合具体应用场景设计状态转换策略,并充分利用Pre-operational状态进行参数优化,以发挥CANopen协议的最大效能。
今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多CAN总线模块和CAN总线网关产品的更多资料,感兴趣的小伙伴可以登录我们的亿佰特官网进行了解,也可以直接拨打400电话咨询技术专员!
相关阅读:
7 X 24 销售服务热线
4000-330-990©© 成都亿佰特电子科技有限公司【版权所有】 蜀ICP备13019384号


