CN114928513A - 基于srio协议的双总线通信系统及通信方法 - Google Patents

基于srio协议的双总线通信系统及通信方法 Download PDF

Info

Publication number
CN114928513A
CN114928513A CN202210512726.8A CN202210512726A CN114928513A CN 114928513 A CN114928513 A CN 114928513A CN 202210512726 A CN202210512726 A CN 202210512726A CN 114928513 A CN114928513 A CN 114928513A
Authority
CN
China
Prior art keywords
srio
data
module
interface
standby
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210512726.8A
Other languages
English (en)
Inventor
宋涛
李玉刚
刘漫丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
East China University of Science and Technology
Original Assignee
East China University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by East China University of Science and Technology filed Critical East China University of Science and Technology
Priority to CN202210512726.8A priority Critical patent/CN114928513A/zh
Publication of CN114928513A publication Critical patent/CN114928513A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40169Flexible bus arrangements
    • H04L12/40176Flexible bus arrangements involving redundancy
    • H04L12/40189Flexible bus arrangements involving redundancy by using a plurality of bus systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种基于SRIO协议的双总线通信系统及通信方法,SRIO主交换机模块与SRIO备交换机模块同步运行且互为备份,当其中一路SRIO交换网络通信异常时,FPGA模块同步切换到另一路SRIO交换网络,进而将数据源模块的数据发送至第二CPU模块。本发明基于SRIO总线接口的高可靠性,克服了由于硬件通信传输错误而导致的系统通信异常,保证了系统的安全。能够实现双SRIO通信网络同步运行,同时互为备份,在任意一路SRIO交换网络通信异常情况下,FPGA模块可以同步切换到另外一路SRIO交换网络,对通信的安全性、可靠性有很大的提升,能满足高可靠性要求的需求。

Description

