2. 遥测参数与信号类型
遥测帧里承载的并不是“抽象的数据”,而是一批有明确物理含义、明确取值范围的工程参数。帧处理程序之所以能对它们做解析、标定、打包和判读,前提是先把参数按信号类型分清楚。工程上通常把遥测参数分为四类:模拟量、数字量、开关量和总线参数。它们的电气形态、编码方式、变化速率和误差特性各不相同,直接决定了采样率、量程、精度这三个采集侧参数如何选取,也决定了后续帧处理中字节序、位域、标定系数和校验策略如何设计。
四类信号的本质特征
模拟量是连续变化的物理量,如母线电压、蓄电池温度、推进剂贮箱压力、太阳翼电流。传感器输出多为连续电压或电流,经调理后送入 ADC 采样,得到的是与物理量成比例的整数码值。它的核心特征是“连续量离散化”,因此必然引入量化误差,且需要标定才能还原为工程量。
数字量是已经离散化的数值型参数,如星上时间计数、姿态角计算值、软件版本号、累计工作秒数。它通常由星务计算机直接以整型或定点数写入遥测区,不需要 ADC 转换,但需要约定字长、有无符号和字节序。
开关量是只有有限状态的二值或多值离散量,如“太阳翼展开到位/未到位”“加热器开/关”“模式为安全/正常/机动”。它本质上是 1 bit 或几 bit 的状态编码,信息量小但判读价值高,常以位域形式密集打包。
总线参数是通过星上数据总线(如 CAN、1553B、RS-422)采集的设备参数,如载荷温度、相机工作状态、陀螺原始数据。它本身可能包含模拟量、数字量和开关量,但采集路径是“总线请求—设备响应—组帧”,因此带有总线周期、地址、长度和校验等额外属性。
采样率、量程、精度:三个决定帧处理方式的参数
采样率决定参数在时间轴上的更新密度。温度、电压这类缓变量,1 Hz 甚至 0.2 Hz 就足够;而振动、电流纹波、姿态角速度等快变量,可能需要 10 Hz 到 100 Hz。采样率选低了会漏掉瞬态,选高了会挤占帧内字节、增加下行码速率压力。在帧处理中,采样率直接体现为“该参数在每帧中占几个字节、是否每帧都刷新、是否需要跨帧拼接”。
量程决定参数能表达的物理范围。例如某温度传感器量程为 -40 ℃~+85 ℃,对应 ADC 输出 0~4095(12 bit)。量程选窄了会饱和削顶,选宽了会浪费分辨率。帧处理时必须知道量程上下限,才能把码值正确映射回工程量。
精度决定参数的可信程度,通常由分辨率、非线性、温漂和量化误差共同决定。12 bit ADC 在 125 ℃ 量程下的理论分辨率为 125/4096 ≈ 0.0305 ℃,但实际精度可能只有 ±0.5 ℃。帧处理中,精度影响的是标定系数的小数位数、遥测判据的门限设置,以及是否需要对同一参数做多点平均。
三者不是孤立的:采样率影响帧内字节预算,量程影响标定公式的斜率,精度影响判据门限和告警灵敏度。它们共同决定了后续帧处理中“解析—标定—判读”这条链路的每一个环节。
从参数特征到帧处理的具体影响
把四类信号和三个采集参数放在一起看,帧处理中真正要做的判断就清晰了。以某温度参数为例:传感器量程 -40 ℃~+85 ℃,ADC 为 12 bit,采样率 1 Hz,每帧占 2 字节。帧处理程序拿到码值 2048 后,按公式“工程量 = 码值 × 量程跨度 / (2^N - 1) + 下限”计算,得到 2048 × 125 / 4095 - 40 ≈ 22.5 ℃。这里量程跨度 125 ℃ 和 12 bit 字长共同决定了标定斜率约为 0.0305 ℃/码。如果判据门限设为 25 ℃,那么 0.03 ℃ 的分辨率完全够用,不需要对多帧做平均;但如果门限要求区分 22.5 ℃ 和 22.6 ℃,就必须考虑传感器实际精度是否支持,否则会出现门限抖动导致的误告警。
开关量的处理逻辑不同。它通常以位域形式打包在一个字节或半个字节中,例如 bit0 表示“太阳翼展开到位”,bit1 表示“加热器开”,bit2~bit3 表示“工作模式”。帧处理时不能按整字节标定,而要用掩码和移位提取。位域的顺序、有效电平(高有效还是低有效)必须在接口数据文件中约定清楚,否则会出现“状态反读”的严重错误。
数字量的关键在于字长和字节序。星上时间常用 4 字节无符号整型,姿态角常用 2 字节有符号定点数。如果帧处理程序按小端解析而星上按大端发送,数值会完全错乱。因此数字量参数在帧处理前必须确认:字长、有无符号、字节序、单位缩放因子。总线参数则更复杂,它需要先完成总线层校验(如 CRC 或校验和),确认设备响应有效后,再把有效载荷按上述三类信号分别解析。
采样率与帧周期的匹配关系
采样率和帧周期不是一回事。采样率是参数在星上被采集的频率,帧周期是遥测帧下行的频率。如果某参数采样率为 10 Hz,而帧周期为 1 s,那么每帧需要携带 10 个采样点,或者星上先做降采样、取平均、取极值后再入帧。帧处理程序必须知道这个关系,否则会把“10 个点”误当成“1 个点”,导致时间轴错位。工程上常见的做法是:缓变量每帧刷新一次;快变量在星上做 1 s 平均后入帧,并在帧内标注“平均值”而非“瞬时值”;瞬态事件则用“极值保持”方式记录,避免漏掉峰值。
参数表:帧处理前必须确认的字段
为了让帧处理程序正确解析,每个遥测参数在接口数据文件中至少应包含以下字段。这张表可以直接作为参数核对清单使用。
| 字段 | 说明 | 示例 |
|---|---|---|
| 参数标识 | 帧内唯一名称或代号 | TEMP_BAT_01 |
| 信号类型 | 模拟量/数字量/开关量/总线参数 | 模拟量 |
| 帧内位置 | 字节偏移与位偏移 | Byte 12~13,bit0~11 |
| 字长/位宽 | 占用 bit 数 | 12 bit |
| 量程 | 物理量上下限 | -40 ℃~+85 ℃ |
| 采样率 | 星上采集频率 | 1 Hz |
| 精度 | 分辨率与总误差 | 0.03 ℃ / ±0.5 ℃ |
| 字节序 | 大端或小端 | 大端 |
| 标定公式 | 码值到工程量的换算 | y = x × 125 / 4095 - 40 |
| 判据门限 | 告警上下限 | 上限 60 ℃,下限 -20 ℃ |
这张表的意义在于:帧处理程序不是“拿到字节就解析”,而是“按参数定义解析”。信号类型决定解析方式,量程和精度决定标定系数与门限,采样率决定刷新策略,字节序和位宽决定提取方式。任何一项缺失或约定不一致,都会在后续判读中表现为数值跳变、状态反读或告警误报。因此,在编写帧处理代码之前,先把这张参数表核对完整,比事后逐帧排查要高效得多。