北京三号B卫星海量数据传输处理系统设计与实现

2023-07-27 02:19刘聪聪韩宇孙钰林袁素春肖化超朱红袁玉王元乐
航天器工程 2023年3期
关键词:收发器路由时钟

刘聪聪 韩宇 孙钰林 袁素春 肖化超 朱红 袁玉 王元乐

(西安空间无线电技术研究所,西安 710071)

北京三号B卫星是一颗高分辨率商业遥感卫星,卫星轨道高度约为500km,具备超高敏捷、超高稳定及超高精度获取影像能力,可快速高效提取大量的超高分辨率遥感卫星数据和信息产品。卫星装载了高分辨率大宽幅全色/多光谱双相机组合,星下点地面成像分辨率全色0.5m,多光谱2m,双相机成像幅宽优于23km,为国内首颗任意航迹成像的亚米级遥感卫星。

随着近年来遥感卫星分辨率的快速提升,载荷数据速率也越来越高,星载设备海量数据传输处理设计成为卫星系统设计的关键技术[1]。北京三号B卫星装载的高分辨率相机系统有效载荷速率高达18.7Gbit/s,接口峰值速率高达36.04Gbit/s,基于LVDS与TLK2711技术的传统数据传输技术已无法满足卫星系统要求[2]。因此,针对北京三号B卫星数据路由传输处理需求,设计了一种基于万兆网接口和高速串行GTX/GTH互联的海量数据传输与处理系统。本文首先对系统的总体设计和方案设计进行了说明,之后对系统设计的关键技术进行了介绍,包括万兆网接口传输技术、高速GTX/GTH互联传输技术和数据路由设计。

1 系统总体设计

北京三号B卫星配备1台综合智能处理器完成4路高分辨率相机数据接收、数据路由分发、图像压缩、目标检测、数据存储和下传编码等功能。综合智能处理器由下位机、路由处理单元、计算单元、存储单元和适配单元组成,其中下位机接收星务计算机遥控指令实现单机内各单元的工作模式控制并将单机工作状态遥测上报至星务计算机,路由处理单元实现相机数据接收、数据路由分发功能,计算单元实现图像压缩与目标检测功能,存储单元实现星载数据存储并根据任务需求进行数据回放功能,适配单元完成下传数据信道编码功能[3]。综合智能处理器各单元连接关系如图1所示。

2 路由处理单元设计

综合智能处理器路由处理单元作为单机数据处理核心节点,通过4片万兆网接口接收4路探测器数据,在超大规模现场可编程门阵列(FPGA)中完成相机数据接收、图像数据解析、格式编排、缓存处理,并根据系统总体任务要求通过高速串行收发器GTX/GTH接口与串行解串Serdes接口对计算单元、存储单元和适配单元进行数据路由。路由处理单元原理框图如图2所示。

图2 路由处理单元设计框图

3 系统关键技术

3.1 万兆网接口传输技术

万兆网接口芯片是一种双向点对点的高速数据传输接口芯片,常用于设备间数据的高速互连。单片接口芯片设计有2个冗余XAUI收发器(XAUI A和XAUI B),可通过外部控制信号进行配置选择。单区(XAUIA或XAUIB)包括32bit数据位、4bit标识位,最高支持有效速率10Gbit/s独立接口(XGMII)和线速率12.5Gbit/s的数据收发。在芯片内部集成了时钟恢复电路、时钟倍频同步电路、逗号检测电路、并/串与串/并转换单元、8b10b编码/解码器、自检单元等功能单元[4]。基于芯片高传输速率、高集成度和高可靠性的特点,非常适合用于星载设备间高速数据传输。

3.1.1 数据传输链路

芯片发送端接收XGMII端32bit并行数据和4bit数据标识,经先进先出(FIFO)缓存和时钟补偿处理送入8b10b编码器,再经并/串变换后通过XAUI差分发送端口输出,完成数据发送。芯片接收端时钟恢复电路从XAUI端差分接收信号中恢复出随路时钟,并进行串/并变换,经过逗号检测电路进行字节边界对齐后,将并行数据送入8b10b解码器进行校验解码恢复出32bit并行数据和4bit数据标识位,从芯片XGMII并行数据端口输出,完成数据接收。

万兆网接口数据传输是一种基于包操作的链路传输,因此根据芯片传输特性,制定了一种基于K码与D码的链路传输协议。协议数据帧结构由帧头控制符(/S/)、帧尾控制符(/T/)、数据单元(/D/)和空码(/I/)4部分组成,如图3所示。

图3 协议数据帧格式

在数据帧传输时,依次发送帧头(/S/)、数据单元(/D/)和帧尾(/T/),数据帧发送完成后发送连续同步字符保证传输链路的同步,如表1所示。

表1 控制字符

包含帧头的输出D[31:0]:16进制为/FF/FF/FF/FB/,占用4byte,对应标识位TXC/RXC为二进制”0001”;包含帧尾的输出D[31:0]:16进制为/07/07/07/FD/,占用4byte,对应标识位TXC/RXC为二进制”0001”;数据单元:数据单元是由若干个32比特数据组成的数据流,对应标识位TXC/RXC为二进制”0000”。发送端在时钟上升沿发送数据单元的第1个字节对应列。

