


摘 要: 機載FC網(wǎng)絡(luò)節(jié)點存在測試困難的問題,為了提高FC測試系統(tǒng)的效率,從簡化主機控制出發(fā),設(shè)計一種兩級PCIE交換開關(guān)。首先介紹兩級PCIE交換開關(guān)的實現(xiàn)原理,其次從硬件實現(xiàn)和軟件初始化方面說明其實現(xiàn)要點,最后在具體FC測試系統(tǒng)進行了測試。實驗結(jié)果表明,設(shè)計的兩級PCIE交換開關(guān)正確可行,能夠有效提高FC節(jié)點測試的效率。
關(guān)鍵詞: PCIE; 交換開關(guān); FC測試; PEX8648
中圖分類號: TN926?34; TN919.82 文獻標(biāo)識碼: A 文章編號: 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網(wǎng)絡(luò)具有通信速率高、延遲小、抗干擾能力強等特點,通信速率可以達到2 Gb/s,甚至更高,傳統(tǒng)的PCI/PCI?X總線已經(jīng)不能滿足系統(tǒng)對主機接口的帶寬要求。PCIE總線單通道單向速率為2.5 Gb/s,同時在軟件層保持對PCI協(xié)議的兼容,成為主機接口的理想選擇。
目前機載FC網(wǎng)絡(luò)節(jié)點主要采用FC通信接口和PCIE主機接口結(jié)合來完成通信。面對日益龐大的機載網(wǎng)絡(luò),需要設(shè)計一個高效的測試系統(tǒng)來測試各FC節(jié)點的通信功能。該測試系統(tǒng)必須具有成本小、測試效率高、實現(xiàn)簡單等特點。
本文根據(jù)PCIE總線的特點,從簡化主機控制方面出發(fā),設(shè)計了一種兩級PCIE交換開關(guān),使用單主機完成多個FC節(jié)點的測試。通過在具體FC測試系統(tǒng)中的應(yīng)用,展現(xiàn)兩級PCIE交換開關(guān)的實現(xiàn)方法。最終通過測試表明該設(shè)計的正確性。
1 設(shè)計原理
PCIE是一種高速串行I/O互聯(lián)總線,為互連設(shè)備提供高速、高性能、點對點的通信鏈路。PCIE總線系統(tǒng)主要由根復(fù)合體、交換開關(guān)和端點組成[1]。
在PCIE總線系統(tǒng)初始化時,需要掃描PCIE總線,識別總線上的所有端點、對總線進行編號并對所有的設(shè)備進行空間配置。PCIE掃描使用深度掃描策略,從根復(fù)合體開始,編號為總線0,交換開關(guān)內(nèi)部為虛擬的PCI橋?PCI橋。PCIE總線是一種點對點通信協(xié)議。CPU需要通過交換開關(guān)實現(xiàn)多臺PCIE設(shè)備互連。在設(shè)計FC測試系統(tǒng)時,如果不采用交換開關(guān),就需要使用多個CPU控制FC節(jié)點完成通信測試,既增加測試系統(tǒng)的設(shè)計成本,也降低了系統(tǒng)的測試效率;如果采用單級交換開關(guān),交換開關(guān)的端口數(shù)隨測試的FC節(jié)點數(shù)目增多,系統(tǒng)實現(xiàn)的復(fù)雜度增大。為了簡化系統(tǒng)實現(xiàn)的復(fù)雜度,設(shè)計了一種兩級PCIE交換開關(guān),如圖1所示。通過增加交換開關(guān)的數(shù)目來擴展被測端點的數(shù)目,使用單個CPU完成多個FC節(jié)點的測試。
第一級PCIE交換開關(guān)通過上游端口與CPU進行通信,下游端口連接第二級PCIE交換開關(guān)的上游端口,第二級交換開關(guān)的下游端口連接各個FC節(jié)點。在系統(tǒng)初始化時,第二級PCIE交換開關(guān)及其下游節(jié)點整體作為第一級PCIE交換開關(guān)的下游節(jié)點進行配置和空間分配,然后再由第二級PCIE交換開關(guān)對其下游節(jié)點進行配置和空間分配。
2 具體實現(xiàn)
為了展現(xiàn)兩級PCIE交換開關(guān)的實現(xiàn)要點,設(shè)計一種FC測試系統(tǒng)。該測試系統(tǒng)包含1個CPU、1個兩級PCIE交換開關(guān)和6個FC節(jié)點。CPU通過兩級PCIE交換開關(guān)實現(xiàn)6個FC節(jié)點的通信測試。測試系統(tǒng)架構(gòu)如圖2所示。
CPU選擇基于PowerPC架構(gòu)的8548處理器。該芯片集成了PCIE接口,同時支持基于VxWorks操作系統(tǒng)的程序開發(fā)[2]。FC節(jié)點使用集成高速RocketIO內(nèi)核的Xilinx公司V5系列芯片實現(xiàn)。兩級PCIE交換開關(guān)采用成熟、可靠的PCIE交換芯片,結(jié)合供電、時鐘及復(fù)位電路實現(xiàn)全部功能。
2.1 硬件架構(gòu)
2.1.1 主要元器件選擇
PCIE交換芯片選擇PLX公司的PEX8648芯片。該芯片有48Lane信道,12個端口,可以采用靈活的方式進行配置,在本系統(tǒng)中配置為1個4xPCIE和11個4xPCIE。
供電使用Linear公司的LTM4600和LTM4620芯片。LTM4600芯片為單通道直流電源轉(zhuǎn)換器,輸出電壓范圍為0.6~5 V,最大輸出電流10 A。LTM4620芯片為雙通道直流電源轉(zhuǎn)換器,每個通道的輸出電壓范圍0.6~5 V,最大輸出電流8 A。
時鐘驅(qū)動器選用TI公司的SN65LVDS108芯片。該芯片為1分8的LVDS驅(qū)動器,可以傳輸最大400 MHz的時鐘,傳輸延遲小于4.7 ns。復(fù)位電路選用MAXIM公司的MAX706芯片。
2.1.2 時鐘設(shè)計
發(fā)送器以2.5 Gb/s的速率輸出數(shù)據(jù),實現(xiàn)該速率的時鐘必須精確在中心頻率±300 ppm內(nèi)。它最大允許每1 666個時鐘相位偏離1個時鐘[1]。時鐘輸入的方式有本板時鐘和外部輸入時鐘兩種,本設(shè)計采用外部輸入時鐘。將1路輸入時鐘通過時鐘驅(qū)動器分為8路同步的時鐘信號,保證交換芯片與節(jié)點使用的時鐘同源。
2.1.3 電源設(shè)計
PEX8648芯片的內(nèi)核和高速SerDes供電電壓為1.0 V,鎖相環(huán)和I/O供電電壓為2.5 V。PEX8648芯片對電源上電順序沒有要求,不需要額外的芯片控制上電順序。SN65LVDS108芯片和MAX706芯片的電源電壓為3.3 V。
該兩級交換開關(guān)需要1.0 V,2.5 V和3.3 V三種電源。使用LTM4600作為1.0 V電源轉(zhuǎn)換芯片,使用LTM4620作為2.5 V和3.3 V電源轉(zhuǎn)換芯片。
2.1.4 復(fù)位設(shè)計
如圖3所示,主機復(fù)位與手動復(fù)位通過邏輯與門后作為復(fù)位芯片MAX706的輸入,將復(fù)位芯片的輸出直接提供給交換芯片與所有FC節(jié)點。
2.1.5 布板要求
在PCIE接口的Lane信道上傳輸?shù)氖歉咚俨罘中盘枺趦蓚€設(shè)備之間互聯(lián)的Lane信道需要加入電容隔離直流信號。電容尺寸為0402,小的尺寸可以降低電容的串聯(lián)等效電感,提高電容在高頻信號區(qū)域的使用性能[3]。電容值在75~200 nF之間,耦合電容必須靠近發(fā)送端擺放。
2.2 軟件初始化
系統(tǒng)上電后需要對交換開關(guān)和節(jié)點進行初始化,初始化流程如圖4所示。在CPU 8548完成PCIE控制器初始化后,對所有的PCIE交換開關(guān)進行總線編號;對所有的交換開關(guān)和節(jié)點進行空間配置;掃描PCIE鏈路上的PCIE設(shè)備。
2.2.1 對所有PCIE交換開關(guān)進行總線編號
在初始化時,首先對第一級交換開關(guān)進行總線編號,然后對第二級交換開關(guān)進行總線編號。總線編號結(jié)果見圖5。
通過對PCIE交換開關(guān)進行總線編號,交換開關(guān)才能準(zhǔn)確掌握它所連接的PCIE總線情況。
主總線號、二級總線號和從屬總線號三個寄存器用于標(biāo)志該交換開關(guān)連接的PCIE總線,主總線號寄存器含有連接至交換開關(guān)上游端的總線號,二級總線號寄存器含有與交換開關(guān)下游端連接的總線號,從屬總線號寄存器含有交換開關(guān)下游端上的最高總線號。
2.2.2 掃描PCIE總線上的設(shè)備
PCIE總線掃描的原理是從總線0開始掃描,對于每條總線,系統(tǒng)都會掃描所有(總線號、設(shè)備號、功能號),讀出每個設(shè)備的Device ID和Vendor ID寄存器。如果這兩個寄存器的值是有效值(非0xFFFF),則說明當(dāng)前設(shè)備有效。再讀取該設(shè)備的Header Type寄存器,如果為1,則表明當(dāng)前設(shè)備是交換開關(guān),否則是PCIE設(shè)備。
2.2.3 空間配置
當(dāng)系統(tǒng)需要訪問PCIE設(shè)備時,它需要產(chǎn)生Configuration,Memory或者I/O的讀寫操作,對于Memory或I/O的訪問方式,需要定義一個地址范圍,落在地址范圍內(nèi)的操作認為是相應(yīng)的讀寫操作[2]。測試系統(tǒng)中所有PCIE交換開關(guān)和節(jié)點的地址空間需要包含在8548的PCIE控制器分配的空間內(nèi)。第二級交換開關(guān)和其下游節(jié)點的地址空間需要包含在對應(yīng)第一級交換開關(guān)下游端口的分配空間內(nèi)。
3 測 試
為了驗證使用兩級PCIE交換開關(guān)的FC測試系統(tǒng)是否工作正常,編寫測試程序?qū)C測試系統(tǒng)進行測試。
在系統(tǒng)上電穩(wěn)定后,測試程序首先完成CPU 8548的PCIE控制器初始化,隨后查找第一級交換開關(guān),查找成功后配置交換開關(guān)并分配交換開關(guān)各端口的基地址和空間大小,然后初次掃描PCIE鏈路。接著查找第二級交換開關(guān),查找成功后配置交換開關(guān)并分配交換開關(guān)各端口的基地址和空間大小,隨后再次掃描PCIE鏈路。PCIE鏈路初始化成功,系統(tǒng)開始FC測試。本測試系統(tǒng)使用的交換開關(guān)芯片PEX8648的Vendor ID和Device ID分別為0x10B5和0x8648,F(xiàn)C節(jié)點的Vendor ID和Device ID分別為0x0FF1和0x000A。圖6為測試程序運行的結(jié)果,其中bus為總線號,dev為設(shè)備號,func為功能號,did的高16位為Vendor ID,低16位為Device ID。結(jié)合圖5可以看出,初次掃描PCIE鏈路完成第一級交換開關(guān)的初始化,再次掃描PCIE鏈路完成第二級交換開關(guān)和節(jié)點的初始化。兩級交換開關(guān)初始化完成后,CPU控制FC節(jié)點進行FC測試。
4 結(jié) 語
PCIE總線是當(dāng)前機載FC網(wǎng)絡(luò)采用的主流總線,本文通過對PCIE總線的介紹,設(shè)計了一種簡化主機接口控制的兩級PCIE交換開關(guān),從軟硬件兩個方面介紹了其實現(xiàn)要點。實際FC測試系統(tǒng)的測試結(jié)果表明采用兩級PCIE交換開關(guān)可以簡化系統(tǒng)設(shè)計,方法可行,可為類似應(yīng)用提供參考。
參考文獻
[1] BUDRUK R, ANDERSON D, SHANLEY T. PCI Express系統(tǒng)體系結(jié)構(gòu)標(biāo)準(zhǔn)教材[M].田玉敏,王崧,張波,譯.北京:電子工業(yè)出版社,2005.
[2] 李明,李霞,周軼男.基于MPC8548嵌入式系統(tǒng)PCI?Express設(shè)備驅(qū)動開發(fā)[J].電子技術(shù),2011,38(1):4?6.
[3] 王學(xué)寶,鄭波祥,周群.一種基于PEX8532的交換板設(shè)計[J].工業(yè)控制計算機,2009,22(2):11?12.
[4] 張偉棟,劉志敏.基于PowerPC8640的PCI?E總線接口設(shè)計[J].航空計算技術(shù),2011,41(3):119?121.
[5] PCI?SIG. PCI Express base specification revision 2.0 [EB/OL]. [2006?09?11]. http://www.pcisig.com/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://www.plxtech.com.
[7] 張卓然,葉廣強,劉華偉.一種機載單站對固定目標(biāo)的無源定位方法[J].計算機仿真,2015,32(2):92?95.