高速SpaceFibre总线节点的系统设计*

2021-10-10 04:16安军社江源源
国防科技大学学报 2021年5期
关键词:状态机控制算法校验

祝 平,朱 岩,安军社,江源源,周 莉

(1.中国科学院 国家空间科学中心 复杂航天系统电子信息技术重点实验室, 北京 100190;2. 中国科学院大学, 北京 100049)

随着空间技术的飞速发展,星上任务的规模和复杂度也相应地提升,面对星上各类载荷设备越来越多的数据量,需要考虑不同数据源的传输需求和载荷设备之间灵活的互联方案。传统的控制器局域网络(Controller Area Network, CAN) 总线、1553 B越来越难以满足空间任务的发展需求。2003年,欧空局提出的SpaceWire总线协议支持全双工点对点和灵活的路由组网,但传输速度最高只有400 Mbit/s。

针对航天传输任务中的诸多需求,2019年欧空局在SpaceWire总线的基础上提出了面向高速传输的新一代高速互联总线网络SpaceFibre[1]的标准。SpaceFibre支持点对点全双工传输,采用8 B/10 B编码,单通道速率最高可达6.25 Gbit/s,多通道传输速率可达50 Gbit/s,支持光纤和电缆传输;支持路由网络结构,拓扑灵活,能够实现各类星载设备的互联。同时SpaceFibre能够在网络层兼容SpaceWire,实现已有SpaceWire设备的平稳升级。

SpaceFibre技术在国外的研究开始较早,逐渐成为国际上星载总线技术的研究热点。英国邓迪大学的Parks等[2-4]研发了基于各类抗辐照和商业FPGA的SpaceFibre节点知识产权(Intellectual Property,IP)核和路由IP,以及路由设备SUNRISE及配套的测试分析仪STAR Fire和STAR Fire MK3[5],并设计了一款抗辐照的SpaceFibre超高速串行接口VHiSSI[6],完成了测试和流片。德国比勒费尔德大学的Jungewelter等[7]和瑞典Cobham Gaisler公司的Siegle等[8]也研制了相关的节点IP。日本电气股份有限公司的Hiroki等[9]在研发的新型纳米桥现场可编程门阵列(NanoBridge Filed Programmable Gate Array,NBFPGA)上实现了SpaceFibre传输来自光学传感器和合成孔径雷达的高清图像,并在“创新卫星技术验证项目”中进行了验证。

国内对SpaceWire技术的研究较成熟,对 SpaceFibre技术的研究尚处于起步阶段。上海创景计算机系统有限公司的徐曙清等[10]对SpaceWire和SpaceFibre的研究现状进行了概述。北京航空航天大学的伊小素等[11]针对SpaceFibre的服务质量(Quality of Service, QoS)机制进行了仿真研究,张春熹等[12]对SpaceFibre的即插即用技术进行了性能分析。

本文通过研究SpaceFibre网络协议,针对SpaceFibre网络中的关键问题和技术,提出一种SpaceFibre总线节点的系统设计方案。为了解决多路虚拟通道的流量控制申请冲突,提出了轮询仲裁算法;针对QoS调度机制中诸多参数和变量的计算比较,设计了一个能高效进行QoS参数计算并完成QoS调度的状态机;针对复杂的错误检测隔离恢复(Fault Detection Isolation and Recovery, FDIR)机制设计了一个并行的分区存储架构和重发控制算法,能实现备份的清除和重发,降低了处理延迟;针对各类数据的循环冗余校验码和伪随机序列的生成,设计了对应的并行处理方案。最后搭建仿真平台,通过仿真验证和板上测试,结果表明本文设计方案实现了SpaceFibre总线节点的功能,串行传输速度可达3.125 Gbit/s,满足实际高速数据传输需求。

1 SpaceFibre协议栈

SpaceFibre协议栈包括物理层、通道层、多通道层、数据链路层、网络层以及管理层,协议栈框架如图1所示。

