董博宇,沈淑梅,黃 濤
(1.中航航空電子有限公司,北京 100081;2.洛陽電光設(shè)備研究所,洛陽 471000)
國外對(duì)于FC 協(xié)議的研究進(jìn)步比較早,對(duì)FC 協(xié)議也進(jìn)行了比較深入的研究,制定了FC 族的各類協(xié)議草案。其中,F(xiàn)C-SW協(xié)議作為FC 交換機(jī)設(shè)計(jì)的技術(shù)草案是國外研究的主要成果[1-2]。另外,國外的交換處理芯片及FC 交換機(jī)產(chǎn)品也逐漸成熟,比如Qlogic,Emulex,DDC 等公司。
國內(nèi)對(duì)于FC 交換機(jī)協(xié)議研究基于市場需求的增長也慢慢變多,目前,多家公司已經(jīng)推出FC 交換系列的產(chǎn)品,同時(shí)高校也有了一定的研究成果[3-7],但是作出的FC 商用交換機(jī)產(chǎn)品標(biāo)準(zhǔn)不兼容、功耗和集成度都相對(duì)較低。同樣目前國內(nèi)工程化對(duì)ZYNQ 平臺(tái)的應(yīng)用也日趨成熟[8]。
基于上述問題,本文設(shè)計(jì)一種基于ZYNQ 的十六路FC 光纖交換機(jī),交換機(jī)核心包括十六路光纖接口模塊、FC_MAC 模塊、CROSS_BAR 交換模塊、廣播控制模塊以及負(fù)責(zé)交換機(jī)配置管理的ZYNQ 核模塊,最終實(shí)現(xiàn)了1/2/4 Gb/s 速率的FC 協(xié)議報(bào)文交換功能。該設(shè)計(jì)利用賽靈思公司ZYNQ 器件包含ARM CPU 硬核的特點(diǎn),將傳統(tǒng)的基于FPGA+CPU 架構(gòu)的FC 光纖交換機(jī)進(jìn)行優(yōu)化,使交換機(jī)全部功能模塊都集成在一顆芯片上,提高了硬件設(shè)計(jì)的集成度,增加了FC 交換機(jī)的安全性和可靠性。
FC 光纖交換機(jī)硬件FPGA 模塊核心處理器采用ZYNQ-7000系列SoC 芯片XC7Z100。ZYNQ-7000系列SoC 是Xilinx 推出的一款全可編程片上系統(tǒng)(All Programmable SoC),該芯片集成了Processing System(PS)即為處理器(ARM Cortex A9 MPCore)部分,資源非常的豐富。Programmable Logic(PL)即可編程部分(FPGA),該部分的資源隨SoC 芯片級(jí)別高低不同而不同。隨著嵌入式系統(tǒng)越來越復(fù)雜,功能越來越強(qiáng)大,往往在設(shè)計(jì)中既需要非常靈活的FPGA,又需要處理器去做一些控制,以及配合操作系統(tǒng)使用。
在交換機(jī)設(shè)計(jì)上主要利用ZYNQ 運(yùn)行配置管理軟件模塊,在PL 邏輯上運(yùn)行FC 交換邏輯,PS 端對(duì)交換配置進(jìn)行管理。XC7Z100 芯片PL 與PS 兩者之間的通信使用AXI_HP,AXI_GP,AXI_ACP 三種接口通信,帶寬可達(dá)吉比特。同時(shí)提供16路高速gtx 接口,實(shí)現(xiàn)光纖的16路連接功能。交換機(jī)硬件設(shè)計(jì)圖如圖1所示。
為在ZYNQ 硬件平臺(tái)上實(shí)現(xiàn)FC 交換機(jī),需要對(duì)FC 交換機(jī)的協(xié)議、邏輯架構(gòu)、軟件架構(gòu)進(jìn)行深入研究,本文主要描述FC交換機(jī)的實(shí)現(xiàn)方式,集中描述邏輯和軟件的架構(gòu)設(shè)計(jì),對(duì)FC 交換機(jī)的協(xié)議標(biāo)準(zhǔn)內(nèi)容不作贅述。

