问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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

创作时间:
作者:
@小白创作中心

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

引用
CSDN
1.
https://m.blog.csdn.net/m0_70655689/article/details/145124448

多摩川编码器协议是一种基于RS485硬件接口的通信协议,广泛应用于工业自动化领域。本文将详细介绍该协议的硬件层和软件层帧格式,包括数据帧构成、帧格式以及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
GND
GND

二、多摩川协议帧详解

2.1 数据帧构成

  • 命令字(Command)格式:1bit起始、3bit固定、4bit数据ID、1bit校验、1bit停止;
    数据位 校验位 ID 命令字 作用
    CC0 CC1 CC2 CC3 CC4
    0 0 0 0 0 0 0x02 获取一圈数据
    1 0 0 0 1 1 0x8A 获取多圈数据
    0 1 0 0 1 2 0x92 获取编码器编号
    1 1 0 0 0 3 0x1A 获取全部数据
    0 1 1 0 0 6 0x32 写EEPROM
    1 0 1 1 1 D 0xEA 读EEPROM
    1 1 1 0 1 7 0xBA 重置ERROR
    0 0 0 1 1 8 0xC2 重置圈数
    0 0 1 1 0 C 0x62 重置圈数+EEPROM

  • 数据字(Data)格式:1bit起始、8bit数据、1bit停止、低位先行;

  • 状态字(State)格式:1bit起始、4bit信息(默认0)、2bitERROR、2bitALARM、1bit停止;
    数据位 bit 内容
    ea0 1 计数错误
    ea1 1 具体有过热、多圈、电池灯报警
    ca0 1 请求帧偶校验错误
    ca1 1 请求帧分隔符错误

  • 警报字(ALMC)格式:1bit起始、8bit报警、1bit停止;
    数据位 bit 内容
    dn0 1 速度异常
    dn1 1 超速
    dn2 1 计数错误
    dn3 1 多圈计数器溢出
    dn4 1 过热
    dn5 1 多圈错误
    dn6 1 电池错误
    dn7 1 电池警报

  • 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与(D0D7)的关系如下:ABS0ABS2(单圈),ABM0~ABM2(多圈);
    CMD D0 D1 D2 D3 D4 D5 D6 D7
    0x02 ABS0 ABS1 ABS2
    0x8A ABM0 ABM1 ABM2
    0x92 ENID
    0x1A ABS0 ABS1 ABS2 ENID ABM0 ABM1 ABM2 ALMC
    0xBA ABS0 ABS1 ABS2
    0xC2 ABS0 ABS1 ABS2
    0x62 ABS0 ABS1 ABS2

2.2.2 写入EEPROM

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

2.2.3 读取EEPROM

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

待续...

本文原文来自CSDN

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号