图1 SpaceFibre协议栈Fig.1 Protocol of SpaceFibre

物理层主要实现数据的串并转换、串行收发以及时钟恢复,传输介质可采用光纤或者电缆;通道层主要通过链路初始化状态机以及通道控制字实现链路的连接,并完成8 B/10 B编解码、字符同步字同步、时钟矫正等功能;多通道层主要实现多通道的控制,提高数据传输的吞吐率;数据链路层主要实现对多路数据的管理调度发送和接收,为虚拟通道和广播通道提供流量控制、QoS服务、FDIR错误恢复以及数据编号、组帧解帧等功能;网络层主要通过虚拟网络的划分实现路由各个端口虚拟通道之间的数据交换和路由;管理层主要实现各层命令参数的配置和状态的读取。

相比SpaceWire总线,SpaceFibre在传输性能和传输速度上都有很大的提升,其性能对比见表1。SpaceFibre采用多路虚拟通道机制,能够实现对多路数据的传输;引入QoS机制,为各类数据流提供不同带宽和优先级的管理调度和传输服务;传输过程中为数据流提供确认,传输错误时能实现基于FDIR的错误恢复,并提供有保障的高可靠传输服务。由于其优越的性能,SpaceFibre成为星载互联总线技术的研究热点,有重要的研究意义。

表 1 SpaceWire和SpaceFibre性能对比

2 节点系统设计

通过对SpaceFibre网络协议的研究,提出了一种基于FPGA的单通道SpaceFibre总线节点的系统设计方案。其中,数据链路层包括4路虚拟通道,通道层为单通道,物理层传输速度可达3.125 Gbit/s。FPGA内部提供了丰富的可编程逻辑资源,集成了高速串行接口吉比特收发器(Gigabit Transceiver X, GTX)核,便于编程实现和灵活移植,具备一定的通用性。节点系统涉及数据链路层、通道层、物理层以及管理层,架构如图2所示。

图2 SpaceFibre节点系统设计方案Fig.2 System design scheme of SpaceFibre node

2.1 物理层

物理层采用FPGA的GTX IP实现。在配置GTX IP时,参考时钟为125 MHz,数据位宽设置为32位,串行速率可设置为3.125 Gbit/s,对应的GTX用户时钟为78.125 MHz。同时GTX实现了通道层的部分功能,如8 B /10 B编解码、字符及字同步、时钟矫正等功能。

2.2 通道层

通道层功能包括通道层控制功能和GTX所实现的通道层部分功能。通道层控制功能包括通道初始化状态机、通道字插入以及通道字检测。通道初始化状态机通过INIT1、INIT2以及INIT3控制字三次握手成功后,在ACTIVE状态下进行稳定的数据收发。通道字插入根据状态机指令生成通道控制字,并发送来自数据链路层的数据字。通道字检测根据接收到的通道控制字生成状态机指令,同时把接收的数据字传输到数据链路层。

2.3 数据链路层

数据链路层主要包括发送模块、接收模块,以及链路复位模块。

发送模块发送来自上层的数据和广播信息。由介质访问控制(Media Access Control,MAC)模块实现多路输出虚拟通道(Virtual Channel, VC),基于QoS机制的调度,对三类重要数据,即数据帧、广播帧和流量控制字(Flow Control Token,FCT)按照发送顺序依次编号,进行基于循环冗余校验(Cyclic Redundancy Check,CRC)的组帧。在数据发送的同时,备份到错误恢复缓存,以便接收方接收错误时进行重发恢复。数据复用模块按照数据优先级顺序对数据进行抢占式发送,无数据发送时发送空闲帧。

接收模块主要进行数据的接收,并根据接收状态生成确认控制字和非确认控制字(ACKnowledge/Negative ACKnowledge,ACK/NACK)。当广播帧、数据帧以及FCT控制字正确接收时,生成ACK发送到发送方,以删除发送方错误恢复缓存中已成功接收的备份;当接收时发生CRC错误或序列号错误,错误恢复控制模块生成NACK发送到发送方,以请求发送方的错误恢复缓存进行备份重发恢复。当接收数据从输入虚拟通道缓存中被读走,向发送方发送FCT,告知空出的接收缓存空间,实现流量的控制。

