最后更新:2022-04-06 11:24:00 手机定位技术交流文章
先前通过电动PID控制推出的一套纸张:
PID和电气控制做法
当然,先前的一系列出版物并没有强调通信协议的确切结构和序列软件的使用,这篇文章补充了野火PID调试援助的序列协议。
下野火的PID调试助理使用以下接口,该接口与系列通信协议有关,并分为三个主要部分:

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

首先审查野火PID调试援助的序列协议数据格式。
串口协议的定义参考野火论坛的介绍: https://www.firebbs.cn/forum.php?mod=viewthread&tid=29923&extra=page%3D1
系列数据以数据包的形式提供,每个数据包的格式如下:
| 字节数 | 名称 | 内容 |
|---|---|---|
| 4bytes | 包头 | 0x59485A53 |
| 1bytes | 数据通道 | 0xXX |
| 4bytes | 包长度 | 0xXXXXXXXX |
| 1bytes | 指令 | 0xXX |
| 1bytes | 参数1 | 0xXX |
| … | … | … |
| 1bytes | 参数n | 0xXX |
| 1bytes | 校验和 | 0xXX |
说明:
上述数据格式的重点是字段“方向”,该“方向”指明了该数据包的确切含义。
此外,序列数据包括发送和上载的数据,野火点火点火助理以协议包格式向板块发送序列数据,上载数据以协议包格式发送给野火点火点火点火点火助理。
成套数据或指示使用野火PID助理送交董事会。
| 功能 | 指令 | 参数 |
|---|---|---|
| PID | 0x10 | 3个float |
| 目标值 | 0x11 | 1个int |
| 启动 | 0x12 | 无 |
| 停止 | 0x13 | 无 |
| 复位 | 0x14 | 无 |
| 周期 | 0x15 | 1个uint |
董事会将数据或命令 发送到野火PID援助处
| 功能 | 指令 | 参数 |
|---|---|---|
| 目标值 | 0x01 | 1个int |
| 实际值 | 0x02 | 1个int |
| PID | 0x03 | 3个float |
| 启动 | 0x04 | 无 |
| 停止 | 0x05 | 无 |
| 周期 | 0x06 | 1个uint |
测试数据的发布可以通过将野火PID助理与另一系列助理软件连接起来、通过野火PID助理向另一系列助理发送数据、以Hex显示收到的数据以及审查数据格式,在单一计算机上进行测试。
这三个命令中没有数据参数。 数据长度为 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 |

这两份说明,每份附有一个字节的数据,长度为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 |

本指令的数据长度为 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格式的说明如下:
测试数据上载需要将程序下载到董事会,该上载将软件与计算机上的任何序列校准软件连接起来,以Hex显示收到的数据,并分析数据格式。
| 包头 | 通道 | 包长度 | 指令 | 校验 | |
|---|---|---|---|---|---|
| 启动 | 53 5A 48 59 | 01 | 0B 00 00 00 | 04 | 5E |
| 停止 | 53 5A 48 59 | 01 | 0B 00 00 00 | 05 | 5F |
| 包头 | 通道 | 包长度 | 指令 | 参数(数据) | 校验 | |
|---|---|---|---|---|---|---|
| 目标值 | 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 |
| 包头 | 通道 | 包长度 | 指令 | 参数(数据) | 校验 |
|---|---|---|---|---|---|
| 53 5A 48 59 | 01 | 17 00 00 00 | 03 | CD CC 4C 3D 00 00 00 00 00 00 00 00 | 8B |

用于将发动机的速度和位置信息发送到野火PID辅助器,该辅助器将显示位置和速度曲线。
| 包头 | 通道 | 包长度 | 指令 | 参数(数据) | 校验 |
|---|---|---|---|---|---|
| 53 5A 48 59 | 01 | 0F 00 00 00 | 02 | 2D 00 00 00 | 8D |

让我们看看与传送到接收装置的序列数据有关的主要代码:
按格式组包数据:
向顶级机器发送数据包 。
通过中断的方法接收序列数据:
收到后的数据保存在Riscv1阵列的序列接收缓存中,以后可以根据协议格式处理。
本部分所述的野火PID协助的系列议定书格式,包括数据释放和上载的数据格式,以及通过实际序列数据采集的Hex格式与协议规格的比较,有助于更好地了解系列数据格式。
在野火PID援助组织派出指挥委员会之前,它不会运作。也许板块上传的 PID 数据不包括曲线。现在是核实序列数据格式是否正确的时候了。若不正确,取决于您自己的程序是否有正确的序列收发器功能。只有序列数据符合指定的协议格式。这是正确的事情 当它涉及到数据通信。
如果序列数据格式正确,机器没有旋转,请检查硬件连接是否正常,程序设置是否需要根据自己的电子编码器参数进行调整。
本文由 在线网速测试 整理编辑,转载请注明出处。