孙乐乐,张 冬,周兆军,魏雯婷*
(1.西安电子科技大学 先进网络技术实验室,陕西 西安 710071;2.中国电科网络通信研究院,河北 石家庄 050081;3.陕西烽火电子股份有限公司西安研发中心,陕西 西安 710114 )
随着航天技术不断发展与创新以及卫星互联网的普及和应用[1],星载交换技术已成为航天领域研究的热点之一。卫星互联网对国家安全,以及支撑我国“一带一路”等建设具有一定的战略意义[2]。构建不依赖地面网络的全球覆盖的卫星互联网,实现波束间信息交互,星载交换技术是关键[3]。在卫星互联网中,星载交换是指卫星之间或卫星与地面站之间进行信息交换和传输的技术。星载交换技术可在硬件规模较小时实现较高的数据转发能力[4],其主要目的是实现卫星之间、卫星与地面站之间的高速、高效、可靠的数据传输,为全球的信息传输提供了广泛方便的接入业务[5]。星载交换技术不仅可以通过卫星之间或卫星与地面站之间的直接通信,减少数据传输的延迟和丢失,从而提高数据传输效率,而且可以实现卫星网络之间的互联互通,形成一个全球性的卫星互联网,是保证卫星互联网网络数据传输性能的核心手段[6]。
地面检测系统可以对卫星通信系统进行实时的性能验证和监控,通过检测卫星信号质量、错误率、传输速率等指标,为卫星通信系统的性能优化和调整提供数据支持。地面检测系统还可以对卫星通信系统的各项参数进行测试和优化,包括峰值速率、误码率、延时等。通过测试,使得不满足技术条件的性能、不完善的功能得到暴露[7],从而提高卫星通信系统的性能和稳定性,通过地面检测系统可以有效减少星上设备的故障概率[8]。
在卫星发射前的全面测试阶段中,需要通过地面检测系统向星上设备发送测试数据,并接收其发送回来的反馈数据,地面检测系统充当桥梁作用,连接两端设备。随着我国卫星事业的飞速发展,对于卫星设备工作性能的要求不断提高,传统人工测试方法已不能满足快速便捷精准的高要求,研究测试系统的重要性日趋显示,地面检测系统也趋于复杂化和高效化。由于星载交换设备在轨维修困难且更换器件费用高昂[9],地面检测系统对于卫星事业发挥着极其重要的作用[10]。
综上所述,一款能够提高检测效率与检测准确率的地面检测系统对于卫星的成功发射和安全运行具有重大意义。本文旨在设计一款面向于多接口、高速率的星载交换的地面检测系统,完成对大容量星载交换设备的性能及功能测试。
卫星通信的地面检测系统需要联合地面检测软件以及基于 FPGA 的地检设备,完成对星上设备各模块以及整体系统的综合测试。自从1970年4月,中国成功发射第一颗人造卫星“东方红一号”起,我国卫星通信的地面检测系统领域进入正式发展阶段。
几年来,国内外在该领域的研究成果[11]如下:
① 上海航天技术研究所设计了一款基于通用串行总线(Universal Serial Bus,USB)的卫星地面测试软件[12],实现测试单机设备的遥控遥测模块的功能。卫星测试除了单机测试还有系统级测试,该软件并未涉及。
② 上海航天技术研究所设计了通用的数据分析显示子系统,该子系统可运用到卫星地面测试过程中。卫星地面测试是极为复杂的工程,显示子系统是其中一部分,需要联合其他子系统共同完成对卫星的测试。
③ 以色列卫星通信公司NovelSat最近研发的产品NS2000X Multi-RX Channel Satellite Demodulator,可同时支持4路信号解调,配套软件也只支持4路信号解调。
④ 著名卫星通信公司Newtec公司最新研发的调制解调器MCX7000 multi-carrier同时支持4路调制信号与2路信号解调。
随着卫星设备功能日趋复杂化,卫星用地面测试设备面临严峻的考验[13],在设计时有以下难点:
① 由于星上设备的功能复杂、划分模块众多,因此面临被测对象数量大、性能指标各不相同、测试要求繁多等问题。因此,导致测试时间长,测试流程复杂,对测试系统的多样性提出更高要求。
② 由于测试数据量极大,且对测试效率要求高,因此需要提高数据传输速率以及内部数据处理速度。
设计协议转换技术,完成对以太网帧的数据处理并转换成星上专用帧格式。以太网接口处利用以太网IP核完成对以太网数据的接收,通过协议转换技术转成星上专用帧格式通过高速接口发送给星载交换设备,采用5片FPGA,完成星载交换多接口的需求。
在上行链路中,地面检测系统接收来自网络测试仪标准以太网帧格式的数据,并发送给输入数据处理模块,而后输入数据处理模块将处理后的数据发送给上行协议转换模块,在该模块中将完成以太网帧格式到星上专用帧格式的转换,再由高速接口把数据帧发送给星上设备;反之,在下行链路中,通过高速接口接收来自星上设备的数据帧,并通过下行协议转换模块将星上专用帧格式转换为以太网帧格式,通过输出数据处理模块发送到以太网模块,最后由网络测试仪接收数据。
地面检测系统的总体结构如图1所示。
图1 地面检测系统总体结构Fig.1 Overall structure of the ground detection system
如图1所示,本文所提面向星载交换的地面检测系统包括5片FPGA开发板,FPGA0~FPGA4,每一块开发板上的端口都与星载交换的端口相对应。其中FPGA0和FPGA1这两块开发板结构相同,对应星载交换的两路星间高速口;FPGA2与FPGA3分别对应星载交换的4路高速馈电口和8路高速用户口;FPGA4对应星载交换的高速固存、高速扩展以及7路低速口。此套地面检测系统所用到的FPGA板卡较多,对应星载交换的端口也多达16个,但都主要完成协议转换功能,因此内部设计可采用统一结构,主要有高速接口与低速接口以及对应选择的以太网IP核发出的AXIS协议数据位宽和速率的差异,下面将以万兆以太网IP核对接高速接口的高速通道为例,对设计的具体方案进行详细介绍。
面向星载交换的地面检测系统主要完成以太网帧与星上帧的相互转换,具体来说是完成两路转换:一路是将网络测试仪发出的标准以太网帧格式根据用户通过上位机配置下来的以太网帧与星上专用帧的对应关系,将以太网帧转换成星上帧并通过对应的端口发送给星载交换设备;另一路是将星载交换设备通过端口发送的星上帧通过上位机配置的星上帧与以太网帧的对应关系,将星上帧转换成标准以太网帧格式发送给网络测试仪来统计星载交换设备发送的包数,以此来评估星载交换设备的性能。
地面检测系统高速通道方案设计结构如图2所示。各个模块的模块说明如表1所示。
表1 模块说明Tab.1 Descriptions of modules
图2 地面检测系统高速通道方案设计结构Fig.2 Design structure of the high-speed channel scheme of the ground detection system
2.2.1 输入数据处理模块、输出数据处理模块
(1) 输入数据处理模块
输入数据处理模块包括数据倒序恢复、时域隔离、数据解析等操作,输入数据处理模块框图如图3所示。
图3 输入数据处理模块框图 Fig.3 Block diagram of input data processing module
输入数据处理模块首先将万兆以太网IP核发出的倒序数据进行恢复,而后经过异步先进先出(First In First Out,FIFO)队列进行跨时钟域处理操作,完成时域隔离,最后再进行数据解析操作,提取标准以太网帧中的目的MAC地址、数据净荷以及帧长信息并分别存进至相应FIFO提供给下级上行协议转换模块进行处理。
(2) 输出数据处理模块
输出数据处理模块相当于输入数据处理模块的逆过程,输出数据处理模块包括数据倒序、时域隔离以及数据组帧模块等,输出数据处理模块如图4所示。
图4 输出数据处理模块Fig.4 Block diagram of output data processing module
首先数据组帧模块接收上级模块的目的MAC地址、数据净荷以及帧长信息,将其组成标准以太网帧并存入FIFO中,而后时域隔离将读取异步FIFO中的数据完成跨时钟域操作,最后经过数据倒序发送给万兆以太网IP核。
2.2.2 上行协议转换模块、下行协议转换模块
(1) 上行协议转换模块
上行协议转换模块包括上位机、ETH2SDL模块等,上行协议转换模块框图如图5所示。
图5 上行协议转换模块Fig.5 Block diagram of the uplink protocol conversion module
用户需要在上位机界面输入所需要的配置信息即MAC地址及所对应的星上专用帧头信息,一次最多可配置32条,点击发送后上位机通过以太网口发出标准以太网帧,在FPGA侧会解析上位机配置下来的信息并根据MAC地址在对应的RAM地址写入用户配置的星上专用帧头信息,而后ETH2SDL模块会根据上级输入数据处理模块解析出来的MAC信息的最后一字节从RAM表里读出对应的星上专用帧头信息并组成完整的星上专用帧,并存入数据FIFO和帧长FIFO供下级模块使用。
(2) 下行协议转换模块
下行协议转换模块包括上位机、SDL2ETH模块等,下行协议转换模块如图6所示。
图6 下行协议转换模块Fig.6 Block diagram of downlink protocol conversion module
用户需要在上位机界面输入所需要的配置信息即星上专用帧头信息中的目的站及所对应的目的MAC,一次最多可配置32条,点击发送后上位机通过以太网口发出标准以太网帧,在FPGA侧会解析上位机配置下来的信息并根据目的站地址在对应的随机存取存储器(Random Access Memory,RAM)地址写入用户配置的目的MAC信息,而后SDL2ETH模块会根据上级高速接口模块发送的星上专用帧头信息中目的站信息的最后一字节从RAM表里读出对应的MAC帧头信息并存入MACFIFO、数据FIFO和帧长FIFO供下级模块使用。
2.2.3 高速通道发送模块、高速通道接收模块
该模块基于 Aurora 64B/66B 协议,由 6 个主要模块组成:clock_module、reset_logic、frame_gen、frame_check、axi_to_ll、ll_to_axi,各个模块能够独立并协调工作。设计中,数据传输协议按照数据帧方式进行传输。
(1) 高速通道发送模块功能
该模块将接收由上一模块产生的 2 路专用帧数据,写入 GTX1_T 和 GTX2_T 并进行发送。在接收侧,将 GTX1_R 和 GTX2_R 接收到的专用数据帧,发送给前一级协议转换模块。
(2) 所用 IP 核资源
Aurora 64B/66B。
(3) 设计方法
本设计中将调用由 Xilinx 公司官方提供的 Aurora 64B/66B IP 核的例子工程。将例子工程中的 frame_gen 模块和 frame_check 模块去除,再将相关数据传输的 Local_Link 接口引至顶层,与前一级 proto_adapt 模块产生的卫星专用帧相连接,即可实现 Local_Link 转 GTX 的高速收发。
模块逻辑关系图如图7所示。在数据传输过程中,clock_module 模块为整个设计提供所需时钟;reset_logic 模块为整个设计提供复位设置;frame_gen 模块用于组装数据包形成 aurora 协议帧格式传输;frame_check 模块负责对接收到的数据帧检错和缓存; axi_to_ll 模块和 ll_to_axi 模块负责 AXI4-Stream 接口和 Local-Link 接口的相互转化[15]。
图7 Aurora 64B/66B 例子工程文件结构Fig.7 Aurora 64B/66B example project file structure
此多接口地面检测系统采用超高速集成电路硬件描述语言(Very-High-Speed Integrated Circuit Hardware Description Language,VHDL)语言编程,使用Vivado 2017.4软件进行功能验证,并部署到Kintex-7 FPGA开发板上进行功能实现。
该模块产生32~150 Byte随机帧长的数据帧及其帧长数据,且附带产生相应的Local Link 接口信号以及 wr_en 写使能信号,可根据需求直接写入 FIFO 中。
该模块每个周期产生8 Byte数据,且每帧数据的各个字段都定义了特定含义。如图8所示。
图8 字段定义Fig.8 Field definition
该模块运用有限状态机(FSM)实现,共有 7 个状态:IDLE、WR_HEAD、WR_DATA、PRE_END、LEN、JUDGE、BLANK。图9是状态跳转图。
图9 数据生成模块状态跳转图Fig.9 State transition diagram of the data generation module
图10为数据生成模块的仿真图,包含完整数据帧、Local Link 接口信号、帧长信息以及状态转移情况。该模块产生的模拟数据帧将用作本次设计各个模块的测试激励。
图10 数据生成模块的仿真图Fig.10 Simulation diagram of data generation module
图11为该数据处理模块的状态跳转图。状态说明如下:idle是空闲状态;WR_DES_MAC在此状态下写入目的MAC地址;WR_DATA在此状态下写入净荷;WR_LEN在此状态下写入帧长。
图11 数据处理模块状态跳转图Fig.11 Data processing module state jump diagram
图12为数据处理模块的仿真图,将进入的数据进行解帧,并将解出来的目的MAC、净荷、帧长分别写进对应的FIFO。
图12 数据处理模块仿真图Fig.12 Simulation diagram of data processing module
(1) 上行协议转换模块
该模块负责标准以太网帧到星上帧的转换。读写独立时钟设计,读写数据宽度均为 64 bit。
图13为上行协议转换模块 ETH2SDL 的状态转移图。
图13 上行协议转换模块 ETH2SDL 的状态转移图Fig.13 State transition diagram of the uplink protocol conversion module ETH2SDL
上行协议转换模块的状态说明如下:IDLE为空闲状态,该状态负责参数重置,当满足条件时进入 read parameter 状态。另外,本模块通过对星上专用 FIFO的almost full判断防止数据堆积,保证系统的健壮性;read_parameter为parameter 读取状态。本模块负责从 MAC FIFO 中读取待匹配的 MAC地址,并将读取出的MAC地址与上位机已经配置完成RAM进行匹配,以此提取出对应的星上专用帧头信息;send_hdr为发送星上专用帧头状态,负责对星上专用FIFO写入协议转换后的星上专用帧的帧头信息,共发送6个周期,在count=8时跳转到 send_load状态;send_load为发送载荷数据状态;最后发送帧长信息,完成之后跳回初始态。
上行协议转换模块仿真图如图14所示,可以看出,以太网数据帧格式的数据已经转换成了星上专用帧格式。
图14 上行协议转换模块仿真图Fig.14 Simulation diagram of uplink protocol conversion module
(2) 下行协议转换模块
该模块负责星上帧到标准以太网帧的转换。读写独立时钟设计,读写数据宽度均为 64 bit。
图15为下行协议转换模块 ETH2SDL 的状态转移图。
图15 下行协议转换模块仿真图Fig.15 Simulation diagram of downlink protocol conversion module
下行协议转换模块是上行协议转换模块的逆过程,状态机的工作过程这里不再叙述。下行协议转换模块仿真图如图16所示,可以看出,星上专用帧格式的数据已经转换成了标准以太网帧格式的数据。
图16 下行协议转换模块仿真图Fig.16 Simulation diagram of downlink protocol conversion module
(3) 上位机模块
无论是在上行协议转换模块或者是下行协议转换模块,都需要用户通过上位机完成对RAM表的配置来配合协议转换模块完成对标准以太网帧格式的数据与星上专用帧格式的数据之间的相互转换。此外,还需要上位机完成对各个端口的流控以及包数统计的功能,上位机的业务配置界面如图17所示。
图17 上位机的业务配置界面Fig.17 Business configuration interface of the upper computer
在此界面中可以一次完成上行表项与下行表项的配置,界面采用滚轮形式,上、下行表一次最多可各配置32条。在上行表项中,用户需要输入源MAC所对应的星上专用帧头信息(包括帧类型、目的站、源站等);在下行表项中用户需要输目的站及其对应的目的MAC。在用户配置完所需要的信息后,点击发送按钮,上位机便将用户输入的配置信息组成一个较大的帧,上行信息在前,下行信息在后,按照标准以太网帧格式发送给FPGA进行处理来完成对RAM表的配置。
此系统的功能验证通过思博伦公司设计生产网络测试仪TestCenter来产生标准以太网流量,主要完成地面检测系统自回环测试以及地检与交换的联调测试。
地面检测系统自回环测试需要网络测试发出高速标准以太网流量,通过光口进入地面检测系统,地面检测系统完成协议转换功能,并在高速接口处设置成自回环将数据流返给网络测试仪,以此来验证地检系统,地面检测系统自回环测试示意图如图18所示。
如图19所示,利用网络测试仪产生了链路层速率为2.7 bit/s、随机帧长64~1 518 Byte的4路高速以太网流量用来测试F2的4路馈电高速口,可以看出无丢包,功能验证完成。
地检与交换的联调测试也需要网络测试发出高速标准以太网流量,通过光口进入地面检测系统,地面检测系统完成协议转换功能,并在高速接口发送给星载交换系统,星载交换系统通过内部复杂的处理将数据通过原高速接口返回给地检,地检又返回给网络测试仪,以此来验证星载交换系统,联调测试示意图如图20所示。
如图21所示,利用网络测试仪产生了速率为2.7 Gbit/s、随机帧长64~1 518 Byte的4路高速以太网流量用来测试地检F2的4路馈电高速口并连接到交换端口,可以看出无丢包,联调验证完成。
图21 联调随机包测试图Fig.21 Joint debugging random packet test diagram
上位机测试需要通过上位机界面配置所需要的表项信息,并通过以太网接口发送给FPGA,FPGA侧需解析上位机发出的以太网帧信息并将对应信息分别写入上下行表项中。图22是以上、下行表各配了3条为例的上位机配置信息。
图22 上位机配置图Fig.22 Upper computer configuration diagram
如图23所示,FPGA侧解析了上位机发出的配置信息。
图23 上位机功能验证图Fig.23 Upper computer function verification diagram
在上行表项中,根据源MAC的最后一个字节在RAM表中对应位置写入了上行表项信息,共3条;在下行表中,根据目的站的最后一字节在RAM表中对应位置写入了下行表项信息,也是3条。上位机在上下行表中各写了3条信息且与上位机配置结果相同,由此上位机功能得到验证。
本文提出了一种可实现的多接口高速协议转换的地面检测系统的完整设计方案,对各模块进行详细介绍并对系统进行了仿真验证以及功能测试,利用网络测试仪完成了地面检测系统自回环测试以及地检与交换的联调测试,在保证地面检测系统稳定的情况下完成了星载交换系统的在地检测,大大减少了星载交换系统在轨发生故障的概率,极大地降低了交换系统在轨的维修成本,对中国卫星事业的发展具有重要意义。
本文设计研究还存在很多不足之处,有以下几个方面:交换共有16个端口,地检系统只是某几个端口同时打流,交换功能并未充分验证;消耗的片上存储资源较多,需要进一步优化逻辑和结构,减少资源占用。