2. 系统架构与接口:自动驾驶仪系统组成、传感器接口、执行机构接口、总线通信协议

好,咱们直接切入正题。这一章聊的是自动驾驶仪的“骨架”和“血管”——系统架构与接口。说白了,就是搞清楚这玩意儿由哪些部分组成,它们之间怎么说话,怎么干活。

我刚开始接触航电系统时,总觉得这东西玄乎。后来拆过几个真实的飞控盒子,才明白——其实没那么神秘。核心就三块:大脑(计算单元)、眼睛(传感器)、手脚(执行机构)。再加上一条“数据高速公路”(总线),把它们串起来。

2.1 自动驾驶仪系统组成

一个典型的自动驾驶仪,我习惯把它分成四个子系统:

  • 飞控计算机(FCC):核心大脑。跑控制律、导航算法、故障逻辑。我见过用PowerPC的,也有用ARM Cortex-R系列的。关键看实时性和可靠性。
  • 传感器子系统:包括IMU(惯性测量单元)、GPS、大气数据计算机(ADC)、磁力计等。它们负责感知“我在哪”、“我朝哪飞”、“我飞多快”。
  • 执行机构子系统:舵机、伺服阀、电机控制器。它们负责把计算机的指令变成物理动作——推杆、收油、偏航。
  • 接口与总线子系统:ARINC 429、MIL-STD-1553、CAN、以太网。这些是“神经”,负责传递数据和指令。

核心要点:这四个子系统缺一不可。任何一个环节出问题,自动驾驶仪就会“失明”或“瘫痪”。

嗯,这里要注意:不同飞机的架构差异很大。小型无人机可能用一颗STM32搞定所有,但大型客机(比如B787)的飞控计算机是三重或四重冗余的。为什么?因为可靠性要求不一样。

2.2 传感器接口

传感器接口,说白了就是“怎么把物理世界的信号变成数字世界的0和1”。我遇到过最头疼的问题,就是传感器数据“打架”——IMU说飞机在爬升,GPS说在平飞。后来发现是接口时序没对齐。

常见的传感器接口类型:

传感器类型 常用接口 典型数据速率 注意事项
IMU(惯性测量单元) SPI / RS-422 100-1000 Hz 注意时钟同步,避免数据抖动
GPS接收机 UART / RS-232 1-20 Hz NMEA协议解析要稳定,丢帧处理要健壮
大气数据计算机 ARINC 429 12.5-100 kbps 注意奇偶校验和SDI标识
磁力计 I²C / SPI 10-100 Hz 容易受电磁干扰,需要校准

我个人习惯,在设计传感器接口时,会留一个“心跳信号”。每个传感器每隔固定时间发一个“我还活着”的脉冲。如果飞控连续三次没收到心跳,就判定该传感器失效,切换到冗余通道。

经验之谈:我曾经在一个项目中,GPS数据偶尔会跳变几米。排查了三天,最后发现是UART接收缓冲区溢出导致的。从那以后,我所有传感器接口都加上了环形缓冲区和超时重传机制。

2.3 执行机构接口

执行机构接口,就是“怎么让计算机的指令变成舵面的偏转”。你想想看,飞控算出一个“左转5度”的指令,怎么让副翼真的动起来?

常见的执行机构接口:

  • PWM(脉宽调制):最传统的方式。通过改变脉冲宽度控制舵机角度。频率通常50Hz,脉宽1-2ms对应0-90度。简单,但精度有限。
  • CAN总线:现代飞机和无人机的主流。每个舵机或电机控制器都有一个CAN ID,飞控通过CAN报文发送目标位置或转速。抗干扰能力强,支持双向通信。
  • 模拟电压:0-10V或±10V信号。老式飞机用得多,现在逐渐被数字接口取代。
  • MIL-STD-1553:军用标准。可靠性极高,但成本也高。我参与过一个直升机项目,用的就是1553总线控制旋翼桨距。

这里有个坑:PWM接口虽然简单,但容易受电磁干扰。我曾经在电磁兼容测试中,PWM信号被发动机点火系统干扰,导致舵机乱抖。后来换成了差分信号传输,问题才解决。

避坑指南:我曾经在调试时发现,舵机响应总是慢半拍。查到最后,是PWM信号线太长,导致上升沿变缓。建议PWM信号线长度不要超过30cm,或者使用RS-422差分传输。

2.4 总线通信协议

总线通信协议,是自动驾驶仪的“语言”。不同的总线,有不同的“语法”和“规矩”。

我整理了几种常见总线的对比:

总线类型 速率 拓扑结构 典型应用 我的评价
ARINC 429 12.5-100 kbps 点对点 民航客机(B737、A320) 老当益壮,但速率是瓶颈
MIL-STD-1553 1 Mbps 总线型 军用飞机、直升机 可靠,但配置复杂
CAN 最高1 Mbps 多主总线 无人机、汽车 性价比之王,我用的最多
AFDX(ARINC 664) 100 Mbps 星型 B787、A380 未来趋势,带宽大

我个人最常用的是CAN总线。为什么?因为它支持多主通信,任何一个节点都可以主动发数据。而且有完善的错误检测机制——CRC校验、位填充、应答确认。我在项目中用CAN总线连接了飞控、IMU、GPS和四个舵机,一条双绞线搞定所有通信,布线简单多了。

但CAN也有缺点:速率上限1Mbps,对于高清视频传输就不够用了。这时候就得用AFDX或以太网。

关键点:选择总线协议,不是越新越好,而是看需求。对于控制指令(几十字节),CAN完全够用。对于大数据量(比如雷达点云),才需要AFDX。

2.5 系统架构图

下面我用一张SVG图,把整个系统架构串起来。你一看就明白了。

自动驾驶仪系统架构图 飞控计算机 (FCC) 控制律 / 导航 / 故障管理 IMU (惯性测量) SPI / RS-422 GPS接收机 UART / RS-232 大气数据计算机 ARINC 429 磁力计 I²C / SPI 副翼舵机 PWM / CAN 升降舵舵机 PWM / CAN 方向舵舵机 PWM / CAN 油门控制器 CAN / 模拟电压 数据总线 (CAN / ARINC 429 / 1553) 传感器 飞控计算机 执行机构 数据总线

这张图展示了典型的自动驾驶仪架构。左侧是传感器,右侧是执行机构,中间是飞控计算机,底部是数据总线。所有数据都通过总线传输——传感器把数据发到总线上,飞控从总线上读取,计算完再把指令发回总线,执行机构从总线上取指令。

嗯,这里有个细节:实际系统中,传感器数据不一定都走总线。比如IMU数据要求高实时性,我通常会直接用SPI连接到飞控,减少总线延迟。而GPS数据更新慢,走CAN总线完全没问题。

我的习惯:在设计接口时,我会给每个传感器和执行机构分配一个唯一的“逻辑地址”。这样在调试时,通过总线监控软件就能看到每个节点的数据流,定位问题非常方便。

好了,这一章的内容就这些。系统架构是基础,接口是细节。把这两块搞明白,后面的控制律、导航算法才能跑得稳。记住一句话:好的架构,让bug无处藏身;烂的接口,让调试痛不欲生。


公众号:蓝海资料掘金营,微信deep3321