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