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

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

前言


学习永无止境!本篇是通信协议之多摩川编码器协议,主要介绍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;

待续...


http://www.kler.cn/a/509924.html

相关文章:

  • [计算机网络]一. 计算机网络概论第一部分
  • Qt之文件系统操作和读写
  • 高级编程语言的基本语法在CPU的眼中是什么样的呢?
  • 第4章 Kafka核心API——Kafka客户端操作
  • C语言的语法糖
  • 数字小偷:2025年全面防护指南
  • LabVIEW 实现线路板 PCB 可靠性测试
  • 网络安全 | 域名和DNS详解
  • vim使用指南
  • Armv8/Armv9架构从入门到精通-介绍
  • nss刷题3
  • .Net Core微服务入门系列(一)——项目搭建
  • Conda 常用操作命令与使用示例
  • CC工具箱使用指南:【Excel点集转面要素(批量)】
  • 请简述公司的系统服务架构类型(单体架构、分布式架构、微服务架构、分层架构、集群架构、SOA 架构、中台架构)
  • Reactor 模式在 Edis、Nginx 和 Netty 中的应用与高性能网络模式解析
  • 青少年编程与数学 02-007 PostgreSQL数据库应用 01课题、PostgreSQL数据库
  • Day30下 - RAG系统
  • 实现星海波动粒子特效:基于 Canvas 和 JavaScript 的 3D 波动效果
  • P7865 「EVOI-RD1」无人机航拍( ( [主题训练B1]线段树 ) 第四题)[ 采用高级二维差分数组 ]
  • 【MySQL】环境变量配置
  • 常用图标详解:提升用户体验的视觉元素
  • 使用Dify访问数据库(mysql)
  • EXCEL+Python搞定数据处理(第一部分:Python入门-第1章:为什么要用Python为Excel编程)
  • matlab函数主要是计算与坐标差相关的矩阵 `xx` 和 `yy` 及其衍生矩阵
  • IDEA2023版中TODO的使用