3. ICD 设计输入与需求捕获
接口控制文件(ICD)不是凭空写出来的文档,它的每一条接口定义都必须能追溯到上游的设计输入。ICD 设计输入的质量,直接决定了后续接口定义是否完整、是否会出现遗漏或冲突。本节要解决的核心问题是:面对系统架构图、设备功能清单和交联关系图这三类典型输入,如何把它们"翻译"成可写入 ICD 的接口需求条目——包括接口类型、方向、速率、数据格式与实时性要求。
一、三类设计输入各自能提供什么
系统架构图回答的是"谁和谁在同一个系统里、通过什么总线或链路相连"。它给出的是物理与逻辑连接骨架:例如航电系统中综合显示单元、任务计算机、惯导、大气数据计算机、雷达之间的连接关系,以及它们挂在 ARINC 429、ARINC 653 分区、1553B 总线还是以太网 AFDX 上。架构图通常能直接读出接口的承载介质和拓扑位置,但一般不会写清每条消息的字段含义。
设备功能清单回答的是"每个设备对外承担什么职责"。它给出的是接口存在的理由:惯导对外输出姿态、位置、速度;大气数据计算机输出高度、空速、攻角;任务计算机需要接收这些数据并输出控制指令。功能清单能帮助判断某个接口是"必须存在"还是"可选",也能提示接口的数据内容范围。
交联关系图回答的是"数据往哪个方向流、以什么频率流"。它给出的是接口的方向与实时性线索:谁发送、谁接收、是单向广播还是双向请求应答、是周期发送还是事件触发。交联关系图往往是三类输入中最接近 ICD 条目的一条,但仍需补充速率、格式和精度等量化信息。
二、从输入到接口需求条目的提取路径
实际工程中,推荐按"连接—功能—方向—量化"四步推进,但每一步的产出都要落到具体条目上,而不是停留在描述性文字。
第一步,从架构图提取候选接口对。逐个识别有数据交互的设备对,记录它们之间的承载总线类型。例如"惯导 → 任务计算机,ARINC 429 高速口"、"任务计算机 → 综合显示单元,AFDX 虚拟链路"。此时得到的是接口的"骨架",还没有内容。
第二步,用功能清单确认接口内容。对每个候选接口对,回到功能清单确认发送方到底输出哪些参数组。惯导可能输出姿态角、角速率、地速、经纬度、高度等多组数据,每组在 ARINC 429 上通常对应一个独立的 Label。这一步要把"设备级接口"细化到"参数组级接口"。
第三步,用交联关系图确定方向与触发方式。明确该参数组是单向输出还是需要接收方回执,是周期发送还是事件触发。周期发送要记录更新率,事件触发要记录触发条件和最大延迟。
第四步,补全量化属性。这是 ICD 需求捕获中最容易被忽略、也最容易在后期引发返工的一步。需要为每条接口补齐:数据格式(编码方式、字长、分辨率、符号约定)、速率(更新率或带宽)、实时性要求(最大允许延迟、抖动容限)、以及有效性标识方式(如 SSM 符号状态矩阵)。
三、接口类型、方向、速率、格式与实时性的判定要点
接口类型由架构图直接给出,但要区分物理接口与逻辑接口。同一条 ARINC 429 物理线路上可能承载多个 Label,每个 Label 在 ICD 中应作为独立逻辑接口条目。AFDX 上则要区分虚拟链路(VL)与其中的端口,VL 决定带宽与完整性检查,端口决定数据内容。
方向必须明确到"发送方—接收方"这一对,不能只写"双向"。对于请求应答型接口,要分别定义请求消息与应答消息,并说明超时后的处理策略。方向定义不清是后期联调中最常见的争议来源。
速率包含两层含义:对于周期数据是更新率(如 20 Hz、50 Hz、100 Hz),对于非周期数据是最大消息速率或带宽占用。速率需求要能反推到总线负载计算,例如一条 429 高速口在 100 kbps 下,若每条 Label 含 32 位数据字加开销,可估算出可承载的 Label 数量上限,从而判断架构图给出的通道是否够用。
数据格式要写清编码方式(BNR、BCD、离散量)、字长、分辨率、量程与符号约定。以姿态角为例,若采用 BNR 编码、16 位有效数据、量程 ±180°,则分辨率约为 360°/2¹⁶ ≈ 0.0055°,这个数值应直接写入 ICD,而不是留给实现方自行推断。
实时性要区分端到端延迟、抖动和刷新周期。对于飞行控制相关数据,延迟要求通常在毫秒级;对于显示类数据,可放宽到几十毫秒。实时性要求必须与总线调度周期、接收方处理周期一起核算,否则会出现"单条满足、链路不满足"的情况。
四、需求捕获中的常见遗漏与检查方法
实践中,接口需求遗漏往往集中在几类:只画了单向却实际需要回执、只写了更新率没写延迟、只写了数据内容没写有效性标识、以及跨设备引用的参数没有统一量纲。建议在需求捕获完成后做一次交叉检查:以设备为行、以接口为列,检查每个设备的输入输出是否与功能清单一致;再以总线为行,检查负载是否超出架构图给出的容量。
完成本节的需求捕获后,应形成一份可追溯的接口需求清单,每条包含接口编号、发送方、接收方、承载介质、方向、更新率、数据格式、实时性要求与来源依据。这份清单就是后续 ICD 详细定义、总线负载核算和接口测试用例设计的共同输入。