CN115202752B - 用于加载fpga版本的方法及装置 - Google Patents

用于加载fpga版本的方法及装置 Download PDF

Info

Publication number
CN115202752B
CN115202752B CN202210733872.3A CN202210733872A CN115202752B CN 115202752 B CN115202752 B CN 115202752B CN 202210733872 A CN202210733872 A CN 202210733872A CN 115202752 B CN115202752 B CN 115202752B
Authority
CN
China
Prior art keywords
fpga
unit
data
message
version
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.)
Active
Application number
CN202210733872.3A
Other languages
English (en)
Other versions
CN115202752A (zh
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.)
Shenzhen Kenan Technology Development Co ltd
Original Assignee
Shenzhen Kenan Technology Development Co ltd
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 Shenzhen Kenan Technology Development Co ltd filed Critical Shenzhen Kenan Technology Development Co ltd
Priority to CN202210733872.3A priority Critical patent/CN115202752B/zh
Publication of CN115202752A publication Critical patent/CN115202752A/zh
Application granted granted Critical
Publication of CN115202752B publication Critical patent/CN115202752B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/14Relay systems
    • H04B7/15Active relay systems
    • H04B7/185Space-based or airborne stations; Stations for satellite systems
    • H04B7/1851Systems using a satellite or space-based relay
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Astronomy & Astrophysics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radio Relay Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供用于FPGA版本加载的方法及装置,涉及卫星地面设备管理技术领域。该方法应用于卫星地面设备,卫星地面设备包括第一FPGA和第二FPGA,第一FPGA与第二FPGA连接,该方法主要利用第二FPGA对第一FPGA包括的动态功能单元进行版本加载。也就是说,只对动态功能单元进行版本加载,而避免对整个第一FPGA进行版本加载,保持卫星地面设备与外部设备的连接状态不变的同时,改变卫星地面设备的内部功能,节省版本加载时间。

Description