链路复位模块通过接收管理层的复位命令,实现了链路复位的控制,完成各层的复位。

2.4 管理层

管理层包括命令配置模块和状态读取模块,分别对各层的命令配置寄存器进行实时的配置,对状态寄存器进行实时的读取。

3 关键技术及实现

3.1 基于轮询仲裁的多虚拟通道流量控制

SpaceFibre节点的数据链路层支持多路虚拟通道,通过FCT控制字实现对每个VC的流量控制:每当被从输入VC中读取64个数据字后,接收方都会向数据发送方发送一个FCT,每个FCT携带对应的VC编号;发送方收到FCT后,被告知在接收方相应的输入VC中空出了缓存空间,可继续发送数据,实现VC的流量控制。

由于多路输入VC中的数据可以同时被读出,会存在多路输入VC同时有空闲并同时向发送方提出FCT发送申请,因此会产生FCT发送申请冲突。为了解决多路VC的FCT发送申请冲突,对多路VC采用了轮询仲裁算法,轮询仲裁算法按照默认的轮询顺序,对各路VC的FCT发送申请冲突依次完成仲裁。FCT轮询仲裁算法步骤如下所示。

步骤1:初始化设置默认轮询顺序。

步骤2:收到多个VC的FCT申请,按轮询顺序响应第一顺位申请,发送对应的申请FCT_req(i)。

步骤3:收到FCT已发送确认FCT_ack(i),根据轮询顺序置i+1为第一顺位。

步骤4:响应申请直至发送完所有申请。

3.2 基于处理状态机的QoS机制

QoS机制通过配置QoS参数实现对各个VC中数据的调度,为各路VC中的数据提供不同质量的传输服务。QoS机制主要由MAC模块实现,过程如下:在满足发送条件的VC中选择优先级最高的VC中的数据进行组帧发送,每发送完一段数据帧后,更新各个VC的优先级并进行下一轮发送。由于QoS机制涉及诸多参数和变量,在每帧数据被发送调度之前需要对各参数变量进行计算和比较,因此参数变量的计算和比较的效率关系到数据帧的传输效率。

若节点中存在i个VC,每个VC都会被分配对应的QoS参数:一个优先权R[i],一个带宽预留比例BwPer[i],以及一个64位宽的时间片调度表TimeSlot[i]。优先权R[i]=0时优先等级最高;预留带宽比例是为该VC所预留的可用带宽比例;时间片调度表中的01序列指示了当前时间片中该VC是否具有发送权;时间片长度可由上层网络定义。QoS变量包括带宽信用(BwCredit)和优先级(Precedence),其中优先权和优先级的换算公式如式(1)所示;带宽信用和带宽预留比例,以及每次VC发送的数据量相关,如式(2)所示;优先级为优先权和带宽信用之和,综合考量了各个VC的优先权等级和剩余的带宽信用情况,如式(3)所示,各参数如表2所示。

Priority[i]=2B(Q-1-R[i])+B

(1)

(2)

Precedence[i]=Priority[i]+BwCredit[i]

(3)

为了高效地进行QoS调度,设计了一个处理状态机:每次调度前,先选出当前时间片内允许发送数据的VC发送申请,比较各VC的优先级,并选出优先级最高的VC进行组帧发送;在该VC发送数据的同时统计所有VC链路上的AvailableBw[n]和该VC发送的数据字UsedBw[i],数据段发送截止时数据发送量也已计数完毕;最后在发送帧尾时进行QoS变量计算更新,以进行下一轮的优先级比较和调度,实现了与数据发送的并行处理。各QoS参数由管理层写入,变量的计算和比较各占一个时钟周期,发生在数据帧帧头和帧尾的发送过程,对数据帧的发送几乎无延迟。QoS状态机流程如图3所示。

