FC测试系统中两级PCIE交换开关的设计与实现

2022-03-23 09:20:57 | 浏览次数:

文章编号: 1004⁃373X(2016)18⁃0104⁃03

Abstract: To overcome the test difficulty of network node of airborne FC, and improve the efficiency of the FC testing system, a two⁃stage PCIE exchange switch was designed proceeding from CPU control simplification. The implementation principle of the two⁃stage PCIE exchange switch is introduced. The implementation key points of the switch are described in the aspects of hardware and software initialization. The switch was tested with a specific FC testing system. The results indicate that the designed two⁃stage PCIE exchange switch is correct and feasible, and can improve the test efficiency of FC node.

Keywords: PCIE; exchange switch; FC test; PEX8648

0 引 言

机载FC网络具有通信速率高、延迟小、抗干扰能力强等特点,通信速率可以达到2 Gb/s,甚至更高,传统的PCI/PCI⁃X总线已经不能满足系统对主机接口的带宽要求。PCIE总线单通道单向速率为2.5 Gb/s,同时在软件层保持对PCI协议的兼容,成为主机接口的理想选择。

目前机载FC网络节点主要采用FC通信接口和PCIE主機接口结合来完成通信。面对日益庞大的机载网络,需要设计一个高效的测试系统来测试各FC节点的通信功能。该测试系统必须具有成本小、测试效率高、实现简单等特点。

本文根据PCIE总线的特点,从简化主机控制方面出发,设计了一种两级PCIE交换开关,使用单主机完成多个FC节点的测试。通过在具体FC测试系统中的应用,展现两级PCIE交换开关的实现方法。最终通过测试表明该设计的正确性。

1 设计原理

PCIE是一种高速串行I/O互联总线,为互连设备提供高速、高性能、点对点的通信链路。PCIE总线系统主要由根复合体、交换开关和端点组成[1]。

在PCIE总线系统初始化时,需要扫描PCIE总线,识别总线上的所有端点、对总线进行编号并对所有的设备进行空间配置。PCIE扫描使用深度扫描策略,从根复合体开始,编号为总线0,交换开关内部为虚拟的PCI桥⁃PCI桥。PCIE总线是一种点对点通信协议。CPU需要通过交换开关实现多台PCIE设备互连。在设计FC测试系统时,如果不采用交换开关,就需要使用多个CPU控制FC节点完成通信测试,既增加测试系统的设计成本,也降低了系统的测试效率;如果采用单级交换开关,交换开关的端口数随测试的FC节点数目增多,系统实现的复杂度增大。为了简化系统实现的复杂度,设计了一种两级PCIE交换开关,如图1所示。通过增加交换开关的数目来扩展被测端点的数目,使用单个CPU完成多个FC节点的测试。

第一级PCIE交换开关通过上游端口与CPU进行通信,下游端口连接第二级PCIE交换开关的上游端口,第二级交换开关的下游端口连接各个FC节点。在系统初始化时,第二级PCIE交换开关及其下游节点整体作为第一级PCIE交换开关的下游节点进行配置和空间分配,然后再由第二级PCIE交换开关对其下游节点进行配置和空间分配。

2 具体实现

为了展现两级PCIE交换开关的实现要点,设计一种FC测试系统。该测试系统包含1个CPU、1个两级PCIE交换开关和6个FC节点。CPU通过两级PCIE交换开关实现6个FC节点的通信测试。测试系统架构如图2所示。

CPU选择基于PowerPC架构的8548处理器。该芯片集成了PCIE接口,同时支持基于VxWorks操作系统的程序开发[2]。FC节点使用集成高速RocketIO内核的Xilinx公司V5系列芯片实现。两级PCIE交换开关采用成熟、可靠的PCIE交换芯片,结合供电、时钟及复位电路实现全部功能。

2.1 硬件架构

2.1.1 主要元器件选择

PCIE交换芯片选择PLX公司的PEX8648芯片。该芯片有48Lane信道,12个端口,可以采用灵活的方式进行配置,在本系统中配置为1个4xPCIE和11个4xPCIE。

供电使用Linear公司的LTM4600和LTM4620芯片。LTM4600芯片为单通道直流电源转换器,输出电压范围为0.6~5 V,最大输出电流10 A。LTM4620芯片为双通道直流电源转换器,每个通道的输出电压范围0.6~5 V,最大输出电流8 A。

时钟驱动器选用TI公司的SN65LVDS108芯片。该芯片为1分8的LVDS驱动器,可以传输最大400 MHz的时钟,传输延迟小于4.7 ns。复位电路选用MAXIM公司的MAX706芯片。

2.1.2 时钟设计

发送器以2.5 Gb/s的速率输出数据,实现该速率的时钟必须精确在中心频率±300 ppm内。它最大允许每1 666个时钟相位偏离1个时钟[1]。时钟输入的方式有本板时钟和外部输入时钟两种,本设计采用外部输入时钟。将1路输入时钟通过时钟驱动器分为8路同步的时钟信号,保证交换芯片与节点使用的时钟同源。

2.1.3 电源设计

PEX8648芯片的内核和高速SerDes供电电压为1.0 V,锁相环和I/O供电电压为2.5 V。PEX8648芯片对电源上电顺序没有要求,不需要额外的芯片控制上电顺序。SN65LVDS108芯片和MAX706芯片的电源电压为3.3 V。

