3. 实时性测试基础

在航电实时计算平台中,“实时”并不等于“快”。一个任务即使平均执行时间只有几十微秒,只要偶尔出现一次超出截止期的情况,就可能造成飞控指令迟滞、显示画面撕裂或总线数据丢失。因此,实时性的核心是在确定的时间约束内完成规定功能,而不是单纯追求平均速度。本节围绕实时性定义、确定性指标、抖动与延迟测量、时钟同步方法以及测试工具链展开,为后续的实时性测试用例设计提供基础。

实时性的定义与分类

实时系统通常分为硬实时、软实时和固实时三类。硬实时要求任务必须在截止期前完成,否则后果不可接受,例如电传飞控的舵面控制律计算;软实时允许偶尔超时,仅降低服务质量,例如座舱显示刷新;固实时介于两者之间,偶尔超时结果仍可用,但价值明显下降。航电平台中,不同关键等级的任务往往混合部署,因此实时性测试必须区分任务类别,分别设定判据。

从测试角度看,实时性可形式化描述为:对于任务集 Γ={τ₁,τ₂,…,τₙ},每个任务 τᵢ 具有周期 Tᵢ、执行时间 Cᵢ、相对截止期 Dᵢ 和优先级 Pᵢ。若所有任务在最坏情况下均满足响应时间 Rᵢ ≤ Dᵢ,则系统满足硬实时约束。测试的目标就是通过激励与观测,验证 Rᵢ 的分布是否始终落在 Dᵢ 之内。

确定性指标:从平均值到最坏情况

实时性测试不能只看平均值。常用的确定性指标包括:

  • 最坏响应时间(WCRT):任务从释放到完成的最大时间,是硬实时判定的核心依据。
  • 抖动(Jitter):实际响应时间或周期与理想值的偏差,分为释放抖动、完成抖动和周期抖动。
  • 延迟(Latency):从事件发生到系统产生可观测响应之间的时间,如传感器采样到控制输出。
  • 截止期错过率:统计窗口内超时次数与总释放次数之比,用于软实时评估。
  • 时间确定性:同一输入序列在多次运行中响应时间的一致性,可用标准差或最大—最小差衡量。

在航电场景中,WCRT 和抖动往往比平均值更重要。例如某飞控任务周期为 10 ms,截止期为 8 ms,若实测 WCRT 为 7.2 ms、抖动为 ±0.6 ms,则满足约束;若 WCRT 达到 8.4 ms,即使平均值只有 3 ms,也判定为不合格。

抖动与延迟的测量方法

抖动与延迟测量通常采用“打时间戳—激励—采集—比对”的方式。以航电平台中一个周期任务为例,可在任务入口和出口分别读取高精度计数器,得到执行时间;在任务释放时刻记录理想时间戳,与实际开始时刻比较得到释放抖动。测量时需要注意:

  • 时间戳读取本身应尽量轻量,避免引入额外抖动;
  • 采样窗口应覆盖足够多的周期,通常不少于 10⁴ 个周期,以捕获偶发超时;
  • 应记录最大值、最小值、均值、标准差和超时次数,而不是只记录均值;
  • 测量点应尽量靠近真实事件源,避免中间缓存掩盖延迟。

对于端到端延迟,例如从 ARINC 429 总线接收到数据到控制律使用该数据,可在总线接收中断和任务读取处分别打时间戳,两者之差即为端到端延迟。若平台支持硬件时间戳,应优先使用硬件时间戳,以减少软件读取带来的误差。

时钟同步方法

分布式航电系统中,各处理节点、传感器和总线监控器往往有独立时钟。若时钟不同步,跨节点测量的延迟和抖动将失去意义。常用时钟同步方法包括:

  • IRIG-B:通过专用同轴或双绞线传输秒脉冲和 BCD 时间码,精度可达微秒级,适合机载测试设备。
  • IEEE 1588 PTP:基于以太网的精确时间协议,通过主从时钟交换 Sync、Follow_Up、Delay_Req 和 Delay_Resp 报文,估算路径延迟并校正偏移,典型精度为亚微秒级。
  • GPS/北斗秒脉冲:提供绝对时间基准,常用于地面测试和飞行试验中的多设备同步。
  • 软件同步:通过 NTP 或自定义协议交换时间戳,精度通常在毫秒级,仅适用于对时间精度要求不高的场景。

选择同步方法时,应使同步误差远小于被测抖动或延迟的量级。例如测量 100 μs 级的任务抖动,时钟同步误差应控制在 10 μs 以内,否则测量结果不可信。

实时性测试工具链

实时性测试工具链通常由激励、采集、分析和可视化四部分组成。激励工具负责产生周期任务、总线消息或中断;采集工具负责记录时间戳和事件;分析工具负责计算 WCRT、抖动、延迟分布和超时率;可视化工具用于展示时间线、直方图和趋势图。在航电平台中,常用工具包括总线监控器、逻辑分析仪、示波器、嵌入式跟踪模块以及平台自带的实时操作系统跟踪接口。

下面用一张图展示实时性测试中从时钟同步、任务激励、时间戳采集到指标判定的信号与数据关系。图中左侧为时间基准,中间为被测平台,右侧为测量与分析结果。

航电实时性测试:时钟同步—激励—采集—判定关系图 时间基准 GPS/北斗秒脉冲 绝对时间基准 IEEE 1588 PTP 主从时钟同步 IRIG-B 秒脉冲+时间码 同步误差 应远小于被测抖动 被测航电实时平台 周期任务 τ₁ T=10ms, D=8ms 中断服务 ISR 总线接收触发 入口时间戳 t_start 出口时间戳 t_end 端到端延迟测量点 总线接收 → 控制律使用 实时操作系统跟踪接口 任务切换/释放/完成事件 测量与分析 响应时间 Rᵢ t_end − t_release 抖动 Jitter Rᵢ − R_ideal WCRT / 超时率 max(Rᵢ), miss/D 判定 Rᵢ ≤ Dᵢ ? 测量前提:时钟同步误差 ≪ 被测抖动/延迟;采样窗口 ≥ 10⁴ 周期;记录最大值、最小值、均值、标准差与超时次数

测试实施要点与判据示例

在实际测试中,建议先完成时钟同步并验证同步误差,再施加任务激励。以某航电平台为例,假设飞控任务周期 T=10 ms、截止期 D=8 ms,测试持续 60 s,共 6000 个周期。采集到的响应时间统计为:均值 3.1 ms,最大值 7.4 ms,最小值 2.8 ms,标准差 0.42 ms,超时 0 次。此时可判定该任务满足硬实时约束。若最大值达到 8.3 ms,即使仅出现 1 次,也应判定为不合格,并进一步分析是否由中断延迟、缓存未命中或优先级反转引起。

对于端到端延迟,例如从 ARINC 429 接收字到控制律使用,若实测最大延迟为 1.8 ms,而设计约束为 2 ms,则满足要求;若抖动达到 0.9 ms,接近约束边界,应结合时钟同步误差和总线负载进一步评估。测试报告应至少包含:任务标识、周期、截止期、采样周期数、WCRT、抖动、超时次数、时钟同步方式和同步误差。

实时性测试的关键不是“跑一遍看结果”,而是建立可重复的时间基准、覆盖足够多的周期、记录最坏情况,并用明确的判据判定是否满足截止期约束。

综上,实时性测试基础包括对实时性定义的准确理解、对确定性指标的选取、对抖动与延迟的正确测量、对时钟同步方法的合理选择,以及对工具链的有效组织。只有把时间基准、激励、采集和判定串成闭环,后续的实时性测试用例和平台验证才有可靠依据。