表2 QoS公式参数

图3 QoS状态机流程Fig.3 QoS state machine flow

3.3 基于重发控制算法的FDIR机制

FDIR机制对已发送的重要数据进行备份,以便进行数据的错误恢复。SpaceFibre中三类重要数据分别为广播帧、FCT和数据帧,优先级依次降低,如图4所示。在发送方发送数据时,对各类数据按照发送序列号Tx_seq编号依次备份,按优先级抢占式发送。接收方若成功接收数据,则发送正确确认控制字ACK;若数据接收错误,则发送错误确认控制字NACK。ACK和NACK均携带接收方已成功接收的序列号Rx_seq,发送方收到ACK(Rx_seq)后清除备份中Tx_seq小于等于Rx_seq的备份,即删除接收方已成功接收的数据备份;收到NACK(Rx_seq)后先清除已成功接收的数据备份,再对未成功接收的数据备份按照优先级进行重发恢复,重发序号从Rx_seq+1开始,备份重新进行校验组帧。

由于三类数据格式不同,发送时按照优先级抢占式发送,发送编号混杂,给按优先级重发恢复带来困难;在清除和重发时,需要对比接收序列号Rx_seq和各备份的发送序列号Tx_seq的大小,而发送序列号均在各备份的帧尾,直接比较会导致延时过大。因此,需要设计合理的存储结构和重发控制算法。

图4 SpaceFibre的重要数据格式Fig.4 Important data format of SpaceFibre

为了提高FDIR的处理效率,本文提出了一种边发边备的并行分区存储架构,按数据类型对备份进行分区存储,在数据发送的同时进行备份。同时,针对该并行分区存储架构,提出了FDIR机制的主控状态机和一种高效的存储分区重发控制算法,实现对不同数据类型的备份、清除和快速重发恢复。

边发边备的并行分区存储架构按照数据优先级对三类数据进行分区备份,在数据正常组帧发送的同时备份到各自的存储分区,备份操作对数据发送不会造成延迟。当收到ACK/NACK进行备份清除或错误重发恢复时,根据不同数据形式设计了并行分区存储的内部架构,如图5所示。

图5 并行分区存储架构Fig.5 Parallel partitioned storage architecture

对于广播帧和数据帧,虽帧长不同但帧格式相似,故存储分区架构相同,分区内部包括备份缓存和标识缓存。其中,备份缓存用来存放数据备份,标识缓存用来存放备份标识。当每帧数据存入备份缓存时,对应的地址指针更新以指示该备份的存储地址,同时该备份对应的备份标识也存入标识缓存。为了高效地识别备份,设计了备份标识结构:{重发标识+备份帧尾地址+备份发送序列号}。重发标识是为了区分备份缓存未重发的数据和已重发且又再次被备份到缓存中的数据,从而避免多次重发;备份帧尾地址是对帧的存储位置进行标识,当收到ACK/NACK进行备份清除时,以便及时地释放备份中的缓存空间;备份发送序列号是为了在备份清除时无须读出完整数据备份,即可进行序列号比较。

对于FCT控制字备份,由于仅有一个数据字,序列号便于读取比较,故为了节省存储资源,仅设置一个FCT缓存,同时为了区分已重发数据和未重发数据,FCT备份数据的高位加入重发标识。

针对该并行分区存储架构,设计了FDIR机制主控状态机,状态机如图6所示。针对各备份分区内部的存储架构,提出了重发控制算法,实现了各个分区的正确备份清除和错误备份重发恢复。重发控制算法步骤如下所示。

图6 FDIR主控状态机Fig.6 Main state machine of FDIR