用于加载FPGA版本的方法及装置
技术领域
本申请属于卫星地面设备管理技术领域,尤其涉及用于加载FPGA版本的方法及装置。
背景技术
相关技术中,对卫星地面设备包括的现场可编程门阵列(Field ProgrammableGate Array,FPGA)进行版本加载时,通常会对整个FPGA进行版本加载。FPGA的内部接口与外部设备的连接断开,导致FPGA的内部接口状态无法保留。FPGA完成加载后,FPGA与外部设备的内部接口需要重新建立连接,才能恢复到原先状态。这会增加版本加载所需的时间。
发明内容
本申请实施例提供了用于加载FPGA版本的方法及装置,可以节省加载版本的时间。
第一方面,提供了用于加载FPGA版本的方法,该方法应用于卫星地面设备,卫星地面设备包括第一现场可编程门阵列(Field Programmable Gate Array,FPGA)和第二FPGA,第一FPGA与第二FPGA连接,该方法包括:
第一FPGA接收第一报文,第一报文包括报文头和报文体,报文头包括第一字段,第一字段的取值为第一取值,报文体包括第一数据,其中,当第一字段的取值为第一取值时,表示第一报文的数据类型为加载第一FPGA的版本的类型,当第一字段的取值为第二取值时,表示第一报文的数据类型为应用程序对应的数据的类型;
第一FPGA根据第一报文的第一字段的第一取值确定第一报文的数据类型为加载第一FPGA的版本的类型,并确定第一报文的报文体中的第一数据;
第一FPGA向第二FPGA发送第一报文的报文体中的第一数据,第二FPGA保存第一数据;
当第一FPGA需要加载版本时,第二FPGA根据保存的第一数据配置加载第一FPGA包括的动态功能单元的版本,第一FPGA包括的动态功能单元不影响第一FPGA的运行;
第一FPGA根据第二FPGA的配置加载第一FPGA包括的动态功能单元的版本。
上述方案中,本申请只针对第一FPGA包括的动态功能单元进行版本加载,而不对整个第一FPGA进行版本加载,这样在修改第一FPGA包括的动态功能单元的版本的同时,对动态功能单元进行版本加载时不会影响第一FPGA的运行,也就是说,第一FPGA不会与外部设备断开连接,第一FPGA的内部接口状态可以保留。这样无需等待第一FPGA与外部设备的内部接口重新连接,内部接口状态无需重新设置,就可以恢复原先状态,可以节约版本加载的时间。
可选地,卫星地面设备还包括主控单元和交换单元,主控单元与交换单元连接,交换单元的第一内部接口与第一FPGA的第二内部接口连接;
在第一FPGA接收第一报文之前,该方法还包括:
主控单元根据第一数据的数据类型确定第一字段的取值;
主控单元根据第一字段的取值和第二字段承载的第一FPGA的标识生成第一报文的报文头;
主控单元向交换单元发送第一报文;
交换单元根据第二字段承载的第一FPGA的标识确定第一FPGA;
交换单元通过第一内部接口向第一FPGA的第二内部接口发送第一报文;
其中,第一FPGA接收第一报文,包括:
第一FPGA通过第二内部接口接收第一报文。
可选地,第二字段能够承载第一标识集合中的任意一个标识,第一标识集合中的任意一个标识为任意一个FPGA的标识,第一标识集合包括第一FPGA的标识,交换单元能够根据第二字段承载的FPGA的标识将来自主控单元的报文发送至第二字段承载的FPGA的标识所对应的FPGA。
可选地,第一FPGA还包括静态功能单元,静态功能单元还包括报文解析单元、数据缓存单元和数据发送单元,其中,报文解析单元与数据缓存单元连接,数据缓存单元与数据发送单元连接;
其中,第一FPGA根据第一报文的第一字段的第一取值确定第一报文的数据类型为加载第一FPGA的版本的类型,并确定第一报文的报文体中的第一数据,包括:
报文解析单元根据第一报文的第一字段的第一取值确定第一报文的数据类型为加载第一FPGA的版本的类型,并确定第一数据;
报文解析单元将第一数据缓存至数据缓存单元;
其中,第一FPGA向第二FPGA发送第一报文的报文体中的第一数据,包括:
数据发送单元将数据缓存单元中的第一数据发送至第二FPGA。
可选地,第二FPGA包括数据接收单元和读写控制单元,卫星地面设备还包括第一存储单元,数据接收单元与第一FPGA的数据发送单元连接,数据接收单元还与读写控制单元连接,读写控制单元与第一存储单元连接;
其中,在数据发送单元将数据缓存单元中的第一数据发送至第二FPGA之后,该方法还包括:
数据接收单元从数据发送单元接收第一数据;
读写控制单元将数据接收单元接收到的第一数据存储在第一存储单元中。
可选地,第一存储单元还存储使得第一FPGA版本保持不变的第二数据,在第二FPGA根据保存的第一数据配置加载第一FPGA包括的动态功能单元或者第一FPGA的版本失败之后,该方法还包括:
读写控制单元读取第一存储单元中的第二数据,并发送给接口单元;
接口单元根据第二数据配置加载第一FPGA的版本,使得加载后的第一FPGA保持当前版本不变;
其中,第二FPGA根据保存的第一数据配置加载第一FPGA的版本,包括:
根据保存的第一数据配置加载第一FPGA包括的动态功能单元和静态功能单元的版本。
可选地,静态功能单元还包括指令发送单元,指令发送单元与报文解析单元连接,第二FPGA还包括指令接收单元、版本管理单元和接口单元,指令接收单元与第一FPGA的指令发送单元连接,指令接收单元还与版本管理单元连接,版本管理单元还与读写控制单元连接,接口单元还与所述读写控制单元连接;
该方法还包括:
报文解析单元从交换单元接收第一指令,第一指令用于指示加载第一FPGA的版本;
报文解析单元解析第一指令,并将第一指令发送给指令发送单元;
指令发送单元将第一指令发送给第二FPGA的指令接收单元;
其中,第二FPGA根据保存的第一数据配置加载第一FPGA包括的动态功能单元的版本,包括:
指令接收单元将第一指令发送给版本管理单元;
版本管理单元根据第一指令向读写控制单元发送第二指令,第二指令与对应第一指令对应,第二指令指示读写控制单元读取第一存储单元中的第一数据;
读写控制单元根据第二指令读取第一存储单元中的第一数据,并发送给接口单元;
接口单元根据第一数据配置加载第一FPGA包括的动态功能单元的版本。
可选地,动态功能单元包括处理应用程序对应的数据的业务处理单元,业务处理单元与第一FPGA之外的外部设备没有连接关系,静态功能单元还包括通信单元,业务处理单元与报文解析单元连接,业务处理单元还与通信单元连接;
其中,第二FPGA根据保存的第一数据配置加载第一FPGA包括的动态功能单元的版本,包括:
第二FPGA根据保存的第一数据配置加载动态功能单元包括的业务处理单元的版本,在加载业务处理单元的版本的过程中业务处理单元与通信单元之间的接口的位宽、数量和方向不变,业务处理单元与报文解析单元之间的接口的位宽、数量和方向不变。
第二方面,本申请实施例提供了用于加载FPGA版本的装置,该装置包括第一FPGA和第二FPGA,第一FPGA与第二FPGA连接,其中:
第一FPGA用于接收第一报文,第一报文包括报文头和报文体,报文头包括第一字段,第一字段的取值为第一取值,报文体包括第一数据,其中,当第一字段的取值为第一取值时,表示第一报文的数据类型为加载第一FPGA的版本的类型,当第一字段的取值为第二取值时,表示第一报文的数据类型为应用程序对应的数据的类型;
第一FPGA用于根据第一报文的第一字段的第一取值确定第一报文的数据类型为加载第一FPGA的版本的类型,并确定第一报文的报文体中的第一数据;
第一FPGA用于向第二FPGA发送第一报文的报文体中的第一数据,第二FPGA保存第一数据;
当第一FPGA需要加载版本时,第二FPGA用于根据保存的第一数据配置加载第一FPGA包括的动态功能单元的版本,第一FPGA包括的动态功能单元不影响第一FPGA的运行;
第一FPGA用于根据第二FPGA的配置加载第一FPGA包括的动态功能单元的版本。
第三方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,以实现上述第一方面或第一方面的任一实施方式的方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的用于加载FPGA版本的流程示意图;
图2是本申请实施例提供的划分第一FPGA功能区的流程示意图;
图3是本申请实施例提供的划分第一FPGA功能区的结构示意图;
图4是本申请实施例提供的给第一FPGA和第二FPGA进行版本初始化的流程示意图;
图5是本申请实施例提供的一种用于加载FPGA版本的具体流程示意图;
图6是本申请实施例提供的SRIO报文的具体格式图;
图7是本申请实施例提供的一种主控单元、交换单元、第一FPGA和第二FPGA间的交互框图;
图8是本申请实施例提供的另一种主控单元、交换单元、第一FPGA和第二FPGA间的交互框图;
图9是本申请实施例提供的现有技术中接收不同的数据类型的示意图;
图10是本申请实施例提供的一种在报文包括第一字段的情况下,接收不同的数据类型的示意图;
图11是本申请实施例提供的一种在报文包括第一字段和第二字段的情况下,接收不同的数据类型的示意图;
图12是本申请实施例提供的另一种在报文包括第一字段和第二字段的情况下,接收不同的数据类型的示意图;
图13是本申请实施例提供的主控单元与交换单元,同多个卫星地面设备间的交互图;
图14是本申请实施例提供的用于加载FPGA版本的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的,对本申请实施例中的技术方案进行详细说明。
应当理解,本申请实施例中的方式、情况、类别以及实施例的划分只是为了方便描述,不对本申请构成任何限定,各种方式、类别、情况以及实施例中的特征在不相矛盾的情况下可以相互结合。
还应当理解,本申请实施例中的“第一”、“第二”、“第三”、“第四”、“第五”、“第六”和“第七”仅是为了区分,不对本申请构成任何限定。还应当理解,在本申请的各个实施例中,各个过程中的序号大小并不意味着步骤的执行顺序,其步骤的执行顺序由其内在逻辑确定,而不对本申请实施例的执行过程构成任何限定。
相关技术中,对卫星地面设备包括的现场可编程门阵列(Field ProgrammableGate Array,FPGA)进行版本加载时,通常会对整个FPGA进行版本加载。FPGA的内部接口与外部设备的连接断开,导致FPGA的内部接口状态无法保留。在FPGA完成版本加载后,FPGA与外部设备的内部接口需要重新建立连接,才能恢复到原先状态。这会增加版本加载所需要的时间。
基于相关技术中的问题,本申请提出了用于加载FPGA版本的方法及装置,该方法应用于卫星地面设备,卫星地面设备包括第一FPGA和第二FPGA,第一FPGA与第二FPGA连接,该方法包括:第一FPGA接收第一报文,第一报文包括报文头和报文体,报文头包括第一字段,第一字段的取值为第一取值,报文体包括第一数据,其中,当第一字段的取值为第一取值时,表示第一报文的数据类型为加载第一FPGA的版本的类型,当第一字段的取值为第二取值时,表示第一报文的数据类型为应用程序对应的数据的类型;第一FPGA根据第一报文的第一字段的第一取值确定第一报文的数据类型为加载第一FPGA的版本的类型,并确定第一报文的报文体中的第一数据;第一FPGA向第二FPGA发送第一报文的报文体中的第一数据,第二FPGA保存第一数据;当第一FPGA需要加载版本时,第二FPGA根据保存的第一数据配置加载第一FPGA包括的动态功能单元的版本,第一FPGA包括的动态功能单元不影响第一FPGA的运行;第一FPGA根据第二FPGA的配置加载第一FPGA包括的动态功能单元的版本。本申请只针对第一FPGA包括的动态功能单元进行版本加载,而不对整个第一FPGA进行版本加载,这样在修改第一FPGA包括的动态功能单元的版本的同时,对动态功能单元进行版本加载时不会影响第一FPGA的运行,也就是说,第一FPGA不会与外部设备断开连接,第一FPGA的内部接口状态可以保留。这样无需等待第一FPGA与外部设备的内部接口重新连接,内部接口状态无需重新设置,就可以恢复原先状态,可以节约版本加载的时间。
下面以具体地实施例对本申请的技术方案进行详细说明,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中可以体现,在此不再赘述。
图1为本申请实施例提供的用于加载FPGA版本的方法的流程示意图,如图1所示,该方法应用于卫星地面设备,卫星地面设备包括第一现场可编程门阵列(FieldProgrammable Gate Array,FPGA)和第二FPGA,第一FPGA与第二FPGA连接,该方法包括如下步骤:
S110,第一FPGA接收第一报文,第一报文包括报文头和报文体,报文头包括第一字段,第一字段的取值为第一取值,报文体包括第一数据。
可选地,第一报文为高速串行接口(Serial RapidIO,SRIO)报文。
可选地,S110中的第一字段的取值为第一取值,第一报文的数据类型为第一数据类型。
可选地,第一数据类型为加载第一FPGA的版本的类型。
应理解地,第一字段的第一取值标识该第一报文属于与版本加载相关的报文。
例如,第一字段的第一取值为0表示第一报文的第一数据类型为加载第一FPGA的版本的类型。
可选地,S110中的第一字段的取值为第二取值,第一报文的数据类型为第二数据类型。
可选地,第二数据类型为应用程序对应的数据的类型。
应理解地,第一字段的第二取值标识该第一报文属于与卫星地面设备通信的终端设备的应用程序相关的业务的报文。
例如,第一字段的第二取值为1表示第一报文的第二数据类型为与卫星地面设备通信的终端设备的应用程序对应的数据的类型。
可选地,S110中的第一数据是与动态功能单元进行版本加载相关的版本数据。
应理解地,不同报文中的报文体包括的第一数据可以相同,也可以不同,其中,第一数据的具体内容与动态功能单元进行版本加载时的版本相关,不同的版本对应不同的数据。
为了更好地理解本申请的方案,如下给出了具体确定第一报文的数据类型的举例描述。
第一取值为0,第二取值为1,第一数据类型为应用程序对应的数据的类型,第二数据类型为加载第一FPGA的版本的数据的类型。
卫星地面设备对第一报文进行解析,若第一报文的第一字段的取值为0,则卫星地面设备确定第一报文的数据类型是加载第一FPGA的版本的数据的类型;若第一报文的第一字段的取值为1,则第一FPGA确定第一报文的数据类型是应用程序对应的数据的类型。
可选地,卫星地面设备还包括包括主控单元和交换单元,主控单元与交换单元连接,交换单元的第一内部接口与第一FPGA的第二内部接口连接,在第一FPGA接收第一报文之前,该方法包括:主控单元根据第一数据的数据类型确定第一字段的取值;主控单元根据第一字段的取值和第二字段承载的第一FPGA的标识生成第一报文的报文头;主控单元向交换单元发送第一报文;交换单元根据第二字段承载的第一FPGA的标识确定第一FPGA;交换单元通过第一内部接口向第一FPGA的第二内部接口发送第一报文。
上述方案中,叙述了主控单元生成第一报文,交换单元根据第一报文的第二字段确定第一FPGA,并将第一报文通过第一内部接口发送给第一FPGA的第二内部接口。这种不同的任务分于不同的单元来处理的过程,可以增加单元的重用度。
可选地,在主控单元根据第一数据的数据类型确定第一字段的取值之前,该方法包括:终端设备对第三数据进行分片处理,得到第一数据,形成第一报文的报文体;终端设备将第一数据发送给主控单元的万兆以太网高速物理接口。
可选地,在终端设备将第一数据发送给主控单元的万兆以太网高速物理接口之后,该方法还包括:主控单元通过万兆以太网高速物理接口接收第一数据。
上述方案中,主控单元通过万兆以太网高速物理接口接收与第一FPGA相关的第一报文的数据类型对应的数据,即第一数据,可以达到远距离接收数据类型对应的数据,从而使第一FPGA可以远距离地处理第一报文。
可选地,在报文头包括第一字段的情况下,交换单元的不同的内部接口与不同的FPGA的内部接口对应,不同的内部接口包括第一内部接口,不同的FPGA包括第一FPGA,第一内部接口为与第一FPGA对应的内部接口。
上述方案中,描述了第一报文的报文头包括第一字段的情况下,交换单元的不同的内部接口与不同的FPGA的内部接口对应的方案,例如交换单元向第一FPGA发送报文,可以使用与第一FPGA对应的内部接口,即与第一FPGA对应的第二内部接口。
可选地,在第一报文的报文头包括第一字段和第二字段的情况下,交换单元的第一内部接口的数量为1。
上述方案中,描述了第一报文的报文头包括第一字段和第二字段的情况下,交换单元通过1个内部接口向第一FPGA发送报文的方案。
可选地,第二字段能够承载第一标识集合中的任意一个标识,第一标识集合中的任意一个标识为任意一个FPGA的标识,第一标识集合包括第一FPGA的标识,交换单元能够根据第二字段承载的FPGA的标识将来自主控单元的报文发送至第二字段承载的FPGA的标识所对应的FPGA。
上述方案中,利用第二字段的对任意一个FPGA的标识来实现多个不同设备内FPGA的版本加载,提高加载效率,节约加载成本。
可选地,第一FPGA接收第一报文,包括:第一FPGA通过第二内部接口接收第一报文。
S120,第一FPGA根据第一报文的第一字段的第一取值确定第一报文的数据类型为加载第一FPGA的版本的类型,并确定第一报文的报文体中的第一数据。
可选地,第一FPGA包括动态功能单元和静态功能单元,静态功能单元包括通信单元,通信单元与动态功能单元连接。
可选地,静态功能单元还包括报文解析单元、数据缓存单元和数据发送单元,报文解析单元与数据缓存单元连接,数据缓存单元与数据发送单元连接。
可选地,S120包括:报文解析单元根据第一报文的第一字段的第一取值确定第一报文的数据类型为加载第一FPGA的版本的类型,并确定第一数据;报文解析单元将第一数据缓存至数据缓存单元。
S130,第一FPGA向第二FPGA发送第一报文的报文体中的第一数据,第二FPGA保存第一数据。
可选地,S130包括:数据发送单元将数据缓存单元中的第一数据发送至第二FPGA。
可选地,第二FPGA包括数据接收单元、读写控制单元,卫星地面设备还包括第一存储单元,数据接收单元与第一FPGA的数据发送单元连接,数据接收单元还与读写控制单元连接,读写控制单元与第一存储单元连接。
可选地,在数据发送单元将数据缓存单元中的第一数据发送至第二FPGA之后,该方法还包括:数据接收单元从数据发送单元接收第一数据;读写控制单元将数据接收单元接收到的第一数据存储在第一存储单元中。
可选地,第一存储单元还存储使得第一FPGA版本保持不变的第二数据。
可选地,在第二FPGA根据保存的第一数据配置加载第一FPGA包括的动态功能单元或者第一FPGA的版本失败之后,该方法还包括:
读写控制单元读取第一存储单元中的第二数据,并发送给接口单元;
接口单元根据第二数据配置加载第一FPGA的版本,使得加载后的第一FPGA保持当前版本不变;
其中,第二FPGA根据保存的第一数据配置加载第一FPGA的版本,包括:根据保存的第一数据配置加载第一FPGA包括的动态功能单元和静态功能单元的版本。
上述方案中,本申请支持在利用第一数据对第一FPGA包括的动态功能单元或第一FPGA进行版本加载失败后,可以利用第二数据对第一FPGA进行重新的版本加载使第一FPGA恢复到初始版本。
S140,当第一FPGA需要加载版本时,第二FPGA根据保存的第一数据配置加载第一FPGA包括的动态功能单元的版本,第一FPGA包括的动态功能单元不影响第一FPGA的运行。
可选地,静态功能单元还包括指令发送单元,指令发送单元与报文解析单元连接,第二FPGA还包括指令接收单元、版本管理单元和接口单元,指令接收单元与第一FPGA的指令发送单元连接,指令接收单元还与版本管理单元连接,版本管理单元还与读写控制单元连接,接口单元还与读写控制单元连接,该方法还包括:报文解析单元从交换单元接收第一指令,第一指令用于指示加载第一FPGA的版本;报文解析单元解析第一指令,并将第一指令发送给指令发送单元;指令发送单元将第一指令发送给第二FPGA的指令接收单元。
可选地,第二FPGA根据保存的第一数据配置加载第一FPGA包括的动态功能单元的版本,包括:指令接收单元将第一指令发送给版本管理单元;版本管理单元根据第一指令向读写控制单元发送第二指令,第二指令与第一指令对应,第二指令指示读写控制单元读取第一存储单元中的第一数据;读写控制单元根据第二指令读取第一存储单元中的第一数据,并发送给接口单元;接口单元根据第一数据配置加载第一FPGA包括的动态功能单元的版本。
S150,第一FPGA根据第二FPGA的配置加载第一FPGA包括的动态功能单元的版本。
可选地,动态功能单元包括处理应用程序对应的数据的业务处理单元,业务处理单元与第一FPGA之外的外部设备没有连接关系,静态功能单元还包括通信单元,业务处理单元与报文解析单元连接,业务处理单元还与通信单元连接。
可选地,第二FPGA根据保存的第一数据配置加载第一FPGA包括的动态功能单元的版本,包括:第二FPGA根据保存的第一数据配置加载动态功能单元包括的业务处理单元的版本,在加载业务处理单元的版本的过程中业务处理单元与通信单元之间的接口的位宽、数量和方向不变,业务处理单元与报文解析单元之间的接口的位宽、数量和方向不变。
下面,具体描述对第一报文进行处理的过程。
可选地,第一报文的报文头还包括第三字段,第三字段的取值为第三取值表示第一报文的报文类型为版本写入类型,第三字段的取值为第四取值表示第一报文的报文类型为读写寄存器类型。
可选地,第一FPGA在第一报文的数据类型为第一数据类型的情况下,查看第三字段的取值,若第三字段的取值为第三取值,则进行如下步骤:第一FPGA的报文解析单元对第一报文进行解析;第一FPGA将解析得到的与版本写入相关的数据缓存到数据缓存单元,其中,与版本写入相关的数据包括版本数据首地址、版本数据大小、版本号和版本日期等,当缓存的与版本写入相关的数据量超过第一预设值时,不再缓存;若缓存的与版本写入相关的数据量超过第一预设值,则丢弃第一FPGA解析得到的数据量;当缓存的与版本写入相关的数据量小于或等于第二预设值时,第一FPGA通过数据发送单元将该数据量发送给第二FPGA中的数据接收单元。可选地,第二FPGA的数据接收单元对该数据量进行接收,其中,接收的数据量超过第一预设值,不再接收。第二FPGA判断第二FPGA是否处于版本数据写入等待状态;若处于,则第二FPGA的数据接收单元对接收到的数据量进行读取;第二FPGA中的读写控制单元根据读取到的版本数据首地址、版本数据大小、版本号和版本日期,将读取到的数据存储到第一存储单元的第一扇区或第二扇区,每一次存储,第二FPGA判断存储的数据量是否等于版本数据大小;若等于,则版本数据的写入完成;若小于则第二FPGA继续从第一FPGA设备接收缓存的数据量;若第一FPGA中没有缓存的数据量时第二FPGA进入等待版本数据写入状态。
应理解地,第二FPGA具体为对第一FPGA的加载进行服务的FPGA,第二FPGA可以接收第一FPGA解析得到的数据,将解析得到的数据存储到存储单元,也可以利用存储单元中的数据对第一FPGA进行加载。
可选地,第一预设值可以为4k字节,第二预设值可以为k字节。
可选地,在第三字段的取值为第四取值的情况下,第一报文的报文头还包括第四字段,第四字段的不同取值指示不同的控制指令,第四字段的取值为第五取值表示控制版本数据的写入,第六取值表示控制版本数据的加载,第七取值控制设备的状态读写。
可选地,第一FPGA在第一报文的数据类型为第一数据类型,且第一报文的第三字段的取值为第四取值的情况下,查看第四字段的取值,若第四字段的取值为第五取值时,则进行如下步骤:第一FPGA的报文解析单元对第一报文进行解析,根据第一报文的第四字段的第五取值确定该第一报文指示为请求对第一FPGA进行版本数据的写入;第一FPGA的指令发送单元将第一报文发送给第二FPGA的指令接收单元。可选地,第二FPGA中的指令接收单元接收第一报文;第二FPGA中的版本管理单元解析第一报文,确定版本数据首地址、版本数据大小、版本号和版本日期等版本信息;第二FPGA中的读写控制单元将版本信息进行存储到第一存储单元,此时第二FPGA进入等待版本数据写入状态。
可选地,第一FPGA在第一报文的数据类型为第一数据类型且第一报文的第三字段的取值为第四取值的情况下,查看第四字段的取值,若第四字段的取值为第六取值时,则进行如下步骤:第一FPGA中的报文解析单元对第一报文进行解析,根据第一报文的第四字段的第六取值确定该第一报文指示为第一FPGA进行版本数据的加载;第一FPGA中的指令发送单元将第一报文发送给第二FPGA中的指令接收单元。可选地,第二FPGA中的版本管理单元对第一报文进行解析,得到与版本数据加载相关的如版本数据首地址、版本数据大小、版本号和版本日期等版本信息;第二FPGA中的读写控制单元从第一存储单元处读取与版本首地址对应的版本数据;第二FPGA中的接口单元将版本数据加载到第一FPGA中的动态功能单元上,完成版本数据的加载。第二FPGA检测第二FPGA的DONE信号是否拉高,若拉高则版本数据的加载成功,若未拉高,则继续进行版本数据的加载。
可选地,第一FPGA在第一报文的数据类型为第一数据类型且第一报文的第三字段的取值为第四取值的情况下,查看第四字段的取值,若第四字段的取值为第七取值时,则进行如下步骤:第一FPGA中的报文解析单元对第一报文进行解析,根据第一报文的第四字段的第七取值确定该第一报文指示为对第一FPGA进行状态的读取。
可选地,在第一FPGA对第一报文进行处理之后,该方法还包括:第一FPGA通过第一FPGA的第二内部接口向主控单元发送第一报文的应答报文,第一报文的应答报文的报文头包括标识第一FPGA的第二字段,主控单元通过交换单元的第一内部接口从第一FPGA接收第一报文的应答报文,第一报文的应答报文的报文头包括标识第一FPGA的第二字段。
可选地,在交换单元包括多个内部接口的情况下,第一FPGA通过第一FPGA的第二内部接口向主控单元发送第一报文的应答报文,包括:第一FPGA通过第一FPGA的第二内部接口向主控单元发送第一报文的应答报文,主控单元通过交换单元的第一内部接口从第一FPGA接收第一报文的应答报文,多个内部接口包括第一内部接口。
可选地,第一报文的应答报文包括标识第一FPGA的第二字段。
上述方案中,主控单元可以通过标识识别发送到主控单元的应答报文是哪个FPGA。
可选地,在交换单元与多个内部接口连接的情况下,第一FPGA通过第一FPGA的第二内部接口向主控单元发送第一报文的应答报文,包括:第一FPGA通过第一FPGA的第二内部接口向交换单元发送第一报文的应答报文,交换单元通过第一内部接口从第一FPGA接收第一报文的应答报文,交换单元将第一FPGA发送的第一报文的应答报文发送给主控单元,第一内部接口与交换单元连接,多个内部接口包括第一内部接口。
上述方案中,交换单元通过与第一FPGA对应的第一内部接口确定应答报文是第一FPGA发送的,再将该应答报文发给主控单元。
可选地,第一报文的应答报文包括标识第一FPGA的第二字段。
上述方案中,交换单元可以通过标识识别发送的应答报文是第一FPGA。
可选地,在主控单元通过交换单元的第一内部接口从第一FPGA接收第一报文的应答报文之后,可以确定第一FPGA对第一报文进行处理的情况。
可选地,在第二FPGA检测第二FPGA的DONE信号是否拉高,若拉高则版本数据的加载成功,若未拉高,则继续进行版本数据的加载之后,第一FPGA通过第一FPGA的第二内部接口向主控单元发送第一报文的应答报文,包括:第一FPGA通过第一FPGA的第二内部接口向交换单元发送对第一FPGA进行状态读取的应答报文,主控单元通过交换单元的第一内部接口从第一FPGA接收所述应答报文。
可选地,在第一FPGA的报文解析单元对第一报文进行解析,根据第一报文的第四字段的第五取值确定该第一报文指示为请求对第一FPGA进行版本数据的写入之后,第一FPGA通过第一FPGA的第二内部接口向主控单元发送第一报文的应答报文,包括:第一FPGA通过第一FPGA的第二内部接口向交换单元发送请求对第一FPGA进行版本数据的写入的应答报文,主控单元通过交换单元的第一内部接口从第一FPGA接收所述应答报文。
可选地,在第一FPGA中的报文解析单元对第一报文进行解析,根据第一报文的第四字段的第六取值确定该第一报文指示为第一FPGA进行版本数据的加载之后,第一FPGA通过第一FPGA的第二内部接口向主控单元发送第一报文的应答报文,包括:第一FPGA通过第一FPGA的第二内部接口向交换单元发送为第一FPGA进行版本数据的加载的应答报文,主控单元通过交换单元的第一内部理接口从第一FPGA接收所述应答报文。
可选地,在第一FPGA将解析得到的与版本写入相关的数据缓存到数据缓存单元之后,第一FPGA通过第一FPGA的第二内部接口向主控单元发送第一报文的应答报文,包括:第一FPGA备通过第一FPGA的第二内部接口向交换单元发送第一FPGA的数据的缓存量小于4k字节的应答报文,主控单元通过交换单元的第一内部接口从第一FPGA接收所述应答报文,交换单元继续向第一FPGA发送第一报文。
在利用第一FPGA处理第一报文之前,对第一FPGA执行如图2所示的步骤。
S210,第一FPGA确定静态功能单元的功能需求,包括报文解析单元、与第二FPGA的互联单元、与动态功能区单元的互联单元等。
S220,将第一FPGA的电路划分成静态功能单元和动态功能单元,并将动态功能单元设置为动态可配置属性,确保动态功能单元与静态功能单元的接口均由触发器互联。
S230,第一FPGA完成整体电路设计,通过编译工具获得电路网表及布局布线结果。
S240,第一FPGA估算静态功能单元和动态功能单元所需资源面积。
S250,第一FPGA进行布局规划,为动态功能单元划分出一块保留空间。
S260,编译得到对静态功能单元和动态功能单元进行加载的完整版本数据和对动态功能单元进行加载的部分版本数据。
为了更好地理解本申请的方案,如下图3给出了第一FPGA的功能单元的结构示意图。
在图3中,第一FPGA被划分为静态功能单元和动态功能单元。静态功能单元包括报文解析单元、指令发送单元、数据缓存单元和数据发送单元。在报文解析功能单元与动态功能单元之间的链路不变的情况下,可以根据需要向动态功能单元中添加功能单元。
为了更好地理解本申请的方案,在S110之前,对第一FPGA和第二FPGA进行如图4所示的版本初始化的流程。
S410,第一FPGA和第二FPGA上电后。
S420,第二FPGA中的上电自动加载单元从第二存储单元中读取版本数据加载到第二FPGA。
S430,第二FPGA从第一存储单元中的第二扇区读取完整版本数据,并对第一FPGA中的动态功能单元和静态功能单元进行加载。
S440,第二FPGA读取第二扇区的完整版本数据后,利用循环冗余校验(CyclicRedundancy Check,CRC)检测对第一FPGA的加载是否成功。
S450,若检验成功,是否为第一次加载完整版本数据。
S460,若是,则第二FPGA从第一存储单元中的第二扇区读取部分版本数据,并对第一FPGA中的动态功能单元进行加载;
S470,在利用CRC进行加载验证,若第一FPGA返回DONE信号,则完成对第一FPGA的上电的功能加载;若第一FPGA未返回DONE信号,则重新执行S430以及之后的步骤,直到对第一FPGA进行部分功能加载后第一FPGA还可以返回DONE信号。
可选地,S430包括:第二FPGA从第一存储单元的第二扇区中的第一片DIE的零地址读取第一数据量的完整版本数据,并加载到第一FPGA中。
上述方案中,对第一FPGA和第二FPGA备进行上电,并对第一FPGA和第二FPGA进行版本数据的加载是对第一FPGA和第二FPGA进行初始化,使第一FPGA和第二FPGA可以工作。
为了更好地理解本申请的方案,如下图5的流程图具体描述了用于加载FPGA版本的方案。
第一报文为SRIO报文,图6给出了SRIO报文的具体格式,SRIO报文包括报文头和报文体,报文头的长度为8字节,报文头包括第一字段,第一字段设有不同的取值,用于区别不同的数据类型;报文头还包括第二字段,第二字段设有不同的取值,用于指示该SRIO报文被发送的设备;可选地,报文头包括第三字段,第三字段用于区别第一报文是与版本数据写入相关的报文,还是与读写寄存器相关的报文。可选地,在第三字段的取值指示第一报文为与读写寄存器相关的报文时,报文头还包括第四字段,第四字段用于区别不同的报文控制类型,可以是控制指示版本数据的写入,可以是控制指示版本数据的加载,也可以是控制读取第一FPGA的状态,SRIO报文的长度为256字节,第一预设值为4k字节,第二预设值为k字节。
S3001,主控单元从万兆以太网高速接口接收到与第一FPGA相关的第一数据后,将第一数据进行分片处理并组装成SRIO报文,通过内部高速接口将SRIO报文发送给交换单元。
S3002,交换单元接收到SRIO报文后,根据SRIO报文中的第二字段的取值(即,转发策略标识)确定SRIO报文发往卫星地面设备中的第一FPGA,交换单元备通过第一内部接口(内部高速接口)将SRIO报文发送给第一FPGA,其中,交换单元将SRIO报文发送给第一FPGA的带宽为B1
S3003,第一FPGA通过第二内部接口(内部高速接口)接收交换单元传来的SRIO报文后,利用第一FPGA中的报文解析单元对SRIO报文进行解析,具体是将SRIO报文中的HELLO报文头去掉,并解析该报文头,根据SRIO报文中的第一字段的取值(即,数据类型标识)确定SRIO报文的数据类型。
S3004,报文解析单元确定SRIO报文的数据类型是否为第一数据类型,若否,执行S3005。若是,执行S3007。
S3005,动态功能单元包括的业务处理单元处理第二数据类型对应的业务。
S3006,业务处理单元处理完业务后,业务处理单元向主控单元回传SRIO报文的应答报文。
S3007,报文解析单元确定SRIO报文的报文类型是否为版本写入类型;若否,执行S3008;若是,执行S3009。
S3008,报文解析单元判断报文类型是否为读写寄存器类型,若否,执行S3010。若是,执行S3011。
S3009,第一FPGA是否产生反压信号(报文解析单元解析SRIO报文,并将解析得到的数据量进行缓存,缓存的数据量超过4k字节,则第一FPGA产生反压信号)。若否,执行S3006和S3012;若是,结束。
S3010,报文解析单元判断SRIO报文为其他类型,处理其他类型对应的业务。
S3011:报文解析单元判断SRIO报文是否指示请求版本数据的写入,若是,则执行S3013。若否,执行S3014。
S3012,报文解析单元将解析得到的数据量缓存到数据缓存单元,执行S3018。
S3013,利用数据发送单元将SRIO报文传输至第二FPGA中的数据接收单元,第二FPGA中的版本管理单元解析SRIO报文得到版本数据首地址、版本数据大小、版本号、版本日期等版本信息,根据解析得到的版本信息,将版本信息存储在第一存储单元中的第二扇区,此时第二FPGA进入版本数据写入等待状态,第一FPGA中的数据发送单元将SRIO报文传输给第二FPGA中的数据接收单元的带宽为B2。可选地,根据版本数据首地址和版本数据大小可以得到版本信息是完整版本数据或部分版本数据,再将完整版本数据或部分版本数据存储到第一扇区还是第二扇区。其中,完整版本数据的大小大于部分版本数据的大小。
可选地,部分版本数据可以存储到第二扇区,即第一数据可以存储到第二扇区。
可选地,完整版本数据可以存储到第一扇区,即第二数据可以存储到第一扇区。
S3014,报文解析单元判断SRIO报文是否指示版本数据的加载;若是,执行S3015,若否,执行S3016。
S3015,指令发送单元将SRIO报文传输至第二FPGA中的指令接收单元,第二FPGA中的版本管理单元解析SRIO报文得到版本数据首地址、版本数据大小、版本号、版本日期等版本数据后,从第一存储单元中的第二扇区读取部分版本数据对应的版本加载数据,利用第二FPGA中的接口单元将版本加载数据加载到第一FPGA包括的动态功能单元。
S3016,报文解析单元判断SRIO报文是否指示第一FPGA的状态的读取,若是,执行S3017。
S3017,第一FPGA中的报文解析单元将第一FPGA的状态发送给主控单元后,再执行S3006。
S3018,第一FPGA判断第二FPGA是否产生反压信号(第二FPGA中的数据接收单元内的数据的缓存量超过4k字节,且第二FPGA未处于版本数据写入等待状态);若是,执行S3029;若否,执行S3019。
S3019,数据发送单元将小于等于k字节的数据量发送给第二FPGA中的数据接收单元。
S3020,第二FPGA是否处于版本数据写入等待状态,若是,执行S3021;若否,执行S3024。
S3021,第二FPGA中的读写控制单元将将缓存在数据接收单元中的数据量写入第一存储单元中的第二扇区,由第二FPGA传输数据至第一存储单元间的带宽为B3
S3022,每进行一次写操作时,第二FPGA判断是否向第一存储单元写入了版本数据大小的数据量。若是,执行S3025;若否,执行S3023。
S3023,第二FPGA继续处于版本数据写入等待状态。
S3024,第二FPGA将缓存的数据量暂时缓存在数据接收单元中,执行S3026。
S3025,第二FPGA退出版本数据写入等待状态。
S3026,第二FPGA判断缓存的数据量是否等于4k字节,若是,执行S3027;若否,结束。
S3027,第二FPGA产生反压信号。
S3028,第一FPGA判断缓存的数据量是否等于4k字节,若是,执行S3030;若否,结束。
S3029,第一FPGA发生反压信号。
应理解地,在上述步骤中,各个传输带宽的关系为B1>B2>B3,可以保证版本数据在传输过程中的连续性,减少延迟造成的丢包。主控单元实现一问一答(即向第一FPGA发SRIO报文和收SRIO报文的应答报文)时,等待应答的时间t1,写入k字节数据和擦除4k字节的地址空间数据的时间t2,以及第一内部接口(内部高速接口)的延迟t3,存在:t1=t2+t3
例如,B1为10Gbps,B2为700Mbps,B3为400Mbps。
可选地,上述步骤中的主控单元可以是上位机,内部高速接口可以是SRIO接口,交换单元可以是交换芯片。
上述方案中,本申请通过动态且交换式地对第一FPGA中的动态功能单元进行版本加载,无需对应用程序全面重配置和重构建链路,按时按需加载第一FPGA中的动态功能单元,待第一FPGA包括的动态功能单元完成版本加载后,之前的业务配置信息和内部接口状态可以被保留,业务可继续按原先流程进行处理,不需要重新配置业务流程。该方法可以提升系统版本加载能力,极大增强了业务处理的灵活性。
为了更好地理解本申请的方案,如图7是本申请给出的主控单元、交换单元、第一FPGA和第二FPGA之间的交互框图。
图7中,第一FPGA内部包括静态功能单元和动态功能单元,静态功能单元包括报文解析单元、指令发送单元、数据缓存单元和数据发送单元,静态功能单元还包括图8所示的通信单元,动态功能单元包括业务处理单元,报文解析单元可以是SRIO解析单元,在SRIO解析单元与动态功能单元之间的链路不变的情况下,动态功能单元中还可以根据需求添加其余的属于动态功能单元的单元;第二FPGA包括指令接收单元、上电自动加载单元、接口单元、版本管理单元、数据接收单元和读写控制单元。其中,接口单元可以是SelectMap接口单元。通信单元用于接收外部设备发送的信息,以及将业务处理单元处理的信息传输至外部设备。可选地,外部设备可以是卫星设备。可选地,第一FPGA使用Xilinx ZYNQ系列,型号为:xc7z010clg400-1,第二FPGA采用Vertex系列,型号为:xc7vx690tffg1157-2。可选地,第一存储单元和第二存储单元都可以是FLASH存储芯片,其型号均为MT25QL01GBBB。
可选地,数据发送单元与数据接收单元之间的数据传输使用低压差分信号(LowVoltage Differential Signal,LVDS)总线。SRIO解析单元与指令发送单元之间的总线为LOCALBUS总线,指令发送单元与指令接收单元之间的指令传输使用串行外围接口(SerialPeripheral interface,SPI)总线。可选地,SelectMap接口单元采用Xilinx的非连续SelectMap数据被动加载功能,使能后将从第一存储单元获取的版本数据加载到第一FPGA中。
为了更好地理解本申请的技术方案,如下给出了具体地描述。
图9是本申请提供的现有技术中接收不同的数据类型的示意图。如图9所示,交换单元通过不同的内部接口向不同FPGA发不同的数据类型的报文,如交换单元通过内部接口1向FPGA 1发送第一数据类型的第一报文,交换单元通过内部接口4向FPGA 2发送第二数据类型的第四报文。这样,如果右侧的设备数量为n个,则右侧设备总的内部接口的数量为2n个,交换单元的内部接口的数量也为2n个,其中FPGA 1~FPGA n都可以作为第一FPGA。
图10是本申请提供的在报文包括第一字段的情况下,接收不同的数据类型的示意图。如图10所示,交换单元可以通过内部接口1向FPGA 1发送不同数据类型的报文,再由FPGA 1进行报文解析,确定报文的数据类型,对报文进行处理。这样,如果右侧的FPGA数量为n个,则右侧FPGA总的内部接口的数量为n个,交换单元的内部接口的数量为n个。相较于图9所述的现有技术,右侧多个FPGA中的每一个可以少配置1个内部接口,总共可以少配置一半的内部接口。
图11是本申请提供的在报文包括第一字段和第二字段的情况下,接收不同的数据类型的示意图。如图11所示,交换单元可以通过内部接口向不同的FPGA发送不同数据类型的报文,再由FPGA进行报文解析。如交换单元的内部接口向FPGA 1发送报文,FPGA 1接收到报文后,确定该报文的第二字段的标识是否指示FPGA 1,若是,则确定该报文的数据类型,并对报文进行处理。这样,如果右侧的FPGA数量为n个,则右侧FPGA总的内部接口的数量为n个,交换单元的内部接口的数量为1个。相较于图9所述的现有技术,右侧多个FPGA中的每一个可以少配置1个内部接口,总共可以少配置一半的内部接口,交换单元的内部接口只需要配置1个。
图12是本申请提供的在报文包括第一字段和第二字段的情况下,接收不同的数据类型的示意图。如图12所示,主控单元生成报文,交换单元根据报文的第二字段的取值,确定该报文发送给哪个FPGA,若发送给FPGA1,则交换单元通过内部接口1向FPGA 1发送不同数据类型的报文,再由FPGA 1进行报文解析,确定该报文的数据类型,对该报文进行处理。这样,如果右侧的FPGA数量为n个,则右侧FPGA总的内部接口的数量为N个,交换单元的内部接口的数量为n个。相较于图9所述的现有技术,右侧多个FPGA中的每一个可以少配置1个内部接口,总共可以少配置一半的内部接口。
为了更好地理解本申请的方案,图13是本申请给出的主控单元与交换单元,同多个卫星地面设备间的交互图。
图13中,主控单元通过万兆以太网高速接口接收第一数据,并生成第一报文,交换单元根据第一报文中的第二字段的取值,可以将第一报文发送给图13右侧中与该取值对应的卫星地面设备中的第一FPGA。第一FPGA接收到第一报文后,可以执行图5流程图所示的步骤。在此不再赘述。
本申请实施例提供用于加载FPGA版本的装置,该装置包括第一FPGA和第二FPGA,第一FPGA与第二FPGA连接,其中:
第一FPGA用于接收第一报文,第一报文包括报文头和报文体,报文头包括第一字段,第一字段的取值为第一取值,报文体包括第一数据,其中,当第一字段的取值为第一取值时,表示第一报文的数据类型为加载第一FPGA的版本的类型,当第一字段的取值为第二取值时,表示第一报文的数据类型为应用程序对应的数据的类型;
第一FPGA用于根据第一报文的第一字段的第一取值确定第一报文的数据类型为加载第一FPGA的版本的类型,并确定第一报文的报文体中的第一数据;
第一FPGA用于向第二FPGA发送第一报文的报文体中的第一数据,第二FPGA保存第一数据;
当第一FPGA需要加载版本时,第二FPGA用于根据保存的第一数据配置加载第一FPGA包括的动态功能单元的版本,第一FPGA包括的动态功能单元不影响第一FPGA的运行;
第一FPGA用于根据第二FPGA的配置加载第一FPGA包括的动态功能单元的版本。
可选地,卫星地面设备还包括主控单元和交换单元,主控单元与交换单元连接,交换单元的第一内部接口与第一FPGA的第二内部接口连接。
可选地,在第一FPGA用于接收第一报文之前,主控单元用于根据第一数据的数据类型确定第一字段的取值;
主控单元用于根据第一字段的取值和第二字段承载的第一FPGA的标识生成第一报文的报文头;
主控单元用于向交换单元发送第一报文;
交换单元用于根据第二字段承载的第一FPGA的标识确定第一FPGA;
交换单元用于通过第一内部接口向第一FPGA的第二内部接口发送第一报文。
可选地,第一FPGA具体用于通过第二内部接口接收第一报文。
可选地,第二字段能够承载第一标识集合中的任意一个标识,第一标识集合中的任意一个标识为任意一个FPGA的标识,第一标识集合包括第一FPGA的标识,交换单元能够根据第二字段承载的FPGA的标识将来自主控单元的报文发送至第二字段承载的FPGA的标识所对应的FPGA。
可选地,第一FPGA还包括静态功能单元,静态功能单元还包括报文解析单元、数据缓存单元和数据发送单元,其中,报文解析单元与数据缓存单元连接,数据缓存单元与数据发送单元连接。
可选地,报文解析单元用于根据第一报文的第一字段的第一取值确定第一报文的数据类型为加载第一FPGA的版本的类型,并确定第一数据;
报文解析单元用于将第一数据缓存至数据缓存单元。
可选地,数据发送单元用于将数据缓存单元中的第一数据发送至第二FPGA。
可选地,第二FPGA包括数据接收单元和读写控制单元,卫星地面设备还包括第一存储单元,数据接收单元与第一FPGA的数据发送单元连接,数据接收单元还与读写控制单元连接,读写控制单元与第一存储单元连接。
可选地,数据接收单元用于从数据发送单元接收第一数据;
读写控制单元用于将数据接收单元接收到的第一数据存储在第一存储单元中。
可选地,第一存储单元还存储使得第一FPGA版本保持不变的第二数据。
可选地,读写控制单元用于读取第一存储单元中的第二数据,并发送给接口单元;
接口单元用于根据第二数据配置加载第一FPGA的版本,使得加载后的第一FPGA保持当前版本不变。
可选地,第一FPGA用于根据保存的第一数据配置加载第一FPGA包括的动态功能单元和静态功能单元的版本。
可选地,静态功能单元还包括指令发送单元,指令发送单元与报文解析单元连接,第二FPGA还包括指令接收单元、版本管理单元和接口单元,指令接收单元与第一FPGA的指令发送单元连接,指令接收单元还与版本管理单元连接,版本管理单元还与读写控制单元连接,接口单元还与读写控制单元连接。
可选地,报文解析单元用于从交换单元接收第一指令,第一指令用于指示加载第一FPGA的版本;
报文解析单元用于解析第一指令,并将第一指令发送给指令发送单元;
指令发送单元用于将第一指令发送给第二FPGA的指令接收单元。
可选地,指令接收单元用于将第一指令发送给版本管理单元;
版本管理单元用于根据第一指令向读写控制单元发送第二指令,第二指令与第一指令对应,第二指令指示读写控制单元读取第一存储单元中的第一数据;
读写控制单元用于根据第二指令读取第一存储单元中的第一数据,并发送给接口单元;
接口单元用于根据第一数据配置加载第一FPGA包括的动态功能单元的版本。
可选地,动态功能单元包括处理应用程序对应的数据的业务处理单元,业务处理单元与第一FPGA之外的外部设备没有连接关系,静态功能单元还包括通信单元,业务处理单元与报文解析单元连接,业务处理单元还与通信单元连接。
可选地,第二FPGA用于根据保存的第一数据配置加载动态功能单元包括的业务处理单元的版本,在加载业务处理单元的版本的过程中业务处理单元与通信单元之间的接口的位宽、数量和方向不变,业务处理单元与报文解析单元之间的接口的位宽、数量和方向不变。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
基于同一发明构思,图14为本申请实施例提供的用于加载FPGA版本的装置,包括处理器,处理器与存储器耦合,处理器用于执行存储器中存储的计算机程序或指令时,以实现上述第一方面或第一方面的任一实施方式的方法。
基于同一发明构思,本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,以实现上述第一方面或第一方面的任一实施方式的方法。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个装置中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储在计算机的芯片中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
在本申请所提供的实施例中,应该理解到,所揭露的装置/设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种用于加载FPGA版本的方法,其特征在于,所述方法应用于卫星地面设备,所述卫星地面设备包括第一现场可编程门阵列FPGA和第二FPGA,所述第一FPGA与所述第二FPGA连接,所述方法包括:
所述第一FPGA接收第一报文,所述第一报文包括报文头和报文体,所述报文头包括第一字段,所述第一字段的取值为第一取值,所述报文体包括第一数据,其中,当所述第一字段的取值为所述第一取值时,表示所述第一报文的数据类型为加载所述第一FPGA的版本的类型,当所述第一字段的取值为第二取值时,表示所述第一报文的数据类型为与卫星地面设备通信的终端设备的应用程序对应的数据的类型;
所述第一FPGA根据所述第一报文的所述第一字段的所述第一取值确定所述第一报文的数据类型为加载所述第一FPGA的版本的类型,并确定所述第一报文的报文体中的所述第一数据;
所述第一FPGA向所述第二FPGA发送所述第一报文的报文体中的所述第一数据,所述第二FPGA保存所述第一数据;
当所述第一字段的取值为所述第一取值并且所述第一FPGA需要加载版本时,所述第二FPGA根据保存的所述第一数据,加载与所述第一FPGA包括的动态功能单元对应的版本加载数据,所述第一FPGA包括的动态功能单元不影响所述第一FPGA的运行;
所述第一FPGA根据来自所述第二FPGA的版本加载数据,加载所述第一FPGA包括的动态功能单元的版本。
2.根据权利要求1所述的方法,其特征在于,所述卫星地面设备还包括主控单元和交换单元,所述主控单元与所述交换单元连接,所述交换单元的第一内部接口与所述第一FPGA的第二内部接口连接;
在所述第一FPGA接收第一报文之前,所述方法还包括:
所述主控单元根据所述第一数据的数据类型确定所述第一字段的取值;
所述主控单元根据所述第一字段的取值和第二字段承载的所述第一FPGA的标识生成所述第一报文的报文头;
所述主控单元向所述交换单元发送所述第一报文;
所述交换单元根据所述第二字段承载的第一FPGA的标识确定所述第一FPGA;
所述交换单元通过所述第一内部接口向所述第一FPGA的所述第二内部接口发送所述第一报文;
其中,所述第一FPGA接收第一报文,包括:
所述第一FPGA通过所述第二内部接口接收所述第一报文。
3.根据权利要求2所述的方法,其特征在于,所述第二字段能够承载第一标识集合中的任意一个标识,所述第一标识集合中的任意一个标识为任意一个FPGA的标识,所述第一标识集合包括所述第一FPGA的标识,所述交换单元能够根据第二字段承载的FPGA的标识将来自主控单元的报文发送至所述第二字段承载的FPGA的标识所对应的FPGA。
4.根据权利要求2所述的方法,其特征在于,所述第一FPGA还包括静态功能单元,所述静态功能单元还包括报文解析单元、数据缓存单元和数据发送单元,所述报文解析单元与所述数据缓存单元连接,所述数据缓存单元与所述数据发送单元连接;
其中,所述第一FPGA根据所述第一报文的所述第一字段的所述第一取值确定所述第一报文的数据类型为加载所述第一FPGA的版本的类型,并确定所述第一报文的报文体中的所述第一数据,包括:
所述报文解析单元根据所述第一报文的所述第一字段的所述第一取值确定所述第一报文的数据类型为加载所述第一FPGA的版本的类型,并确定所述第一数据;
所述报文解析单元将所述第一数据缓存至所述数据缓存单元;
其中,所述第一FPGA向所述第二FPGA发送所述第一报文的报文体中的所述第一数据,包括:
所述数据发送单元将所述数据缓存单元中的所述第一数据发送至所述第二FPGA。
5.根据权利要求4所述的方法,其特征在于,所述第二FPGA包括数据接收单元和读写控制单元,所述卫星地面设备还包括第一存储单元,所述数据接收单元与所述第一FPGA的所述数据发送单元连接,所述数据接收单元还与所述读写控制单元连接,所述读写控制单元与所述第一存储单元连接;
其中,在所述数据发送单元将所述数据缓存单元中的所述第一数据发送至所述第二FPGA之后,所述方法还包括:
所述数据接收单元从所述数据发送单元接收所述第一数据;
所述读写控制单元将所述数据接收单元接收到的所述第一数据存储在所述第一存储单元中。
6.根据权利要求5所述的方法,其特征在于,所述第一存储单元还存储使得所述第一FPGA版本保持不变的第二数据,在所述第二FPGA根据保存的所述第一数据,加载与所述第一FPGA包括的动态功能单元对应的版本加载数据失败之后,所述方法还包括:
所述读写控制单元读取所述第一存储单元中的所述第二数据,并发送给接口单元;
所述接口单元根据所述第二数据,配置加载所述第一FPGA的版本,使得加载后的所述第一FPGA保持当前版本不变;
其中,所述第二FPGA根据保存的所述第一数据,加载与所述第一FPGA包括的动态功能单元对应的版本加载数据,包括:
根据保存的所述第一数据,配置加载所述第一FPGA包括的所述动态功能单元和所述静态功能单元的版本。
7.根据权利要求5所述的方法,其特征在于,所述静态功能单元还包括指令发送单元,所述指令发送单元与所述报文解析单元连接,所述第二FPGA还包括指令接收单元、版本管理单元和接口单元,所述指令接收单元与所述第一FPGA的所述指令发送单元连接,所述指令接收单元还与所述版本管理单元连接,所述版本管理单元还与所述读写控制单元连接,所述接口单元还与所述读写控制单元连接,所述方法还包括:
所述报文解析单元从所述交换单元接收第一指令,所述第一指令用于指示加载所述第一FPGA的版本;
所述报文解析单元解析所述第一指令,并将所述第一指令发送给所述指令发送单元;
所述指令发送单元将所述第一指令发送给所述第二FPGA的所述指令接收单元;
其中,所述第二FPGA根据保存的所述第一数据,加载与所述第一FPGA包括的动态功能单元对应的版本加载数据,包括:
所述指令接收单元将所述第一指令发送给所述版本管理单元;
所述版本管理单元根据所述第一指令向所述读写控制单元发送第二指令,所述第二指令与所述第一指令对应,所述第二指令指示所述读写控制单元读取所述第一存储单元中的所述第一数据;
所述读写控制单元根据所述第二指令读取所述第一存储单元中的所述第一数据,并发送给所述接口单元;
所述接口单元根据所述第一数据,配置加载所述第一FPGA包括的动态功能单元的版本。
8.根据权利要求4至7中任一项所述的方法,其特征在于,所述动态功能单元包括处理应用程序对应的数据的业务处理单元,所述业务处理单元与所述第一FPGA之外的外部设备没有连接关系,所述静态功能单元还包括通信单元,所述业务处理单元与所述报文解析单元连接,所述业务处理单元还与所述通信单元连接;
其中,所述第二FPGA根据保存的所述第一数据,加载与所述第一FPGA包括的动态功能单元对应的版本加载数据,包括:
所述第二FPGA根据保存的所述第一数据,配置加载所述动态功能单元包括的所述业务处理单元的版本,在加载所述业务处理单元的版本的过程中所述业务处理单元与所述通信单元之间的接口的位宽、数量和方向不变,所述业务处理单元与所述报文解析单元之间的接口的位宽、数量和方向不变。
9.一种用于加载FPGA版本的装置,其特征在于,所述装置包括第一FPGA和第二FPGA,所述第一FPGA与所述第二FPGA连接,其中:
所述第一FPGA用于接收第一报文,所述第一报文包括报文头和报文体,所述报文头包括第一字段,所述第一字段的取值为第一取值,所述报文体包括第一数据,其中,当所述第一字段的取值为所述第一取值时,表示所述第一报文的数据类型为加载所述第一FPGA的版本的类型,当所述第一字段的取值为第二取值时,表示所述第一报文的数据类型为与卫星地面设备通信的终端设备的应用程序对应的数据的类型;
所述第一FPGA用于根据所述第一报文的所述第一字段的所述第一取值确定所述第一报文的数据类型为加载所述第一FPGA的版本的类型,并确定所述第一报文的报文体中的所述第一数据;
所述第一FPGA用于向所述第二FPGA发送所述第一报文的报文体中的所述第一数据,所述第二FPGA保存所述第一数据;
当所述第一字段的取值为所述第一取值并且所述第一FPGA需要加载版本时,所述第二FPGA根据保存的所述第一数据,加载与所述第一FPGA包括的动态功能单元对应的版本加载数据,所述第一FPGA包括的动态功能单元不影响所述第一FPGA的运行;
所述第一FPGA根据来自所述第二FPGA的版本加载数据,加载所述第一FPGA包括的动态功能单元的版本。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,以实现如权利要求1-8中任一项所述的方法。
CN202210733872.3A 2022-06-27 2022-06-27 用于加载fpga版本的方法及装置 Active CN115202752B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210733872.3A CN115202752B (zh) 2022-06-27 2022-06-27 用于加载fpga版本的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210733872.3A CN115202752B (zh) 2022-06-27 2022-06-27 用于加载fpga版本的方法及装置