圖1 交換機(jī)硬件設(shè)計(jì)圖
基于ZYNQ 的十六路FC-AE 光纖交換機(jī),交換機(jī)邏輯核心包括十六路光纖接口模塊、FC_MAC 模塊、CROSS_BAR 交換模塊、廣播控制模塊、以及負(fù)責(zé)交換機(jī)配置管理的ZYNQ 核模塊,最終實(shí)現(xiàn)了1/2/4 Gb/s 速率的FC 協(xié)議報(bào)文交換功能。
一種基于ZYNQ 的十六路FC 光纖交換機(jī),利用賽靈思公司ZYNQ 芯片,同時(shí)集成十六路光纖接口模塊、FC_MAC 模塊、CROSS_BAR 交換模塊、廣播控制模塊、以及負(fù)責(zé)交換機(jī)配置管理的ZYNQ 核模塊實(shí)現(xiàn)十六路FC 交換機(jī)設(shè)備的完備功能。基于ZYNQ 十六路光纖交換機(jī)架構(gòu)示意圖如圖2所示。

圖2 基于ZYNQ十六路光纖交換機(jī)架構(gòu)示意圖
架構(gòu)設(shè)計(jì)說明如下:
(1)光口0至光口16為光纖交換機(jī)的物理接口,用來連接外部FC 端點(diǎn)設(shè)備。
(2)ZYNQ 芯片內(nèi)部分為PL 邏輯側(cè)以及PS 軟件側(cè)。PL側(cè)集成十六路光口物理通道以及每路對(duì)應(yīng)的FC-MAC 模塊、CrossBar 交換模塊、broadcast_ctrl 廣播控制模塊、glb_reg_cfg 模塊。其中FC-MAC 模塊負(fù)責(zé)FC 光纖協(xié)議的解析和映射,CrossBar 交換模塊負(fù)責(zé)單播數(shù)據(jù)的交換功能、broadcast_ctrl 廣播控制模塊負(fù)責(zé)廣播數(shù)據(jù)的交換功能、glb_reg_cfg 模塊負(fù)責(zé)交換機(jī)全局變量的配置。
(3)ZYNQ 芯片PS 側(cè)運(yùn)行交換機(jī)的配置管理軟件。ZYNQ CORE 除了最小系統(tǒng)外例化的外設(shè)包括十六路BRAM(雙端口RAM),以及AXI 總線。其中,雙口RAM 為ELS(拓展鏈路服務(wù))報(bào)文的收發(fā)數(shù)據(jù)通道。AXI 總線為全局和FC-MAC 模塊的配置通道,各模塊根據(jù)地址進(jìn)行配置空間的劃分,AXI 總線寄存器寫時(shí)序如圖3所示。

圖3 AXI總線寄存器寫時(shí)序
(4)FC 光纖交換機(jī)主要包含六條總線。其中Bus_reg 為交換機(jī)的寄存器配置總線,是PS 與PL 間的慢速配置總線。Bus_els 是交換機(jī)ELS 數(shù)據(jù)報(bào)文的收發(fā)總線,是PS 與PL 間共享存儲(chǔ)空間的數(shù)據(jù)總線。Bus_fc 上行總線與Bus_fc 下行總線是連接FC_MAC 模塊和CrossBar 交換模塊的數(shù)據(jù)總線,完成單播轉(zhuǎn)發(fā)功能。Bus_bc 上行總線與Bus_bc 下行總線是連接FC_MAC 模塊和broadcast_ctrl 廣播控制模塊的數(shù)據(jù)總線,完成廣播轉(zhuǎn)發(fā)功能。
(5)交換機(jī)的配置管理軟件運(yùn)行在ZYNQ 芯片PS 側(cè)的ZYNQ CORE 上,可以根據(jù)實(shí)現(xiàn)協(xié)議的復(fù)雜程度選擇是否運(yùn)行操作系統(tǒng)。
(6)設(shè)備上電工作后,PS 端軟件讀取默認(rèn)配置信息,將需要配置的全局寄存器信息配置到glb_reg_cfg 模塊,將路由信息配置到FC_Mac 模塊,啟動(dòng)ELS 報(bào)文服務(wù)任務(wù)后初始化完成,F(xiàn)C 交換機(jī)具備交換功能。
(7)配置信息的修改可以通過與ZYNQ 芯片連接的上位機(jī)PC 進(jìn)行配置。
FC 光纖交換機(jī)的軟件主要分為交換機(jī)軟件,運(yùn)行在ZYNQ的ARM 上,負(fù)責(zé)交換機(jī)的數(shù)據(jù)管理功能,交換機(jī)客戶端程序主要工作在PC 主機(jī),用來進(jìn)行交換機(jī)參數(shù)配置以及狀態(tài)信息讀取工作,軟件間通過以太網(wǎng)接口通信,交換機(jī)軟件的連接關(guān)系如圖4所示。