步骤1:收到ACK/NACK,得到Rx_seq,与各分区中备份的Tx_seq比较,各分区并行执行备份删除:对数据帧和广播帧分区中的标识缓存,若Tx_seq≤Rx_seq,则删除该备份的标识,同时更新该备份数据缓存中的地址指针以释放缓存空间;对于FCT分区,直接比较备份缓存中的Tx_seq和Rx_seq, 若Tx_seq≤Rx_seq,则直接删除备份。当分区的备份数据Tx_seq>Rx_seq时,无须删除备份。

步骤2:数据备份清除完毕后,若主控状态是ACK,则返回正常备份状态;若主控状态是NACK,则进入数据重发状态。

步骤3:在数据重发时,先翻转重发标识,更新发送序列号Tx_seq=Rx_seq。首先根据优先级重发广播帧,重发的同时备份重发数据和备份标识,当备份标识中的重发标识均为翻转后的重发标识时说明重发结束,缓存中均为重发数据;然后重发FCT,重发的同时备份FCT,当备份标识中的重发标识均为翻转后的重发标识说明重发结束;最后重发数据帧,重发过程同广播帧。

步骤4:重发结束后,返回数据正常备份状态。

通过重发控制算法,在清除备份时无须从缓存中依次读出备份,仅需删除标识缓存中的备份标识,并更新备份的地址指针,即可释放备份的缓存空间,操作简单高效,提高了备份缓存的利用率。同时,各分区在接收正常数据备份的过程中,能够并行地执行备份清除操作,对数据的正常发送无延迟影响。在错误重发时,通过重发控制算法能够对各类数据按照优先级依次重发,并可以对重发后的数据再次备份,利用重发标识能有效地区分原有备份和重发备份。针对不同的数据格式设计了不同的备份分区存储架构和重发控制算法,提升了FDIR的数据处理效率。

3.4 数据并行处理方案

3.4.1 并行CRC

SpaceFibre中数据帧、广播帧、FCT及其他控制字均需要进行CRC校验,其中数据帧CRC校验生成式为G(X)=X16+X12+X5+ 1,原理如图7所示,CRC校验范围包括32位的帧头、32位的数据以及高16位的帧尾。广播帧的CRC生成式为G(X) =X8+X2+X+ 1,CRC校验范围包括32位的帧头、32位的数据以及高24位的帧尾。FCT及其他控制字为一个32位的数据字,CRC校验范围均为高24位,CRC生成式与广播帧相同。

图7 CRC16计算原理Fig.7 Principle of CRC16

由于串行CRC算法需要占用多个时钟周期才能得到多位数据的CRC,若通过对串行CRC校验进行时钟倍频,会因频率过高导致系统不稳定;采用查表法则会占用过多的存储资源,通过对CRC算法的比较[13-15],选择采用基于公式递推法的并行CRC算法,能够在一个时钟下实现多位数据的CRC计算。以数据帧为例,若32位的数据为D[i](i=0,…,31),在第1个时钟时对D[0]进行校验,可以计算出该时钟下各CRC寄存器的表达式C[i](i=0,…,15);以此类推,即可得到32个时钟后,对32位数据进行CRC校验后的各CRC寄存器表达式C[i]。故根据CRC寄存器的初始值和各表达式,即可完成在一个时钟下32位数据的并行CRC计算。

由于不同数据格式的CRC校验范围不同,如数据帧既需要对32位数据进行CRC计算,又需要对帧尾的16位数据进行CRC计算,仅采用32位并行CRC表达式不能满足校验需求。故针对不同数据特征设计了不同的CRC校验方案:对数据帧采用了基于CRC16的32位数据和16位数据的组合并行CRC算法;对广播帧采用了基于CRC8的32位数据和24位数据的组合并行CRC算法;对FCT等控制字采用基于CRC8的24位数据并行CRC。采用不同的组合并行CRC算法,一个时钟即可对多位数据进行CRC校验,校验时能应对数据校验长度的变化,提高了节点的数据处理效率。

3.4.2 并行伪随机码

在SpaceFibre中,空闲帧的内部由32位宽的伪随机数组成,伪随机数的生成式为G(X)=X16+X5+X4+X3+1。不同于CRC校验,伪随机码的生成无须数据输入,仅需伪随机寄存器的串行输出序列。但若串行计算伪随机码则会占用过多的时钟周期,采用倍频会导致高速系统不稳定,故借鉴CRC校验中的方法,采用并行的公式递推法。由于没有外部输入,因此32位伪随机序列的表达式可以只由伪随机序列的初始值I(i)(i= 0,…,15)表示。16位的伪随机序列寄存器表达式为L(i)(i= 0,…,15),输出32位的伪随机序列表达式依次为P(i)(i= 0,…,31)。

伪随机码计算原理如图8所示,输出伪随机码P(i)即为每个时钟伪随机序列寄存器L(15)。以一个字节的伪随机码为例,第1个时钟后P(0)=L(15)=I(15);第2个时钟后P(1)=L(15)=I(14),…,P(8)=L(15)=I(8)。通过递推可以看出,在已知伪随机序列的初始值I(i)的情况下,只需依次求得8个时钟下所有L(15)的表达式,即可一次性求得一个并行的8位并行伪随机码。经过8个时钟后,伪随机序列寄存器的表达式如下:

(4)

图8 PRBS计算原理Fig.8 Principle of PRBS

由于需要计算一组32位的伪随机序列码,为了便于进行公式推导,32位伪随机序列的表达式可以分为4个字节的伪随机序列。在第2个字节的伪随机码计算时,以上述第1个字节经过8个时钟后的伪随机序列寄存器的值作为第2个字节推导时的初始值,再次对第2个字节进行如第1个字节的推导过程,求出8个时钟下P(i)(i=8,…,15)的值。通过重复上述迭代推导,最终可以获得32个时钟内,每个时钟下各个输出的伪随机数表达式P(0)~P(31)。因此,在一个时钟下,通过计算32位伪随机码的表达式,可以一次得出并行的32位伪随机码,提高了空闲帧中伪随机码的计算效率。此外,32个时钟周期后的伪随机序列寄存器的值可以作为下一个32位伪随机码计算的初始值I(i)(i=0,…,15),将其直接代入伪随机码表达式P(i)即可计算下一个32位伪随机码序列。迭代计算简单,表达式利用初始值寄存器和逻辑门表示,节省了时钟资源。

4 仿真分析

为了验证节点系统的设计方案,采用自顶向下的方法使用Verilog硬件描述语言完成了节点的设计,以ModelSim10.5作为仿真平台,对节点间的数据传输、FCT申请的轮询仲裁、虚拟通道的QoS调度、FDIR机制以及数据的并行处理等关键功能进行了仿真分析。

在数据传输时例化两个节点,并为发送方的4个虚拟通道构造4路数据源,搭建一个双节点的收发系统。将4路数据源分别写入4个对应的输出虚拟通道,经过发送方QoS调度、数据编号组帧以及GTX发送,在接收方通过GTX接收、数据校验解帧以及写入对应的输入虚拟通道等操作后,从接收方对应的输入虚拟通道读出。数据收发如图9所示,在两个节点之间实现了对应虚拟通道之间的数据传输功能。

图9 数据的发送和接收Fig.9 Sending and receiving of data

在输入虚拟通道中,当各路缓存中的数据同时被读走后产生了FCT申请冲突,为了解决该冲突,对FCT申请进行轮询仲裁。FCT轮询仲裁如图10所示,当4路VC同时出现FCT申请冲突时,依次受理了VC0、VC1、VC2、VC3的FCT申请,实现了轮询仲裁功能,处理了FCT的发送申请冲突。

图10 FCT申请轮询仲裁Fig.10 Polling arbitration of FCT request

