电机PID控制补充篇-野火上位机串口协议介绍

      最后更新:2022-04-06 11:24:00 手机定位技术交流文章

      0 引言

      先前通过电动PID控制推出的一套纸张:
      PID和电气控制做法
      当然,先前的一系列出版物并没有强调通信协议的确切结构和序列软件的使用,这篇文章补充了野火PID调试援助的序列协议。

      下野火的PID调试助理使用以下接口,该接口与系列通信协议有关,并分为三个主要部分:

      • 数据通道选择、PID参数设置和显示、目标值、周期值设置和显示都包括在参数部分。
      • 调控电源启动、停止和重置。
      • 数据曲线区域:从面板收集数据,创建速度和位置曲线,等等。

      兹建议,在采用序列协议以方便序列数据分析之前,在虚拟的两个序列港安装虚拟序列驱动软件,并用自己的计算机安装在虚拟的两个序列港。

      例如,在计算机上,我们建立了两个虚拟链接。这两个连接可被视为通过电线连接。例如,为了连接这两个虚拟港口,我们利用野火PID和类似的系列援助方案。当野火 PID 帮助者提交数据时( 例如, 单击启动按钮),另一方面,系列助理程序将接收和显示野火PID助理提供的数据。因此,我们可以审查野火PID助理用来传送数据的格式。

      1 PID 调试助理序列议定书概览

      首先审查野火PID调试援助的序列协议数据格式。

      串口协议的定义参考野火论坛的介绍: https://www.firebbs.cn/forum.php?mod=viewthread&tid=29923&extra=page%3D1

      1.1 指令包格式

      系列数据以数据包的形式提供,每个数据包的格式如下:

      字节数 名称 内容
      4bytes 包头 0x59485A53
      1bytes 数据通道 0xXX
      4bytes 包长度 0xXXXXXXXX
      1bytes 指令 0xXX
      1bytes 参数1 0xXX
      1bytes 参数n 0xXX
      1bytes 校验和 0xXX

      说明:

      1. 前面小字节之前的所有多字字节(关于上或下小字节或数据大小端的说明,请参考本节)
      2. 0x59485A53是被固定在四个字节上的头部。
      3. CH1-CH5, 频道地址1-5, CH1-0x01, CH2-0x02
      4. 软件包的长度是从软件包头到检查的所有数据的总长度。
      5. 指令为相应的功能码
      6. 当命令需要一个参数时, 请添加它 。
      7. 检查为摘要 -- -- 8个地点

      1.2 指令分类

      上述数据格式的重点是字段“方向”,该“方向”指明了该数据包的确切含义。

      此外,序列数据包括发送和上载的数据,野火点火点火助理以协议包格式向板块发送序列数据,上载数据以协议包格式发送给野火点火点火点火点火助理。

      一.二.1 数据发布

      成套数据或指示使用野火PID助理送交董事会。

      功能 指令 参数
      PID 0x10 3个float
      目标值 0x11 1个int
      启动 0x12
      停止 0x13
      复位 0x14
      周期 0x15 1个uint

      一. 2.2 数据上传

      董事会将数据或命令 发送到野火PID援助处

      功能 指令 参数
      目标值 0x01 1个int
      实际值 0x02 1个int
      PID 0x03 3个float
      启动 0x04
      停止 0x05
      周期 0x06 1个uint

      2 数据实测与分析

      2.1.1. 衡量公布的数据

      测试数据的发布可以通过将野火PID助理与另一系列助理软件连接起来、通过野火PID助理向另一系列助理发送数据、以Hex显示收到的数据以及审查数据格式,在单一计算机上进行测试。

      二.1发射(0x12),停止(0x13),然后重置(0x14)。

      这三个命令中没有数据参数。 数据长度为 0x0B, 即 11 字节 。

      包头 通道 包长度 指令 校验
      启动 53 5A 48 59 01 0B 00 00 00 12 6C
      停止 53 5A 48 59 01 0B 00 00 00 13 6D
      复位 53 5A 48 59 01 0B 00 00 00 14 6E

      二.一.2(0x11)周期(0x15)目标值

      这两份说明,每份附有一个字节的数据,长度为0x0F,或15字节。

      包头 通道 包长度 指令 参数(数据) 校验
      目标值 53 5A 48 59 01 0F 00 00 00 11 C8 00 00 00 37
      周期 53 5A 48 59 01 0F 00 00 00 15 64 00 00 00 D7

      将 PID (0x10) 发送到二. one. 3 。

      本指令的数据长度为 0x17, 数据长度为 12 字节( 3 个浮点 ) 。

      包头 通道 包长度 指令 参数(数据) 校验
      53 5A 48 59 01 17 00 00 00 10 9A 99 99 3F 00 00 20 40 9A 99 99 3E EB

      N.B. 此处的PID数据为浮控型数据,以Hex格式交付,在发送时分为四个字节;关于将浮控型数据转换为Hex格式的说明如下:

      2.2 现场数据上传

      测试数据上载需要将程序下载到董事会,该上载将软件与计算机上的任何序列校准软件连接起来,以Hex显示收到的数据,并分析数据格式。

      2.2.1 上传启动状态(0x04/stop(0x05))

      包头 通道 包长度 指令 校验
      启动 53 5A 48 59 01 0B 00 00 00 04 5E
      停止 53 5A 48 59 01 0B 00 00 00 05 5F

      2.2.2 上传目标(0x01/周期(0x06))值

      包头 通道 包长度 指令 参数(数据) 校验
      目标值 53 5A 48 59 01 0F 00 00 00 01 70 3A 00 00 09
      周期 53 5A 48 59 01 0F 00 00 00 06 xx xx xx xx xx

      上传 PID 参数 (0x03) 2、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3

      包头 通道 包长度 指令 参数(数据) 校验
      53 5A 48 59 01 17 00 00 00 03 CD CC 4C 3D 00 00 00 00 00 00 00 00 8B

      上传真实值 (0x02) 于 2. 2. four 上传。

      用于将发动机的速度和位置信息发送到野火PID辅助器,该辅助器将显示位置和速度曲线。

      包头 通道 包长度 指令 参数(数据) 校验
      53 5A 48 59 01 0F 00 00 00 02 2D 00 00 00 8D

      3 串口收发程序

      让我们看看与传送到接收装置的序列数据有关的主要代码:

      3.1 发送

      按格式组包数据:

      向顶级机器发送数据包 。

      3.2 接收

      通过中断的方法接收序列数据:

      收到后的数据保存在Riscv1阵列的序列接收缓存中,以后可以根据协议格式处理。

      4 总结

      本部分所述的野火PID协助的系列议定书格式,包括数据释放和上载的数据格式,以及通过实际序列数据采集的Hex格式与协议规格的比较,有助于更好地了解系列数据格式。

      在野火PID援助组织派出指挥委员会之前,它不会运作。也许板块上传的 PID 数据不包括曲线。现在是核实序列数据格式是否正确的时候了。若不正确,取决于您自己的程序是否有正确的序列收发器功能。只有序列数据符合指定的协议格式。这是正确的事情 当它涉及到数据通信。

      如果序列数据格式正确,机器没有旋转,请检查硬件连接是否正常,程序设置是否需要根据自己的电子编码器参数进行调整。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/21596.html

          热门文章

          文章分类