3.1.2 万兆网接口软件设计

万兆网接口是双时钟沿处理芯片,芯片在发送端采用源中心对齐的时序方式,此时TCLK/RCLK的时钟跳变沿与数据中心对齐。在FPGA内部进行数据处理时,为保证设计时序与设计可靠性,通常采用单时钟沿处理。FPGA内部接口数据接收设计框图如图4所示。

图4 万兆网接口数据接收设计框图

FPGA接收到芯片发送的随路时钟RCLK、接收控制符RXC(3:0)、接收数据RXD(31:0)后,对RCLK进行全局时钟驱动和相位控制,IDDR_rx模块将双时钟跳变沿的RXC(3:0)、RXD(31:0)变换为单时钟跳变沿数据,根据协议约定即可解析出有效数据及相应的门控信号。但是由于芯片在链路传输过程中,为了匹配发送端与接收端的频差、相位偏移等因素,会在链路中填充一定量的同步字符,以保持数据链路稳定。这会导致在发送端使用时钟下降沿发送的帧头,在接收端可能出现在时钟上升沿位置。所以在使用IDDR将双时钟沿数据转换成单时钟沿数据后,需要根据协议帧头在64bit数据的高位或低位自适应解析。因此设计了一种高可靠数据自适应协议解析方法,实时监控链路数据状态,对数据进行实时调整,保证调整后的单时钟沿数据的协议帧头在数据高位位置。之后根据链路传输协议进行数据解析,当识别到协议帧头后固定截取相机图像行长度数据,并将有效数据对应的门控信号置为高。设计中采用截图固定长度数据的方式,可以有效避免因前端载荷异常输入引起的后续数据传输处理错误,提高系统数据处理可靠性。

3.2 高速GTX/GTH接口传输技术

高速GTX/GTH收发器是用于FPGA之间或FPGA与SerDes芯片之间的一种高速数据传输接口,单个GTX串行收发器可支持500Mbit/s~12.5Gbit/s传输速率,GTH串行收发器最高可支持13.1Gbit/s[5]。在使用FPGA中内置的GTX/GTH串行收发器时,仅需提供外部参考时钟即可,不需要额外的硬件资源,降低了设计复杂度且节约单板布局面积,非常适合星载设备的短距离高速数据传输。FPGA根据封装形式不同,片内包含多个Quad高速串行收发器单元,每个Quad高速收发器中包含4路GTX/GTH收发器,4路收发器可单独作为独立通道使用,也可以进行通道绑定,增加接口带宽,提高传输速率[6]。同时GTX/GTH收发器使用灵活,支持Aurora、RapidI/O、PCIExpress等多种接口协议。

3.2.1 基于Aurora协议的GTX/GTH接口

Aurora协议是一种开放的、免费的轻量级的可配置数据链路层协议,它允许任何数据分组通过Aurora协议封装,为私有上层协议或标准上层协议提供透明接口[7]。Aurora IP核是为方便用户使用,将Aurora协议进行封装仅保留部分灵活设置参数而设计的固化模块。Aurora IP核为用户提供了完整的用户接口,用户在使用过程中无需处理繁琐的协议控制,仅需处理用户接口,极大提高了设计效率。根据编码方式,可分为基于8b10b编解码和64b66b编解码的两种IP核。鉴于Aurora 8b10b轻量化和易扩展特性,在北京三号B卫星综合智能处理器设计中,使用基于8b10b编解码的Aurora IP核完成路由单元与其他数据单元的全路由高速数据互联。

Aurora 8b10b核内部主要由用户发送接口、用户接收接口、通道逻辑、全局逻辑和串行收发器组成[8],如图5所示。

图5 Aurora 8b10b原理框图

(1)用户发送接口:将用户的数据传送至发送通道中,并执行流控制发送功能。

(2)用户接收接口:从Aurora通道中接收有效数据然后传输给用户部分,同时执行流量控制功能。

(3)通道逻辑:用来初始化和驱动每个高速收发器,处理控制字符的编/解码操作以及执行链路错误检测功能。

(4)全局逻辑:主要用来执行通道初始化的绑定和验证工作,产生Aurora协议所需的随机空闲字符,并检测所有通道逻辑模块产生的错误。

(5)串行收发器:主要用于数据串/并、并/串转换,时钟恢复和串行接口驱动等功能。

3.2.2 Aurora8b10b协议接口软件设计

在进行Aurora 8b10b核配置时,用户接口模式可以选择帧接口模式和流数据接口模式。帧模式用户接口符合AMBA®AXI4-Stream协议规范,流模式用户接口允许在没有帧分隔符的情况下发送数据,与帧模式接口相比,使用资源更少,操作更加简单[9]。因此在航天器设计时使用流模式进行接口设计,通道线速率设置为3.125Gbit/s,同时为满足路由单元与计算单元、存储单元间不小于10Gbit/s数据传输速率,使用4通道绑定传输模式。接口参数配置如表2所示。

表2 Aurora 8b10b接口参数配置

软件设计时,对Aurora8b10b参数设置后,还需要相应的时钟管理、复位管理等模块设计。Vivado开发设计套件对Aurora8b10b提供了良好的设计用例,在工程应用时,可以调用example_design中的rtl用例,修改顶层时钟、复位、差分输入、差分输出、用户接口等参数适配型号使用的工程板卡。除此之外,关键在于用户接口信号时序设计,在用户进行数据发送和接收时,必须按照Aurora 8b10b接口时序进行设计。流模式接口时序如图6所示。

图6 Aurora 8b10b核流模式时序图

分析流模式接口时序发现,仅在s_axi_tx_ready为高时才可以发送数据,否则数据无法正确传输。且由于s_axi_tx_ready信号置低具有随机性,在星载FPGA软件设计时往往使用时序逻辑进行数据处理,因此设计了如图7所示的发送接收模块。

图7 Aurora 8b10b设计框图

发送预处理模块将本地逻辑时钟域上要发送的并行数据使用FIFO缓存,根据s_axi_tx_ready信号控制FIFO读使能,将数据转换至user_clk用户接口时钟域,并经逻辑控制处理为符合Aurora8b10b用户接口数据时序的数据格式发送至Aurora 8b10b核,完成数据发送。在接收端,为提高数据接收准确性和可靠性,数据接收模块将用户接口并行数据首先经过数据滤波处理,可滤除由于链路干扰引起的毛刺数据,同时根据数据协议对接收数据进行帧头判断后在有效门控下读取固定长度有效数据后,再逐时钟判断数据帧头进行数据接收,之后经过FIFO缓存将user_clk用户接口数据恢复至本地逻辑时钟域,完成数据可靠接收。实现路由单元与计算单元、存储单元的高速数据互连。

3.3 数据路由设计

北京三号B卫星综合智能处理器路由单元配置有1片超大规模FPGA作为核心处理芯片,其设计原理框图如图8所示。

图8 路由单元FPGA软件设计框图

路由单元FPGA软件主要完成以下功能:

(1)通过时钟管理模块、遥控遥测管理模块、复位管理模块完成软件时钟管理、逻辑复位、指令控制和遥测上报功能;

(2)通过万兆网解析接收模块完成4路相机载荷数据接收;

(3)通过低速数据接收模块完成低速载荷数据接收;

(4)通过Aurora IP及Aurora发送预处理模块、Aurora数据接收模块完成与计算单元、固存单元的高速数据互联;

(5)通过serdes接口完成与适配单元数据互联;

(6)通过全数据路由处理模块完成各载荷数据格式编排、路由分发、数据缓存复接等功能。

在进行软件配置时,单片万兆网接口芯片可接收8.96Gbit/s数据速率,单个Aurora 8b10b IP配置4通道串行收发器,可处理10Gbit/s数据速率,低速载荷数据可接收200Mbit/s数据速率,单个serdes接口可完成800Mbit/s数据发送。所以单个路由单元可以实现36.04Gbit/s载荷数据接收、60Gbit/s内部数据路由分发和1.6Gbit/s数据下传,系统数据路由处理时延小于100ms。

4 试验验证

基于万兆网接口和GTX/GTH互联的综合智能处理器高速路由软件已随北京三号B卫星完成了在轨试验验证,在轨运行稳定,表现良好。高速路由软件主要完成了相机载荷高速数据和低速载荷数据的接收,并通过板间GTX/GTH完成对3块计算单元、3块存储单元与1块适配单元的高速数据路由功能。在轨验证了36.04Gbit/s载荷数据接收、60Gbit/s内部数据路由和1.6Gbit/s数据下传功能。与传统数传方案相比,系统数据处理能力提高一倍以上,且子板间FPGA芯片互联采用高速串行总线传输,无需再使用接口芯片,大大降低了系统硬件成本。

5 结束语

本文介绍了北京三号B卫星综合智能处理器海量数据传输处理的实现方式和技术关键点。针对高分辨率遥感卫星海量数据传输处理需求,设计了一种基于万兆网接口和高速串行GTX/GTH互联的海量数据传输与处理系统。系统测试和在轨验证表明,该系统可以实现38.6Gbit/s载荷数据接收、60Gbit/s内部数据路由分发和1.6Gbit/s数据下传功能,显著提高了北京三号B卫星海量数据传输处理能力,且降低系统硬件成本,可为后续高速数据传输处理在卫星系统中的大规模应用提供设计参考。

猜你喜欢
收发器路由时钟
别样的“时钟”
古代的时钟
探究路由与环路的问题
Virtex5 FPGA GTP_DUAL硬核两个收发器独立使用的实现
有趣的时钟
时钟会开“花”
PRIME和G3-PLC路由机制对比
WSN中基于等高度路由的源位置隐私保护
eNSP在路由交换课程教学改革中的应用
富士通半导体推出收发器家族全新LTE优化多频单芯片MB86L13A