文章目录

  • 一、前言
  • 二、NMT节点上线报文
  • 三、NMT心跳报文

一、前言


CANopen协议的NMT管理报文既是最简单又是最重要的知识点,为什么网络管理NMT这么重要?
1、CANopen从站上电后,首先往总线发送节点上线报文(这个是NMT),然后就会源源不断地发送心跳报文(这个也是NMT)。不了解NMT的话,你无法看懂CANopen网络上的这些CAN报文。一般的自动化设备上肯定不止一个CANopen从站,可能会有10几个,甚至几十个。当你用CAN分析仪去观察CANopen网络上的报文时,会有很多很多乱七八糟的CAN报文,你要了解NMT才能看懂那些CAN报文。
2、CANopen从站上电后,从心跳报文可以看到CANopen从站处于Pre-Operatonal(预操作状态),此时PDO功能是关闭的。需要用NMT报文才能让CANopen从站从Pre-Operational切换到Operational(操作状态),此时PDO功能才有效。
3、从上一点知道,CANopen从站需要进入Operational(操作状态)才能使用PDO功能,那PDO功能真的那么重要吗?老实说,它非常重要。总的来说,CANopen网络的实时性取决于PDO,多个CANopen节点实时且高效地通讯,依赖的就是PDO。后面的章节会专门讲解PDO的使用方法。
4、调试多个CANopen节点时,一般我是先对一个CANopen节点进行调试,说白了我只关注那一个CANopen节点发出来的CAN报文,我不希望其他CANopen节点往CANopen网络上发送CAN报文。遇到这种情况,有两种办法解决:1、关闭其他CANopen节点的电源(简单粗暴)。2、使用NMT报文,让其他CANopen节点进入停止状态,CANopen节点进入停止状态后,连最基本的心跳报文都停止了。
5、综上所述,一定要掌握NMT管理报文!!!

请研读《CANopen_easy_begin》的第6章-网络管理NMT(Network management)与CANopen主站,请看下面图片。其中,6.4章节简单略过即可,因为NMT节点守护已经被CANopen协议淘汰,基本不使用了。

准备好硬件:
1、STM32H743开发板(已经移植CANopen协议)
2、CAN分析仪

二、NMT节点上线报文



基于上一次已经完成CANopen的移植的开发板,它已经是一个标准的CANopen从站(从站ID : 0x05),那么我用CAN分析仪去看看CANopen从站发出什么报文。每当我按下开发板的复位键时,CAN分析仪就会收到一条CAN报文。没错,它就是CANopen从站0x05的“节点上线报文。
!!同学们不要误以为CAN-ID:0x705是CANopen节点的身份,CANopen节点的身份是0x05才对。那么0x705是什么意思?? 0x705 = 0x700(心跳报文)+ Node-ID(0x05),其中的Node-ID才是CANopen节点的身份。

