董博宇,沈淑梅,黃 濤
(1.中航航空電子有限公司,北京 100081;2.洛陽電光設(shè)備研究所,洛陽 471000)
國外對于FC 協(xié)議的研究進步比較早,對FC 協(xié)議也進行了比較深入的研究,制定了FC 族的各類協(xié)議草案。其中,F(xiàn)C-SW協(xié)議作為FC 交換機設(shè)計的技術(shù)草案是國外研究的主要成果[1-2]。另外,國外的交換處理芯片及FC 交換機產(chǎn)品也逐漸成熟,比如Qlogic,Emulex,DDC 等公司。
國內(nèi)對于FC 交換機協(xié)議研究基于市場需求的增長也慢慢變多,目前,多家公司已經(jīng)推出FC 交換系列的產(chǎn)品,同時高校也有了一定的研究成果[3-7],但是作出的FC 商用交換機產(chǎn)品標(biāo)準(zhǔn)不兼容、功耗和集成度都相對較低。同樣目前國內(nèi)工程化對ZYNQ 平臺的應(yīng)用也日趨成熟[8]。
基于上述問題,本文設(shè)計一種基于ZYNQ 的十六路FC 光纖交換機,交換機核心包括十六路光纖接口模塊、FC_MAC 模塊、CROSS_BAR 交換模塊、廣播控制模塊以及負(fù)責(zé)交換機配置管理的ZYNQ 核模塊,最終實現(xiàn)了1/2/4 Gb/s 速率的FC 協(xié)議報文交換功能。該設(shè)計利用賽靈思公司ZYNQ 器件包含ARM CPU 硬核的特點,將傳統(tǒng)的基于FPGA+CPU 架構(gòu)的FC 光纖交換機進行優(yōu)化,使交換機全部功能模塊都集成在一顆芯片上,提高了硬件設(shè)計的集成度,增加了FC 交換機的安全性和可靠性。
FC 光纖交換機硬件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 芯片級別高低不同而不同。隨著嵌入式系統(tǒng)越來越復(fù)雜,功能越來越強大,往往在設(shè)計中既需要非常靈活的FPGA,又需要處理器去做一些控制,以及配合操作系統(tǒng)使用。
在交換機設(shè)計上主要利用ZYNQ 運行配置管理軟件模塊,在PL 邏輯上運行FC 交換邏輯,PS 端對交換配置進行管理。XC7Z100 芯片PL 與PS 兩者之間的通信使用AXI_HP,AXI_GP,AXI_ACP 三種接口通信,帶寬可達吉比特。同時提供16路高速gtx 接口,實現(xiàn)光纖的16路連接功能。交換機硬件設(shè)計圖如圖1所示。
為在ZYNQ 硬件平臺上實現(xiàn)FC 交換機,需要對FC 交換機的協(xié)議、邏輯架構(gòu)、軟件架構(gòu)進行深入研究,本文主要描述FC交換機的實現(xiàn)方式,集中描述邏輯和軟件的架構(gòu)設(shè)計,對FC 交換機的協(xié)議標(biāo)準(zhǔn)內(nèi)容不作贅述。
圖1 交換機硬件設(shè)計圖
基于ZYNQ 的十六路FC-AE 光纖交換機,交換機邏輯核心包括十六路光纖接口模塊、FC_MAC 模塊、CROSS_BAR 交換模塊、廣播控制模塊、以及負(fù)責(zé)交換機配置管理的ZYNQ 核模塊,最終實現(xiàn)了1/2/4 Gb/s 速率的FC 協(xié)議報文交換功能。
一種基于ZYNQ 的十六路FC 光纖交換機,利用賽靈思公司ZYNQ 芯片,同時集成十六路光纖接口模塊、FC_MAC 模塊、CROSS_BAR 交換模塊、廣播控制模塊、以及負(fù)責(zé)交換機配置管理的ZYNQ 核模塊實現(xiàn)十六路FC 交換機設(shè)備的完備功能?;赯YNQ 十六路光纖交換機架構(gòu)示意圖如圖2所示。
圖2 基于ZYNQ十六路光纖交換機架構(gòu)示意圖
架構(gòu)設(shè)計說明如下:
(1)光口0至光口16為光纖交換機的物理接口,用來連接外部FC 端點設(shè)備。
(2)ZYNQ 芯片內(nèi)部分為PL 邏輯側(cè)以及PS 軟件側(cè)。PL側(cè)集成十六路光口物理通道以及每路對應(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é)交換機全局變量的配置。
(3)ZYNQ 芯片PS 側(cè)運行交換機的配置管理軟件。ZYNQ CORE 除了最小系統(tǒng)外例化的外設(shè)包括十六路BRAM(雙端口RAM),以及AXI 總線。其中,雙口RAM 為ELS(拓展鏈路服務(wù))報文的收發(fā)數(shù)據(jù)通道。AXI 總線為全局和FC-MAC 模塊的配置通道,各模塊根據(jù)地址進行配置空間的劃分,AXI 總線寄存器寫時序如圖3所示。
圖3 AXI總線寄存器寫時序
(4)FC 光纖交換機主要包含六條總線。其中Bus_reg 為交換機的寄存器配置總線,是PS 與PL 間的慢速配置總線。Bus_els 是交換機ELS 數(shù)據(jù)報文的收發(fā)總線,是PS 與PL 間共享存儲空間的數(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)交換機的配置管理軟件運行在ZYNQ 芯片PS 側(cè)的ZYNQ CORE 上,可以根據(jù)實現(xiàn)協(xié)議的復(fù)雜程度選擇是否運行操作系統(tǒng)。
(6)設(shè)備上電工作后,PS 端軟件讀取默認(rèn)配置信息,將需要配置的全局寄存器信息配置到glb_reg_cfg 模塊,將路由信息配置到FC_Mac 模塊,啟動ELS 報文服務(wù)任務(wù)后初始化完成,F(xiàn)C 交換機具備交換功能。
(7)配置信息的修改可以通過與ZYNQ 芯片連接的上位機PC 進行配置。
FC 光纖交換機的軟件主要分為交換機軟件,運行在ZYNQ的ARM 上,負(fù)責(zé)交換機的數(shù)據(jù)管理功能,交換機客戶端程序主要工作在PC 主機,用來進行交換機參數(shù)配置以及狀態(tài)信息讀取工作,軟件間通過以太網(wǎng)接口通信,交換機軟件的連接關(guān)系如圖4所示。
圖4 FC交換機軟件設(shè)計
交換機客戶端運行在Windows7環(huán)境下,點擊SW_Client.exe即可運行管理軟件,通過網(wǎng)絡(luò)對交換機進行管理,可以對交換機進行配置操作和狀態(tài)查詢,也可以實時顯示交換機端口狀態(tài)以及統(tǒng)計信息。
交換機軟件運行在ZYNQ 上,基于ZYNQ 的邏輯架構(gòu)跑通VxWorks6.9系統(tǒng),應(yīng)用軟件通過片外FLASH 存儲器加載到系統(tǒng)中。支持1G、2G 和4G 速率配置,最大支持256條路由配置,支持單播、組播和廣播配置,支持時鐘同步和端口鏡像功能等配置。支持ELS 發(fā)送功能,支持從節(jié)點卡和交換機本地端口接收ELS功能。FC 交換機軟件初始化流程如圖5所示。
FC 交換機測試平臺包含自研交換機一臺、FC 節(jié)點卡若干、VIAVI 分析儀一臺。組網(wǎng)連線如圖6如示。
圖5 FC交換機軟件設(shè)計
圖6 測試平臺連接網(wǎng)絡(luò)示意圖
該系統(tǒng)經(jīng)過了大量的各子系統(tǒng)的測試,以及系統(tǒng)級的聯(lián)調(diào)測試,實現(xiàn)關(guān)鍵技術(shù)指標(biāo)如表1所示。
表1 關(guān)鍵技術(shù)指標(biāo)
實驗平臺方面采用交換機硬件平臺、ASM 子卡(不同廠商)、VIAVI 分析儀/壓力測試儀等現(xiàn)有不同平臺,對交換機進行功能、性能、穩(wěn)定性等多方面進行驗證,測試結(jié)果表明交換機具有支持多平臺、設(shè)計靈活、穩(wěn)定可靠的優(yōu)勢。
邏輯方面基于Xilinx ZYNQ 開發(fā),Verilog 語言設(shè)計,確保邏輯可控。仿真通過Vivado2018.1自帶仿真工具進行仿真驗證,測試驗證采用靈活的ILA 實時抓取波形,和仿真進行配合使用,經(jīng)過大量的測試,代碼運行做到了穩(wěn)定可靠。
軟件方面設(shè)計兩種配置方式:界面控制和串口命令行錄入的方式,其中界面控制設(shè)計友好,大大降低了用戶對交換機的使用難度。FC 交換機實物圖如圖7所示。
圖7 FC交換機實物圖
基于FC-SW 協(xié)議的16 端口交換機技術(shù)研制項目,基于FPGA ZYNQ 邏輯器件實現(xiàn)了基于FC-SW 協(xié)議的交換機,實現(xiàn)了能夠與不同廠商FC 端點卡完成數(shù)據(jù)交換,達到了預(yù)期設(shè)計指標(biāo)與目標(biāo)。
用戶使用上首次在FC 總線相關(guān)產(chǎn)品上開發(fā)了基于QT 的界面配置功能,界面設(shè)計友好,大大降低了交換機使用的難度,同時也為公司其他后繼交換機項目乃至嵌入式產(chǎn)品開發(fā)項目提供了參考和一定的技術(shù)積累。
基于FC-SW 協(xié)議的16 端口交換機開發(fā)工作基于Xilinx ZYNQ 硬件平臺,滿足了低成本與低功耗的要求。同時進一步積累了豐富的標(biāo)準(zhǔn)邏輯功能模塊,為今后的FC-AE 航空總線協(xié)議簇的節(jié)點卡和交換機開發(fā)奠定基礎(chǔ)。