多摩川编码器协议

embedded/2024/12/26 1:43:05/

多摩川编码器是一种常用的绝对值编码器,其协议基于485硬件接口的标准NRZ协议,通讯波特率为固定的2.5Mbps。以下是多摩川编码器协议的详细说明:
在这里插入图片描述

硬件接口

多摩川编码器使用RS485接口进行通信,接口定义如下:

  • 5V供电:电源线
  • GND:地线
  • 485 A:数据线A
  • 485 B:数据线B
  • PE:保护地线(可选)
  • 电池正极:多圈编码器特有的电池正极(单圈编码器没有此引脚)
  • 电池负极:多圈编码器特有的电池负极(单圈编码器没有此引脚)

通讯参数

  • 波特率:2.5Mbps
  • 数据格式:1起始位,8数据位,1停止位
  • 校验方式:无校验
  • 通讯方式:半双工

协议结构

多摩川编码器的通讯协议包括以下几个主要部分:

  • CF(Control Field):控制字段,表示命令类型。
  • SF(Status Field):状态字段,表示编码器的状态。
  • DF(Data Field):数据字段,表示具体的数据。
  • CRC:循环冗余校验,用于数据校验。

命令类型

多摩川编码器支持多种命令类型,主要包括读取编码器信息状态和读写EEPROM的指令。

1. 读取编码器信息状态
  • 读取单圈信息

    • 命令ID0 (0x02)
    • 响应CF + SF + ABS0 + ABS1 + ABS2 + CRC
    • 数据
      • ABS0:单圈位置低位
      • ABS1:单圈位置中位
      • ABS2:单圈位置高位(高7位为0,低17位为单圈位置信息)
  • 读取多圈信息

    • 命令ID1 (0x8A)
    • 响应CF + SF + ABM0 + ABM1 + ABM2 + CRC
    • 数据
      • ABM0:多圈位置低位
      • ABM1:多圈位置中位
      • ABM2:多圈位置高位(高8位为0,低16位为多圈位置信息)
  • 读取ID信息

    • 命令ID2 (0x92)
    • 响应CF + SF + ENID + CRC
    • 数据
      • ENID:编码器ID信息,默认为0x11(表示17位)
  • 读取全部信息

    • 命令ID3 (0x1A)
    • 响应CF + SF + ABS0 + ABS1 + ABS2 + ENID + ABM0 + ABM1 + ABM2 + ALMC + CRC
    • 数据
      • ABS0:单圈位置低位
      • ABS1:单圈位置中位
      • ABS2:单圈位置高位
      • ENID:编码器ID信息
      • ABM0:多圈位置低位
      • ABM1:多圈位置中位
      • ABM2:多圈位置高位
      • ALMC:报警状态
2. 清除和改变编码器状态
  • 清除所有故障位

    • 命令ID7 (0xBA)
    • 响应:无响应
    • 操作:间隔62.5µs以上,连续发送10次
  • 将当前位置设置为编码器零点

    • 命令ID8 (0xC2)
    • 响应:无响应
    • 操作:间隔62.5µs以上,连续发送10次
  • 将多圈数据清零

    • 命令IDC (0x62)
    • 响应:无响应
    • 操作:间隔62.5µs以上,连续发送10次
3. 读写EEPROM
  • 读取EEPROM

    • 命令ADF + EDF + CRC
    • 响应CF + SF + EDF + CRC
    • 数据
      • ADF:EEPROM地址
      • EDF:EEPROM地址的内容
  • 写入EEPROM

    • 命令ADF + EDF + CRC
    • 响应CF + SF + CRC
    • 数据
      • ADF:EEPROM地址
      • EDF:要写入的数据

CRC校验

  • 校验算法:CRC-8,多项式为x^8 + x^2 + x + 1(即0x07
  • 校验范围:从CF到DF的所有字节

示例

假设你要读取多摩川编码器的单圈位置信息,可以按照以下步骤进行:

  1. 发送命令

    0x02
    
  2. 接收响应

    0x02 0x00 0x12 0x34 0x56 0xAB
    
    • 0x02:CF(命令类型)
    • 0x00:SF(状态字段)
    • 0x12:ABS0(单圈位置低位)
    • 0x34:ABS1(单圈位置中位)
    • 0x56:ABS2(单圈位置高位)
    • 0xAB:CRC(校验值)

总结

多摩川编码器协议基于RS422接口,支持多种命令类型,包括读取编码器信息状态、清除和改变编码器状态以及读写EEPROM。协议中使用CRC-8校验确保数据传输的可靠性。


http://www.ppmy.cn/embedded/148765.html

相关文章

Cesium材质——Material

简介: Cesium.Material对象的目的,就是生成一段名称为czm_getMaterial的函数(示例代码如下), 这个czm_getMaterial函数,是shader代码,会被放到片元着色器中使用。 czm_material czm_getMater…

【蓝桥杯每日一题】 蜗牛——动态规划

蜗牛 蓝桥杯每日一题 2024-12-23 蜗牛 动态规划 题目描述 今天,一只蜗牛来到了二维坐标系的原点。 在 x 轴上有 n 根竹竿。它们平行于 y 轴,底部纵坐标为 0,横坐标分别为 x 1 , x 2 , … , x n x_1, x_2, \dots, x_n x1​,x2​,…,xn​。 竹…

VMware虚拟机三种网络工作模式

vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。 打开vmware虚拟机,我们可以在选项栏的“编辑”下的“虚拟网络编辑器”中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式),那…

【大语言模型】ACL2024论文-30 探索语言模型在文本分类中的伪相关性:概念层面的分析

【大语言模型】ACL2024论文-30 探索语言模型在文本分类中的伪相关性:概念层面的分析 目录 文章目录 目录文章摘要研究背景问题与挑战如何解决创新点算法模型概念标签获取测量概念伪相关性模型鲁棒性评估数据重平衡技术 实验效果伪相关性测量结果减轻伪相关性的方法 …

LabVIEW开发需要懂那些数学知识?

LabVIEW开发是一种图形化编程方法,广泛应用于工程和科学领域。在开发过程中,数学知识是不可或缺的,它不仅是分析和设计复杂系统的基础,还能提升开发效率和系统性能。下面将从应用需求、案例分析、介绍LabVIEW开发中所需的数学知识…

【C++动态规划 数位dp】2376. 统计特殊整数|2120

本文涉及知识点 下载及打开打包代码的方法兼述单元测试 C动态规划 数位dp LeetCode2376. 统计特殊整数 如果一个正整数每一个数位都是 互不相同 的,我们称它是 特殊整数 。 给你一个 正 整数 n ,请你返回区间 [1, n] 之间特殊整数的数目。 示例 1&…

完全二叉树的权值(蓝桥杯2019年试题G)

给定一棵包含N个节点的完全二叉树,树上的每个节点都有一个权值,按从上到小、从左到右的顺序依次是A1、A2……An,(1,2,n为下标。)如下图所示。 现在,小明要把相同深度的节点的权值加到一起&#…

uniapp小程序使用webview 嵌套 vue 项目

uniapp小程序使用webview 嵌套 vue 项目 小程序中发送 <web-view :src"urlSrc" message"handleMessage"></web-view>export default {data() {return {urlSrc: "",};},onLoad(options) {// 我需要的参数比较多 所以比较臃肿// 获取…