一种PCIe端口重构方法

文档序号:9729990阅读:584来源:国知局
一种PCIe端口重构方法
【技术领域】
[0001 ]本发明涉及机载嵌入式计算机技术领域,尤其涉及一种机载计算机单板PCIe端口可重构的方法。
【背景技术】
[0002]在机载嵌入式计算机系统架构中,PCIe总线得到越来越多的应用。通用的基于PCIe总线的处理器系统架构主要有根控制器RC(Root Complex)、终结点EP(Endpoint)和交换器Switch组成。PCIe总线采用端到端的连接方式,每一个PCIe断开智能连接一个EP,PCIe断开可以连接switch进行链路扩展。通过switch扩展出的PCIe链路可以继续挂接EP或者其他switch。
[0003]目前主控板的PCIe端口一般通过一个PCIeswitch进行链路扩展,但通常是由上下拉电阻固定的扩展方式,使得主控板对外PCIe端口为固定数量与数据宽度(如4*lPCIe,即对外具有4路PCIe端口,每路数据宽度为*1),当此主控板被应用到另外一个系统中(如需要2*2PCIe,即对外2路PCIe端口,每路数据宽度为*2)时,就不能适用此系统的要求,需要重新进行硬件设计。目前的这种主控板在应用时需要根据不同的系统需要更换主控板,不利于系统项目进度的快速推进。

【发明内容】

