基于ZYNQ FPGA 的十六路FC 光纤交换机设计与实现
2020-06-15董博宇沈淑梅
董博宇,沈淑梅,黄 涛
(1.中航航空电子有限公司,北京 100081;2.洛阳电光设备研究所,洛阳 471000)
1 FC 交换机
国外对于FC 协议的研究进步比较早,对FC 协议也进行了比较深入的研究,制定了FC 族的各类协议草案。其中,FC-SW协议作为FC 交换机设计的技术草案是国外研究的主要成果[1-2]。另外,国外的交换处理芯片及FC 交换机产品也逐渐成熟,比如Qlogic,Emulex,DDC 等公司。
国内对于FC 交换机协议研究基于市场需求的增长也慢慢变多,目前,多家公司已经推出FC 交换系列的产品,同时高校也有了一定的研究成果[3-7],但是作出的FC 商用交换机产品标准不兼容、功耗和集成度都相对较低。同样目前国内工程化对ZYNQ 平台的应用也日趋成熟[8]。
基于上述问题,本文设计一种基于ZYNQ 的十六路FC 光纤交换机,交换机核心包括十六路光纤接口模块、FC_MAC 模块、CROSS_BAR 交换模块、广播控制模块以及负责交换机配置管理的ZYNQ 核模块,最终实现了1/2/4 Gb/s 速率的FC 协议报文交换功能。该设计利用赛灵思公司ZYNQ 器件包含ARM CPU 硬核的特点,将传统的基于FPGA+CPU 架构的FC 光纤交换机进行优化,使交换机全部功能模块都集成在一颗芯片上,提高了硬件设计的集成度,增加了FC 交换机的安全性和可靠性。
2 FC 光纤交换机的硬件设计
FC 光纤交换机硬件FPGA 模块核心处理器采用ZYNQ-7000系列SoC 芯片XC7Z100。ZYNQ-7000系列SoC 是Xilinx 推出的一款全可编程片上系统(All Programmable SoC),该芯片集成了Processing System(PS)即为处理器(ARM Cortex A9 MPCore)部分,资源非常的丰富。Programmable Logic(PL)即可编程部分(FPGA),该部分的资源随SoC 芯片级别高低不同而不同。随着嵌入式系统越来越复杂,功能越来越强大,往往在设计中既需要非常灵活的FPGA,又需要处理器去做一些控制,以及配合操作系统使用。
在交换机设计上主要利用ZYNQ 运行配置管理软件模块,在PL 逻辑上运行FC 交换逻辑,PS 端对交换配置进行管理。XC7Z100 芯片PL 与PS 两者之间的通信使用AXI_HP,AXI_GP,AXI_ACP 三种接口通信,带宽可达吉比特。同时提供16路高速gtx 接口,实现光纤的16路连接功能。交换机硬件设计图如图1所示。
3 FC 光纤交换机的逻辑及软件设计
为在ZYNQ 硬件平台上实现FC 交换机,需要对FC 交换机的协议、逻辑架构、软件架构进行深入研究,本文主要描述FC交换机的实现方式,集中描述逻辑和软件的架构设计,对FC 交换机的协议标准内容不作赘述。
图1 交换机硬件设计图
3.1 FC 光纤交换机的逻辑架构设计
基于ZYNQ 的十六路FC-AE 光纤交换机,交换机逻辑核心包括十六路光纤接口模块、FC_MAC 模块、CROSS_BAR 交换模块、广播控制模块、以及负责交换机配置管理的ZYNQ 核模块,最终实现了1/2/4 Gb/s 速率的FC 协议报文交换功能。
一种基于ZYNQ 的十六路FC 光纤交换机,利用赛灵思公司ZYNQ 芯片,同时集成十六路光纤接口模块、FC_MAC 模块、CROSS_BAR 交换模块、广播控制模块、以及负责交换机配置管理的ZYNQ 核模块实现十六路FC 交换机设备的完备功能。基于ZYNQ 十六路光纤交换机架构示意图如图2所示。
图2 基于ZYNQ十六路光纤交换机架构示意图
架构设计说明如下:
(1)光口0至光口16为光纤交换机的物理接口,用来连接外部FC 端点设备。
(2)ZYNQ 芯片内部分为PL 逻辑侧以及PS 软件侧。PL侧集成十六路光口物理通道以及每路对应的FC-MAC 模块、CrossBar 交换模块、broadcast_ctrl 广播控制模块、glb_reg_cfg 模块。其中FC-MAC 模块负责FC 光纤协议的解析和映射,CrossBar 交换模块负责单播数据的交换功能、broadcast_ctrl 广播控制模块负责广播数据的交换功能、glb_reg_cfg 模块负责交换机全局变量的配置。
(3)ZYNQ 芯片PS 侧运行交换机的配置管理软件。ZYNQ CORE 除了最小系统外例化的外设包括十六路BRAM(双端口RAM),以及AXI 总线。其中,双口RAM 为ELS(拓展链路服务)报文的收发数据通道。AXI 总线为全局和FC-MAC 模块的配置通道,各模块根据地址进行配置空间的划分,AXI 总线寄存器写时序如图3所示。
图3 AXI总线寄存器写时序
(4)FC 光纤交换机主要包含六条总线。其中Bus_reg 为交换机的寄存器配置总线,是PS 与PL 间的慢速配置总线。Bus_els 是交换机ELS 数据报文的收发总线,是PS 与PL 间共享存储空间的数据总线。Bus_fc 上行总线与Bus_fc 下行总线是连接FC_MAC 模块和CrossBar 交换模块的数据总线,完成单播转发功能。Bus_bc 上行总线与Bus_bc 下行总线是连接FC_MAC 模块和broadcast_ctrl 广播控制模块的数据总线,完成广播转发功能。
(5)交换机的配置管理软件运行在ZYNQ 芯片PS 侧的ZYNQ CORE 上,可以根据实现协议的复杂程度选择是否运行操作系统。
(6)设备上电工作后,PS 端软件读取默认配置信息,将需要配置的全局寄存器信息配置到glb_reg_cfg 模块,将路由信息配置到FC_Mac 模块,启动ELS 报文服务任务后初始化完成,FC 交换机具备交换功能。
(7)配置信息的修改可以通过与ZYNQ 芯片连接的上位机PC 进行配置。
3.2 FC 光纤交换机的软件设计
FC 光纤交换机的软件主要分为交换机软件,运行在ZYNQ的ARM 上,负责交换机的数据管理功能,交换机客户端程序主要工作在PC 主机,用来进行交换机参数配置以及状态信息读取工作,软件间通过以太网接口通信,交换机软件的连接关系如图4所示。
图4 FC交换机软件设计
交换机客户端运行在Windows7环境下,点击SW_Client.exe即可运行管理软件,通过网络对交换机进行管理,可以对交换机进行配置操作和状态查询,也可以实时显示交换机端口状态以及统计信息。
交换机软件运行在ZYNQ 上,基于ZYNQ 的逻辑架构跑通VxWorks6.9系统,应用软件通过片外FLASH 存储器加载到系统中。支持1G、2G 和4G 速率配置,最大支持256条路由配置,支持单播、组播和广播配置,支持时钟同步和端口镜像功能等配置。支持ELS 发送功能,支持从节点卡和交换机本地端口接收ELS功能。FC 交换机软件初始化流程如图5所示。
4 FC 光纤交换机实验设计
FC 交换机测试平台包含自研交换机一台、FC 节点卡若干、VIAVI 分析仪一台。组网连线如图6如示。
图5 FC交换机软件设计
图6 测试平台连接网络示意图
该系统经过了大量的各子系统的测试,以及系统级的联调测试,实现关键技术指标如表1所示。
表1 关键技术指标
实验平台方面采用交换机硬件平台、ASM 子卡(不同厂商)、VIAVI 分析仪/压力测试仪等现有不同平台,对交换机进行功能、性能、稳定性等多方面进行验证,测试结果表明交换机具有支持多平台、设计灵活、稳定可靠的优势。
逻辑方面基于Xilinx ZYNQ 开发,Verilog 语言设计,确保逻辑可控。仿真通过Vivado2018.1自带仿真工具进行仿真验证,测试验证采用灵活的ILA 实时抓取波形,和仿真进行配合使用,经过大量的测试,代码运行做到了稳定可靠。
软件方面设计两种配置方式:界面控制和串口命令行录入的方式,其中界面控制设计友好,大大降低了用户对交换机的使用难度。FC 交换机实物图如图7所示。
图7 FC交换机实物图
5 结束语
基于FC-SW 协议的16 端口交换机技术研制项目,基于FPGA ZYNQ 逻辑器件实现了基于FC-SW 协议的交换机,实现了能够与不同厂商FC 端点卡完成数据交换,达到了预期设计指标与目标。
用户使用上首次在FC 总线相关产品上开发了基于QT 的界面配置功能,界面设计友好,大大降低了交换机使用的难度,同时也为公司其他后继交换机项目乃至嵌入式产品开发项目提供了参考和一定的技术积累。
基于FC-SW 协议的16 端口交换机开发工作基于Xilinx ZYNQ 硬件平台,满足了低成本与低功耗的要求。同时进一步积累了丰富的标准逻辑功能模块,为今后的FC-AE 航空总线协议簇的节点卡和交换机开发奠定基础。