基于PCIE的多FC子卡测试设备的设计与实现
扫描二维码
随时随地手机看文章
0 引言
FC(光纤通道,是Fiber Channel的缩写)是美国国家标准委员会(ANSI)的X3T11工作组于1988年提出的一种高速串行传输协议,具有高带宽、高实时性、高可靠性、扩展性好、传输速率高、抗干扰性强、拓扑结构和服务类型灵活、支持多种上层协议和底层传输介质等特性,为了适应航空电子环境的应用,光纤通道提供了一组在航空电子环境中应用的协议子集FC-AE(fiber channel avionics environment),它规范了民用和军用航空光纤通道交换网络与环路拓扑连接设备的选择,FC—AE基于匿名签署消息(ASM)的上层映射FC-AE-ASM,具有消息传输安全、低延时的特点,适用于航空电子中处理器与传感器和显示器之间的通信。因此,FC已成为新一代先进综合式航空电子网络互连的首选方案。
为了保证FC产品能够满足机载应用要求,为FC产品提供测试、试验的平台,设计可靠、高效的机载FC设备的测试设备十分必要。FC子卡是广泛应用在航电系统中的一种FC产品,FC子卡实现了FC节点机的功能,负责为FC网络中各个节点提供FC通信连接等功能,为多种应用数据提供通信支撑。
文章针对被测设备的特点,提出了一种基于PCIE接口的多FC子卡的测试设备的设计方法,采用PowerPC处理器的PCIE接口,通过PCIE交换扩展多路PCIE总线,从而一次可以进行多个FC子卡的试验测试,经过验证该测试设备通信稳定可靠,具有较高的实用性、通用性和扩展性。
1 多FC子卡测试设备总体结构
1.1 被测对象分析
FC子卡是嵌入式的FC节点机,作为航电子系统接入FC网络的接口,一方面具备与航空电子系统设备进行信息交互的接口,即FC接口,支持FC—PI、Fc—FS和FC—AE—AsM协议,FC接口链路速率2.125Gbps。另一方面拥有与处理器进行数据交互的接口,从而可以将网络上的数据提交给应用,也可以将应用的数据发送到网络上。因此设计测试设备时主要从以上两个方面考虑。
考虑到结构和速率等要求,FC子卡采用X4PCIE主机接口,工作频率为2.5Gb/s,使用标准的XMC结构。由FGPA、配置电路、RS232接口、FLASH接口、时钟电路、复位电路、电源电路组成,FPGA用于实现FC接口、PCIE接口及片上处理器,硬件框图如图1所示。FC子卡主要实现了FC—AE—ASM通信、时间同步、网络管理等功能,保证航电数椐传输的完整性和可靠性。
1.2 测试设备设计
多FC子卡测试设备设计时需要从以下几方面考虑:
(1)满足测试产品功能、性能的要求;
(2)考虑在温度冲击、湿热等恶劣的试验环境下使用;
(3)考虑一次试验中尽可能多的测试被测设备,提高资源利用率和试验效率。
由于FC子卡对外主要的接口为PCIE接口和FC接口,因此设计时必须通过以上两个接口对设备进行访问和测试。对于PCIE接口,使用具有PCIE接口的PowerPC处理器模块,且该模块需要具备以太网、FLASH、SRAM、串口等必备的外围接口,从而可以在其上进行软件开发和调测。同时为了一次测试多个FC子卡,需要使用PCIE交换扩展多路PCIE总线。对于FC接口,FC子卡使用FPGA进行实现,输出FC电信号。为了测试FC协议符合性、功能及性能等一系列内容,连接外部测试设备,将电信号转换为光信号,需要设计转接板,一方面通过PCIE接口连接母板和FC子卡,另一方面通过光电转换电路将FC电信号和光信号进行转换。
为了满足高带宽、通用性和恶劣的试验环境下使用,采用3U VPX结构设计,通过母板和转接板连接主机和子卡。测试设备的总体框架如图1所示。
图2多FC子卡测试设备总体框架
2 关键技术研究
多FC子卡测试设备设计的关键点在于PCIE交换和PCIE配置,下面就PCIE交换的选择和PCIE配置的机制进行描述。
2.1 PCIE交换
选择PCIE交换芯片时,需考虑两点,首先根据系统需求和上行和下行端口连接的PCIE设备的线宽、速率、数目等要求,选择合适的配置,其次选择PCIE交换为透明桥还是非透明桥,一般在单处理器系统中使用透明桥,在进行多个处理器系统连接时采用非透明桥。
2.2 PCIE总线配置机制
PCIE和PCI环境一样,各种设备都要连接在树形总线上,包含一种或多种功能,该设计中FC子卡为单功能设备。当系统首次启动时,只有处理器中根联合体(RC)中的总线0才有编号,其他总线还有待发现。配置软件使用深度优先搜索算法扫描PCIE总线树上的所有PCIE设备,并以此分配总线号和存储器地址空间。
对于RC或者PCIE交换使用Type1配置头,必须初始化主总线(Primary Bus Number)、二级总线(Secondary Bus Number)和从总线(Subordinate BusNumber)寄存器,主总线为RC或者桥上游的总线,二级总线为下游的总线,从总线是从下向上分配的,为当前PCIE子树中编号最大的总线。需要注意的是PCIE交换中有多个端口,每个端口都有一个P2P的桥,内部有一条虚总线,配置时根据数据手册进行配置。
在桥管理的PCIE子树中有许多PCIE设备,这些PCIE设备可能有自己的存储器地址空间需要被CPU访问,通过配置桥的Mernory Limit和Memory Base寄存器,即可实现对目标设备空间的访问。这两个寄存器用于存放PCIE子树上所有设备的存储器地址空间集合的基地址和大小。
3 硬件设计
多FC子卡测试设备硬件由CPU模块、PCIE交换电路、母板和转接板组成,以上组成部分在机箱中集成,下面主要对CPU模块和PCIE交换电路进行描述:
3.1 CPU模块设计
在本测试设备中,CPU模块以MPC858处理器为核心,通过连接FLASH、内存、PCIE接口、网口、串口以及其他接口控制电路实现。如图3,在CPU模块中移植嵌入式实时操作系统VxWorks,对设备驱动进行二次开发,继而以VxWroks为软件开发平台,开发测试程序,实现板卡的测试任务。
3.2 PCIE交换电路
PCIE交换芯片选用PLX公司的新一代非阻塞、低延迟交换芯片,支持48Lane,12个PCIE端口,通过灵活的硬件配置和软件编程使PCIE交换支持多种端口配置。在本设计中,将交换芯片配置为透明桥,且由于FC子卡为4Lane PCIE接口,配置1个4Lane上行端口和11个4Lane下行端口,可以满足测试设备的功能要求。
4 软件设计
依据FC子卡测试设备的功能需求和硬件平台,测试软件运行在VxWorks5.5操作系统上,主要包括三部分软件,PCIE配置软件、FC驱动软件和FC测试软件。PCIE配置软件主要用于配置CPU、PCIE交换芯片和FC子卡的PCIE接口,通过配置才能从CPU端访问FC子卡。FC驱动软件作为FC子卡的驱动软件,必须在PCIE配置成功后,才能经过PCIE接口访问FC子卡的硬件资源、控制FC子卡的通信,管理等功能。FC测试软件通过调用驱动软件提供的接口,完成对FC子卡的各种功能、性能测试。其层次结构如图5所示。
4.1 PCIE配置软件
PCIE配置软件的主要功能是对PCIE总线树的设备进行枚举,通过PCI兼容配置,从CPU端可以访问各个FC子卡设备。在本设计中,只用到PCI兼容配置机制,配置过程和PCI设备类似,主要需对MPC8548和PCIE交换开关进行配置,内容包括配置空间的访问,如何发现设备,访问设备空间等。
在本设计中,测试设备的总线示例如下:
最后根据FC子卡所在的总线和分配的存储器地址空间对FC子卡的BAR空间进行映射,从而可以访问FC设备。
4.2 FC驱动软件
FC驱动软件运行于主机上,主要提供访问控制FC设备、FC通信、时钟同步、网络管理等功能的接口,用于上层软件调用从而满足应用具体的要求。在该设计中,测试软件完成PCIE配置后,通过调用驱动软件接口访问FC子卡,完成子卡的初始化,再进行相关的测试。
4.3 FC测试软件
FC测试软件主要使用测试设备搭建的平台,进行FC子卡的各种测试,可以实现单个FC子卡的功能、性能测试,也可以实现试验环境下多个FC子卡的通信测试。通过调用驱动软件,测试软件可以完成以下测试:包括FC子卡硬件资源测试、FC协议符合性测试、通信功能的测试、时钟同步功能测试、网络管理功能测试、FC通信带宽测试等其他功能的测试。
5 验证
为了验证测试设备是否满足设计要求,需要对多个FC子卡进行通信功能测试。验证环境中,运行测试软件进行FC-AE-ASM通信测试,FC数据从CPU端产生,通过PCIE接口DMA到FC子卡内部,然后从FC子卡发送出去,经过分析仪,从接收通道接收,再从FC子卡DMA到CPU端,对比发送和接收的数据是否一致。测试环境如图7所示、经过串口打印和分析仪捕获的数据,FC子卡运行稳定可靠,验证了测试设备完全满足实验室测试验证的要求,并且该测试设备已经用于FC子卡的试验测试,测试结果也满足试验要求。
6 结束语
文章介绍了一种基于PCIE接口的多FC子卡测试设备,对总体设计方案、硬件组成和软件设计进行了阐述,通过测试验证了该设备良好的可行性和稳定性。该设备对提高设备试验效率,降低科研、生产成本有显著作用,且通用性、扩展性好,对于其他类型的PCIE/PCI接口设备有很好的参考意义和借鉴作用。