当前位置: 首页 > news >正文

通信协议之多摩川编码器协议

前言


学习永无止境!本篇是通信协议之多摩川编码器协议,主要介绍RS485硬件层以及软件层帧格式。
注:本文章为学习笔记,部分图片与文字来源于网络/应用手册,如侵权请联系!谢谢!


一、多摩川协议概述


1.1 多摩川协议简介

        多摩川协议是基于485硬件接口的标准NRZ协议,通讯波特率为固定的2.5MHz,所以其硬件接口也就只有数据线(data wire)和电源线(supply wire),不需要时钟线(clk wire)。

内容规格
传送方式半双工串行通信
同步方式起止同步(1bit起始、8bit数据、1bit停止)
通信波特率2.5Mbps
传送顺序LSB在前
传送代码NRZ
传送错误校验方式CRC-8(X^8 + 1)

1.2 RS485简介

  • 简介:RS485是半双工异步串行通信,其使用差分信号,逻辑1(压差在 +2V~+6V ),逻辑0(压差在 -2V~-6V );
  • 发送与接收:使用 485 收发器来转换 TTL 电平和 RS485 电平,发送数据时,串口控制器的 TX 信号经过收发器转换成差分信号传输到总线上,接收数据时,收发器把总线上的差分信号转化成 TTL 信号通过 RX 引脚传输到串口控制器中。
  • 硬件原理图
引脚名称功能
RO接RX,输出引脚
RE接收使能(低电平有效)
DE发送使能(高电平有效)
DI接TX,输入引脚
A同向输入/输出
B反向输入/输出
VCC+3.3V
GNDGND


二、多摩川协议帧详解


2.1 数据帧构成

  • 命令字(Command)格式:1bit起始、3bit固定、4bit数据ID、1bit校验、1bit停止;

数据位校验位ID命令字作用
CC0CC1CC2CC3CC4
0000000x02获取一圈数据
1000110x8A获取多圈数据
0100120x92获取编码器编号
1100030x1A获取全部数据
0110060x32写EEPROM
10111D0xEA读EEPROM
1110170xBA重置ERROR
0001180xC2重置圈数
00110C0x62重置圈数+EEPROM
  • 数据字(Data)格式:1bit起始、8bit数据、1bit停止、低位先行;

  • 状态字(State)格式:1bit起始、4bit信息(默认0)、2bitERROR、2bitALARM、1bit停止;

数据位bit内容
ea01计数错误
ea11具体有过热、多圈、电池灯报警
ca01请求帧偶校验错误
ca11请求帧分隔符错误
  • 警报字(ALMC)格式:1bit起始、8bit报警、1bit停止;

数据位bit内容
dn01速度异常
dn11超速
dn21计数错误
dn31多圈计数器溢出
dn41过热
dn51多圈错误
dn61电池错误
dn71电池警报
  • EEPROM地址格式:ADDX:0x00~0x1E,BUSY:读写状态;

  • 校验(CRC)格式:G(x) = X^8 + 1 (X = rc0 ~ rc7);

 2.2 数据帧格式

2.2.1 获取编码器数据

  • 发送数据:CMD;
  • 接收数据:CMD+STS+(D0~D7)+CRC;
  • CMD与(D0~D7)的关系如下:ABS0~ABS2(单圈),ABM0~ABM2(多圈);

CMDD0D1D2D3D4D5D6D7
0x02ABS0ABS1ABS2
0x8AABM0ABM1ABM2
0x92ENID
0x1AABS0ABS1ABS2ENIDABM0ABM1ABM2ALMC
0xBAABS0ABS1ABS2
0xC2ABS0ABS1ABS2
0x62ABS0ABS1ABS2

2.2.2 写入EEPROM

  • 发送:CMD+A0+D0+CRC;
  • 接收:CMD+A0+D0+CRC;

2.2.3 读取EEPROM

  • 发送:CMD+A0+CRC;
  • 接收:CMD+A0+D0+CRC;

待续...

相关文章:

通信协议之多摩川编码器协议

前言 学习永无止境!本篇是通信协议之多摩川编码器协议,主要介绍RS485硬件层以及软件层帧格式。 注:本文章为学习笔记,部分图片与文字来源于网络/应用手册,如侵权请联系!谢谢! 一、多摩川协议概述…...

新星杯-ESP32智能硬件开发--ESP32的I/O组成-系统中断矩阵

本博文内容导读📕🎉🔥 ESP32开发板的中断矩阵、功能描述与实现、相关API和示例程序进行介绍 ESP32中断矩阵将任一外部中断源单独分配到每个CPU的任一外部中断上,提供了强大的灵活性,能适应不同的应用需求。 ESP32中断主…...

4329 树的连边II

通过链式前向星来求树的直径 主要包括&#xff1a;链式前向星的初始化&#xff0c;遍历&#xff0c;使用 #include<bits/stdc.h> using namespace std; using lllong long; const int N1e59; int n,head[N],to[N<<1],nx[N<<1],cnt0; int ans0; int dp[N][2…...

Spring的Bean详解=Bean别名+作用范围+使用场景

目录 Bean的别名&#xff1a;id和name的地位等同 Bean的作用范围&#xff1a;scope单例与非单例 Bean的使用场景&#xff1a;什么时候交给容器&#xff1f;什么时候不交&#xff1f;​ Bean的别名实践&#xff08;含代码&#xff09; 如果看不懂下面的&#xff0c;例如不知道i…...

聊一聊如何适应AI时代

我的工作行业就不提了&#xff0c;处于AI的前沿阵地之一&#xff0c;AI的进步非常惊艳&#xff0c;虽然我对AI持有开放态度&#xff0c;但也恐惧&#xff0c;因为我的进步跟不上它迭代的速度。 AI能涉及的行业&#xff1a;辅助驾驶、医疗诊断、数据分析、文稿生成、工业控制...…...

dl学习笔记:(4)简单神经网络

&#xff08;1&#xff09;单层正向回归网络 bx1x2z100-0.2110-0.05101-0.051110.1 接下来我们用代码实现这组线性回归数据 import torch x torch.tensor([[1,0,0],[1,1,0],[1,0,1],[1,1,1]], dtype torch.float32) z torch.tensor([-0.2, -0.05, -0.05, 0.1]) w torch.…...

电商项目高级篇08-springCache

电商项目高级篇08-springCache 1、整合springCache2、Cacheable细节设置 1、整合springCache 1、引入依赖 <!--引入springCache--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifa…...

4.1 AI 大模型应用最佳实践:如何提升 GPT 模型使用效率与质量

AI 大模型应用最佳实践:如何提升 GPT 模型使用效率与质量 随着人工智能技术的不断进步,GPT系列大模型已经成为了自然语言处理领域的核心工具。无论是在文本生成、对话系统,还是内容创作等领域,GPT模型都展现出了强大的能力。然而,要高效、精确地使用这些模型,仍然需要一…...

Linux top命令cpu使用率计算底层原理

在Linux中&#xff0c;top命令通过读取内核提供的统计数据来计算CPU使用率。其底层原理可以概括为以下几步&#xff1a; 1. 读取 /proc/stat top命令主要从/proc/stat文件中获取CPU的统计信息。这个文件包含了每个CPU核心&#xff08;或所有核心合计&#xff09;的各种状态下的…...

vue知识点总结

vue2知识点总结 watch: watch 是 Vue 提供的一个选项&#xff0c;它允许你观察 Vue 实例上的数据变化。当观察的数据发生变化时&#xff0c;会执行相应的回调函数&#xff0c;这样你就可以对数据的变化做出响应&#xff0c;执行一些特定的操作。 export default {data() {re…...

[实现Rpc] 环境搭建 | JsonCpp | Mudou库 | callBack()

目录 1. 项目介绍 2. 技术选型 3. 开发环境和环境搭建 Ubuntu-22.04环境搭建 1. 安装 wget&#xff08;一般情况下默认会自带&#xff09; 2. 更换国内软件源 ① 备份原始 /etc/apt/sources.list 文件 ② 编辑软件源文件 ③ 更新软件包列表 3. 安装常用工具 3.1 安装…...

