NMT

NMT主要用来管理和控制各个节点的状态,具体协议可以分为以下四类:

  1. NMT protocol
  2. Node guard protocol
  3. Heartbeat protocol
  4. Bootup protocol

NMT protocol

该协议是CANopen中网络管理的协议,控制和管理节点的状态,通过发送相关报文,可以让目标节点进入特定的工作状态。工作状态有以下几种

  • Initialization(初始化): 节点开始时进入初始化状态。
  • Pre-operational(预操作): 节点处于准备状态,但不参与正常的PDO(Process Data Object)通信。
  • Operational(操作): 节点完全进入操作模式,允许PDO通信。
  • Stopped(停止): 节点停止所有的通信。

NMT命令通常由网络管理器发送,命令包括:

命令 描述 cs值
Start Remote Node 将节点切换到Operational模式 0x01
Stop Remote Node 将节点切换到Stopped模式 0x02
Enter Pre-operational 将节点切换到Pre-operational模式 0x80
Reset Node 重置节点,重新启动节点 0x81
Reset Communication 重置节点的通信部分 0x82

其具体值为cs值(一字节)+nodeid(一字节)

Note : To command all the nodes, use nodeId = 00

Examples

  • To put the node 0x6 in operational mode : 000 01 06
  • To put all the nodes in pre-operational mode : 000 80 00

Node Guard protocol

节点监护协议(Node Guard protocol),用于主设备监控从设备的状态。由主设备定期发送,如从节点没在规定时间内回应,则主节点认为该节点出现了故障。(该报文中有翻转位)

Heartbeat protocol

心跳协议(Heartbeat protocol),是节点监护协议的简化版本,心跳协议不需要主设备定期发送消息来请求从设备回应,而是每个节点自主发布心跳报文。(该报文中没有翻转位)

Bootup protocol

Bootup协议是CANopen节点在启动时,通知主设备其状态的协议,在初始化进入预操作状态时,该节点会发送Bootup表示节点已经初始化完成,并且可以接收管理指令。

CANopen学习笔记(三)NMT的更多相关文章

  1. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  2. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  3. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  4. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  5. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

  6. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

  7. NumPy学习笔记 三 股票价格

    NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...

  8. Learning ROS for Robotics Programming Second Edition学习笔记(三) 补充 hector_slam

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(三) indigo rplidar rviz slam

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  10. Typescript 学习笔记三:函数

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

随机推荐

  1. WEB入门 - 文件上传

    WEB入门 - 文件上传 参考文章 https://fushuling.com/index.php/2023/08/20/ctfshow刷题记录持续更新中/ https://www.cnblogs.c ...

  2. 微服务网关Gateway使用

    为什么需要网关? Gateway网关是我们服务的守门神,所有微服务的统一入口. 网关的核心功能特性 请求路由和负载均衡 一切请求都必须先经过gateway,但网关不处理业务,而是根据某种规则,把请求转 ...

  3. Simple WPF: WPF自定义一个可以定义步长的SpinBox

    最新内容优先发布于个人博客:小虎技术分享站,随后逐步搬运到博客园. 通过WPF的按钮.文本输入框实现了一个简单的SpinBox数字输入用户组件并可以通过数据绑定数值和步长.本文中介绍了通过Xaml代码 ...

  4. 什么情况下会使用array.reduce函数

    当业务需要从一个数组里求出某项的和的时候. 1.for遍历 var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] var resulte = 0; for (let inde ...

  5. 大一新生的作业(洛谷P1150,1035,1075)

    本帖背景:此帖讲解大一新生团队作业 截止日期10-31 17:09 P1150(Peter的烟) 算法简介 本题主要考察的是模拟算法 模拟算法一般考察一些比较基础的题目,它将生活中的实例融合到了编程题 ...

  6. Luogu P2036 [COCI2008-2009 #2] PERKET

    今天我们来看一道题:Luogu P2036 [COCI2008-2009 #2] PERKET 这道题不难,典型的暴力枚举 由于食材数量随机,无法直接用循环解,但是可以使用递归 \(MY_{CODE: ...

  7. iOS开发基础109-网络安全

    在iOS开发中,保障应用的网络安全是一个非常重要的环节.以下是一些常见的网络安全措施及对应的示例代码: Swift版 1. 使用HTTPS 确保所有的网络请求使用HTTPS协议,以加密数据传输,防止中 ...

  8. 【JavaScript高级03】执行上下文和执行上下文栈

    1,函数提升和变量提升 编写以下代码: var a = 3 function fn () { console.log(a) var a = 4 } fn() 上面的JavaScript代码执行结果为一 ...

  9. 关于@Mapper与@MapperScan

    o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'gggDao' and 'com.xxx.dao ...

  10. 《最新出炉》系列初窥篇-Python+Playwright自动化测试-58 - 文件下载

    1.简介 前边几篇文章讲解完如何上传文件,既然有上传,那么就可能会有下载文件.因此宏哥就接着讲解和分享一下:自动化测试下载文件.可能有的小伙伴或者童鞋们会觉得这不是很简单吗,还用你介绍和讲解啊,不说就 ...