多摩川编码器协议

多摩川编码器是一种常用的绝对值编码器,其协议基于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.mzph.cn/news/890542.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI新书推荐:深度学习和大模型原理与实践(清华社)

本书简介 在这个信息爆炸、技术革新日新月异的时代,深度学习作为人工智能领域的重要分支,正引领着新一轮的技术革命。《深度学习和大模型原理与实践》一书,旨在为读者提供深度学习及其大模型技术的全面知识和实践应用的指南。 本书特色在于…

redis延迟队列

Redis延迟队列 Redis延迟队列是基于Redis构建的消息队列,用来处理需延迟执行的任务。 基本原理 它借助Redis的有序集合(Sorted Set)数据结构达成目的。会把任务及其执行时间分别当成成员与分值存进有序集合,由于执行时间作为分值…

Android 之 List 简述

一、简单创建方式 Android 开发中&#xff0c;列表有很多种类&#xff0c;如ArrayList、LinkedList、List、MutableList等&#xff0c;创建列表的方式如下所示&#xff1a; fun listDemo() {// 使用 listOf 创建不可变的空列表val list listOf<Int>()val list1 listOf…

webrtc音频模块(三) windows Core Audio API及声音的播放

在前面介绍了ADM(Audio Device Module)&#xff0c;它用于抽象音频设备管理和音频数据采集/播放接口。windows的实现是AudioDeviceWinowCode&#xff0c;它封装了Core Audio APIs实现了对音频设备的操作。 Core Audio APIs windows提供了多种音频操作API&#xff0c;比如最常…

微信小程序页面之间的传值方式

在微信小程序的开发过程中&#xff0c;页面之间的传值是一个常见的操作。根据多年的实践&#xff0c;我就我所知道的小程序页面之间的传值方式&#xff0c;进行简单的总结。希望能够帮助大家。 一、URL参数传递 原理 这种方式类似于网页开发中的URL传参。在微信小程序中&…

cursor保存更改操作技巧

1. 当我们在agent模式时&#xff0c;要求cursor更改代码时&#xff0c;cursor回答后&#xff0c;就已经更改了代码了&#xff0c;这时候就可以对程序进行编译和测试&#xff0c; 不一定先要点” accept“, 先测试如果没有问题再点“accept”&#xff0c;这样composer就会多一条…

运维工程师面试系统监控与优化自动化与脚本云计算的理解虚拟化技术的优点和缺点

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c; 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把…

各种网站(学习资源及其他)

欢迎围观笔者的个人博客~ 也欢迎通过RSS网址https://kangaroogao.github.io/atom.xml进行订阅~ 大学指南 上海交通大学生存手册中国科学技术大学人工智能与数据科学学院本科进阶指南USTC不完全入学指南大学生活质量指北科研论 信息搜集 AI信息搜集USTC飞跃网站计算机保研 技…

2.在 Vue 3 中使用 ECharts 实现动态时间轴效果

在前端开发中&#xff0c;时间轴&#xff08;Timeline&#xff09;是一种常见且有效的方式来展示时间相关的数据。在本篇文章中&#xff0c;我们将展示如何在 Vue 3 项目中使用 ECharts 创建一个具有动态时间范围的时间轴&#xff0c;并添加了今日时间的标记以及通过按钮来前进…

uniapp-微信小程序调用摄像头

1.uniapp中的index.vue代码 <template><view class"content"><view class"container"><!-- 摄像头组件 --><camera id"camera" device-position"front" flash"off" binderror"onCameraErr…

uni-app开发收货地址管理

目录 一:功能描述 二:功能实现 一:功能描述 收货地址在个人中心的我的地址里面,点击我的地址可以查看我的收货地址列表,可以新增收货地址,点击特定收货地址可以编辑和删除该地址信息。 二:功能实现 1:收货地址列表 <view v-for="(item, index) in data_lis…

Android修行手册 - 移动端几种常用动画方案对比

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

Java日志框架:log4j、log4j2、logback

文章目录 配置文件相关1. properties测试 2. XMl使用Dom4j解析XML Log4j与Log4j2日志门面 一、Log4j1.1 Logges1.2 Appenders1.3 Layouts1.4 使用1.5 配置文件详解1.5.1 配置根目录1.5.2 配置日志信息输出目的地Appender1.5.3 输出格式设置 二、Log4j22.1 XML配置文件解析2.2 使…

《信管通低代码信息管理系统开发平台》Linux环境安装说明

1 简介 信管通低代码信息管理系统应用平台提供多环境软件产品开发服务&#xff0c;包括单机、局域网和互联网。我们专注于适用国产硬件和操作系统应用软件开发应用。为事业单位和企业提供行业软件定制开发&#xff0c;满足其独特需求。无论是简单的应用还是复杂的系统&#xff…

HTTPS协议原理与CA认证

目录 引言 HTTPS 是什么 1.什么是"加密" 2. 为什么要加密 3. 常⻅的加密⽅式 对称加密 ⾮对称加密 4.数据摘要 && 数据指纹 5. 数字签名 HTTPS 的⼯作过程探究 ⽅案 1 - 只使⽤对称加密 ⽅案 2 - 只使⽤⾮对称加密 ⽅案 3 - 双⽅都使⽤⾮对称加密…

STM32单片机芯片与内部33 ADC 单通道连续DMA

目录 一、ADC DMA配置——标准库 1、ADC配置 2、DMA配置 二、ADC DMA配置——HAL库 1、ADC配置 2、DMA配置 三、用户侧 1、DMA开关 &#xff08;1&#xff09;、标准库 &#xff08;2&#xff09;、HAL库 2、DMA乒乓 &#xff08;1&#xff09;、标准库 &#xff…

vulnhub靶场——Log4j2

第一步:搭建靶场环境 #开启环境 cd vulhub/log4j/CVE-2021-44228 docker-compose up -d 来到网站首页 第二步:搭建一个dnslog平台上获取我们注入的效果 第三步:发现 /solr/admin/cores?action 这里有个参数可以传 我们可以看到留下了访问记录并且前面的参数被执行后给我们回…

leetcode 05 回文字符串

leetcode 05 回文字符串 1. 描述 给你一个字符串&#xff0c;找到里面最长的回文字符串 2. 事例 示例 1&#xff1a; 输入&#xff1a;s "babad" 输出&#xff1a;"bab" 解释&#xff1a;"aba" 同样是符合题意的答案。示例 2&#xff1a; …

使用idea创建JDK8的SpringBoot项目

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 使用idea创建JDK8的SpringBoot项目 前言我们经常在创建新的springboot项目&#xff0c;默认使用的是spring.io进行创建&#xff0c;但是它总是只会提供高版本的创建方式&…

U9多组织销退业务流程的总结

多组织销退业务流程&#xff0c;它的运行模式也是奇葩&#xff0c;确实不好理解其中的道理。用户实践中更是障碍重重&#xff0c;束手无策。左也不是右也不是&#xff0c;无路可走。 不能理解透彻造成的吧&#xff0c;所以做一个总结。 既有退货&#xff0c;必有出货单。从出货…