3. 数据采集前端接口与时钟域

星载数据采集前端通常不是单一接口,而是多种总线并存:高速图像或高速AD数据走LVDS或SpaceWire,低速遥测遥控、状态量采集走1553B,部分平台还会用CAN或RS-422作为辅助通道。这些接口的速率、时序模型和时钟来源差异很大,如果只按“能通就行”的思路设计,很容易在系统集成阶段出现丢数、错位、偶发误码或采集节拍抖动。本节从速率、时序和跨时钟域三个角度,把这三类接口放在同一张工程视图下梳理。

一、三类接口的速率与时钟特征

LVDS本身是物理层标准,不是协议。它用差分对传输,典型共模约1.2V,差分摆幅约350mV,点对点或一驱多收,常用速率在100Mbps到1Gbps以上。星上图像采集常用“LVDS + 自定义帧协议”:例如7对数据加1对随路时钟,DDR双沿采样,随路时钟100MHz时单对数据率200Mbps,7对合计1.4Gbps。它的关键特征是时钟随数据一起传,接收端用随路时钟采样,因此天然存在源同步时序窗口问题。

SpaceWire基于LVDS物理层,但定义了链路层、字符层和包层,速率通常为2Mbps到400Mbps,星上常用100Mbps或200Mbps。它使用DS编码,接收端从数据流中恢复时钟,属于自同步串行链路。SpaceWire有流量控制字符FCT和空字符NULL,链路建立需要交换连接请求,因此它的时序不是固定周期节拍,而是由字符流和信用机制决定。

1553B是命令/响应式串行总线,标准速率1Mbps,采用曼彻斯特编码,半双工,总线控制器BC按消息调度。一个典型消息包含命令字、数据字和状态字,每个字20位,其中同步头3位、数据16位、奇偶1位。1553B的“时序”核心是消息间隔和响应超时:BC发命令后,RT必须在4到12微秒内响应,否则视为超时。它的速率低、实时性由调度表保证,适合状态量、指令和低速遥测。

三类前端接口的速率—时序—时钟域关系 LVDS 源同步接口 速率:100Mbps~1Gbps+(示例 7对×200Mbps) 时钟:随路时钟,与数据同源 时序:建立/保持窗口,DDR双沿 风险:走线偏斜、共模漂移、眼图闭合 数据对 D0..D6 ──┐ 随路时钟 CLK ──┴──▶ 接收端采样 SpaceWire 自同步链路 速率:2Mbps~400Mbps(常用100/200Mbps) 时钟:DS编码,接收端时钟恢复 时序:字符流 + FCT信用 + NULL填充 风险:链路建立失败、信用耗尽、恢复抖动 Data-Strobe ──▶ 时钟恢复 ──▶ 字符同步 FCT/NULL 信用流控,非固定节拍 1553B 命令/响应总线 速率:1Mbps,曼彻斯特编码 时钟:BC统一调度,半双工 时序:命令字→数据字→状态字,响应4~12μs 风险:响应超时、总线冲突、调度抖动 BC ──命令──▶ RT ──状态──▶ BC 消息间隔 ≥ 4μs,超时判故障 跨时钟域(CDC)汇聚点 LVDS随路时钟域 ──▶ 异步FIFO ──▶ 采集主时钟域 SpaceWire恢复时钟域 ──▶ 双口RAM/握手 ──▶ 主时钟域 1553B 1MHz位时钟域 ──▶ 同步器+寄存器 ──▶ 主时钟域 时序判据速查 LVDS:眼图张开度、建立/保持余量、偏斜 < 0.1UI;SpaceWire:链路速率协商、FCT信用不归零;1553B:响应窗口4~12μs、消息间隔≥4μs、奇偶校验正确。 CDC原则:单比特用两级同步器,多比特用格雷码或异步FIFO,禁止直接跨域采样总线。

二、时序关系的工程含义

