news 2026/9/27 1:39:26

PX4 参考飞控平台 Pixhawk 系列详解:FMU 版本演进、标准认证与板卡选型实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PX4 参考飞控平台 Pixhawk 系列详解:FMU 版本演进、标准认证与板卡选型实战
  • 嵌入式
  • 物联网
  • 机器人
  • 自动驾驶
  • 智能硬件

【免费下载链接】PX4-Autopilot

PX4 Autopilot Software

项目地址:https://gitcode.com/gh_mirrors/px/PX4-Autopilot
点击查看免费下载

Pixhawk 系列是 PX4 飞控软件所依托的参考硬件平台,本文以 docs/en/flight_controller/pixhawk_series.md 为骨架,结合仓库内 autopilot_pixhawk_standard.md、pixhawk_autopilot_bus.md、silicon_errata.md 等文档及boards/px4下的板级源码,系统讲解 FMUv2 至 FMUv6X-RT 的硬件代际差异、Pixhawk 标准与授权规则、板卡支持等级划分、LED 状态灯判读方法,并给出面向用户与开发者的完整选型和构建建议。读完本文,你将能够根据任务形态准确选择 PX4 参考飞控、理解 FMU 版本背后的硬件差异,并为特定板卡正确构建 PX4 固件。

Pixhawk 系列是什么

Pixhawk 是一个独立的开放硬件(open-hardware)项目,以原理图(schematics)的形式向学术界、爱好者和工业界提供价格亲民且高性能的自动驾驶仪硬件设计。PX4 团队将其作为参考硬件平台,Pixhawk 系列飞控运行 PX4,底层操作系统为 NuttX。

基于这些开放设计,厂商已经衍生出大量形态各异的板卡:从适用于大载重货运任务的宽大板型,到专为 FPV(第一人称视角)穿越竞速优化的紧凑板型,一应俱全。需要留意的是,PX4 项目自身不生产任何飞控硬件,硬件支持与合规问题须联系对应厂商(见各板卡文档开头的 warning,例如 pixhawk6x.md 中"PX4 does not manufacture this autopilot"的声明)。

::: tip 如果任务包含计算密集型负载(例如机载计算机视觉),单独的飞控并不足够,你需要一个伴机电脑(companion computer)(如 Raspberry Pi 2/3 Navio2),或选用集成伴机方案的平台(例如 Holybro Pixhawk RPi CM4 Baseboard)。 :::

选用 Pixhawk 系列的核心收益

原文档明确列出了 Pixhawk 系列控制器相对其他平台的关键优势:

  • 软件支持——作为 PX4 参考硬件,Pixhawk 系列是维护最完善的板卡;
  • 外设扩展灵活——可挂接丰富多样的硬件外设;
  • 高品质——硬件设计与制造质量有保障;
  • 形态高度可定制——板型可按应用场景裁剪;
  • 广泛使用、久经测试——用户基数大,稳定性与成熟度高;
  • 固件自动更新——可通过QGroundControl(QGC)自动刷写最新固件,对终端用户极其友好。

其中"固件自动更新"背后的机制正是下文 FMU 版本一节提到的:QGC 会在后台根据飞控的 FMU 版本自动下载匹配的固件镜像,用户无需手工辨识硬件代号。

支持的板卡与支持等级

PX4 项目使用 Pixhawk 标准自动驾驶仪(Pixhawk Standard Autopilots)作为参考硬件。这些控制器完全兼容 Pixhawk 标准(包括商标使用授权),并且仍在量产,由 PX4 维护与测试团队持续维护和支持。

不完全符合规范但仍在生产的"类 Pixhawk"板卡则按以下等级归类:

  • 厂商支持(manufacturer-supported)——由板卡厂商负责维护,使其在 PX4 各版本中持续可用;
  • 实验性/已停产(experimental/discontinued);
  • 或完全不受支持。

从仓库文档看,当前属于 Pixhawk 标准自动驾驶仪类别的板卡包括(节选):

  • FMUv6X-RT:NXP MR-VMU-RT1176、Holybro Pixhawk 6X-RT
  • FMUv6X:Holybro Pixhawk 6X Pro、CUAV Pixhawk V6X、Holybro Pixhawk 6X、RaccoonLab FMUv6X
  • FMUv6C:Holybro Pixhawk 6C、Holybro Pixhawk 6C Mini、Holybro Pix32 v6
  • FMUv5X:Holybro Pixhawk 5X
  • FMUv5:Holybro Pixhawk 4(Mini 版已由 Holybro 停产但 PX4 仍支持)
  • 以及 FMUv4pro / FMUv4 / FMUv3 的若干在产与停产板卡

完整的板卡清单见 autopilot_pixhawk_standard.md,厂商支持板卡清单见 autopilot_manufacturer_supported.md。

Pixhawk Autopilot Bus(PAB)模块化总线

新一代 Pixhawk 标准引入了 Pixhawk Autopilot Bus(PAB)标准:任何符合标准的飞控都可以与任何符合标准的底板"即插即用"。这种模块化设计让同一块飞控模块可以灵活接入不同形态的载板——例如更紧凑、输出更少的底板,或集成了伴机电脑的底板。目前仓库中列出的 PAB 兼容飞控包括 Holybro Pixhawk 5X/6X、CUAV Pixhawk V6X、ARK V6X/V6X-RT/V6S 等,兼容载板包括 ARK PAB 载板、Holybro 标准/迷你底板及 RPi CM4 底板。

FMU 版本:Pixhawk 开放设计的代际密码

Pixhawk 项目以原理图形式发布了多套开放设计,基于同一设计的板卡应当二进制兼容(可运行同一份固件)。每套设计以FMUvX命名(如 FMUv1、FMUv2、FMUv3、FMUv4……)。FMU 编号越大表示板卡越新,但并不必然代表能力更强——相邻版本可能几乎相同,仅连接器接线不同。

用户视角:通常无需关注 FMU 版本

对普通 PX4用户而言,FMU 版本一般无需深究:

  • QGroundControl会自动为连接的飞控下载正确固件(基于其"幕后"的 FMU 版本);
  • 选板通常取决于物理约束/形态,而不是 FMU 版本。

唯一的例外是 FMUv2:由于硅片勘误(详见 silicon_errata.md),FMUv2 固件被限制为1MB flash。为了把 PX4 塞进这一受限空间,许多模块默认被禁用。因此你可能会发现部分 参数缺失(文档称这些参数为"missing"),以及部分硬件无法"开箱即用"。

其根源在于 STM32F427VIT6 硅片的勘误:在修订版本 rev 2 及更早的硅片上,当 PA12(USB 数据线之一)有活动时访问第二个 flash bank 会产生错误/数据损坏,且无软件绕过方案,只能不使用 2 号 flash bank。由于烧录固件需要 USB,采用 rev 3 之前硅片的 Pixhawk 板只能使用 2MB flash 中的 1MB。该勘误在后续硅片版本中已修复,但如果使用旧 bootloader 可能无法被检测到,相关更新见 固件与 Bootloader 更新。

开发者视角:必须知道板卡的 FMU 版本

PX4开发者需要明确自己板卡的 FMU 版本,这是构建自定义硬件的前提。从高层面看,各代的主要差异如下:

FMU 版本核心硬件差异代表性板卡
FMUv2单板,STM32F427VI 处理器(flash 实际可用 1MB)Pixhawk 1(停产)、Holybro pix32(停产)、Pixfalcon(停产)、Drotek DroPix(停产)
FMUv3与 FMUv2 相同,但可用 flash 翻倍至 2MBHex Cube Black、CUAV Pixhack v3、mRo Pixhawk、Pixhawk Mini(停产)
FMUv4RAM 增加、CPU 更快、串口更多、无 IO 协处理器Pixracer
FMUv4-PRORAM 略增、串口更多、带 IO 协处理器Pixhawk 3 Pro
FMUv5全新 F7 处理器,速度更快、RAM 更多、CAN 总线更多、可配置性更强Pixhawk 4(停产)、CUAV v5(停产)、CUAV V5+(停产)、CUAV V5 nano(停产)
FMUv5XF7 处理器,模块化设计、可靠性/冗余性更高、RAM 1MB、CAN 更多、高度可配置可定制Pixhawk 5X、Skynode
FMUv6CSTM32H743V,成本优化设计Holybro Pixhawk 6C Mini、Holybro Pixhawk 6C
FMUv6XSTM32H753,模块化 + 三重冗余 + 隔离传感器域CUAV Pixhawk V6X、Holybro Pixhawk 6X
FMUv6X-RTMCU 核心更快(1GHz,6X 为 480MHz)、RAM 2MB、flash 64MB(v6X/v5X 为 2MB)Holybro Pixhawk 6X-RT

FMUv6 三款主流设计的横向对比

原文档以表格给出了 FMUv6X-RT、FMUv6X、FMUv6C 三者的硬件规格对比,这是当前选型最直接的依据:

特性FMUv6X-RTFMUv6XFMUv6C
FMU MCUNXP i.MX RT1176STM32H753STM32H743V
RAM2 MB1 MB1 MB
Flash64 MB Octal SPI2 MB 内部2 MB 内部
IO MCUSTM32F103STM32F103STM32F103
安全元件NXP SE051NXP SE051不支持
PAB 标准支持支持不支持
以太网支持支持不支持
IMU3×3×2×
气压计2×2×1×
磁力计1×1×1×
FMU PWM12×8×8×
IO PWM8×8×8×
CAN 总线3×2×2×

可以看出:6X-RT 定位于极致性能与冗余(1GHz 双核、64MB 外部 flash、3 路 CAN、硬件安全元件、以太网);6X 是主力旗舰(H753、三重 IMU 冗余、PAB 模块化);6C 是成本优化走量款(双 IMU、单气压计、无安全元件/以太网/PAB)。

结合板级源码可以进一步印证:仓库中 boards/px4/fmu-v6x/default.px4board 定义了 6X 的板级配置,例如CONFIG_BOARD_ETHERNET=y(启用板载以太网)、CONFIG_BOARD_ARCHITECTURE="cortex-m7"、CONFIG_ARCH_CHIP_STM32H7=y,以及串口映射CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS0"、CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS6"等;该配置与 pixhawk6x.md 中的串口映射表完全对应。而 6X-RT 的对应配置位于 boards/px4/fmu-v6xrt,6C 位于 boards/px4/fmu-v6c,二者同属 STM32H7 架构(cortex-m7),在 PX4 构建系统中以不同的 target 区分。

从板级源码看 FMU 版本的实现位置

在 PX4 仓库中,每个 FMU 版本都有独立的板级支持目录,位于 boards/px4 下:fmu-v2、fmu-v3、fmu-v4、fmu-v4pro、fmu-v5、fmu-v5x、fmu-v6c、fmu-v6u、fmu-v6x、fmu-v6xrt等。以 6X 为例,目录内包含:

  • default.px4board——默认构建配置(工具链、架构、以太网开关、串口映射等);
  • secureboot.px4board——安全启动配置(配合 6X/6X-RT 上的 NXP SE051 安全元件);
  • src/hw_config.h——硬件外设配置头文件;
  • nuttx-config/——NuttX 系统配置(含include/board.h、scripts/secureboot-script.ld等)。

这也解释了 pixhawk6x.md 中给出的固件构建命令make px4_fmu-v6x_default:target 名px4_fmu-v6x_default直接对应boards/px4/fmu-v6x/default.px4board。

如何为 Pixhawk 板卡构建 PX4 固件

绝大多数用户不需要自己构建固件——固件是预编译的,连接硬件时由QGroundControl自动安装。只有开发者或需要定制功能时才需要本地构建。构建方法与板卡对应:

# 以 Pixhawk 6X(FMUv6X)为例 make px4_fmu-v6x_default # 其他常见 target make px4_fmu-v6xrt_default # Pixhawk 6X-RT(FMUv6X-RT) make px4_fmu-v5x_default # Pixhawk 5X(FMUv5X)

完整的构建环境搭建与流程参见 构建 PX4 软件。其中 6X 的串口映射(来自 pixhawk6x.md)如下,可用于核对串口设备与功能端口的对应关系:

UART设备端口
USART1/dev/ttyS0GPS
USART2/dev/ttyS1TELEM3
USART3/dev/ttyS2调试控制台
UART4/dev/ttyS3UART4 & I2C
UART5/dev/ttyS4TELEM2
USART6/dev/ttyS5PX4IO/RC
UART7/dev/ttyS6TELEM1
UART8/dev/ttyS7GPS2

6X-RT 的映射则不同(UART1→Debug、UART3→GPS、UART4→TELEM1、UART11→External 等),详见 pixhawk6x-rt.md。

授权与商标:开放硬件如何保持开放

Pixhawk 项目的原理图与参考设计采用 CC BY-SA 3.0 许可:

  • 许可允许你几乎以任何方式使用、出售、分享、修改和基于这些文件构建,前提是注明出处,且你对修改内容以相同开源许可共享;
  • 直接衍生自 Pixhawk 原理图(或参考板)的板卡必须开源,不能作为专有产品进行商业授权;
  • 厂商也可以先自行生成全新原理图(但保持与 FMU 设计相同的引脚映射/组件),这样产出的"完全独立产品"被视为原创作品,可按需授权;
  • 产品名称/品牌可以注册商标;Pixhawk 本身是商标,未经许可不得用于产品命名。

板载 LED 的含义判读

所有 Pixhawk 系列飞控都支持两类 LED(详见 LED 含义说明):

  • 用户朝向的 RGB UI LED:用于指示飞行器当前的"可飞行就绪"状态,通常是超亮 I2C 外设,可能焊在板上也可能不在板上(例如 FMUv4 板载没有,通常用 GPS 上的 LED);
  • 三颗状态 LED:提供更低层的电源状态、bootloader 模式与活动、错误信息。

UI LED:就绪状态速查

LED 状态含义
蓝色常亮已解锁(Armed)、无 GPS 定位
蓝色脉冲未解锁(Disarmed)、无 GPS 定位
绿色常亮已解锁、GPS 定位有效(可执行引导任务)
绿色脉冲未解锁、GPS 定位有效
紫色常亮故障保护(Failsafe)模式:失控、电量过低或内部错误,飞机会尝试返航或就地降落
琥珀色常亮低电量警告
红色闪烁错误/需要设置:飞控需要配置或校准后才能飞行,请连接地面站检查

::: warning 可能出现"GPS 已锁定(绿灯)但依然无法解锁"的情况,因为 PX4 尚未通过 预飞行检查。起飞必须有有效的全局位置估计! :::

状态 LED:电源、Bootloader 与错误

三颗状态 LED 为 FMU SoC 提供状态(若存在 PX4IO,另有三颗为 PX4IO 提供状态)。上电后,FMU 与 PX4IO 的 CPU 先运行 bootloader(BL)再运行应用程序(APP):

颜色标签Bootloader 用法APP 用法
蓝ACT(活动)收到数据时闪烁指示 ARM 解锁状态
红/琥珀B/E(Bootloader/错误)处于 bootloader 时闪烁指示错误
绿PWR(电源)bootloader 不使用指示 ARM 解锁状态

更详细的判读规则("x"表示任意状态):

红/琥珀蓝绿含义
10HzxxCPU 负载 > 80% 或 RAM 使用 > 98%(过载)
OFFxxCPU 负载 ≤ 80% 且 RAM 使用 ≤ 98%
—OFF4Hzactuator_armed->armed且触发 failsafe
—ON4Hzactuator_armed->armed且无 failsafe
—OFF1Hz未解锁但ready_to_arm为真
—OFF10Hz未解锁且ready_to_arm为假

需要说明的是,上述标签为常见标注,个别板卡可能不同;状态 LED 的实拍示意可见 Pixhawk 4 状态 LED 图。

选型与使用建议(实战总结)

综合原文档与仓库资料,可按以下思路选型与使用:

  1. 按任务形态选板:
    • 追求极致性能、需要大算力与高冗余(研究实验室、重载货运、复杂算法):优先FMUv6X-RT(1GHz、64MB flash、3×CAN、安全元件);
    • 主流开发与商业应用、需要模块化与以太网:FMUv6X;
    • 成本敏感、形态紧凑的消费级/教育应用:FMUv6C(双 IMU 冗余已足够);
    • FPV 竞速等紧凑场景:可考虑FMUv4/Pixracer等小尺寸板型。
  2. 优先选择"Pixhawk 标准"类别的板卡,它们由 PX4 维护团队直接支持,固件更新最及时;非标板卡请确认其支持等级(厂商支持/实验/停产)。
  3. 普通用户直接使用 QGroundControl 自动刷写固件即可,无需关心 FMU 细节;开发者根据板卡目录 boards/px4 确认 FMU 版本与 target 名,再用make px4_fmu-<版本>_default构建。
  4. 警惕 FMUv2 的 1MB flash 限制:若使用 FMUv2 固件,部分参数缺失属正常现象,建议优先更新 bootloader 或升级硬件。
  5. 接线与调试:串口映射以各板卡文档(如 pixhawk6x.md)为准;调试可通过 FMU Debug 口的 SWD 接口与系统控制台进行(参见 SWD 调试 与 PX4 系统控制台)。

进一步阅读

  • Pixhawk 标准自动驾驶仪清单
  • Pixhawk Autopilot Bus 与载板
  • 厂商支持的自动驾驶仪清单
  • 硅片勘误(FMUv2 限制)
  • LED 含义详解
  • 构建 PX4 软件
  • 固件与 Bootloader 更新
  • 机架参考(Airframes Reference)
  • 嵌入式
  • 物联网
  • 机器人
  • 自动驾驶
  • 智能硬件

【免费下载链接】PX4-Autopilot

PX4 Autopilot Software

项目地址:https://gitcode.com/gh_mirrors/px/PX4-Autopilot
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/27 1:37:23

电力系统多传感器融合:SCADA、日志与流量协同入侵研判

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/27 1:37:23

基于STM32智能药盒定时提醒系统Proteus仿真设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/27 1:36:56

4、DDR时序参数详解:tRCD/tCL/tRP/tRAS等关键参数、时序计算与Margin分析、高通平台时序配置实例

4.1 核心时序参数: 参数 全称 中文俗称 物理含义 tRCD RAS to CAS Delay 行选通到列选通延迟 打开一行后,需要等多久才能访问该行的某一列 tCL CAS Latency 列选通延迟(读延迟) 发出读命令后,到第一个数据出现在数据总线上的时钟周期数 tRP Row Precharge Time 行预充电时…

作者头像 李华
网站建设 2026/9/27 1:34:15

蓝牙音箱PD快充方案:IP2315同步降压充电设计与调试实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/27 1:33:38

4路CAN FD、零安装与LTE远程调试:汽车电子测试工具的进化与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华