圖4 FC交換機(jī)軟件設(shè)計(jì)
交換機(jī)客戶端運(yùn)行在Windows7環(huán)境下,點(diǎn)擊SW_Client.exe即可運(yùn)行管理軟件,通過網(wǎng)絡(luò)對(duì)交換機(jī)進(jìn)行管理,可以對(duì)交換機(jī)進(jìn)行配置操作和狀態(tài)查詢,也可以實(shí)時(shí)顯示交換機(jī)端口狀態(tài)以及統(tǒng)計(jì)信息。
交換機(jī)軟件運(yùn)行在ZYNQ 上,基于ZYNQ 的邏輯架構(gòu)跑通VxWorks6.9系統(tǒng),應(yīng)用軟件通過片外FLASH 存儲(chǔ)器加載到系統(tǒng)中。支持1G、2G 和4G 速率配置,最大支持256條路由配置,支持單播、組播和廣播配置,支持時(shí)鐘同步和端口鏡像功能等配置。支持ELS 發(fā)送功能,支持從節(jié)點(diǎn)卡和交換機(jī)本地端口接收ELS功能。FC 交換機(jī)軟件初始化流程如圖5所示。
FC 交換機(jī)測試平臺(tái)包含自研交換機(jī)一臺(tái)、FC 節(jié)點(diǎn)卡若干、VIAVI 分析儀一臺(tái)。組網(wǎng)連線如圖6如示。

圖5 FC交換機(jī)軟件設(shè)計(jì)

圖6 測試平臺(tái)連接網(wǎng)絡(luò)示意圖
該系統(tǒng)經(jīng)過了大量的各子系統(tǒng)的測試,以及系統(tǒng)級(jí)的聯(lián)調(diào)測試,實(shí)現(xiàn)關(guān)鍵技術(shù)指標(biāo)如表1所示。

表1 關(guān)鍵技術(shù)指標(biāo)
實(shí)驗(yàn)平臺(tái)方面采用交換機(jī)硬件平臺(tái)、ASM 子卡(不同廠商)、VIAVI 分析儀/壓力測試儀等現(xiàn)有不同平臺(tái),對(duì)交換機(jī)進(jìn)行功能、性能、穩(wěn)定性等多方面進(jìn)行驗(yàn)證,測試結(jié)果表明交換機(jī)具有支持多平臺(tái)、設(shè)計(jì)靈活、穩(wěn)定可靠的優(yōu)勢。
邏輯方面基于Xilinx ZYNQ 開發(fā),Verilog 語言設(shè)計(jì),確保邏輯可控。仿真通過Vivado2018.1自帶仿真工具進(jìn)行仿真驗(yàn)證,測試驗(yàn)證采用靈活的ILA 實(shí)時(shí)抓取波形,和仿真進(jìn)行配合使用,經(jīng)過大量的測試,代碼運(yùn)行做到了穩(wěn)定可靠。
軟件方面設(shè)計(jì)兩種配置方式:界面控制和串口命令行錄入的方式,其中界面控制設(shè)計(jì)友好,大大降低了用戶對(duì)交換機(jī)的使用難度。FC 交換機(jī)實(shí)物圖如圖7所示。

圖7 FC交換機(jī)實(shí)物圖
基于FC-SW 協(xié)議的16 端口交換機(jī)技術(shù)研制項(xiàng)目,基于FPGA ZYNQ 邏輯器件實(shí)現(xiàn)了基于FC-SW 協(xié)議的交換機(jī),實(shí)現(xiàn)了能夠與不同廠商FC 端點(diǎn)卡完成數(shù)據(jù)交換,達(dá)到了預(yù)期設(shè)計(jì)指標(biāo)與目標(biāo)。
用戶使用上首次在FC 總線相關(guān)產(chǎn)品上開發(fā)了基于QT 的界面配置功能,界面設(shè)計(jì)友好,大大降低了交換機(jī)使用的難度,同時(shí)也為公司其他后繼交換機(jī)項(xiàng)目乃至嵌入式產(chǎn)品開發(fā)項(xiàng)目提供了參考和一定的技術(shù)積累。
基于FC-SW 協(xié)議的16 端口交換機(jī)開發(fā)工作基于Xilinx ZYNQ 硬件平臺(tái),滿足了低成本與低功耗的要求。同時(shí)進(jìn)一步積累了豐富的標(biāo)準(zhǔn)邏輯功能模塊,為今后的FC-AE 航空總線協(xié)議簇的節(jié)點(diǎn)卡和交換機(jī)開發(fā)奠定基礎(chǔ)。