首页 > 其他分享 >多摩川编码器协议理解与自做经历-(1)

多摩川编码器协议理解与自做经历-(1)

时间:2023-08-21 11:46:36浏览次数:36  
标签:编码器 多圈 多摩 CF 信息 理解 单圈

多摩川协议理解-(1)

多摩川编码器有绝对值的和增量的两种,这边主要是我对多摩川绝对值的理解。

前文,

多摩川编码器其实是日本有一家公司叫多摩川的公司做出来的,其实他们家有很多种编码器,但是这里我只对他的们出的协议作出理解。

 

硬件接口方面,因为有单圈和多圈只分,多圈一般有电池,所以会多一个带电池的。其主要就是其实是485通讯

 

单圈 多圈
5V供电 5V供电
GND GND
485 A 485 A
485 B 485 B
PE  PE
NC 电池正极
NC 电池负极
  它的通讯波特率是2.5M,   通讯方面,对于绝对试编码器,其一般流程都是,发送指令给编码器,编码器返回对应信息。 其中多摩川编码器有多种指令,这里我们以单圈17位编码器为例子   指令分我分为两类 1,读取编码器信息状态,清除和改变编码器错误和状态的一些指令(单CF一个字节) 2,读写编码器的EEPROM的的指令     在详细说明多摩川的指令和返回信息,这边我们先说明一些名词  
指令名词 解释
CF 不同的命令类型(比如我要读取绝对值信息)
SF 编码器的一些状态
DF 编码器的位置信息
ADF 编码器的EEPROM地址
EDF 编码器EEPROM地址的内容
CRC crc校验多项式x8+1,(其实这就是异或校验)
  1,读取编码器信息状态的指令示意图  

 

      2,读写EEPROM的指令图       写EEPROM

 

  读EEPROM  

 4,CF指令说明

CF的类型 CF数组(发送) 解释,和返回
读取信息 ID0(0x02) 读取单圈信息,返回CF+SF+ABS单圈信息+CRC
ID1(0X8A) 读取多圈信息,返回CF+SF+ABM多圈信息+CRC
ID2(0X92) 读取ID信息,返回CF+SF+ENID编码器ID+CEC
ID3(0X1A) 读取全部信息,返回CF+SF+ABS+ENID+ABM+ALMC+CRC
清除和改变 ID7(0XBA)  清除所以故障位,间隔62.5us以上,连续发10次
 ID8(0XC2)  将当前位置设置为编码器零点,间隔62.5us以上,连续发10次(断电后也生效)
 IDC(0X62)  将多圈数据清零,间隔62.5us以上,连续发10次

5,DF 说明

CF类型 DF0 DF1 DF2 DF3 DF4 DF5 DF6 DF7

ID0(0X02)

ABS0 ABS1 ABS2          
ID1(0X8A) ABM0 ABM1 ABM2          
ID2(0X92) ENID              
ID3(0X1A) ABS0 ABS1 ABS2 ENID ABM0 ABM1 ABM2 ALMC
ID7(0XBA) ABS0 ABS1 ABS2          
ID8(0XC2) ABS0 ABS1 ABS2          

1、 ABS0~ABS2 分别为编码器单圈位置的低位、中位和高位其中 ABS2 的高 7 位为 0,其他数据组成 17bits 单圈位置信息。

2、 ABM0~ABM2 分别为编码器多圈位置的低位、中位和高位,其中 ABM2 为 0,其他数据组成 16bits 多圈位置信息

3、 ENID 为编码器 ID 信息,默认为 0x11(一般表示为17位)。PS(0X17表示23位)

 

4、ALMC SF 由于目前其实磁编码器和光编有不一样,其实得看编码器厂商,这边我贴一下多摩川原版的图片定义,比如磁编,有可能会有磁铁弱的警告定义,具体还得问厂商拿手册看一下。

这是我第一次写博客,有错的地方希望能帮我指出(因为这是我自己网上摸索的,自己也是刚毕业没一年小公司没人带,这些里面也不一定是全对),下几期我会实际,解析举例,C代码,时序上的讲解,和做一个多摩川编码器。

 

 

 

         

标签:编码器,多圈,多摩,CF,信息,理解,单圈
From: https://www.cnblogs.com/dudulu002/p/17639786.html