在基于QoS调度过程中,为了给不同数据流提供不同质量的传输服务,需要为各路VC配置不同的QoS参数。给出一种QoS参数配置方案:VC0、VC1、VC2和VC3的优先权分别为R[0]=0,R[1]=1,R[2]=2,R[3]=3;带宽百分比BwPer[0]=10%,BwPer[1]=20%,BwPer[2]=20%,BwPer[3]=25%,VC的调度表TimeSlot[i]均设置为全1,带宽信用限制B=10 000。QoS调度仿真如图11所示,MAC模块先选择最高优先级VC0中的数据发送,并按照优先级依次发送VC1、VC2、VC3中的数据。数据发送后各VC对应的带宽信用BwCredit降低,而各VC的优先级Precedence也随之降低;数据不发送时,带宽信用和优先级缓慢增长。各QoS参数变化规律符合式(2)和式(3),满足QoS的调度规则,同时QoS参数计算和比较对每帧数据的发送几乎无延迟影响,为各路数据源的传输提供了QoS服务。

图11 QoS调度仿真Fig.11 Simulation of QoS scheduling

在基于FDIR机制进行错误重发时,结合重发控制算法,该分区存储架构能实现高效的重发恢复。当发送方发送Tx_seq分别为2、3、4、5、6、7号数据帧的同时,进行了数据备份。接收方在成功接收2、3、4号后产生接收错误,并发送错误确认NACK(Rx_seq=4),即已正确接收序号为前4的数据。发送方通过重发控制算法比较Tx_seq和Rx_seq,删除了标识缓存中的标识释放备份缓存,并重发了备份缓存中未成功接收的5、6、7号数据帧。通过与普通重发控制算法的对比,如图12所示,在对序号为2、3、4的数据备份进行清除时,仅用3个时钟即可实现备份的删除,并成功重发了后续备份,降低了3个数据帧长的延时,实现了高效的错误重发恢复。

(a) 重发控制算法(a) Retransmission control algorithm

在数据的并行处理中,通过计算CRC的32位并行表达式,实现了一个时钟内完成32位数据的CRC校验,其他CRC计算同理。通过计算推导出的并行32位伪随机序列寄存器和并行伪随机序列的输出表达式,实现了一个时钟即可计算出32位并行的伪随机数。并行数据计算如图13所示,并行的数据处理方案提高了节点的数据处理效率。

(a) 并行CRC计算(a) CRC parallel computation

最后,在Xilinx XC6VLX240T-2FFG1156 FPGA上实现了SpaceFibre节点系统的设计方案。通过搭建测试平台,把节点IP分别例化到两块Virtex-6官方评估板的 FPGA上,利用串行光纤实现了节点间的高速数据传输,板上主时钟频率为78.125 MHz,串行传输速率可达3.125 Gbit/s。该节点传输性能可以满足在大容量存储等高速数传项目中的传输要求。其资源占用情况如表3所示。

表3 Virtex-6 XC6VLX240T资源占用

5 结论

SpaceFibre总线网络能够提供基于QoS机制和FDIR机制的高速数据传输,网络拓扑灵活,成了未来航天高速总线网络的研究热点。本文在对SpaceFibre协议研究的基础上提出了一种基于FPGA的SpaceFibre总线终端节点的系统设计方案,并针对节点中的关键问题和技术,设计实现了FCT申请轮询仲裁、基于QoS机制的调度处理、基于FDIR机制的错误重发恢复以及数据并行处理等关键技术;最后给出了数据传输和各个关键技术的仿真测试结果,验证了节点的功能,为后续SpaceFibre总线网络进一步实现和在轨应用奠定了技术基础。

猜你喜欢
状态机控制算法校验
复杂多耦合仿真模型校验工具研究
使用Excel朗读功能校验工作表中的数据
电能表在线不停电校验技术
基于Verilog 的有限状态机编程方式及研究
交互式维护系统中有限状态机的设计与实现
基于有限状态机的交会对接飞行任务规划方法
基于dSPACE和PLC的控制算法测试系统设计
精通文件校验的“门道”
基于DCS的过程实时控制平台的研究
卫星姿控系统半物理仿真中转台控制算法的实现