CANopen学习笔记(三)NMT
NMT
NMT主要用来管理和控制各个节点的状态,具体协议可以分为以下四类:
- NMT protocol
- Node guard protocol
- Heartbeat protocol
- 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的更多相关文章
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- [Firefly引擎][学习笔记三][已完结]所需模块封装
原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读: 笔记三主要就是各个模块的封装了,这里贴 ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- java之jvm学习笔记三(Class文件检验器)
java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...
- VSTO学习笔记(三) 开发Office 2010 64位COM加载项
原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...
- Java IO学习笔记三
Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...
- NumPy学习笔记 三 股票价格
NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...
- Learning ROS for Robotics Programming Second Edition学习笔记(三) 补充 hector_slam
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Learning ROS for Robotics Programming Second Edition学习笔记(三) indigo rplidar rviz slam
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Typescript 学习笔记三:函数
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
随机推荐
- TI AM64x工业核心板规格书(双核ARM Cortex-A53 + 单/四核Cortex-R5F + 单核Cortex-M4F,主频1GHz)
1 核心板简介 创龙科技SOM-TL64x是一款基于TI Sitara系列AM64x双核ARM Cortex-A53 + 单/四核Cortex-R5F + 单核Cortex-M4F设计的多核工业级核心 ...
- Filter拦截器从入门到快速上手与Listener监听器概述
前置内容: 会话跟踪技术 目录 1. 过滤器Filter 1.1 Filter快速入门 1.2 Filter执行流程 1.3 Filter使用细节 1.4 案例 2. 监听器Listener概述 2. ...
- Peaks:每周至少要进行一次用户访谈?
名字:Peaks 开发者 / 团队:Vogelhaus Apps GmbH 平台:iOS.watchOS 请简要介绍下这款产品 每个人生活的节奏都有一个内置的生理时钟,这就是所谓的昼夜节律.它不仅控制 ...
- 3. set 的使用
3. set 的使用 因为在实际工程中,我们不会将具体文件全部写出来,这是一件费力不讨好的事情. 3.1 set 定义变量 在 CMake 文件中,默认的变量数据类型是字符串,如果要用别的类型,需要进 ...
- 0. 什么是C++
什么是C++ 是C语言的扩展,有如下的两个特性: 关注性能 与底层硬件紧密结合 对象生命周期精确控制 零成本抽象(Zero-overhead Abstraction) 引入大量利于工程实践的特性 三种 ...
- 网易数帆实时数据湖 Arctic 的探索和实践
作者 | 蔡芳芳 采访嘉宾 | 马进 网易数帆平台开发专家 数据中台也要从离线为主走向实时化,湖仓一体是第一步. 数据从离线到实时是当前一个很大的趋势,但要建设实时数据.应用实时数据还面临两个难题.首 ...
- vue中 lang="ts"与js的区别
`lang="ts"` 与 `js` 的区别在于指定了脚本语言的类型,其中: - `lang="ts"` 指定了 TypeScript,一种由微软开发的 Jav ...
- 解锁Nginx日志的宝藏:GoAccess——你的实时、交互式Web日志分析神器!
在当今数字化的时代,网站的流量和用户行为数据就像是一座蕴藏着无尽秘密的宝藏.而如何有效地挖掘和分析这些数据,成为了许多网站管理者和开发者头疼的问题.GoAccess,一款开源的实时Web日志分析工具, ...
- docker 容器迁移到其他机器
docker 容器迁移到其他机器思路为:容器转为镜像,再保存为镜像文件,迁移到其他机器后导入为镜像 1.commit:将容器转镜像 # docker commit {container_id} {镜像 ...
- NIO操作文件读写
第一章 第一节,Buffuer 案例一 从buffur 读出数据, 创建了一个 FileInputStream 对象,并通过调用 getChannel() 方法获取了与之关联的 FileChanne ...