llamafactory使用8张昇腾910b算力卡lora微调训练qwen2-72b大模型

说明 我需要在昇腾服务器上对Qwen2-72B大模型进行lora微调&#xff0c;改变其自我认知。 我的环境下是8张910B1卡。显存约512GB。 准备&#xff1a;安装llamafactory 请参考官方方法安装llamafactory&#xff1a;https://github.com/hiyouga/LLaMA-Factory 特别强调下&…...

C++,设计模式,【目录篇】

文章目录 1. 简介2. 设计模式的分类2.1 创建型模式&#xff08;Creational Patterns&#xff09;&#xff1a;2.2 结构型模式&#xff08;Structural Patterns&#xff09;&#xff1a;2.3 行为型模式&#xff08;Behavioral Patterns&#xff09;&#xff1a; 3. 使用设计模式…...

《目标检测数据集下载地址》

一、引言 在计算机视觉的广袤领域中&#xff0c;目标检测宛如一颗璀璨的明星&#xff0c;占据着举足轻重的地位。它宛如赋予计算机一双锐利的 “眼睛”&#xff0c;使其能够精准识别图像或视频中的各类目标&#xff0c;并确定其位置&#xff0c;以边界框的形式清晰呈现。这项技…...

C 语言的void*到底是什么?

一、void* 的类型任意性 void* 是一种通用指针类型。它可以指向任意类型的数据。例如&#xff0c;它可以指向一个整数&#xff08;int&#xff09;、一个浮点数&#xff08;float&#xff09;、一个字符&#xff08;char&#xff09;或者一个结构体等。在C语言中&#xff0c;当…...

Linux中的文件上传和下载

Linux中的文件上传和下载 一、连接 SFTP 在 SecureCRT 中&#xff0c;将鼠标移动到连接窗口的标题上&#xff0c;按鼠标右键&#xff0c;选择“连接 SFTP”标签&#xff0c;即可进入 SFTP 模式。 二、基本指令及用途 1. 显示当前目录 显示本地当前目录&#xff1a;lpwd 示例…...

DDD - 微服务落地的技术实践

文章目录 Pre概述如何发挥微服务的优势怎样提供微服务接口原则微服务的拆分与防腐层的设计 去中心化的数据管理数据关联查询的难题Case 1Case 2Case 3 总结 Pre DDD - 软件退化原因及案例分析 DDD - 如何运用 DDD 进行软件设计 DDD - 如何运用 DDD 进行数据库设计 DDD - 服…...

fgets、scanf存字符串应用

题目1 夺旗&#xff08;英语&#xff1a;Capture the flag&#xff0c;简称 CTF&#xff09;在计算机安全中是一种活动&#xff0c;当中会将“旗子”秘密地埋藏于有目的的易受攻击的程序或网站。参赛者从其他参赛者或主办方偷去旗子。 非常崇拜探姬的小学妹最近迷上了 CTF&am…...

鸿蒙动态路由实现方案

背景 随着CSDN 鸿蒙APP 业务功能的增加&#xff0c;以及为了与iOS、Android 端统一页面跳转路由&#xff0c;以及动态下发路由链接&#xff0c;路由重定向等功能。鸿蒙动态路由方案的实现迫在眉睫。 实现方案 鸿蒙版本动态路由的实现原理&#xff0c;类似于 iOS与Android的实…...

Spring-boot3.4最新版整合swagger和Mybatis-plus

好家伙,今天终于开始用spring-boot3开始写项目了&#xff0c;以后要彻底告别1.x和2.x了&#xff0c;同样的jdk也来到了最低17的要求了,废话不多说直接开始 这是官方文档的要求jdk最低是17 maven最低是3.6 一. 构建工程,这一步就不需要给大家解释了吧 二. 整合Knife4j 1.大于…...

ESP8266红外MQTT网关:基于Homie协议的轻量级IoT封装