Publications (2)

Publication Number Publication Date
CN115202752A CN115202752A (zh) 2022-10-18
CN115202752B true CN115202752B (zh) 2023-04-07

Family

ID=83578442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210733872.3A Active CN115202752B (zh) 2022-06-27 2022-06-27 用于加载fpga版本的方法及装置

Country Status (1)

Country Link
CN (1) CN115202752B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112948093A (zh) * 2021-03-30 2021-06-11 中国电子信息产业集团有限公司第六研究所 一种卫星重构系统及其数据处理方法、星地链路通信系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146548A (ja) * 2006-12-13 2008-06-26 Nec Access Technica Ltd 電子装置、fpgaのバージョン確認方法
CN107704285B (zh) * 2017-09-27 2021-01-05 中国科学院微电子研究所 现场可编程门阵列多版本配置芯片、系统和方法
CN108052355B (zh) * 2017-11-22 2020-12-15 西南电子技术研究所(中国电子科技集团公司第十研究所) 星载载荷单元软件在轨重组方法
CN113157334B (zh) * 2021-03-30 2022-09-02 西南电子技术研究所(中国电子科技集团公司第十研究所) Fpga多版本程序加载方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112948093A (zh) * 2021-03-30 2021-06-11 中国电子信息产业集团有限公司第六研究所 一种卫星重构系统及其数据处理方法、星地链路通信系统

Also Published As

Publication number Publication date
CN115202752A (zh) 2022-10-18

Similar Documents

Publication Publication Date Title
CN101930418A (zh) 用于分组信息的多种压缩技术
CN109547367B (zh) 基于sca的软件无线电平台
CN102576323B (zh) 一种促进存储系统中的数据的复制的方法和系统
US8576879B2 (en) Communication system and method
CN109753478B (zh) 一种基于fpga的并行数据处理方法、装置
CN103914404A (zh) 一种粗粒度可重构系统中的配置信息缓存装置及压缩方法
CN113721840A (zh) 数据访问方法、装置和第一计算设备
CN115499505B (zh) Usb网卡和通信方法
US20090031059A1 (en) Method, System, and Computer Program Product for Dynamically Selecting Software Buffers for Aggregation According to Current System Characteristics
CN115202752B (zh) 用于加载fpga版本的方法及装置
JP2012165033A (ja) 自動車用制御システム及び電子制御ユニット
US20190042491A1 (en) Cache Coherent, High-Throughput Input/Output Controller
CN103326889B (zh) 一种新旧版本间通信兼容的方法及装置
CN116185499B (zh) 寄存器数据传输方法、寄存器缓存模块、智能设备和介质
CN114116554B (zh) 一种基于fpga的雷达数据转发架构及转发方法
CN102147735B (zh) 接口单板和业务逻辑加载的方法
CN114780353B (zh) 一种文件日志监控方法、系统及计算设备
US20050027906A1 (en) System and method for adaptive buffer allocation in a memory device interface
CN117667793B (zh) 一种多通道描述符管理系统、方法、设备、介质
CN112732176A (zh) 基于fpga的ssd访问方法及装置、存储系统及存储介质
CN115878351B (zh) 消息的传输方法及装置、存储介质及电子装置
CN212873459U (zh) 一种用于数据压缩存储的系统
US20040213277A1 (en) Method and related circuit for increasing network transmission efficiency by increasing a data updating rate of a memory
CN112147918A (zh) 基于arm+fpga+dsp架构的异步数据交互方法及系统
CN113507610B (zh) 一种主从系统多路并发解码jpg图像的方法及装置

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
GR01 Patent grant
GR01 Patent grant