该两级交换开关需要1.0 V,2.5 V和3.3 V三种电源。使用LTM4600作为1.0 V电源转换芯片,使用LTM4620作为2.5 V和3.3 V电源转换芯片。

2.1.4 复位设计

如图3所示,主机复位与手动复位通过逻辑与门后作为复位芯片MAX706的输入,将复位芯片的输出直接提供给交换芯片与所有FC节点。

2.1.5 布板要求

在PCIE接口的Lane信道上传输的是高速差分信号,在两个设备之间互联的Lane信道需要加入电容隔离直流信号。电容尺寸为0402,小的尺寸可以降低电容的串联等效电感,提高电容在高频信号区域的使用性能[3]。电容值在75~200 nF之间,耦合电容必须靠近发送端摆放。

2.2 软件初始化

系统上电后需要对交换开关和节点进行初始化,初始化流程如图4所示。在CPU 8548完成PCIE控制器初始化后,对所有的PCIE交换开关进行总线编号;对所有的交换开关和节点进行空间配置;扫描PCIE链路上的PCIE设备。

2.2.1 对所有PCIE交换开关进行总线编号

在初始化时,首先对第一级交换开关进行总线编号,然后对第二级交换开关进行总线编号。总线编号结果见图5。

通过对PCIE交换开关进行总线编号,交换开关才能准确掌握它所连接的PCIE总线情况。

主总线号、二级总线号和从属总线号三个寄存器用于标志该交换开关连接的PCIE总线,主总线号寄存器含有连接至交换开关上游端的总线号,二级总线号寄存器含有与交换开关下游端连接的总线号,从属总线号寄存器含有交换开关下游端上的最高总线号。

2.2.2 扫描PCIE总线上的设备

PCIE总线扫描的原理是从总线0开始扫描,对于每条总线,系统都会扫描所有(总线号、设备号、功能号),读出每个设备的Device ID和Vendor ID寄存器。如果这两个寄存器的值是有效值(非0xFFFF),则说明当前设备有效。再读取该设备的Header Type寄存器,如果为1,则表明当前设备是交换开关,否则是PCIE设备。

2.2.3 空间配置

当系统需要访问PCIE设备时,它需要产生Configuration,Memory或者I/O的读写操作,对于Memory或I/O的访问方式,需要定义一个地址范围,落在地址范围内的操作认为是相应的读写操作[2]。测试系统中所有PCIE交换开关和节点的地址空间需要包含在8548的PCIE控制器分配的空间内。第二级交换开关和其下游节点的地址空间需要包含在对应第一级交换开关下游端口的分配空间内。

3 测 试

为了验证使用两级PCIE交换开关的FC测试系统是否工作正常,编写测试程序对FC测试系统进行测试。

在系统上电稳定后,测试程序首先完成CPU 8548的PCIE控制器初始化,随后查找第一级交换开关,查找成功后配置交换开关并分配交换开关各端口的基地址和空间大小,然后初次扫描PCIE链路。接着查找第二级交换开关,查找成功后配置交换开关并分配交换开关各端口的基地址和空间大小,随后再次扫描PCIE链路。PCIE链路初始化成功,系統开始FC测试。本测试系统使用的交换开关芯片PEX8648的Vendor ID和Device ID分别为0x10B5和0x8648,FC节点的Vendor ID和Device ID分别为0x0FF1和0x000A。图6为测试程序运行的结果,其中bus为总线号,dev为设备号,func为功能号,did的高16位为Vendor ID,低16位为Device ID。结合图5可以看出,初次扫描PCIE链路完成第一级交换开关的初始化,再次扫描PCIE链路完成第二级交换开关和节点的初始化。两级交换开关初始化完成后,CPU控制FC节点进行FC测试。

4 结 语

PCIE总线是当前机载FC网络采用的主流总线,本文通过对PCIE总线的介绍,设计了一种简化主机接口控制的两级PCIE交换开关,从软硬件两个方面介绍了其实现要点。实际FC测试系统的测试结果表明采用两级PCIE交换开关可以简化系统设计,方法可行,可为类似应用提供参考。

参考文献

[1] BUDRUK R, ANDERSON D, SHANLEY T. PCI Express系统体系结构标准教材[M].田玉敏,王崧,张波,译.北京:电子工业出版社,2005.

[2] 李明,李霞,周轶男.基于MPC8548嵌入式系统PCI⁃Express设备驱动开发[J].电子技术,2011,38(1):4⁃6.

[3] 王学宝,郑波祥,周群.一种基于PEX8532的交换板设计[J].工业控制计算机,2009,22(2):11⁃12.

[4] 张伟栋,刘志敏.基于PowerPC8640的PCI⁃E总线接口设计[J].航空计算技术,2011,41(3):119⁃121.

[5] PCI⁃SIG. PCI Express base specification revision 2.0 [EB/OL]. [2006⁃09⁃11]. http:///specification/pciexpress.

[6] PLX Technology. ExpressLane PEX 8648⁃AA, AB, and BB 48⁃lane/12⁃port PCI express gen 2 switch data book [EB/OL]. [2007⁃05⁃17]. http://.

[7] 张卓然,叶广强,刘华伟.一种机载单站对固定目标的无源定位方法[J].计算机仿真,2015,32(2):92⁃95.

推荐访问: 两级 开关 交换 测试 设计