相关文章

  • 深入理解数据库索引优化策略
    数据库索引在后端开发中扮演着至关重要的角色,它们能够显著提升查询性能和数据检索效率。然而,在面对大规模数据和复杂查询的情况下,如何优化索引策略成为了一个挑战。本篇博客将深入探讨数据库索引优化策略,涵盖Java和Python的实例,并介绍一些常见的数据库索引类型。索引的重要性索引是......
  • 解密Nginx与Elasticsearch的协同高效:深入理解反向代理与全文搜索
    在当今高度互联的网络环境中,后端技术的结合与优化对于构建高性能应用至关重要。本篇博客将聚焦于两个关键主题:Nginx反向代理和Elasticsearch全文搜索,通过深入分析实现原理和代码示例,展示它们如何协同工作以提升系统性能。Nginx反向代理的作用Nginx不仅仅是一款高性能的Web服务器,还......
  • 深入理解数据库索引优化策略与原理
    在后端开发领域,数据库索引是优化查询性能的关键因素之一。本文将深入探讨数据库索引的优化策略和原理,重点关注Java与Python开发环境中的实际应用,同时结合Nginx与Elasticsearch等技术,为读者提供深奥的干货内容。1.索引概述与原理数据库索引是一种用于加速数据检索操作的数据结构。......
  • 关于UVM寄存器模型的理解
    UVM中的RAL寄存器模型的意义:让开发者能够方便,快速地配置dut的寄存器。RAL寄存器模型的实质:仍然是UVM中的一个类,但不是作为组件,而是和sequence一样,在basetest中被实例化和使用。本质上,RAL模型与DUT的通信还是依赖于agent的,其顺序是RAL模型通过发起sequence,信息经过adapter转换,给......
  • 快速理解什么是 JavaScript 的继承
    其实JavaScript中的继承,就是指的是一种机制,它允许一个对象(子对象)获取另一个对象(父对象)的属性和方法。这样的话子对象可以重用父对象的代码,同时还可以添加自己的特定功能。JavaScript是使用原型继承的方式来实现对象之间的继承关系。首先你肯定得知道一些基本概念:对象:在JavaScrip......
  • Streamlit 讲解专栏(四):深入理解按钮行为
    1前言欢迎来到我们关于Streamlit按钮行为的全面指南!按钮在Streamlit应用程序中是用户交互的基本组件。无论你是刚开始接触Streamlit还是已经有了一些经验,本指南都将为你提供如何在应用程序中有效使用按钮的坚实基础。在本文中,我们还将参考我之前写的三篇相关文章:Streamlit讲......
  • 对this对象的理解
    This是执行上下文中的一个属性,它指向最后一次调用这个方法的对象。在实际开发中,this的指向可以通过四种调用模式来判断。第一种是函数调用模式,当一个函数不是一个对象的属性时,直接作为函数来调用时,this指向全局对象。第二种是方法调用模式,如果一个函数作为一个对象的方法来......
  • 剖析MongoDB数据库:理解NoSQL设计模式、优化查询性能和数据安全性
    MongoDB是一个流行的NoSQL文档数据库,它使用JSON样式的文档存储数据。本文将对MongoDB进行剖析,包括NoSQL设计模式、优化查询性能和数据安全性。NoSQL设计模式文档数据库MongoDB采用文档数据库的设计模式,即将相关数据保存在单个文档中,而不是将其拆分成多个表。这种设计模式使得数......
  • 深入理解后端开发中的消息队列与异步处理
    在现代的应用开发中,消息队列和异步处理已成为构建高性能、可伸缩的后端系统的重要工具。本文将深入探讨消息队列的原理、优势,以及如何在后端开发中应用消息队列和异步处理。什么是消息队列?消息队列是一种将消息从一个应用传递到另一个应用的通信方式。它具有以下特点:解耦:消息队列可......
  • 深入理解后端开发中的微服务架构与容器化
    在现代的应用开发中,微服务架构和容器化技术已成为热门的话题。它们可以帮助构建高度可扩展、灵活、可维护的后端系统。本文将深入探讨微服务架构和容器化技术的原理、优势以及如何在后端开发中应用它们。什么是微服务架构?微服务架构是一种将应用拆分成一组小型、自治的服务的设计方......