2. 航空嵌入式实时系统基础

航空电子系统对“实时”的要求并不是“跑得快”,而是“在确定的时间界限内给出正确结果”。飞控计算机的姿态解算与控制律输出、综合显示器的画面刷新、大气数据计算机的高度速度解算,都有明确的时间约束。一旦错过截止期,轻则画面迟滞,重则控制律失效。因此,理解实时系统的任务调度模型、中断机制、时钟与时间基准,以及 RTOS 的核心概念,是后续开展实时性验证的前提。

一、任务调度模型:谁先运行、运行多久

航空嵌入式软件通常被划分为若干任务(Task),每个任务完成一项相对独立的功能,例如“惯性数据采集”“姿态解算”“控制律计算”“总线通信”“健康监控”。调度模型决定这些任务在单个 CPU 上如何分享时间。

最基础的是时间触发调度:系统按一张预先设计好的时间表运行,每个任务在固定时刻被激活。例如以 20 ms 为一个主帧,0 ms 启动传感器采集,2 ms 启动姿态解算,6 ms 启动控制律计算,10 ms 启动总线发送。这种模型行为完全可预测,适合飞控等安全关键功能,代价是灵活性差,任务超时后难以动态调整。

与之相对的是事件触发调度,任务由外部事件(中断、消息到达)激活。它响应灵活,但负载波动时最坏响应时间难以界定。工程中常采用混合方式:关键控制回路用时间触发,非关键的人机交互、维护报通用事件触发。

在 RTOS 中更常见的是基于优先级的抢占式调度。每个任务分配一个优先级,高优先级任务一旦就绪,立即抢占正在运行的低优先级任务。若多个任务优先级相同,则按时间片轮转。这里必须区分两个关键概念:优先级反转与优先级继承。当低优先级任务持有高优先级任务所需的互斥量时,高优先级任务被迫等待,若此时有中等优先级任务就绪,就会出现“高优先级被中优先级阻塞”的反转现象。解决办法是让持有互斥量的低优先级任务临时继承等待者的高优先级,尽快释放资源。航空软件中共享的传感器数据缓冲区、总线发送队列,都是优先级反转的高发点。

二、中断机制:实时响应的入口

中断是外部事件打断 CPU 当前执行流、转入中断服务程序(ISR)的机制。航空电子中,中断源包括定时器溢出、ARINC 429 接收完成、1553B 消息到达、离散量状态变化、看门狗等。

中断处理遵循“保存现场—执行 ISR—恢复现场”的基本过程。ISR 应尽可能短,只做最紧急的事,例如把接收到的数据搬入缓冲区、置一个标志,把耗时处理交给任务完成。这被称为“上半部/下半部”划分。若 ISR 过长,会推迟其他中断响应,直接恶化系统的中断延迟。

需要重点关注的实时性指标是中断延迟,即从中断请求产生到 ISR 第一条指令执行的时间,它由硬件响应时间、当前指令完成时间、以及是否被更高优先级中断或临界区屏蔽决定。在验证中,常通过定时器产生已知频率的中断,用示波器或高精度计数器测量从中断引脚跳变到 ISR 翻转 GPIO 的时间差,从而得到中断延迟的实测分布。

三、时钟与时间基准:实时性的度量尺

没有统一的时间基准,就无法谈论“实时”。航空嵌入式系统通常存在多个时钟层次:CPU 主时钟、外设总线时钟、RTOS 系统节拍(Tick)、以及用于时间戳的高精度计数器。

RTOS 的系统节拍由定时器周期性产生,例如 1 ms 一个 Tick。任务延时、超时判断都以 Tick 为单位。但 Tick 的粒度决定了调度的时间分辨率:若 Tick 为 10 ms,则一个要求 3 ms 响应的任务无法被准确调度。因此高实时性系统常采用高分辨率定时器或 Tickless 模式,在需要精确唤醒时动态编程定时器。

时间基准还必须考虑时钟漂移与同步。多台设备协同工作时,各自晶振存在 ppm 级偏差,长时间运行会累积误差。航空电子中常用 IRIG-B、PTP(IEEE 1588)或 GPS 秒脉冲进行时间同步,使各设备的时间戳可比较。验证时,需要检查同步误差是否在允许范围内,例如要求设备间时间偏差不超过 100 μs。

航空嵌入式实时系统:任务、中断与时间基准关系 t 0 5ms 10ms 15ms 20ms 25ms Tick=1ms 采集 采集 采集 姿态解算 姿态解算 姿态解算 控制律 控制律 总线发送 总线发送 429接收中断 1553B中断 定时器中断 中断延迟 优先级(高→低): 中断服务程序 控制律任务 姿态解算任务 采集任务 总线发送任务 健康监控(低)

四、RTOS 核心概念及其航空应用

RTOS 为上述机制提供统一抽象。核心概念包括:任务(独立执行单元,含优先级、栈、状态)、调度器(决定就绪任务中谁运行)、同步与通信(信号量、互斥量、消息队列、事件标志)、时间管理(延时、超时、时间戳)、内存管理(静态分配优先,避免动态碎片)。

在航空电子中,RTOS 的选择与配置直接关系适航。ARINC 653 定义了分区(Partition)概念:每个分区拥有独立的内存空间和时间窗口,分区内任务按自己的调度策略运行,分区之间通过采样端口或队列端口通信。这种时空隔离使得一个分区的故障不会蔓延到其他分区,是综合模块化航空电子(IMA)的基础。例如,将飞控分区与显示分区放在同一硬件上,飞控分区获得固定的 10 ms 时间窗口,显示分区使用剩余时间,即使显示分区崩溃,飞控分区仍按计划运行。

实际配置中,需要为每个任务确定优先级、周期、执行时间预算和截止期。以某飞控任务为例:周期 10 ms,最坏执行时间(WCET)经测量为 2.3 ms,截止期等于周期。若系统还有 5 ms 周期的通信任务,WCET 1.2 ms,则需通过响应时间分析验证:高优先级任务的阻塞时间加上自身执行时间,是否小于截止期。若验证不通过,则需调整优先级或拆分任务。

验证要点:实时性验证不是只看平均耗时,而是关注最坏情况。需要测量任务的最坏执行时间、中断延迟的最大值、以及在高负载下是否出现截止期错过。常用手段包括:GPIO 翻转配合示波器测量、RTOS 自带的任务执行时间统计、以及注入负载后的压力测试。

五、从概念到验证的衔接