1. 项目概述simple-homie-iot-ir是一个面向 ESP8266 平台&#xff08;亦可适配 ESP32&#xff09;的轻量级嵌入式 IoT 封装库&#xff0c;其核心定位并非从零实现 Homie 规范&#xff0c;而是作为homie-iotESP 库的简化抽象层&#xff0c;专为红外&#xff08;IR&#xff09;设…...

别再忽略#@save和assert了!Python开发中的这两个小技巧能帮你省下大把时间

Python开发中的高效利器&#xff1a;#save与assert实战指南 在Python开发的世界里&#xff0c;真正区分普通开发者与高效开发者的往往不是对复杂框架的掌握程度&#xff0c;而是对这些看似简单却极其强大的小工具的熟练运用。今天我们要深入探讨的两个工具——#save注释和asser…...

Python 3.12 Special Attribute - 08 - __module__

Python 3.12 Special Attribute - __module____module__ 是 Python 中一个重要的内置特殊属性&#xff0c;它存储了定义 类、函数、方法 的模块名称&#xff08;字符串&#xff09;。这个属性在序列化&#xff08;如 pickle&#xff09;、动态导入、调试以及框架设计中扮演着…...

数据资源:全球首个高分辨率(30米×30米)的高海拔湿地地图数据集

全球首个高分辨率&#xff08;30米30米&#xff09;的高海拔湿地地图数据集 数据介绍 全球首个高分辨率&#xff08;30米30米&#xff09;的高海拔湿地地图数据集 全球高分辨率地图&#xff08;30 mx 30 m&#xff09;&#xff0c;显示了世界主要山区&#xff08;即安第斯山脉…...

从领域驱动到本体论:AI 时代的架构方法论变了簧

从0构建WAV文件&#xff1a;读懂计算机文件的本质 虽然接触计算机有一段时间了&#xff0c;但是我的视野一直局限于一个较小的范围之内&#xff0c;往往只能看到于算法竞赛相关的内容&#xff0c;计算机各种文件在我看来十分复杂&#xff0c;认为构建他们并能达到目的是一件困难…...

【技术解析】计算图构建模式实战:从静态编译到动态执行的演进与选择

1. 计算图&#xff1a;深度学习的核心骨架 第一次接触计算图这个概念时&#xff0c;我正被TensorFlow 1.x的Session机制折磨得死去活来。当时怎么也想不明白&#xff0c;为什么明明写了y x * x 2这样的代码&#xff0c;却要等到sess.run()时才能看到结果。后来才明白&#xf…...

ComfyUI自定义脚本完全指南:10个高效功能提升AI绘画体验

ComfyUI自定义脚本完全指南&#xff1a;10个高效功能提升AI绘画体验 【免费下载链接】ComfyUI-Custom-Scripts Enhancements & experiments for ComfyUI, mostly focusing on UI features 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Custom-Scripts Comf…...

Graphormer开源模型部署手册:Supervisor开机自启+日志监控全配置

Graphormer开源模型部署手册&#xff1a;Supervisor开机自启日志监控全配置 1. 模型概述 Graphormer是由微软研究院开发的纯Transformer架构图神经网络模型&#xff0c;专门用于分子属性预测任务。该模型通过创新的分子图表示方法&#xff0c;在OGB、PCQM4M等分子基准测试中大…...

从幻觉到失控,大模型对齐为何总在上线后崩盘?5个被99%团队忽略的工程断点

第一章&#xff1a;从幻觉到失控&#xff1a;大模型对齐崩盘的本质归因 2026奇点智能技术大会(https://ml-summit.org) 大模型的“对齐崩盘”并非偶然故障&#xff0c;而是多重目标函数在高维策略空间中发生结构性解耦的必然结果。当监督微调&#xff08;SFT&#xff09;与基于…...

Windows 11下ROS2 Humble与PyCharm无缝集成实战(避坑指南+完整配置流程)

Windows 11下ROS2 Humble与PyCharm无缝集成实战&#xff08;避坑指南完整配置流程&#xff09; 在机器人操作系统&#xff08;ROS&#xff09;生态中&#xff0c;Windows平台的支持一直是个挑战。随着ROS2 Humble版本的发布&#xff0c;微软与开源社区的深度合作为Windows开发者…...