文章目录

  • 一、前言
  • 二、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. 前端(移动端)开发利器Chrome Developer Tools秘籍(下)
  2. windows一个目录下最大文件数目
  3. ZLMS教学管理平台系统V1.2.0最新版本发布,支持纯Web视频直播点播,还带运营在线支付功能!完全免费提供!...
  4. 【NLP】如何利用BERT来做基于阅读理解的信息抽取
  5. VF01自动生成会计凭证
  6. 避免CONVT_NO_NUMBER的Runtime Errors
  7. Android Studio模拟器的root权限
  8. [css] 你知道全屏滚动的原理是什么吗?它用到了CSS的哪些属性?
  9. IntelliJ IDEA编码设置
  10. linux xp镜像文件,让Windows XP镜像文件小一点儿(转)
  11. 业绩上不去,老板和业务员都有责任,但首先要划分清楚责任
  12. 婚纱摄影五大标杆品牌告诉你,客资转化居然可以这么玩?
  13. 计算机二级python真题3和答案_计算机二级python真题:第3套综合应用题
  14. 全新版本的Tidy Up 5 Mac最新版!重复文件查找和磁盘清理工具
  15. wpf中groupbox有什么用_日语中螃蟹用什么来数?
  16. 一份平面设计指南分享给大家
  17. Log4j漏洞及解决方案,亲测
  18. 左手云通讯,右手AI,容联为何能成为云联络中心“风向标”?
  19. RationalDMIS 2020 编程技巧
  20. 使用gradle发布文件到maven仓库

热门文章

  1. 迁移学习resnet_ResNet-V1-50卷积神经网络迁移学习进行不同品种的花的分类识别
  2. BindingNavigator操作DatagridView的数据
  3. C语言三字棋优化,实现ROW*COL个格子,ZI字棋
  4. 剑指offer:圆圈中最后剩下的数
  5. 使用iOS内支付IAP详细流程
  6. 【人工智能AI :Open AI】我想写一本书,书名是《中国文学史》,帮我列一下目录,细化到三级目录,不少于2000字。
  7. 二维数组大小的确定!你真的是二维数组吗?
  8. 光荣使命登录显示服务器,光荣使命手游进不去怎么办 游戏进不了解决方法一览...
  9. 针对USB接口的安全测试方法研究
  10. Python基础知识与常用数据类型