LVDS的时序核心是“采样窗口”。以DDR随路时钟为例,数据在时钟上下沿附近翻转,接收端需要在眼图中心采样。若PCB走线长度差导致偏斜,或电缆共模电压漂移,眼图会闭合。工程上通常要求数据对与时钟对等长,偏斜控制在0.1UI以内;对200Mbps、UI=5ns的链路,偏斜应小于0.5ns。调试时可用示波器观察眼图,或让FPGA内部IDELAY逐级扫描,找到误码率最低的采样点。

SpaceWire的时序不是固定周期,而是“字符节拍”。发送端连续发送字符,接收端用DS恢复时钟。链路两端通过交换NULL保持同步,通过FCT字符控制信用。若接收端缓冲满而未及时发FCT,发送端会停止发送,造成吞吐下降。因此SpaceWire的“时序”更多体现为信用流控的响应时间,而不是固定时钟沿。配置时需关注链路速率、接收缓冲深度和FCT返回延迟。

1553B的时序由BC调度表决定。BC按固定周期发送命令,RT在4到12微秒内响应。若RT未响应,BC记录超时并继续下一条消息。1553B的1Mbps速率意味着一个20位字约20微秒,一条含32个数据字的消息约700微秒。因此1553B适合低频状态采集,不适合高速数据流。设计时需把1553B消息周期与采集主循环对齐,避免总线调度与采集节拍相互阻塞。

三、跨时钟域问题的具体处理

三类接口的时钟来源不同:LVDS用随路时钟,SpaceWire用恢复时钟,1553B用1MHz位时钟,而采集系统主时钟通常是本地晶振。数据从接口域进入主时钟域,必须经过CDC处理。常见错误是直接用主时钟采样接口总线,导致亚稳态和多位数据错位。

对单比特控制信号,如1553B的“消息有效”标志,可用两级触发器同步,第一级输出可能亚稳态,第二级稳定后再使用。对多比特数据,如LVDS一帧图像,应使用异步FIFO:写侧用随路时钟,读侧用主时钟,FIFO深度按“突发长度 + 跨域延迟”估算。例如一帧2048字节、写速率200MB/s、读速率150MB/s,FIFO至少需容纳2048字节加上约10个时钟的同步延迟。对SpaceWire,可用双口RAM加握手,或直接用异步FIFO,但要注意FCT信用与FIFO空满标志的配合。

CDC设计检查要点:跨域信号是否全部经过同步或FIFO;多比特是否使用格雷码或握手;异步FIFO的空满标志是否经过同步;复位信号是否跨域同步释放。

四、一个可参考的接口参数与CDC配置示例

假设某星载采集前端同时接入三路接口,主时钟为100MHz,采集主循环周期1ms。可参考以下配置:

接口速率时钟域CDC方式关键参数
LVDS图像7对×200Mbps随路100MHz DDR异步FIFO深度4096×16bit,写100MHz,读100MHz
SpaceWire100Mbps恢复时钟异步FIFO + FCT接收缓冲8KB,FCT阈值4KB
1553B1Mbps1MHz位时钟两级同步器 + 寄存器响应超时12μs,消息间隔4μs

配置完成后,验证方法不是只看“能收到数据”,而是看边界条件:让LVDS连续发送最大帧,观察FIFO是否溢出;让SpaceWire接收端暂停发FCT,观察发送端是否停止且不丢字符;让1553B某RT故意延迟响应,观察BC是否正确记录超时。只有这些边界都通过,接口与时钟域设计才算闭环。

常见排障顺序:先确认物理层眼图和链路建立,再确认协议层帧/字符/消息格式,最后检查CDC同步和FIFO深度。若数据偶发错位,优先怀疑多比特跨域未同步;若数据周期性丢失,优先怀疑FIFO深度不足或信用流控配置不当。

总结来看,LVDS、SpaceWire、1553B分别代表源同步、自同步和命令响应三种时序模型,速率从1Mbps到1Gbps以上。设计时不能只记速率数字,而要抓住各自的时钟来源、时序判据和CDC处理方式。把接口域和主时钟域之间的边界处理干净,采集缓冲与流控才有稳定的基础。