关节驱动器 CANFD 通信协议

2024-04-04 22:04

本文主要是介绍关节驱动器 CANFD 通信协议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

       睿尔曼关节采用了问答方式进行通信,控制器发出指令包,模块返回应答包。一个CAN 总线网络中允许有多个模块,所以每个模块都分配有一个 ID 号。控制器发出的控制指令中包含 ID 信息,只有匹配上 ID 号的模块才能完整接收这条指令,并返回应答信息。所有的查询、控制和参数修改指令均通过对一个储存于模块主控芯片内部的内存控制表的读写操作完成。内存控制表的每一个地址存储两个字节,数据存储和传输均使用小端模式

一、关节协议

1.指令类型

可用指令类型如下:

2.FADCAN 总线协议

使用CANFD 的标准帧格式,只使用数据帧,远程帧无应答。CANFD 协议的数据帧最长 64 个字节,通讯速率可达 5M,CANFD 协议的数据长度码如下所示。

3.常用指令包

指令包格式如下:

仲裁域:只有目标ID段需要仲裁,仲裁域ID即为模块ID,模块ID为0x00~0x1E(0~30), 广播ID为0x00(0)。ID0固定为接口板使用。

控制域:DLC长度,即数据域字节长度,最大位64个字节,数据长度表如上所示;BRS表示速率可变,可变为1,不可变为0;ESI,暂定为0,总线不主动报错。

数据域:数据域第一个字节为指令类型,第二个字节为控制表索引, 第三到第四个字节为随指令发送的数据。读指令有一个字节数据,表示所要读取的内存表寄存器的数量;写指令数据段有两个字节数据,为要写入内存表的内容,低位在前。

4.常用应答包

应答包格式如下:

应答包的格式与指令包基本一致,其区别在于:

若模块收到的是读指令,则返回的数据段为指定长度的数据。

若模块收到的是写指令,则返回的数据段为操作是否成功,0x01-成功,0x00-失败。应答包的ID为指令包ID+0x100.

备注:当下发的CANFD控制帧不符合协议要求时,驱动器返回CMD_ERR应答包,应答包格式如下所示。

ERR代表错误类型,错误代码如下所示:

                  

5.位置伺服指令包

当关节处于位置伺服模式下,关节进入周期性位置伺服控制阶段,控制器向各个关节模块发送位置指令帧,各个关节模块在收到指令帧之后进行相应的位置伺服控制,并将当前的位置信息、电流信息、速度信息、使能状态和错误代码通过一帧反馈帧发送给控制器。如果一个总线上有7个模块参与周期性伺服控制,那么一个控制周期之内,总线上将会产生14帧的通讯,以此降低总线负载。

位置伺服指令帧: 

伺服反馈帧:

6.速度伺服指令包

当关节处于速度伺服模式下,关节进入周期性速度伺服控制阶段,控制器向各个关节模块发送速度指令帧,各个关节模块在收到指令帧之后进行相应的速度伺服控制,并将当前的位置信息、电流信息、速度信息、使能状态和错误代码通过一帧反馈帧发送给控制器。

速度伺服指令帧:

伺服反馈帧:

7.电流伺服指令包

当机械臂拖动示教模式下,通过控制机械臂关节的电流,配合外部力矩完成拖动示教, 每下发一帧电流伺服指令帧,返回一帧伺服反馈帧,上传机械臂动力学关键数据。

电流伺服指令帧:

伺服反馈帧:

8. 关节状态查询指令包

当机械臂在运行过程中,需要周期性的查询关节的状态,为了提高总线利用率,将常用
的关节数据通过一帧指令进行查询,关节收到该指令帧后,将错误代码、系统电压、系统温
度、使能状态和当前位置放到一帧关节状态反馈帧内进行反馈。
关节状态查询指令帧

关节状态反馈帧:

二、关节协议示例

1.环境配置

仲裁域波特率:1Mbps 80%
数据与波特率:5Mbps 75%

2.IAP 在线更新标志位(必要操作)

3.获取当前关节状态

4.位置模式控制

(1)设置工作模式为位置模式

(2)关节通过位置伺服指令运动

通过关节状态查询指令查询到当前角度后,发送位置伺服指令,使关节运动±10°以内。例
如当前角度为20°,关节运动到30°

再次获取关节状态,当前关节角度相交于开始前的位置±10°

5.电流模式控制

(1)设置工作模式为电流模式

指令包:

应答包:

(2)关节通过电流伺服指令运动

发送电流伺服指令,关节根据电流值,正向或反向运动(数据为负值时关节反向运动,
数据为正值时,关节正向运动),例如电流为500MA
指令包:

应答包:

6.速度模式控制

(1)设置工作模式为速度模式

(2)关节通过速度伺服指令运动

发送速度伺服指令,关节根据速度值,正向或反向运动(数据为负值时关节反向运动,
数据为正值时,关节正向运动),例如速度为:5RPM
指令包:

