飞控硬件选型核心:从MCU到传感器的实战考量
做飞控硬件选型,说白了就是给无人机选一颗聪明的大脑和一套靠谱的感官系统。我这些年经手过不少项目,从四轴到垂起固定翼,踩过的坑不少,攒下的经验也不少。今天咱们就掰开揉碎了聊聊,STM32F7和H7到底怎么选,传感器冗余怎么做才不白花钱,IMU和气压计那些参数背后到底意味着什么。
核心观点:飞控硬件选型没有绝对的“最好”,只有“最合适”。你的飞行器类型、预算、开发周期,决定了你应该选什么。
MCU之争:STM32F7 vs STM32H7
先聊MCU。这是飞控的大脑,所有传感器数据、控制算法、通信协议都在它这里跑。目前PX4生态里,F7和H7是两大主流。
STM32F7系列,比如F765、F767,主频216MHz,带FPU和DSP指令集。说实话,对于大多数四旋翼和固定翼来说,性能绰绰有余。我记得2018年做第一版开源飞控时,用的就是F765,跑PX4 v1.8,外挂四个传感器,CPU负载从来没超过40%。
STM32H7系列,比如H743、H750,主频直接干到480MHz,还多了个双精度FPU。这玩意儿性能确实猛,但代价也高——功耗大、PCB布局要求更严格、价格贵一倍不止。
| 对比项 | STM32F7(F765为例) | STM32H7(H743为例) |
|---|---|---|
| 主频 | 216 MHz | 480 MHz |
| FPU | 单精度 | 双精度 |
| SRAM | 512 KB | 1 MB + 864 KB |
| 典型功耗 | ~200 mW | ~500 mW |
| 价格(批量) | ~$8 | ~$15 |
| 适用场景 | 四旋翼、常规固定翼 | 大型无人机、需要大量计算 |
我的建议:如果你做的是250mm轴距以下的穿越机或小型四轴,F7完全够用。H7的优势在于跑更复杂的算法,比如视觉惯性里程计(VIO)或者多传感器融合。别为了“性能过剩”多花冤枉钱。
这里有个坑,我提醒一下:H7的供电要求比F7高。H7内核电压是1.2V,需要独立的LDO,而且对电源纹波更敏感。我曾经在一个项目里直接用F7的电源方案套到H7上,结果飞控在高负载时频繁复位。查了三天,最后发现是H7的Vcore供电不足。嗯,从那以后我学乖了,H7的电源设计必须单独算。
传感器冗余设计:不是越多越好
传感器冗余,说白了就是给飞控装“备用眼睛”。一个IMU坏了,另一个顶上;一个气压计飘了,另一个校正。但冗余不是简单地把两个传感器焊在一起就完事了。
我见过不少设计,三个IMU并排放,结果互相干扰,数据比单个还差。冗余设计的核心是物理隔离和电气隔离。
- 物理隔离:两个IMU之间至少保持5mm间距,避免热耦合和振动传递。
- 电气隔离:每个传感器的供电和I2C/SPI总线要独立,防止一个短路拖死整个系统。
- 软件冗余:PX4支持EKF2的多IMU融合,但需要你在硬件上把每个传感器的数据通道分开。
注意:冗余不是万能的。如果两个传感器用的是同一批次、同一型号,它们可能在同一温度或振动条件下同时失效。我建议至少选两个不同厂商或不同批次的IMU。
举个例子,我做过一个测绘无人机,要求单点故障不坠机。我们用了三颗IMU:一颗BMI088做主传感器,一颗ICM-20948做备份,还有一颗老款的MPU9250做第三级冗余。三颗传感器通过三个独立的SPI总线连接到MCU。PX4的EKF2会自动检测数据一致性,如果主传感器数据偏差超过阈值,自动切换到备份。这套系统跑了两年,没出过一次因传感器故障导致的坠机。
IMU选型:BMI088 vs ICM-20948
IMU是飞控最关键的传感器。它告诉你飞机现在是什么姿态、在往哪个方向加速。目前PX4生态里,BMI088和ICM-20948是两大主力。
BMI088是博世的产品,特点是抗振动性能极好。它的加速度计和陀螺仪是分开封装的,加速度计用了6自由度MEMS结构,对高频振动的抑制能力很强。我做过对比测试,在同样的电机振动环境下,BMI088的陀螺仪噪声比ICM-20948低了将近40%。
ICM-20948是InvenSense(现属TDK)的产品,特点是集成度高——它把加速度计、陀螺仪和磁力计都封装在一个芯片里,体积小、功耗低。而且它支持SPI和I2C双接口,最高SPI时钟可以到24MHz,数据读取速度更快。
| 对比项 | BMI088 | ICM-20948 |
|---|---|---|
| 加速度计量程 | ±24g | ±16g |
| 陀螺仪量程 | ±2000°/s | ±2000°/s |
| 陀螺仪噪声密度 | 0.004°/s/√Hz | 0.007°/s/√Hz |
| 内置磁力计 | 无 | 有(AK09916) |
| 工作温度 | -40~85°C | -40~85°C |
| 封装尺寸 | 3.0×4.5mm(双芯片) | 3.0×3.0mm(单芯片) |
选型建议:如果你做的是多旋翼,尤其是大轴距、高振动的机型,BMI088是首选。如果你做的是小型穿越机或手持云台,ICM-20948的体积和功耗优势更明显。我个人习惯是:测绘和工业级用BMI088,消费级和竞速级用ICM-20948。
这里有个细节要注意:ICM-20948的磁力计是集成的AK09916,但它的精度和独立磁力计(比如RM3100)没法比。如果你需要高精度航向,建议外接独立磁力计。
气压计选型:MS5611 vs DPS310
气压计负责测高度。别小看这个传感器,无人机能不能精准悬停、能不能安全降落,全靠它。目前主流的是MS5611和DPS310。
MS5611是TE Connectivity的产品,可以说是气压计里的“老黄牛”。它精度高、稳定性好,但有个致命缺点——对光线敏感。你没听错,MS5611的MEMS传感器腔体如果暴露在强光下,读数会漂移。我遇到过一架无人机,在阳光下悬停时高度忽高忽低,最后发现是气压计没做遮光处理。
DPS310是英飞凌的产品,算是后起之秀。它最大的优势是温度稳定性好,内部有温度补偿算法,在温度剧烈变化时(比如从地面飞到高空),读数比MS5611更可靠。而且DPS310对光线不敏感,不需要额外的遮光罩。
| 对比项 | MS5611 | DPS310 |
|---|---|---|
| 分辨率 | 10 cm(典型) | 5 cm(典型) |
| 相对精度 | ±0.1 mbar | ±0.05 mbar |
| 温度漂移 | ±1.5 mbar(-20~85°C) | ±0.5 mbar(-20~85°C) |
| 光敏感性 | 高(需遮光) | 低 |
| 采样率 | 最高 40 Hz | 最高 128 Hz |
| 价格 | ~$5 | ~$3 |
避坑指南:我曾经在一个项目中用了MS5611,但没做遮光处理,结果在户外测试时高度数据频繁跳变。后来在PCB上盖了一块黑色泡棉,问题解决。如果你选MS5611,记得在结构设计时留出遮光位置。DPS310虽然贵一点,但省心不少。
另外,气压计在PCB上的位置也有讲究。不要放在发热元件(比如MCU、电源芯片)附近,否则热空气会导致局部气压变化,影响精度。我一般把气压计放在飞控板的边缘,远离热源,并且在PCB背面开一个通气孔,让气压计直接接触外界大气。
一张图看懂飞控硬件选型逻辑
说了这么多,咱们用一张图把整个选型逻辑串起来。这张图是我自己总结的,每次做新项目都会拿出来对照一遍。
这张图的逻辑很简单:先确定你要做什么样的飞行器,然后根据计算需求选MCU,再根据振动环境和精度要求选传感器,最后别忘了冗余设计。每一步都有取舍,没有标准答案。
总结一下本章的核心要点
- MCU选型:F7够用就别上H7,省下的钱可以买更好的传感器。
- 传感器冗余:物理隔离和电气隔离比数量更重要,不同批次/型号的传感器更可靠。
- IMU选型:高振动环境用BMI088,小体积低功耗用ICM-20948。
- 气压计选型:MS5611精度高但怕光,DPS310温度稳定性好且省心。
- 布局注意:气压计远离热源和光源,IMU远离振动源。