文章目录
前言
1 配置
2 使用
3 MAVLink协议说明
前言
ArduPilot 和任务计划器能够通过使用加密密钥添加数据包签名,为空中 MAVLink 传输增加安全性。这并不加密数据,只是控制自动驾驶仪是否响应 MAVLink 命令。
当自动驾驶仪处于激活状态时,任何非 USB 串行端口都可以配置为只响应任务规划器的 MAVLink 命令请求,前提是这些请求包含密码。这样可以防止其他不知道密码的地面控制站 (GCS) 读取或写入参数和发送命令。这在其他情况下是可能发生的。
遥测下行链路数据不受影响。
USB 连接不受影响,允许完全连接到使用未知密钥的自动驾驶仪,并允许用户清除(禁用签名)或更改其使用的密钥。
1 配置
确保遥测端口协议设置为选项 = 2 (MAVLink2)。使用 MAVLink 1 与任何串行端口的通信都不受保护。
在任务计划器中连接自动驾驶仪,使用设置菜单和高级子菜单,然后按"Mavlink Signing"(Mavlink 签名)。
对话框将显示已为任务计划器设置的所有密码的列表。
- 该对话框可用于使用 ADD(添加)按钮创建新键。在 PC 上选择并按下删除键,然后按下保存键(SAVE)5350,即可从列表中删除密钥。你也可以在未连接的情况下执行此操作;
- 要设置自动驾驶仪使用列表中的按键,请在连接时按下按键上的 USE 按钮。
单击用于选择连接端口的通讯端口下拉框下的 "Stats...(统计...)",即可检查链接是否已签署。
要删除和禁用已连接自动驾驶仪的签名,请按禁用签名(Disable Signing)按钮。
2 使用
自动驾驶仪使用签名后,USB 连接不受影响,但通过使用 MAVLink2 协议的 SERIAL 端口进行的任何链接只有在与自动驾驶仪使用的密钥签名后才会响应 MAVLink 命令。但是,即使未使用激活密钥签名,链接仍可接收遥测更新。
当你通过签名链接连接任务规划器时,它会查看其密钥表中是否存储有您之前设置的正确密钥。如果有,连接将使用该密钥,自动驾驶仪将执行命令,包括在连接时下载参数。如果连接成功,但没有进行参数下载,则说明密钥不存在。添加密钥并重新连接。
3 MAVLink协议说明
MAVLink 是一种非常轻量级的消息传输协议, 用于地面控制终端(地面站)与无人机之间 (以及机载无人机组件之间) 进行通信。
Mavlink 遵循现代混合发布-订阅和点对点设计模式:数据流作为 topics 发送/发布的, 而配置子协议 (如 路径点协议 或 参数协议)是基于重传机制的点对点模式。
消息内容定义于与之关联的xml 文件中。 每个 xml 文件对应一个特定的 MAVLink 系统,并为该系统定义了专属的消息集(亦被称之为“语支dialect”)。 大部分 地面站和自动驾驶仪所采用的“通用消息集”定义于 common.xml 中 (大多数“语支”均是基于“通用消息集“构建 的:即,大多数“语支”所对应的 xml 文件里,均包含了 common.xml) 。
!Note
基于C封装的 MAVLink 库,是一个 header-only 库, 其针对资源受限系统有限的 ram 和闪存,进行了高度优化。 这种库,已经过现场验证, 并部署在许多产品中, 充当不同厂家组件之间的交互性接口。
MAVLink 于2009年初由 Lorenz Meier 首次发布, 目前为止,已拥有数量可观的贡献者。