[0004]本发明的目的是提供一种PCIe端口重构的方法,用以解决现有主控板由于端口数量和数据宽度固定而适应性不强的问题。
[0005]为实现上述目的,本发明的方案包括:
[0006]一种PCIe端口重构方法,包括如下步骤:
[0007]步骤1):根控制器RC获取待扩展PCIe端口信息,并将这些信息传输给FPGA模块;
[0008]步骤2):FPGA模块按照默认配置对交换器Switch进行配置,然后将从根控制器RC接收到的待扩展PCIe端口信息与与当前配置相比较,并且查看比较结果;
[0009]步骤3):在比较结果中,如果配置信息相一致,则完成对FPGA的配置;如果配置信息不一致,则按照步骤1)中CPU发送给FPGA模块的信息进行配置,并向Switch和CPU发送初始化信号。
[0010]优选的,所述FPGA与CPU通讯是通过Local Bus总线进行通信。
[0011 ] 进一步的,所述根控制器RC与交换器Switch直接连接。
[0012]本发明使用CPU+FPGA的架构对PC I e sw i t ch的配置进行控制,从而能够在不改变机载嵌入式计算机硬件的情况下,在一定程度上改变PCIe端口的数量和数据宽度,从而使得这样设计的主控板通用性更强,可以应用到更多的系统中。基于此方法而设计的主控板具有更强的通用性,更有利于系统项目开发进度进展和管理的标准化。
【附图说明】
[0013]图1是主控板内部PCIe端口相关电路组成框图;
[0014]图2是本发明的工作流程图。
【具体实施方式】
[0015]下面结合附图对本发明做进一步详细的说明。
[0016]本发明为解决技术问题所提供的技术方案是:构建CPU+FPGA的控制架构,根据PCIe总线所要连接的系统以及主控制器需要的PCIe的端口方式,CPU+FPGA架构发送相应的控制命令对PCIe总线交换器switch的配置进行控制,并把PCIe端口方式的信息通过LocalBus写入给FPGA中的寄存器,FPGA得到端口配置信息后,对PCIe的交换器Switch相应端口配置管脚输出相应的高低电平,而后对FPGA对PCIe的交换器switch和CPU发出复位信号,重新进行初始化。待初始化完毕后,仍会通过Local Bus把主控板所需PCIe端口配置信息写入给FPGA中的寄存器,FPGA将此值与内部已设置值进行比较,如果比较结果是二者一致,则表示此时主控板对外的PCIe端口已经配置成为与相应系统所需端口一致,此时FPGA不再需要对PCIe switch和CPU发出复位信号。
[0017]如图1所示,是本发明主控板内部PCIe端口相关电路组成的框图,从图中可以看出,主控板内部PCIe端口相关电路包括集成有根控制器RC的CPU模块、FPGA模块、以及带有PCIe端口的Switch模块。从图中可以看出,CPU通过Local Bus与FPGA中的内置寄存器Regis ter进行信息交互Switch的上游端口与CPU相连接,下游端口则作为主控板的对外PCIe端口,同时FPGA还控制Switch的端口配置管脚,FPGA发送复位信号给CPU模块和Switch模块。
[00? 8]上述实施例中根控制器RC与交换器Switch直接连接,作为其他实施方式,还可以有多层的交换器Switch模块进行扩展互联,第二级以上的交换器Switch间接的与根控制器RC相连。
[0019]为了能够更加详细的说明本发明的技术方案,现以一个例子予以具体说明。如图2所示,主控板内部PCIe端口的默认配置是1*4的PCIe端口模式,而该系统总主控板所需的PCIe端口配置为2*2的PCIe端口模式。
[0020]在主控板上电复位以后,CPU模块开始对系统进行检查,查看其所需的端口配置信息,经过CPU模块的检查知道该系统中主控板所需PCIe端口的配置信息是2*2PCIe端口,然后CPU通过Local Bus将这些信息发送给FPGA,写入到FPGA的寄存器中,同时初始化PCIe总线的处理器系统架构的根节点RC。
[0021 ] 而FPGA模块在上电加载完成后,则对Switch按照默认配置(即1*4的PCIe端口信息)进行端口配置。配置完成以后,FPGA模块对当前配置进行检查,以查看配置完成的PCIe端口信息与该系统所需的端口配置信息(即2*2的PCIe端口信息)是否相一致。如果检查结果是二者相一致,即默认配置的也是2*2PCIe端口,此时PCIe端口配置完成,则不进行后续动作;如果检查结果是二者配置不一致,则此时FPGA按照CPU发送的端口配置信息对Switch端口进行配置,在这里是将Switch配置成2*2的PCIe端口模式。在对Switch的重新配置也完成以后,则FPGA向Switch和CPU发送出复位信号,使得Switch和CPU会重新开始初始化。CPU和Switch初始化完毕以后,则CPU再次将主控板所需的PCIe端口配置信息(S卩2*2的PCIe端口信息)通过LocalBus总线写入到FPGA中的寄存器当中,并且FPGA将此PCIe端口配置信息与Switch中已经设置好的配置信息进行对比,查看对比结果是否一致。如果对比结果发现二者不一致,则说明此事主控板对外的PCIe接口已经配置成对应系统所需要的PCIe接口模块,可以正常工作;如果对比结果发现二者不一致,则重新将对应系统所需配置信息写入到FPGA模块中,重新对其进行配置,并且复位检查。
[0022]以上给出了本发明具体的实施方式,但本发明不局限于所描述的实施方式。在本发明给出的思路下,采用对本领域技术人员而言容易想到的方式对上述实施例中的技术手段进行变换、替换、修改,并且起到的作用与本发明中的相应技术手段基本相同、实现的发明目的也基本相同,这样形成的技术方案是对上述实施例进行微调形成的,这种技术方案仍落入本发明的保护范围内。
【主权项】
1.一种PCIe端口重构方法,其特征在于,包括如下步骤: 步骤1):根控制器RC获取待扩展PCIe端口信息,并将这些信息传输给FPGA模块; 步骤2):FPGA模块按照默认配置对交换器Switch进行配置,然后将从根控制器RC接收到的待扩展PCIe端口信息与与当前配置相比较,并且查看比较结果; 步骤3):在比较结果中,如果配置信息相一致,则完成对FPGA的配置;如果配置信息不一致,则按照步骤1)中CPU发送给FPGA模块的信息进行配置,并向Switch和CPU发送初始化信号。2.根据权利要求1所述的一种PCIe端口重构方法,其特征在于,所述FPGA与CPU通讯是通过Local Bus总线进行通信。3.根据权利要求1所述的一种PCIe端口重构方法,其特征在于,所述根控制器RC与交换器Switch直接连接。
【专利摘要】本发明涉及一种PCIe端口重构方法,包括如下步骤:步骤1):根控制器RC获取待扩展PCIe端口信息,并将这些信息传输给FPGA模块;步骤2):FPGA模块按照默认配置对交换器Switch进行配置,然后将从根控制器RC接收到的待扩展PCIe端口信息与当前配置相比较,并且查看比较结果;步骤3):在比较结果中,如果配置信息相一致,则完成对FPGA的配置;如果配置信息不一致,则按照步骤1)中CPU发送给FPGA模块的信息进行配置,并向Switch和CPU发送初始化信号。本发明的方法能够使主控板通用性更强,可以应用到更多的系统中。
【IPC分类】H04L12/935, H04L12/40, H04L12/24
【公开号】CN105490844
【申请号】CN201510887578
【发明人】张洛
【申请人】中国航空工业集团公司洛阳电光设备研究所
【公开日】2016年4月13日
【申请日】2015年12月5日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1