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的时序核心是“采样窗口”。以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配置示例
假设某星载采集前端同时接入三路接口,主时钟为100MHz,采集主循环周期1ms。可参考以下配置:
| 接口 | 速率 | 时钟域 | CDC方式 | 关键参数 |
|---|---|---|---|---|
| LVDS图像 | 7对×200Mbps | 随路100MHz DDR | 异步FIFO | 深度4096×16bit,写100MHz,读100MHz |
| SpaceWire | 100Mbps | 恢复时钟 | 异步FIFO + FCT | 接收缓冲8KB,FCT阈值4KB |
| 1553B | 1Mbps | 1MHz位时钟 | 两级同步器 + 寄存器 | 响应超时12μs,消息间隔4μs |
配置完成后,验证方法不是只看“能收到数据”,而是看边界条件:让LVDS连续发送最大帧,观察FIFO是否溢出;让SpaceWire接收端暂停发FCT,观察发送端是否停止且不丢字符;让1553B某RT故意延迟响应,观察BC是否正确记录超时。只有这些边界都通过,接口与时钟域设计才算闭环。
总结来看,LVDS、SpaceWire、1553B分别代表源同步、自同步和命令响应三种时序模型,速率从1Mbps到1Gbps以上。设计时不能只记速率数字,而要抓住各自的时钟来源、时序判据和CDC处理方式。把接口域和主时钟域之间的边界处理干净,采集缓冲与流控才有稳定的基础。