符合CANopen对NMT节点上线报文的定义:CAN-ID = 0x700 + node-ID(0x05 = 0x705,然后长度01,接着数据段是0。

三、NMT心跳报文



看看刚移植的CANopen从站(Node-ID:0x05)在干什么吧。如下图所示,它在源源不断地发出同一个报文。没错,这个报文就是CANopen从站(0x05)的心跳报文,数据段是0x7F。

数据段0x7F的意思是这个CANopen从站处于Pre-Operational预操作状态,它就是节点的状态。CANopen从站处于预操作状态(7F)时,不会发送与接收PDO(PDO功能关闭),SDO功能是正常的。还有,CANopen从站的状态一般由CANopen主站去控制。

尝试一下这个功能吧,我用CAN分析仪往CANbus网络发送一个报文让CANopen从站(0x05)进入操作状态(0x05)。如下图所示,使用CAN分析仪发送报文后,CANopen从站(0x05)进入了操作状态。

最后,我用CAN分析仪再往CANbus网络发一条CAN报文,让CANopen从站(0x05)回到预操作状态(0x7F)。

为什么我用CAN分析仪发送一些报文就能控制CANopen从站的状态?这些是什么报文?请看下一章节吧。

CANopen | 网络管理NMT01 - 节点上线报文与心跳报文相关推荐

  1. MQTT 控制报文 - PINGREQ心跳报文,PINGRESP - 第4章

    目录 4.1 PINGREQ - 心跳请求 4.1.1 固定报头 4.2 PINGRESP - 心跳响应 4.2.1 固定报头 4.1 PINGREQ - 心跳请求 客户端发送PINGREQ报文给服务 ...

  2. CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔

    文章目录 一.前言 二.实验的目的 三.对象字典OD 3.1.Slave.od 3.2.Slave1.c 四.CAN盒子(收发器) 五.细节补充 5.1.Slave1.od文件的作用 一.前言 通过修 ...

  3. CANOpen网络管理报文

    网络管理报文用于监视和设置节点的运行状态,心跳机制和寿命保护机制都基于该报文. /* 改变节点状态 */ UNS8 masterSendNMTstateChange(CO_Data *d, UNS8 ...

  4. HTTP的请求报文与响应报文

    报文: 简单来说,报文就是也就是HTTP报文,作用是在各个系统之间进行和响应时用来交换与传输的数据单元,即站点一次性要发送的数据块,这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义 ...

  5. TCP/IP协议、请求报文和响应报文

    一.TCP/IP协议 1.计算机与网络设备相互通信 计算机与网络设备要相互通信, 双方就必须基于相同的方法. 比如:如何探测到通信目标. 由哪一边先发起通信. 使用哪种语言进行通 信. 怎样结束通信等 ...

  6. 【计算机网络】应用层 : 万维网 和 HTTP 协议 ( 万维网概述 | HTTP 协议特点 | HTTP 协议连接方式 | HTTP 协议报文结构 | HTTP 请求报文 | HTTP 响应报文 )

    文章目录 一.万维网概述 ★ 二.HTTP 协议 ( 超文本传输协议 ) ★ 三.HTTP 协议特点 ★ 四.HTTP 连接方式 ★ 五.HTTP 协议报文结构 六.HTTP 请求报文 ★ 七.HTT ...

  7. 数据帧,数据包,报文段,报文,分组,数据包的概念和区别

    应用层--消息 传输层--数据段(segment) 网络层--分组.数据包(packet) 链路层--帧(frame) 物理层--P-PDU(bit) 分组.包,packet,信息在互联网当中传输的单 ...

  8. MQTT 控制报文 - SUBSCRIBE订阅报文,SUBACK,UNSUBSCRIBE,UNSUBACK - 第5章

    目录 5.1 SUBSCRIBE - 订阅主题报文 5.1.1 固定报头 5.1.2 可变报头 5.1.3 有效载荷 5.2 SUBACK - 订阅确认 5.2.1 固定报头 5.2.2 可变报头 5 ...

  9. OSPFB笔记-五个报文【超详细】[Hello报文,DD报文,LSR报文,LSU报文,LSAck报文]

    目录 Hello报文 DD报文[数据库描述报文] LSR报文 LSU报文 LSAck报文 通过前面已经了解到ospf的报文头部[链接:OSPF头部报文https://blog.csdn.net/wei ...

最新文章

  1. C ++基本输入/输出
  2. 【java】兴唐第二十三节课(暑期第一节TreeSet)
  3. 关于伪静态网站的好处
  4. bash--shell高级编程-特殊字符
  5. 删除online日志測试及ora-600 [4194]错误的处理
  6. 国内数十位NLP大佬合作,综述预训练模型的过去、现在与未来
  7. 矩形脉冲信号的_IQ信号的解调学习
  8. 升级遗留代码的最佳实践
  9. java虚拟机内存监控_java虚拟机内存监控工具jps,jinfo,Jstack,jstat,jmap,jhat使用...
  10. (笔记)学习C语言经典书籍推荐
  11. spring自带任务调度-xml方式
  12. 怎么设置php 中小窗口浮动,CSS_闭合浮动元素超级简单的方法,无意中看到的一个非常不错的 - phpStudy...
  13. Java Collection框架入门
  14. 正则爬取猫眼电影排行榜 待修改版
  15. 『电脑技巧』破解Win7/Win8登录密码
  16. EditPlus去除空行
  17. 10 道 OOP 方面的 Java 面试题,祝你跳槽涨薪一臂之力
  18. 小说里的编程 【连载之十二】元宇宙里月亮弯弯
  19. 【随笔】从友商丢单看滤食生活
  20. 环境实时监控系统的设计(以物联网仓储为例)

热门文章

  1. 烽火星空(软件测试)面试总结
  2. audible 有声书_如何在iPhone或iPad上购买Kindle或Audible书
  3. mysql 导入pdb_12c pdb的数据泵导入导出简单示例
  4. C# winform之属性 bindingNavigator
  5. pm2自身成为性能瓶颈
  6. [iOS]NSObject+LSDefaults
  7. 用 Python 撸一个 Web 服务器-第1章:Web 开发简介
  8. 更换手机号或者更换手机后QQ设备锁的设置问题
  9. html中加长提交按钮,HTML input submit提交按钮简介说明
  10. 网络安全之认识日志采集分析审计系统