基于SRIO协议的双总线通信系统及通信方法
技术领域
本发明涉及无线电通信技术领域,具体地,涉及一种基于SRIO协议的双总线通信系统及通信方法。
背景技术
在一些强实时、大带宽、高安全性的通信系统中,SRIO总线是一种主流的通信总线,具有大带宽、强实时特性。然而,在航空、航天等应用领域中对数据的可靠性的要求尤其苛刻。系统的工作环境复杂,而且需要长时间在极端环境工作,系统中的任何一个处理器、交换机等单点故障可能会导致整个系统无法工作。
因此,基于单一SRIO通道的总线拓扑架构难以保证系统的安全,而当前业务还没有一个有效的解决方案。目前没有发现同本发明类似技术的说明或报道,也尚未收集到国内外类似的资料。
发明内容
本发明针对现有技术中存在的上述不足,提供了一种基于SRIO协议的双总线通信系统及通信方法,
根据本发明的一个方面,提供了一种基于SRIO协议的双总线通信系统,包括:第一CPU模块、SRIO主交换机模块、SRIO备交换机模块、数据源模块以及数据处理模块;其中:
所述第一CPU模块分别与所述SRIO主交换机模块和所述SRIO备交换机模块连接,用于对SRIO主交换网络和SRIO备交换网络进行初始化管理;
所述数据源模块分别与所述SRIO主交换机模块和所述SRIO备交换机模块连接;
所述数据处理模块包括:FPGA模块和第二CPU模块;所述FPGA模块分别通过其主SRIO接口和备SRIO接口与所述SRIO主交换机模块和所述SRIO备交换机模块连接;所述第二CPU模块与所述FPGA模块互连;
所述SRIO主交换机模块与所述SRIO备交换机模块同步运行且互为备份,当其中一路SRIO交换网络通信异常时,所述FPGA模块同步切换到另一路SRIO交换网络,进而将所述数据源模块的数据发送至所述第二CPU模块。
可选地,所述数据源模块分别通过通信背板与所述SRIO主交换机模块和所述SRIO备交换机模块连接。
可选地,所述主SRIO接口和所述备SRIO接口分别通过通信背板与所述SRIO主交换机模块和所述SRIO备交换机模块连接。
可选地,所述第二CPU模块通过PCIe接口与所述FPGA模块互连。
可选地,所述FPGA模块,包括:
数据解析模块,该模块对接收到的主SRIO接口和备SRIO接口的数据进行解析,并确认数据包的合法性,然后对合法的数据包进行跨时钟域时序处理,最后把两个SRIO接口的数据包进行时序对齐,获得解析数据;
数据包裁决模块,该模块对所述解析数据的内容进行逐项裁决,确认两个SRIO接口的数据包是否一致,并根据裁决结果决定是否将数据包发送给下一级;
数据处理转发模块,该模块对裁决后的数据进行处理后以设定的格式通过PCIe接口转发给第二CPU模块。
根据本发明的另一个方面,提供了一种基于SRIO协议的双总线通信方法,包括:
对SRIO主交换网络和SRIO备交换网络进行初始化操作,完成对FPGA模块的主SRIO接口和备SRIO接口的DeviceID地址设置和本地内存分配;
初始化后的SRIO主交换网络和SRIO备交换网络同时运行,数据源模块向同一个DeviceID地址的主SRIO接口和备SRIO接口发送数据,并分别存储至主SRIO接口和备SRIO接口所对应的本地内存中;
FPGA模块将接收到的主、备SRIO通道的数据进行融合处理并发送。
可选地,所述对SRIO主交换网络和SRIO备交换网络进行初始化操作,包括:
第一CPU模块对SRIO主交换机模块和SRIO备交换机模块所有端点设备的链路link状态进行判断,建立链路通道;
第一CPU模块设置FPGA模块的主SRIO接口和备SRIO接口为从设备,并获取主SRIO接口和备SRIO接口所对应的控制端口的位宽和速率信息;
第一CPU模块通过建立的链路通道分别对FPGA模块的主SRIO接口和备SRIO接口的DeviceID地址进行设置,其中,所述主SRIO接口和所述备SRIO接口的DeviceID地址相同;
FPGA模块根据所述主SRIO接口和备SRIO接口所对应的控制端口的位宽和速率信息,分别对所述主SRIO接口和所述备SRIO接口的本地内存进行分配;
通过以上步骤,完成对SRIO主交换网络和SRIO备交换网络的初始化操作。
可选地,如果FPGA模块的主SRIO接口和备SRIO接口中有一个link状态是无效,则结束初始化流程,并上报link异常错误信息至上层应用。
可选地,所述主SRIO接口和所述备SRIO接口的本地内存空间相互独立,且与所述主SRIO接口和所述备SRIO接口一一对应;其中,每一个接口的内存空间的大小依据系统的数据量进行设置,并大于256字节,每一个内存空间的启始前256个字节用于标记内存空间的使用状态、数据大小和设备ID关联表。
可选地,所述FPGA模块将接收到的主、备SRIO通道的数据进行融合处理,包括:
对接收到的主、备SRIO通道的数据进行解析,并确认数据包的合法性,然后对合法的数据包进行跨时钟域时序处理,最后把两个SRIO通道的数据包进行时序对齐,获得解析数据;
对所述解析数据的内容进行逐项裁决,确认两个通道的数据包是否一致,并根据裁决结果决定是否将数据包发送给下一级;
对裁决后的数据进行处理后以设定的格式通过PCIe接口转发给第二CPU模块。
可选地,对接收到的主、备SRIO通道的数据进行解析,并确认数据包的合法性,然后对合法的数据包进行跨时钟域时序处理,最后把两个SRIO通道的数据包进行时序对齐,包括:
通过AXI-4接口接收来自SRIOIP核的数据包并进行解析,找到所述数据包中的源端和目的端的DeviceID,遍历两个SRIO接口所对应的本地内存中的DeviceID关联表来判断源端和目的端的两个地址是否有关联关系,然后将时间戳信息打包到所述数据包中,得到新数据包;
通过AXI-lite接口查询SRIOIP核的HELLO数据包的[55:52]字段数据,判断消息的格式是否为FTYPE5+FTYPE10;查询[33:0]的ADDR地址数据字段,判断地址数据是否与目标内存空间地址一致;
如果上述两个判断都正确,则确认所述新数据包是合法的,将所述新数据包的长度进行计数,用于下一级处理;如果上述两个判断中的任意一个不正确,则判断为数据格式错误,并将错误信息以及数据包长度统计结果以心跳数据包Heart_beats的形式发送给第一CPU模块,然后将错误数据包丢弃;
FPGA模块内部的同步时钟源产生同步时钟对两个SRIO通道的所述新数据包进行时序同步对齐,使得两个SRIO通道对外同时无间隔的发出完整的数据包,用于下一级处理。
可选地,所述对所述解析数据的内容进行逐项裁决,确认两个通道的数据包是否一致,并根据裁决结果决定是否将数据包发送给下一级,包括:
接收两个SRIO通道的数据包进行FIFO缓存,并进行如下处理:将数据包中256位宽的数据转换为后级系统统一的64位宽数据,然后对所述数据包中的优先级字段统一设置为最高优先级0,保证后级系统对数据处理的顺序的一致性;同时,利用FIFO缓存进行跨时钟域的处理,避免由于跨时钟域时序问题导致的数据通信异常;
对处理后的两个SRIO通道的数据包的数据内容、时间戳和数据包SN序号进行综合比较,如果两个SRIO通道的数据包内容一致,则直接将时间戳最小的通道的数据包作为裁决后的数据用于下一级处理,并将数据一致的对比结果发给第一CPU模块;
如果两个SRIO通道的数据包比较结果不一致,则分别对两个SRIO通道数据求校验和;如果有一路数据的校验和与帧头的校验和信息一致,则将该路数据作为裁决后的数据用于下一级处理,并发送另一路数据异常信息给第一CPU模块;如果两路数据的校验和均不正确,则丢弃两路数据,并发送两路数据异常信息给第一CPU模块。
可选地,所述对裁决后的数据进行处理后将原始数据包通过PCIe接口转发给第二CPU模块,包括:
对接收到的两个SRIO通道的裁决后的数据按照数据包SN序号从大到小的顺序进行排序;
根据接收到的裁决后的有效数据,提取相应SN序号的数据包,并将数据包通过DMA控制器转发给PCIe接口。
由于采用了上述技术方案,本发明与现有技术相比,具有如下至少一项的有益效果:
本发明提供的基于SRIO协议的双总线通信系统及通信方法,基于SRIO总线接口的高可靠性,克服了由于硬件通信传输错误而导致的系统通信异常,保证了系统的安全。
本发明提供的基于SRIO协议的双总线通信系统及通信方法,能够实现双SRIO通信网络同步运行,同时互为备份,在任意一路SRIO交换网络通信异常情况下,FPGA模块可以同步切换到另外一路SRIO交换网络,对通信的安全性、可靠性有很大的提升,能满足高可靠性要求的需求。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例中基于SRIO协议的双总线通信系统的系统架构示意图。
图2为本发明一优选实施例中FPGA模块的组成模块示意图。
图3为本发明一实施例中基于SRIO协议的双总线通信方法的工作流程图。
图4为本发明一优选实施例中对SRIO主交换网络和SRIO备交换网络进行初始化操作的工作流程图。
图5为本发明一优选实施例中FPGA模块对主、备SRIO通道的数据进行融合处理的工作流程图。
图6为本发明一优选实施例中FPGA模块数据解析处理的工作流程图。
图7为本发明一优选实施例中FPGA模块数据包裁决处理的工作流程图。
图8为本发明一优选实施例中FPGA模块数据处理转发的工作流程图。
具体实施方式
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
图1为本发明一实施例提供的基于SRIO协议的双总线通信系统的系统架构示意图。
如图1所示,该实施例提供的基于SRIO协议的双总线通信系统,可以包括:第一CPU模块、SRIO主交换机模块、SRIO备交换机模块、数据源模块以及数据处理模块;其中:
第一CPU模块分别与SRIO主交换机模块和SRIO备交换机模块连接,用于对SRIO主交换网络和SRIO备交换网络进行初始化管理;
数据源模块分别与SRIO主交换机模块和SRIO备交换机模块连接;
数据处理模块包括:FPGA模块和第二CPU模块;FPGA模块分别通过其主SRIO接口和备SRIO接口与SRIO主交换机模块和SRIO备交换机模块连接;第二CPU模块与FPGA模块互连;
SRIO主交换机模块与SRIO备交换机模块同步运行且互为备份,当其中一路SRIO交换网络通信异常时,FPGA模块同步切换到另一路SRIO交换网络,进而将数据源模块的数据发送至第二CPU模块。
在一优选实施例中,数据源模块分别通过通信背板与SRIO主交换机模块和SRIO备交换机模块连接。
在一优选实施例中,主SRIO接口和备SRIO接口分别通过通信背板与SRIO主交换机模块和SRIO备交换机模块连接。
在一优选实施例中,第二CPU模块通过PCIe接口与FPGA模块互连。
如图2所示,在一优选实施例中,FPGA模块,可以包括:
数据解析模块,该模块对接收到的主SRIO接口和备SRIO接口的数据进行解析,并确认数据包的合法性,然后对合法的数据包进行跨时钟域时序处理,最后把两个SRIO接口的数据包进行时序对齐,获得解析数据;
数据包裁决模块,该模块对解析数据的内容进行逐项裁决,确认两个SRIO接口的数据包是否一致,并根据裁决结果决定是否将数据包发送给下一级;
数据处理转发模块,该模块对裁决后的数据进行处理后以设定的格式通过PCIe接口转发给第二CPU模块。
图3为本发明一实施例提供的基于SRIO协议的双总线通信方法的工作流程图。
如图3所示,该实施例提供的基于SRIO协议的双总线通信方法,可以包括如下步骤:
S100,对SRIO主交换网络和SRIO备交换网络进行初始化操作,完成对FPGA模块的主SRIO接口和备SRIO接口的DeviceID地址设置和本地内存分配;
S200,初始化后的SRIO主交换网络和SRIO备交换网络同时运行,数据源模块向同一个DeviceID地址的主SRIO接口和备SRIO接口发送数据,并分别存储至主SRIO接口和备SRIO接口所对应的本地内存中;
S300,FPGA模块将接收到的主、备SRIO通道的数据进行融合处理并发送。
在S100的一优选实施例中,对SRIO主交换网络和SRIO备交换网络进行初始化操作,可以包括如下步骤:
S101,第一CPU模块对SRIO主交换机模块和SRIO备交换机模块所有端点设备的链路link状态进行判断,建立链路通道;
S102,第一CPU模块设置FPGA模块的主SRIO接口和备SRIO接口为从设备,并获取主SRIO接口和备SRIO接口所对应的控制端口的位宽和速率信息;
S103,第一CPU模块通过建立的链路通道分别对FPGA模块的主SRIO接口和备SRIO接口的DeviceID地址进行设置,其中,主SRIO接口和备SRIO接口的DeviceID地址相同;
S104,FPGA模块根据主SRIO接口和备SRIO接口所对应的控制端口的位宽和速率信息,分别对主SRIO接口和备SRIO接口的本地内存进行分配;
通过以上步骤,完成对SRIO主交换网络和SRIO备交换网络的初始化操作。
在S101的一优选实施例中,进一步包括如下步骤:如果FPGA模块的主SRIO接口和备SRIO接口中有一个link状态是无效,则结束初始化流程,并上报link异常错误信息至上层应用。
在S104的一优选实施例中,进一步包括:主SRIO接口和备SRIO接口的本地内存空间相互独立,且与主SRIO接口和备SRIO接口一一对应;其中,每一个接口的内存空间的大小依据系统的数据量进行设置,并大于256字节,每一个内存空间的启始前256个字节用于标记内存空间的使用状态、数据大小和设备ID关联表。
在S300的一优选实施例中,FPGA模块将接收到的主、备SRIO通道的数据进行融合处理,可以包括如下步骤:
S301,对接收到的主、备SRIO通道的数据进行解析,并确认数据包的合法性,然后对合法的数据包进行跨时钟域时序处理,最后把两个SRIO通道的数据包进行时序对齐,获得解析数据;
S302,对解析数据的内容进行逐项裁决,确认两个通道的数据包是否一致,并根据裁决结果决定是否将数据包发送给下一级;
S303,对裁决后的数据进行处理后以设定的格式通过PCIe接口转发给第二CPU模块。
在S301的一优选实施例中,对接收到的主、备SRIO通道的数据进行解析,并确认数据包的合法性,然后对合法的数据包进行跨时钟域时序处理,最后把两个SRIO通道的数据包进行时序对齐,可以包括如下步骤:
S3011,通过AXI-4接口接收来自SRIO IP核的数据包并进行解析,找到数据包中的源端和目的端的DeviceID,遍历两个SRIO接口所对应的本地内存中的DeviceID关联表来判断源端和目的端的两个地址是否有关联关系,然后将时间戳信息打包到数据包中,得到新数据包;
S3012,通过AXI-lite接口查询SRIO IP核的HELLO数据包的[55:52]字段数据,判断消息的格式是否为FTYPE5+FTYPE10;查询[33:0]的ADDR地址数据字段,判断地址数据是否与目标内存空间地址一致;
S3013,如果上述两个判断都正确,则确认新数据包是合法的,将新数据包的长度进行计数,用于下一级处理;如果上述两个判断中的任意一个不正确,则判断为数据格式错误,并将错误信息以及数据包长度统计结果以心跳数据包Heart_beats的形式发送给第一CPU模块,然后将错误数据包丢弃;
S3014,FPGA模块内部的同步时钟源产生同步时钟对两个SRIO通道的新数据包进行时序同步对齐,使得两个SRIO通道对外同时无间隔的发出完整的数据包,用于下一级处理。
在S302的一优选实施例中,对解析数据的内容进行逐项裁决,确认两个通道的数据包是否一致,并根据裁决结果决定是否将数据包发送给下一级,可以包括如下步骤:
S3021,接收两个SRIO通道的数据包进行FIFO缓存,并进行如下处理:将数据包中256位宽的数据转换为后级系统统一的64位宽数据,然后对数据包中的优先级字段统一设置为最高优先级0,保证后级系统对数据处理的顺序的一致性;同时,利用FIFO缓存进行跨时钟域的处理,避免由于跨时钟域时序问题导致的数据通信异常;
在该步骤中,“跨时钟域”处理是FPGA编程的常规操作和基本概念,主要指数据读写使用不同时钟,通过FIFO缓存来解决读写快慢不匹配问题。
S3022,对处理后的两个SRIO通道的数据包的数据内容、时间戳和数据包SN序号进行综合比较,如果两个SRIO通道的数据包内容一致,则直接将时间戳最小的通道的数据包作为裁决后的数据用于下一级处理,并将数据一致的对比结果发给第一CPU模块;
S3023,如果两个SRIO通道的数据包比较结果不一致,则分别对两个SRIO通道数据求校验和;如果有一路数据的校验和与帧头的校验和信息一致,则将该路数据作为裁决后的数据用于下一级处理,并发送另一路数据异常信息给第一CPU模块;如果两路数据的校验和均不正确,则丢弃两路数据,并发送两路数据异常信息给第一CPU模块。
在S303的一优选实施例中,对裁决后的数据进行处理后以设定的格式通过PCIe接口转发给第二CPU模块,可以包括如下步骤:
S3031,对接收到的两个SRIO通道的裁决后的数据按照数据包SN序号从大到小的顺序进行排序;
S3032,根据接收到的裁决后的有效数据,提取相应SN序号的数据包,并将数据包通过DMA控制器转发给PCIe接口。
在S3031中,设定的格式是指原始数据包的格式。由于接收来自主、备接口的数据包在前面加上特殊字段用于辨别该数据包,但是在向下一级发送该数据包时,新加的字段不发送给一下级,因此对裁决后的数据进行处理后,将原有的数据包内容发送给下一级。
在S3032中,裁决后的数据中有一路数据包是有效的,根据该路有效数据包的SN序号提取数据。
需要说明的是,本发明提供的方法中的步骤,可以利用系统中对应的模块、部件等予以实现,两个实施例中的实施方案可相互理解为彼此的优选例,在此不予赘述。
下面结合附图,对本发明上述两个实施例提供的技术方案进一步说明
本发明上述实施例中提出了一种基于SRIO协议的双总线的冗余备份通信系统架构,该通信系统架构如图1所示,主要由1个用于交换机配置管理的CPU1、2个相互独立的SRIO交换机、1个数据源模块和1个由1片FPGA和1片CPU2组成的数据处理模块组成。其中数据处理模块对外有两路相互备份的SRIO接口,对外两个接口通过通信背板分别接到两个SRIO交换网络中;对内FPGA模块通过PCIE接口和CPU2模块互联。本发明提出的通信架构,能够在系统中实现双SRIO通信网络同步运行,同时互为备份,在任意一路SRIO交换网络通信异常情况下,FPGA模块处理系统可以同步切换到另外一路SRIO交换网络,对系统通信的安全性、可靠性有很大的提升,能满足高可靠性要求的系统需求。
该通信系统架构下,系统上电时由管理CPU1负责对主、备SRIO网络初始化,完成系统正常通信之前的一切配置初始化工作,如图4所示,其主要步骤如下:
步骤1:系统上电后,SRIO网络中的管理CPU1作为Host主机发起枚举操作,CPU1中的SRIO初始化程序对主、从SRIO交换机所有端点设备的链路link状态进行判断。如果FPGA上的主、备SRIO接口其中有一个link状态是无效,则结束初始化流程,并上报“link异常”错误信息至上层应用。
步骤2:CPU1中的初始化程序设置FPGA的SRIO主接口和从接口为从设备,并获取主、备接口所对应的SRIO控制器端口的位宽和速率等信息。
步骤3:CPU1中的初始化程序通过建立的链路通道对FPGA的主、备SRIO控制器DeviceID分别进行设置,主、备SRIO控制的DeviceID相同。系统的数据收发都是通过DeviceID进行寻址。
步骤4:FPGA中初始化模块分别对SRIO主、备接口的内存地址进行分配。两个内存空间相互独立,与主、备SRIO接口一一对应,确保每个SRIO端口收到的数据有独立的内存空间进行缓存。其中每个接口的内存空间的大小依据系统的数据量进行设置,但要大于256字节。每个内存空间的启始前256个字节用来标记内存空间的使用状态、数据大小和设备ID关联表。如果有数据写入,内存有数据标志位会置1,并将保存数据长度。如果数据被读走或者备丢弃,则该标志位被清0,指示内存空间为空。设备ID关联表是由应用软件设定,用户关联收发数据地址的管理。
该发明提出的双总线通信架构设计方法在系统正常工作模式下,两路SRIO网络同时运行,数据源模块向同一个DeviceID地址,该DeviceID为FPGA的主、备SRIO接口的地址。分别从两个SRIO通道向FPGA发送数据,结果FPGA处理器的数据融合处理后,再将融合后的数据发送给CPU2处理器。如图5所示,其数据从源端到目的端的通信及处理流程步骤如下:
步骤1:FPGA中的数据解析模块对两路接收到的SRIO数据进行解析,确认数据包的合法性。其基本原理是通过AXI-4接口接收来自于SRIO IP核进行数据,对接收到的数据包进行地址合法性、消息格式正确性进行判断,然后进行跨时钟域时序处理,最后把两个数据包进行时序对齐后转给给数据包裁决模块。如图6详细步骤描述如下:
步骤1.1:通过解析接收到来自SRIO IP核的数据包,找到数据包中的源端和目的端的DeviceID,然后遍历DeviceID关联表来判断两个地址是否有关联关系,然后将时间戳信息打包到数据包中。
步骤1.2:然后通过AXI-lite接口查询SRIO IP核的HELLO数据包的[55:52]字段数据,判断消息的格式是否为FTYPE5+FTYPE10;查询[33:0]的ADDR地址数据字段,判断地址数据是否与目标内存空间地址一致。
步骤1.3:如果步骤1.2的两个判断都正确,则将数据包的长度进行计数送给下一级的FIFO缓存;如果步骤2的两个判断任意一个不正确,则判断为数据格式错误,并将错误信息以及数据包长度统计结果以心跳模块Heart_beats的形式发送给SRIO网络的Host主机(CPU1),然后将错误数据包丢弃。
步骤1.4:FIFO接收到来自上一级的数据,将256位宽的数据转换为后级系统统一的64位宽数据,然后对数据包中的优先级字段统一设置为最高优先级0,保证后级系统对数据处理的顺序的一致性。FIFO的作用还完成了跨时钟域的处理,避免由于跨时钟域时序问题导致的数据通信异常。
步骤1.5:FPGA模块内部的同步时钟源产生同步时钟给两个时序对齐模块,时序对齐模块将数据包已64位宽度进行时序同步,保证时序对齐1模块和时序对齐2模块对外同时无间隔的发出完整的数据包。
步骤1.6:心跳模块的作用是向系统Host主机(CPU1)上报FPGA模块数据的接收情况,同时实时监测两路SRIO接口的Link状态是否正常,并将监测结果报告给FPGA模块。
步骤2:数据裁决模块对数据内容进行逐项裁决,确认来自两个网络的SRIO数据包是否一致,跟进裁决结果做出相应的决策。其基本原理是对接收到两路数据的数据内容、时间戳、数据包SN序号进行综合比较,并对较对结果进行裁决,最后将裁决结果以心跳数据包的形式发给HOST主机以及转发下一级模块。如图7所示,具体步骤描述如下:
步骤2.1:将接收到的两路数据进行缓存。
步骤2.2:两路的数据内容进行比较,如果两路数据内容一致,则直接将时间戳最小的那路数据发送给数据处理转发模块,并将“数据一致”的对比结果发给HOST主机。
步骤2.2:如果数据内部比较结果不一致,那么分别对两路数据求校验和。假如有一路数据的校验和与帧头的校验和信息一致,则将该路数据传输给下一级模块,并发送另一路数据异常信息给HOST主机。假如没有一路数据的校验和正确,则丢弃两路数据,并发送两路数据异常信息给HOST主机。
步骤3:数据处理转发模块将来自数据裁决模块的数据进行处理后以一定的格式通过PCIe接口转发给CPU2处理器。分别将接收到的两路数据存入两个环形FIFO,数据融合模块根据上一级的裁决结果,从两个环形FIFO缓存中取出相应的数据包,通过DMA控制器模块将数据转发到PCIe接口。如图8所示,具体步骤描述如下:
步骤3.1:首先两路环形FIFO分别收到上一级的数据包,两个FIFO分别根据数据包SN编号大小的顺序对数据包的进行排序。
步骤3.2:然后数据融合模块根据收到的裁决信息(即裁决后的有效数据),从环形FIFO中取出相应SN序号的数据包,并将数据包转发给DMA控制模块。
本发明上述实施例提供的基于SRIO协议的双总线通信系统及通信方法,基于SRIO总线接口的高可靠性,克服了由于硬件通信传输错误而导致的系统通信异常,保证了系统的安全;能够实现双SRIO通信网络同步运行,同时互为备份,在任意一路SRIO交换网络通信异常情况下,FPGA模块可以同步切换到另外一路SRIO交换网络,对通信的安全性、可靠性有很大的提升,能满足高可靠性要求的需求。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本发明上述实施例中未尽事宜均为本领域公知技术。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

