# PX4 DroneCAN 固件
PX4 可作为固件在许多 DroneCAN 外围设备上运行。这样做有多种好处:
- PX4 内置驱动程序,用于 广泛 (打开新窗口) 传感器和外围元件。
- PX4 拥有经过多年现场测试的强大 DroneCAN 驱动程序。
- PX4 正在不断开发中。您可以定期获得最新的改进。
- PX4 的估算和控制代码可轻松创建集成式 AHRS 模块等智能套管。
- 固件完全开源(PX4 采用 BSD 许可)。
# 构建固件
按照 PX4 建筑文档 就像为飞行控制器构建固件一样。设备构建配置存储在 这里 (打开新窗口).安装后 PX4 工具链,克隆源代码并构建。例如,要为 方舟之流 目标:
git clone --recursive https://github.com/PX4/PX4-Autopilot cd PX4-Autopilot make 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 clone --recursive https://github.com/PX4/PX4-Autopilot cd PX4-Autopilot make ark_can-flow_canbootloader
然后,可以使用自己喜欢的 SWD/JTAG 调试器将二进制文件闪存到微控制器中,如 黑魔法探针 (打开新窗口), ST-Link (打开新窗口)或 Segger JLink (打开新窗口).
# 固件内部
在大多数情况下,外设固件的工作方式与飞行控制器固件的构建方式相同。不过,大多数模块都是禁用的,只有传感器驱动程序、DroneCAN 驱动程序和内部基础设施(uORB 等)是启用的。
DroneCAN 通信由 uavcannode (打开新窗口) 模块。该驱动程序处理生产方通信--它从 uORB 获取传感器/执行器数据,使用 DroneCAN 库将其序列化,然后通过 CAN 发布。未来,该模块可能会与 uavcan (打开新窗口) 模块,用于处理飞行控制器侧(用户侧)的驱动程序,这些驱动程序从 CAN 总线接收/反序列化数据,并通过 uORB 发布。
除了标准的原始二进制文件、ELF 和 .px4
固件文件。
← CAN 外围设备 ARK CANnode →