4. 遥控链路协议与帧结构
遥控链路能否在限定时间内把一条指令可靠送到星上,并不只取决于发射功率和天线增益,更取决于协议与帧结构的设计。帧结构决定了单帧的传输时长和检错能力,协议状态机决定了重传、确认和超时的行为。二者共同决定了链路的端到端延迟与指令成功率。本节从帧格式入手,逐字段分析其对延迟和可靠性的贡献,再讨论状态机如何把这些字段组织成可验证的交互过程。
一、遥控帧格式与各字段的作用
典型的遥控帧由帧头、地址码、指令码、数据域、校验字段和帧尾组成。以常见的上行遥控帧为例,其结构可表示为:同步字(2字节)+ 地址码(2字节)+ 指令码(1字节)+ 数据域(0~N字节)+ 校验字段(2字节)。同步字用于接收端在比特流中定位帧边界,地址码用于区分不同航天器或分系统,指令码标识具体操作,数据域携带参数,校验字段用于检错。
每个字段都直接影响延迟与可靠性。同步字越长,帧同步越可靠,但帧头开销增加,单帧传输时间变长;地址码越长,寻址范围越大,但同样增加开销。指令码长度决定了可表达的指令条数,若指令集超过编码空间,就需要扩展帧或分页机制,这会引入额外的交互轮次,从而增加延迟。校验字段的位数直接决定检错能力:16位CRC可检测绝大多数随机错误,但无法纠正错误,只能触发重传。
设帧总长为 L 比特,链路速率为 R bps,则单帧传输时间 Tframe = L / R。若 L = 256 bit,R = 2000 bps,则 Tframe = 128 ms。若考虑重传,则有效延迟为 Teff = Tframe × (1 + Nretry),其中 Nretry 为平均重传次数。可见,帧长和误帧率共同决定了延迟的期望值。
二、同步字与地址码:帧定位与寻址的可靠性代价
同步字的核心任务是在连续比特流中唯一确定帧的起始位置。若同步字过短,接收端可能在数据域中误匹配到相同比特序列,造成假同步;若过长,则帧头开销增大。工程上常选用具有尖锐自相关特性的序列,如巴克码或伪随机序列。例如,13位巴克码在±13范围内具有平坦旁瓣,适合作为帧同步字。假设同步字为16 bit,链路速率2000 bps,则同步字本身占用8 ms。若同步失败,接收端需要重新搜索,平均搜索时间取决于帧长和同步字长度,通常为帧周期的数倍,这会显著增加延迟。
地址码用于区分目标航天器或分系统。在单星遥控中,地址码可较短;在多星或星座场景中,地址码需要足够长以避免误寻址。地址码的误判会导致指令发往错误对象,属于不可接受的可靠性事故。因此,地址码通常与校验字段联合保护,或采用固定前缀加可变后缀的结构。地址码长度每增加1字节,单帧传输时间增加约4 ms(在2000 bps下),但寻址可靠性提升。设计时需要在延迟和可靠性之间折中。
三、指令码与数据域:指令空间与帧长的权衡
指令码标识具体操作,其长度决定了指令集容量。若指令码为1字节,可表达256条指令;若指令集超过256条,则需要扩展指令码或使用分页机制。分页机制通常需要额外的页号字段,并可能引入两帧交互:第一帧发送页号,第二帧发送指令。这会使延迟翻倍。因此,在指令集设计阶段就应合理规划指令码长度,避免后期扩展带来的延迟惩罚。
数据域长度可变,直接影响帧长。对于参数注入类指令,数据域可能较长;对于开关类指令,数据域可为空。帧长增加会线性增加传输时间,同时增加误帧概率。设误比特率为 Pb,帧长为 L 比特,则帧错误概率 Pframe_error ≈ 1 - (1 - Pb)L。当 Pb = 10-5,L = 256 bit 时,Pframe_error ≈ 0.25%;当 L = 1024 bit 时,Pframe_error ≈ 1.02%。可见,帧长增加会显著提高重传概率,进而增加延迟。
四、校验字段:检错能力与重传代价
校验字段是可靠性的最后一道防线。常用方案包括奇偶校验、累加和、CRC-16和CRC-32。奇偶校验只能检测奇数个比特错误,检错能力弱;累加和实现简单,但对某些错误模式不敏感;CRC-16可检测所有单比特、双比特错误以及奇数个错误,对突发错误也有较强检测能力。在遥控链路中,通常采用CRC-16或CRC-32。
校验字段本身也占用帧长。CRC-16占2字节,CRC-32占4字节。在2000 bps下,CRC-16增加8 ms传输时间,CRC-32增加16 ms。若链路误比特率较高,采用更强的CRC可降低重传次数,从而降低有效延迟。例如,在 Pb = 10-4 时,CRC-16的漏检率约为10-5,而CRC-32可降至10-10以下。虽然CRC-32增加了帧长,但减少了重传,综合延迟可能更低。
五、协议状态机:重传、确认与超时对延迟的影响
协议状态机定义了遥控链路的交互流程。典型状态包括空闲、发送、等待确认、重传和完成。发送方发出帧后进入等待确认状态,若在超时时间内收到确认帧,则完成;若超时或收到否定确认,则重传。超时时间 Ttimeout 的设置至关重要:过短会导致不必要的重传,过长会增加延迟。通常 Ttimeout = 2 × Tprop + Tframe + Tack + Tprocess,其中 Tprop 为传播延迟,Tack 为确认帧传输时间,Tprocess 为星上处理时间。
以地球同步轨道卫星为例,Tprop ≈ 120 ms,Tframe = 128 ms,Tack = 64 ms,Tprocess = 20 ms,则 Ttimeout ≈ 2×120 + 128 + 64 + 20 = 452 ms。若一次成功,端到端延迟约为 Tprop + Tframe + Tprocess + Tack + Tprop = 120 + 128 + 20 + 64 + 120 = 452 ms。若发生一次重传,则延迟增加约 Ttimeout + Tframe = 452 + 128 = 580 ms,总延迟超过1秒。因此,降低误帧率和合理设置超时是控制延迟的关键。
状态机还应支持序列号机制,用于识别重复帧和失序帧。序列号通常占用1~2字节,会增加帧长,但能有效防止重复执行指令。对于关键指令,可采用“执行并确认”模式,即星上收到指令后先回传确认,再执行;若确认丢失,地面重传,星上通过序列号去重。这种模式增加了交互轮次,但显著提高了可靠性。
六、设计检查清单
在实际设计遥控链路协议时,可参考以下检查项:
- 同步字是否具有尖锐自相关特性,长度是否与帧长匹配;
- 地址码是否覆盖所有目标对象,是否与校验字段联合保护;
- 指令码长度是否满足当前及可预见扩展需求,是否避免分页交互;
- 数据域长度是否可控,是否对长帧采用分片传输;
- 校验字段是否选用CRC-16或更强方案,是否与误比特率匹配;
- 超时时间是否覆盖传播、传输、处理和确认全链路;
- 状态机是否支持序列号去重、否定确认和最大重传次数限制;
- 是否对关键指令采用“执行并确认”模式,是否记录重传次数用于评估链路质量。