Claims (10)

1.一种基于SRIO协议的双总线通信系统,其特征在于,包括:第一CPU模块、SRIO主交换机模块、SRIO备交换机模块、数据源模块以及数据处理模块;其中:
所述第一CPU模块分别与所述SRIO主交换机模块和所述SRIO备交换机模块连接,用于对SRIO主交换网络和SRIO备交换网络进行初始化管理;
所述数据源模块分别与所述SRIO主交换机模块和所述SRIO备交换机模块连接;
所述数据处理模块包括:FPGA模块和第二CPU模块;所述FPGA模块分别通过其主SRIO接口和备SRIO接口与所述SRIO主交换机模块和所述SRIO备交换机模块连接;所述第二CPU模块与所述FPGA模块互连;
所述SRIO主交换机模块与所述SRIO备交换机模块同步运行且互为备份,当其中一路SRIO交换网络通信异常时,所述FPGA模块同步切换到另一路SRIO交换网络,进而将所述数据源模块的数据发送至所述第二CPU模块。
2.根据权利要求1所述的基于SRIO协议的双总线通信系统,其特征在于,还包括如下任意一项或任意多项:
-所述数据源模块分别通过通信背板与所述SRIO主交换机模块和所述SRIO备交换机模块连接;
-所述主SRIO接口和所述备SRIO接口分别通过通信背板与所述SRIO主交换机模块和所述SRIO备交换机模块连接;
-所述第二CPU模块通过PCIe接口与所述FPGA模块互连。
3.根据权利要求1-2中任一项所述的基于SRIO协议的双总线通信系统,其特征在于,所述FPGA模块,包括:
数据解析模块,该模块对接收到的主SRIO接口和备SRIO接口的数据进行解析,并确认数据包的合法性,然后对合法的数据包进行跨时钟域时序处理,最后把两个SRIO接口的数据包进行时序对齐,获得解析数据;
数据包裁决模块,该模块对所述解析数据的内容进行逐项裁决,确认两个SRIO接口的数据包是否一致,并根据裁决结果决定是否将数据包发送给下一级;
数据处理转发模块,该模块对裁决后的数据进行处理后以设定的格式通过PCIe接口转发给第二CPU模块。
4.一种基于SRIO协议的双总线通信方法,其特征在于,包括:
对SRIO主交换网络和SRIO备交换网络进行初始化操作,完成对FPGA模块的主SRIO接口和备SRIO接口的DeviceID地址设置和本地内存分配;
初始化后的SRIO主交换网络和SRIO备交换网络同时运行,数据源模块向同一个DeviceID地址的主SRIO接口和备SRIO接口发送数据,并分别存储至主SRIO接口和备SRIO接口所对应的本地内存中;
FPGA模块将接收到的主、备SRIO通道的数据进行融合处理并发送。
5.根据权利要求4所述的基于SRIO协议的双总线通信系统的通信方法,其特征在于,所述对SRIO主交换网络和SRIO备交换网络进行初始化操作,包括:
第一CPU模块对SRIO主交换机模块和SRIO备交换机模块所有端点设备的链路link状态进行判断,建立链路通道;
第一CPU模块设置FPGA模块的主SRIO接口和备SRIO接口为从设备,并获取主SRIO接口和备SRIO接口所对应的控制端口的位宽和速率信息;
第一CPU模块通过建立的链路通道分别对FPGA模块的主SRIO接口和备SRIO接口的DeviceID地址进行设置,其中,所述主SRIO接口和所述备SRIO接口的DeviceID地址相同;
FPGA模块根据所述主SRIO接口和备SRIO接口所对应的控制端口的位宽和速率信息,分别对所述主SRIO接口和所述备SRIO接口的本地内存进行分配;
通过以上步骤,完成对SRIO主交换网络和SRIO备交换网络的初始化操作。
6.根据权利要求5所述的基于SRIO协议的双总线通信系统的通信方法,其特征在于,还包括如下任意一项或任意多项:
-如果FPGA模块的主SRIO接口和备SRIO接口中有一个link状态是无效,则结束初始化流程,并上报link异常错误信息至上层应用;
-所述主SRIO接口和所述备SRIO接口的本地内存空间相互独立,且与所述主SRIO接口和所述备SRIO接口一一对应;其中,每一个接口的内存空间的大小依据系统的数据量进行设置,并大于256字节,每一个内存空间的启始前256个字节用于标记内存空间的使用状态、数据大小和设备ID关联表。
7.根据权利要求4所述的基于SRIO协议的双总线通信系统的通信方法,其特征在于,所述FPGA模块将接收到的主、备SRIO通道的数据进行融合处理,包括:
对接收到的主、备SRIO通道的数据进行解析,并确认数据包的合法性,然后对合法的数据包进行跨时钟域时序处理,最后把两个SRIO通道的数据包进行时序对齐,获得解析数据;
对所述解析数据的内容进行逐项裁决,确认两个通道的数据包是否一致,并根据裁决结果决定是否将数据包发送给下一级;
对裁决后的数据进行处理后以设定的格式通过PCIe接口转发给第二CPU模块。
8.根据权利要求7所述的基于SRIO协议的双总线通信系统的通信方法,其特征在于,对接收到的主、备SRIO通道的数据进行解析,并确认数据包的合法性,然后对合法的数据包进行跨时钟域时序处理,最后把两个SRIO通道的数据包进行时序对齐,包括:
通过AXI-4接口接收来自SRIO IP核的数据包并进行解析,找到所述数据包中的源端和目的端的DeviceID,遍历两个SRIO接口所对应的本地内存中的DeviceID关联表来判断源端和目的端的两个地址是否有关联关系,然后将时间戳信息打包到所述数据包中,得到新数据包;
通过AXI-lite接口查询SRIO IP核的HELLO数据包的[55:52]字段数据,判断消息的格式是否为FTYPE5+FTYPE10;查询[33:0]的ADDR地址数据字段,判断地址数据是否与目标内存空间地址一致;
如果上述两个判断都正确,则确认所述新数据包是合法的,将所述新数据包的长度进行计数,用于下一级处理;如果上述两个判断中的任意一个不正确,则判断为数据格式错误,并将错误信息以及数据包长度统计结果以心跳数据包Heart_beats的形式发送给第一CPU模块,然后将错误数据包丢弃;
FPGA模块内部的同步时钟源产生同步时钟对两个SRIO通道的所述新数据包进行时序同步对齐,使得两个SRIO通道对外同时无间隔的发出完整的数据包,用于下一级处理。
9.根据权利要求7所述的基于SRIO协议的双总线通信系统的通信方法,其特征在于,所述对所述解析数据的内容进行逐项裁决,确认两个通道的数据包是否一致,并根据裁决结果决定是否将数据包发送给下一级,包括:
接收两个SRIO通道的数据包进行FIFO缓存,并进行如下处理:将数据包中256位宽的数据转换为后级系统统一的64位宽数据,然后对所述数据包中的优先级字段统一设置为最高优先级0,保证后级系统对数据处理的顺序的一致性;同时,利用FIFO缓存进行跨时钟域的处理;
对处理后的两个SRIO通道的数据包的数据内容、时间戳和数据包SN序号进行综合比较,如果两个SRIO通道的数据包内容一致,则直接将时间戳最小的通道的数据包作为裁决后的数据用于下一级处理,并将数据一致的对比结果发给第一CPU模块;
如果两个SRIO通道的数据包比较结果不一致,则分别对两个SRIO通道数据求校验和;如果有一路数据的校验和与帧头的校验和信息一致,则将该路数据作为裁决后的数据用于下一级处理,并发送另一路数据异常信息给第一CPU模块;如果两路数据的校验和均不正确,则丢弃两路数据,并发送两路数据异常信息给第一CPU模块。
10.根据权利要求7所述的基于SRIO协议的双总线通信系统的通信方法,其特征在于,所述对裁决后的数据进行处理后将原始数据包通过PCIe接口转发给第二CPU模块,包括:
对接收到的两个SRIO通道的裁决后的数据按照数据包SN序号从大到小的顺序进行排序;
根据接收到的裁决后的有效数据,提取相应SN序号的数据包,并将数据包通过DMA控制器转发给PCIe接口。
CN202210512726.8A 2022-05-05 2022-05-05 基于srio协议的双总线通信系统及通信方法 Pending CN114928513A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210512726.8A CN114928513A (zh) 2022-05-05 2022-05-05 基于srio协议的双总线通信系统及通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210512726.8A CN114928513A (zh) 2022-05-05 2022-05-05 基于srio协议的双总线通信系统及通信方法

