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