应答包:

7.清除关节错误

备注:
清除关节错误后,将工作模式切换到位置伺服模式,发送使能指令,关节使能成功

8.设置关节零位

9.设置使能状态

上使能:
禁使能:

这篇关于关节驱动器 CANFD 通信协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/876907

相关文章

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

为备份驱动器制定备份计划:维护数据的3大方法

时间:2014-02-26 14:49 来源:网管之家 字体:[大 中 小]   您可能已经对您的电脑进行了备份,但其实这样还是远远不够的,其并非如您所认为的那样安全。您企业备份驱动器上的文件可能与您的主系统上的文件一样,容易受到灾难的影响。根据最近流行的恶意软件CryptoLocker的感染途径显示,连接到PC的外置驱动器——辅助硬盘驱动器,例如,用于备份的外部USB硬盘驱动器,可以像

Unity --- 各种关节(Joints)来模拟物体之间的连接

目录 一:2D关节 一:1 固定关节 (Fixed Joint 2D) 功能: 适用场景: 1. 平台游戏中的固定平台: 2. 拼图游戏中的固定部件: 3. 建筑游戏中的固定结构:  一:2 铰链关节 (Hinge Joint 2D) 功能: 适用场景:  一:3 弹簧关节 (Spring Joint 2D) 功能: 适用场景: 1. 弹性绳索或弹簧: 2. 弹性

如何编写Linux PCI设备驱动器 之一

如何编写Linux PCI设备驱动器 之一 PCI寻址PCI驱动器使用的APIpci_register_driver()pci_driver结构pci_device_id结构 如何查找PCI设备存取PCI配置空间读配置空间APIs写配置空间APIswhere的常量值共用部分类型0类型1 PCI总线通过使用比ISA更高的时钟速率来实现更好的性能;它是时钟运行在 25 或 33 M

搭建SpringBoot+ Netty + WebSocket 通信协议框架

运用场景:与机器设备进行通讯或者其他场景; pom文件就不上传了,直接上代码,网上都可以找的到 主要是 SpringBoot 和 Netty 的依赖 1.配置类 @Component@ConfigurationProperties(prefix = "ws")public class WebSocketConfig {private int port;private String host

工业必备:SLM34x系列SLM340CK-DG 1A兼容光耦的单通道隔离驱动器

SLM34x系列SLM340CK-DG是单通道兼容光耦的隔离式栅极驱动器产品系列,适用于驱动IGBT、MOSFET。其峰值驱动电流1.0A。与光耦栅极驱动器相比,其性能和可靠性都得到显著的提升,同时保持了对光耦栅极隔离驱动器管脚的兼容。性能提升包括高共模瞬态抗扰度(CMTI)、低传播延迟和较小的脉宽失真。 SLM34x系列SLM340CK-DG的输入级是一个“模拟二极管”,与传统光耦相比,没

串行通信协议——UART

概述 UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)是一种广泛使用的串行通信协议,用于实现计算机与外设之间或两个计算机之间的数据传输。UART通信以异步方式进行,这意味着发送和接收设备不需要共享时钟信号。在嵌入式系统、工业控制、消费电子产品等领域,UART通信协议得到了广泛应用。 UART通信原理 UART通信基于RS-

HT97230 具有3D环绕和低音增强功能的125mW免输出耦合电容的立体声线路驱动器1耳机放大器

特点 可调节的3D环绕功能 可调节的低音增强功能 输出无需隔直流电容 卓越的低音效果! 无咔嗒/噼噗声 低THD+N:最低0.001% 低噪声,VN:7μV 支持单端输入和全差分输入 2.5V至5.2V较宽的电源工作范围 输出功率: 125mW(fIN =1kHz,VDD=5V,RL=32Ω THD+N=0.1%) 输出摆幅: 3Vrms (fIN = 1kHz, VDD=5V, RL=1kΩ,

浅谈通信协议设计

目录 1.设计原则 2.注意事项 2.1.大小端编码问题 2.2.字节对齐 2.3.显式指定整型字段的长度 2.4.涉及到浮点数要考虑精度问题,建议放大成整数或者使用字符串去传输 2.5.协议与自动升级功能 1.设计原则 设计通信协议时,需要考虑以下几个原则: 1) 简单性:协议设计应尽可能简单,简单的协议更易于实现和维护,减少出错的可能性。复杂的协议往往会导致理解和实现的

unity面试:什么叫做链条关节?

链条关节(Chain Joint)在Unity中常用来创建一系列连接的物体,模拟真实世界中的链条或绳子等物体的运动和交互。这种类型的关节允许多个物体通过关节连接在一起,从而形成链条结构,从而可以创建更复杂的物理行为。 在Unity中,可以使用Configurable Joint、Hinge Joint 或 Spring Joint 等关节类型来实现链条关节的效果。以下是关于链条关节的一些关键点: