1. 课程导入与航空实时性验证全景
航空嵌入式软件的实时性,并不是“跑得快”这么简单。它指的是:在给定的机载计算资源、确定的调度策略和可预测的最坏执行时间约束下,系统对外部事件或周期任务的响应,能够在规定的时间窗口内完成,并且这个结论可以被证据支撑。换句话说,实时性验证要回答的不是“平均响应多快”,而是“最坏情况下是否仍然满足时限”。
这一点在航空领域尤其关键。飞控计算机的舵面控制律通常以固定周期运行,例如 20 ms 周期任务必须在下一个周期到来前完成采样、解算与输出;若某次抖动导致输出延迟,可能直接影响飞行品质甚至安全。因此,实时性验证的目标可以归纳为三条主线:时间正确性(满足截止期)、可预测性(最坏情况可分析)、可追溯性(结论有证据链)。
适航语境下的实时性要求
在民用航空领域,机载软件必须满足 DO-178C《机载系统和设备合格审定中的软件考虑》。它并不直接规定“响应时间必须小于多少毫秒”,而是要求软件生命周期过程具备目标可满足性与证据完整性。与实时性直接相关的,是它对软件需求、设计、编码、集成与验证各阶段的目标要求,尤其是对时间相关需求的验证覆盖。
DO-330 则针对软件工具鉴定。当我们使用仿真器、时序分析工具、覆盖率工具或自动化测试平台来支撑实时性验证时,如果工具的输出被用于替代或减少生命周期过程,就需要按 DO-330 进行工具鉴定,明确工具需求、工具验证与使用限制。也就是说,工具本身的可信度也是适航证据的一部分。
从需求到证据:实时性验证的整体路线
本课程围绕一条完整的验证链路展开:从实时性需求捕获开始,经过任务建模与调度分析,进入代码级时间测量与仿真,再到硬件在环与目标机验证,最后形成可追溯的验证证据。每一环都不是孤立的,例如调度分析得到的 WCET 预算,会成为后续测试用例设计的输入;而目标机实测的抖动数据,又会反过来修正模型假设。
为了把这条链路讲清楚,课程会以一个贯穿式实战项目为载体:某型飞控计算机的周期任务实时性验证。项目设定一个典型场景——飞控软件包含 5 ms 快任务、20 ms 慢任务和若干事件触发任务,运行在双核处理器上,使用静态优先级抢占调度。我们将围绕这个场景,逐步完成需求分解、调度可行性分析、WCET 测量、抖动分析、优先级反转排查以及适航证据整理。
课程路线与实战项目说明
课程后续章节将按“基础—分析—测量—验证—证据”的顺序推进。基础部分讲清实时性概念、调度理论与适航条款;分析部分聚焦任务建模、RMA 响应时间分析与 WCET 预算分配;测量部分进入代码插桩、时间戳采集与抖动统计;验证部分覆盖 HIL 测试、故障注入与优先级反转排查;最后落到证据整理与适航审查应对。
实战项目的具体设定如下:目标机为双核 PowerPC 架构,主频 200 MHz,运行 RTOS 采用固定优先级抢占调度。任务集包含:
| 任务 | 周期 | 优先级 | WCET 预算 | 截止期 |
|---|---|---|---|---|
| 快任务 | 5 ms | 高 | 2.5 ms | 5 ms |
| 慢任务 | 20 ms | 中 | 12 ms | 20 ms |
| 事件任务 | 触发式 | 低 | 3 ms | 10 ms |
在后续章节中,我们会用这个任务集完成一次完整的实时性验证:先计算 CPU 利用率,判断调度可行性;再用响应时间分析验证最坏情况;接着在目标机上采集实际执行时间与抖动;最后整理成可追溯的验证证据。所有数据均为教学示例设定,用于说明方法,不代表任何真实型号的实测结果。
学习本课程后,你应当能够独立完成以下任务:根据实时性需求建立任务模型;选择合适的调度分析方法并解释其假设;设计代码级时间测量方案并识别测量误差来源;在 HIL 环境中执行实时性测试并判读结果;按照 DO-178C 与 DO-330 的要求整理验证证据。这些能力,正是航空嵌入式软件工程师在适航审查中必须拿得出手的硬功夫。