Publications (1)

Publication Number Publication Date
CN114928513A true CN114928513A (zh) 2022-08-19

Family

ID=82808098

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210512726.8A Pending CN114928513A (zh) 2022-05-05 2022-05-05 基于srio协议的双总线通信系统及通信方法

Country Status (1)

Country Link
CN (1) CN114928513A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115396527A (zh) * 2022-10-27 2022-11-25 成都智明达电子股份有限公司 一种基于fpga的pcie和srio协议转换系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102843264A (zh) * 2012-09-21 2012-12-26 中国航空无线电电子研究所 高速串行总线网络中双主机的控制方法
US20160364356A1 (en) * 2015-06-09 2016-12-15 Inventec (Pudong) Technology Corporation Micro server and switch device thereof
CN109194497A (zh) * 2018-07-17 2019-01-11 中国航空无线电电子研究所 面向软件无线电系统的双srio网络备份系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102843264A (zh) * 2012-09-21 2012-12-26 中国航空无线电电子研究所 高速串行总线网络中双主机的控制方法
US20160364356A1 (en) * 2015-06-09 2016-12-15 Inventec (Pudong) Technology Corporation Micro server and switch device thereof
CN109194497A (zh) * 2018-07-17 2019-01-11 中国航空无线电电子研究所 面向软件无线电系统的双srio网络备份系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115396527A (zh) * 2022-10-27 2022-11-25 成都智明达电子股份有限公司 一种基于fpga的pcie和srio协议转换系统及方法
CN115396527B (zh) * 2022-10-27 2023-02-10 成都智明达电子股份有限公司 一种基于fpga的pcie和srio协议转换系统及方法

