跳至内容

PX4 DroneCAN 固件

PX4 可作为固件在许多 DroneCAN 外围设备上运行。这样做有多种好处:

  • PX4 内置驱动程序,用于 广泛 传感器和外围元件。
  • PX4 拥有经过多年现场测试的强大 DroneCAN 驱动程序。
  • PX4 正在不断开发中。您可以定期获得最新的改进。
  • PX4' 的估算和控制代码可轻松创建集成式 AHRS 模块等 "智能 "套管。
  • 固件完全开源(PX4 采用 BSD 许可)。

构建固件

按照 PX4 建筑文档 就像为飞行控制器构建固件一样。设备构建配置存储在 这里.安装后 PX4 工具链,克隆源代码并构建。例如,要为 方舟之流 目标:

Git 复制 --递归 https://github.com/PX4/PX4-Autopilot
CD PX4-自动驾驶仪
生产 ark_can-flow_default

这将在 build/ark_can-flow_default 名为 XX-X.X.XXXXXXXX.uavcan.bin.请按照 DroneCAN 固件更新 来闪存固件。

开发商信息

本节包含与希望在 PX4 自动驾驶仪中添加对新 DroneCAN 硬件支持的开发人员相关的信息。

DroneCAN 引导加载程序的安装

警告

DroneCAN 设备出厂时通常已预装引导加载程序。除非您正在开发 DroneCAN 设备,或(意外)损坏/擦除了引导加载程序,否则请勿按照本节中的说明进行操作。

PX4 项目包含用于 STM32 设备的标准 DroneCAN 引导加载程序。

引导加载程序占用闪存的前 8-16 KB,是开机时执行的第一个代码。通常,引导加载程序会执行低级设备初始化,自动确定 CAN 总线波特率,充当 DroneCAN 动态节点 ID 客户端 以获取唯一的节点 ID,并等待飞行控制器的确认,然后继续启动应用程序。

该流程可确保 DroneCAN 设备在无需用户干预的情况下从无效或损坏的应用固件中恢复,并允许自动固件更新。

通过指定相同的外设目标,用 canbootloader 而不是 默认 配置。

例如,要为 方舟之流 目标:

Git 复制 --递归 https://github.com/PX4/PX4-Autopilot
CD PX4-自动驾驶仪
生产 ark_can-flow_canbootloader

然后,可以使用自己喜欢的 SWD/JTAG 调试器将二进制文件闪存到微控制器中,如 黑魔法探针, ST-LinkSegger JLink.

固件内部

在大多数情况下,外设固件的工作方式与飞行控制器固件的构建方式相同。不过,大多数模块都是禁用的,只有传感器驱动程序、DroneCAN 驱动程序和内部基础设施(uORB 等)是启用的。

DroneCAN 通信由 uavcannode 模块。该驱动程序处理生产方通信--它从 uORB 获取传感器/执行器数据,使用 DroneCAN 库将其序列化,然后通过 CAN 发布。未来,该模块可能会与 uavcan 模块,用于处理飞行控制器侧(用户侧)的驱动程序,这些驱动程序从 CAN 总线接收/反序列化数据,并通过 uORB 发布。

除了标准的原始二进制文件、ELF 和 .px4 固件文件。