Similar Documents

Publication Publication Date Title
US6886107B2 (en) Method and system for selecting a master controller in a redundant control plane having plural controllers
US9148352B2 (en) Method and system for dynamic repurposing of payload storage as a trace buffer
CN108055214B (zh) 用于对数据进行通信的装置和系统
CN105357147B (zh) 一种高速高可靠的片上网络适配单元
US20080205416A1 (en) Flight control computers with ethernet based cross channel data links
US20080163005A1 (en) Error injection in pci-express devices
US20020144175A1 (en) Apparatus and methods for fault-tolerant computing using a switching fabric
CN102984059B (zh) 千兆以太网冗余网卡及其链路切换条件判定结果控制方法
US8812759B2 (en) Bus subscriber device for connection to a line-redundant data bus, and method for controlling the communication of a bus subscriber with a line-redundant serial data bus
CN101102305A (zh) 管理网络信息处理的系统和方法
US9122604B2 (en) External settings that reconfigure the error handling behavior of a distributed PCIe switch
CN104052622A (zh) 片上网络中基于故障通道隔离检测的路由器容错方法
CN115550291B (zh) 交换机的复位系统及方法、存储介质、电子设备
CN114928513A (zh) 基于srio协议的双总线通信系统及通信方法
JP2016535483A (ja) ネットワークインターフェイス
CN101667953B (zh) 一种快速环网物理链路状态的上报方法及装置
EP2538335A2 (en) Apparatus and method for sharing i/o device
CN102998994A (zh) 嵌入式血液分析仪控制系统及其控制方法
CN114615106B (zh) 环形数据处理系统、方法以及网络设备
CN115514682A (zh) 一种数据传输方法、装置、设备及存储介质
CN111682966B (zh) 带故障主动报告功能的网络通信装置,系统及其方法
US7184411B2 (en) Switch-management agent trap scheme in an infiniband-architecture switch
CN110881005B (zh) 控制器、调整包通信规则的方法及网络通信系统
Johansson et al. Fakernet--small and fast FPGA-based TCP and UDP communication
CN116582473A (zh) 一种机架式通信设备及其串口管理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination