基于PCIE的多FC子卡測(cè)試設(shè)備的設(shè)計(jì)與實(shí)現(xiàn)
0 引言
本文引用地址:http://cafeforensic.com/article/201610/308707.htmFC(光纖通道,是Fiber Channel的縮寫(xiě))是美國(guó)國(guó)家標(biāo)準(zhǔn)委員會(huì)(ANSI)的X3T11工作組于1988年提出的一種高速串行傳輸協(xié)議,具有高帶寬、高實(shí)時(shí)性、高可靠性、擴(kuò)展性好、傳輸速率高、抗干擾性強(qiáng)、拓?fù)浣Y(jié)構(gòu)和服務(wù)類(lèi)型靈活、支持多種上層協(xié)議和底層傳輸介質(zhì)等特性,為了適應(yīng)航空電子環(huán)境的應(yīng)用,光纖通道提供了一組在航空電子環(huán)境中應(yīng)用的協(xié)議子集FC-AE(fiber channel avionics environment),它規(guī)范了民用和軍用航空光纖通道交換網(wǎng)絡(luò)與環(huán)路拓?fù)溥B接設(shè)備的選擇,F(xiàn)C—AE基于匿名簽署消息(ASM)的上層映射FC-AE-ASM,具有消息傳輸安全、低延時(shí)的特點(diǎn),適用于航空電子中處理器與傳感器和顯示器之間的通信。因此,F(xiàn)C已成為新一代先進(jìn)綜合式航空電子網(wǎng)絡(luò)互連的首選方案。
為了保證FC產(chǎn)品能夠滿(mǎn)足機(jī)載應(yīng)用要求,為FC產(chǎn)品提供測(cè)試、試驗(yàn)的平臺(tái),設(shè)計(jì)可靠、高效的機(jī)載FC設(shè)備的測(cè)試設(shè)備十分必要。FC子卡是廣泛應(yīng)用在航電系統(tǒng)中的一種FC產(chǎn)品,FC子卡實(shí)現(xiàn)了FC節(jié)點(diǎn)機(jī)的功能,負(fù)責(zé)為FC網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)提供FC通信連接等功能,為多種應(yīng)用數(shù)據(jù)提供通信支撐。
文章針對(duì)被測(cè)設(shè)備的特點(diǎn),提出了一種基于PCIE接口的多FC子卡的測(cè)試設(shè)備的設(shè)計(jì)方法,采用PowerPC處理器的PCIE接口,通過(guò)PCIE交換擴(kuò)展多路PCIE總線(xiàn),從而一次可以進(jìn)行多個(gè)FC子卡的試驗(yàn)測(cè)試,經(jīng)過(guò)驗(yàn)證該測(cè)試設(shè)備通信穩(wěn)定可靠,具有較高的實(shí)用性、通用性和擴(kuò)展性。
1 多FC子卡測(cè)試設(shè)備總體結(jié)構(gòu)
1.1 被測(cè)對(duì)象分析
FC子卡是嵌入式的FC節(jié)點(diǎn)機(jī),作為航電子系統(tǒng)接入FC網(wǎng)絡(luò)的接口,一方面具備與航空電子系統(tǒng)設(shè)備進(jìn)行信息交互的接口,即FC接口,支持FC—PI、Fc—FS和FC—AE—AsM協(xié)議,F(xiàn)C接口鏈路速率2.125Gbps。另一方面擁有與處理器進(jìn)行數(shù)據(jù)交互的接口,從而可以將網(wǎng)絡(luò)上的數(shù)據(jù)提交給應(yīng)用,也可以將應(yīng)用的數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)上。因此設(shè)計(jì)測(cè)試設(shè)備時(shí)主要從以上兩個(gè)方面考慮。
考慮到結(jié)構(gòu)和速率等要求,F(xiàn)C子卡采用X4PCIE主機(jī)接口,工作頻率為2.5Gb/s,使用標(biāo)準(zhǔn)的XMC結(jié)構(gòu)。由FGPA、配置電路、RS232接口、FLASH接口、時(shí)鐘電路、復(fù)位電路、電源電路組成,F(xiàn)PGA用于實(shí)現(xiàn)FC接口、PCIE接口及片上處理器,硬件框圖如圖1所示。FC子卡主要實(shí)現(xiàn)了FC—AE—ASM通信、時(shí)間同步、網(wǎng)絡(luò)管理等功能,保證航電數(shù)椐傳輸?shù)耐暾院涂煽啃浴?/p>
1.2 測(cè)試設(shè)備設(shè)計(jì)
多FC子卡測(cè)試設(shè)備設(shè)計(jì)時(shí)需要從以下幾方面考慮:
(1)滿(mǎn)足測(cè)試產(chǎn)品功能、性能的要求;
(2)考慮在溫度沖擊、濕熱等惡劣的試驗(yàn)環(huán)境下使用;
(3)考慮一次試驗(yàn)中盡可能多的測(cè)試被測(cè)設(shè)備,提高資源利用率和試驗(yàn)效率。
由于FC子卡對(duì)外主要的接口為PCIE接口和FC接口,因此設(shè)計(jì)時(shí)必須通過(guò)以上兩個(gè)接口對(duì)設(shè)備進(jìn)行訪(fǎng)問(wèn)和測(cè)試。對(duì)于PCIE接口,使用具有PCIE接口的PowerPC處理器模塊,且該模塊需要具備以太網(wǎng)、FLASH、SRAM、串口等必備的外圍接口,從而可以在其上進(jìn)行軟件開(kāi)發(fā)和調(diào)測(cè)。同時(shí)為了一次測(cè)試多個(gè)FC子卡,需要使用PCIE交換擴(kuò)展多路PCIE總線(xiàn)。對(duì)于FC接口,F(xiàn)C子卡使用FPGA進(jìn)行實(shí)現(xiàn),輸出FC電信號(hào)。為了測(cè)試FC協(xié)議符合性、功能及性能等一系列內(nèi)容,連接外部測(cè)試設(shè)備,將電信號(hào)轉(zhuǎn)換為光信號(hào),需要設(shè)計(jì)轉(zhuǎn)接板,一方面通過(guò)PCIE接口連接母板和FC子卡,另一方面通過(guò)光電轉(zhuǎn)換電路將FC電信號(hào)和光信號(hào)進(jìn)行轉(zhuǎn)換。
為了滿(mǎn)足高帶寬、通用性和惡劣的試驗(yàn)環(huán)境下使用,采用3U VPX結(jié)構(gòu)設(shè)計(jì),通過(guò)母板和轉(zhuǎn)接板連接主機(jī)和子卡。測(cè)試設(shè)備的總體框架如圖1所示。
圖2多FC子卡測(cè)試設(shè)備總體框架
2 關(guān)鍵技術(shù)研究
多FC子卡測(cè)試設(shè)備設(shè)計(jì)的關(guān)鍵點(diǎn)在于PCIE交換和PCIE配置,下面就PCIE交換的選擇和PCIE配置的機(jī)制進(jìn)行描述。
2.1 PCIE交換
選擇PCIE交換芯片時(shí),需考慮兩點(diǎn),首先根據(jù)系統(tǒng)需求和上行和下行端口連接的PCIE設(shè)備的線(xiàn)寬、速率、數(shù)目等要求,選擇合適的配置,其次選擇PCIE交換為透明橋還是非透明橋,一般在單處理器系統(tǒng)中使用透明橋,在進(jìn)行多個(gè)處理器系統(tǒng)連接時(shí)采用非透明橋。
2.2 PCIE總線(xiàn)配置機(jī)制
PCIE和PCI環(huán)境一樣,各種設(shè)備都要連接在樹(shù)形總線(xiàn)上,包含一種或多種功能,該設(shè)計(jì)中FC子卡為單功能設(shè)備。當(dāng)系統(tǒng)首次啟動(dòng)時(shí),只有處理器中根聯(lián)合體(RC)中的總線(xiàn)0才有編號(hào),其他總線(xiàn)還有待發(fā)現(xiàn)。配置軟件使用深度優(yōu)先搜索算法掃描PCIE總線(xiàn)樹(shù)上的所有PCIE設(shè)備,并以此分配總線(xiàn)號(hào)和存儲(chǔ)器地址空間。
對(duì)于RC或者PCIE交換使用Type1配置頭,必須初始化主總線(xiàn)(Primary Bus Number)、二級(jí)總線(xiàn)(Secondary Bus Number)和從總線(xiàn)(Subordinate BusNumber)寄存器,主總線(xiàn)為RC或者橋上游的總線(xiàn),二級(jí)總線(xiàn)為下游的總線(xiàn),從總線(xiàn)是從下向上分配的,為當(dāng)前PCIE子樹(shù)中編號(hào)最大的總線(xiàn)。需要注意的是PCIE交換中有多個(gè)端口,每個(gè)端口都有一個(gè)P2P的橋,內(nèi)部有一條虛總線(xiàn),配置時(shí)根據(jù)數(shù)據(jù)手冊(cè)進(jìn)行配置。
在橋管理的PCIE子樹(shù)中有許多PCIE設(shè)備,這些PCIE設(shè)備可能有自己的存儲(chǔ)器地址空間需要被CPU訪(fǎng)問(wèn),通過(guò)配置橋的Mernory Limit和Memory Base寄存器,即可實(shí)現(xiàn)對(duì)目標(biāo)設(shè)備空間的訪(fǎng)問(wèn)。這兩個(gè)寄存器用于存放PCIE子樹(shù)上所有設(shè)備的存儲(chǔ)器地址空間集合的基地址和大小。
3 硬件設(shè)計(jì)
多FC子卡測(cè)試設(shè)備硬件由CPU模塊、PCIE交換電路、母板和轉(zhuǎn)接板組成,以上組成部分在機(jī)箱中集成,下面主要對(duì)CPU模塊和PCIE交換電路進(jìn)行描述:
3.1 CPU模塊設(shè)計(jì)
在本測(cè)試設(shè)備中,CPU模塊以MPC858處理器為核心,通過(guò)連接FLASH、內(nèi)存、PCIE接口、網(wǎng)口、串口以及其他接口控制電路實(shí)現(xiàn)。如圖3,在CPU模塊中移植嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks,對(duì)設(shè)備驅(qū)動(dòng)進(jìn)行二次開(kāi)發(fā),繼而以VxWroks為軟件開(kāi)發(fā)平臺(tái),開(kāi)發(fā)測(cè)試程序,實(shí)現(xiàn)板卡的測(cè)試任務(wù)。
3.2 PCIE交換電路
PCIE交換芯片選用PLX公司的新一代非阻塞、低延遲交換芯片,支持48Lane,12個(gè)PCIE端口,通過(guò)靈活的硬件配置和軟件編程使PCIE交換支持多種端口配置。在本設(shè)計(jì)中,將交換芯片配置為透明橋,且由于FC子卡為4Lane PCIE接口,配置1個(gè)4Lane上行端口和11個(gè)4Lane下行端口,可以滿(mǎn)足測(cè)試設(shè)備的功能要求。
4 軟件設(shè)計(jì)
依據(jù)FC子卡測(cè)試設(shè)備的功能需求和硬件平臺(tái),測(cè)試軟件運(yùn)行在VxWorks5.5操作系統(tǒng)上,主要包括三部分軟件,PCIE配置軟件、FC驅(qū)動(dòng)軟件和FC測(cè)試軟件。PCIE配置軟件主要用于配置CPU、PCIE交換芯片和FC子卡的PCIE接口,通過(guò)配置才能從CPU端訪(fǎng)問(wèn)FC子卡。FC驅(qū)動(dòng)軟件作為FC子卡的驅(qū)動(dòng)軟件,必須在PCIE配置成功后,才能經(jīng)過(guò)PCIE接口訪(fǎng)問(wèn)FC子卡的硬件資源、控制FC子卡的通信,管理等功能。FC測(cè)試軟件通過(guò)調(diào)用驅(qū)動(dòng)軟件提供的接口,完成對(duì)FC子卡的各種功能、性能測(cè)試。其層次結(jié)構(gòu)如圖5所示。
4.1 PCIE配置軟件
PCIE配置軟件的主要功能是對(duì)PCIE總線(xiàn)樹(shù)的設(shè)備進(jìn)行枚舉,通過(guò)PCI兼容配置,從CPU端可以訪(fǎng)問(wèn)各個(gè)FC子卡設(shè)備。在本設(shè)計(jì)中,只用到PCI兼容配置機(jī)制,配置過(guò)程和PCI設(shè)備類(lèi)似,主要需對(duì)MPC8548和PCIE交換開(kāi)關(guān)進(jìn)行配置,內(nèi)容包括配置空間的訪(fǎng)問(wèn),如何發(fā)現(xiàn)設(shè)備,訪(fǎng)問(wèn)設(shè)備空間等。
在本設(shè)計(jì)中,測(cè)試設(shè)備的總線(xiàn)示例如下:
最后根據(jù)FC子卡所在的總線(xiàn)和分配的存儲(chǔ)器地址空間對(duì)FC子卡的BAR空間進(jìn)行映射,從而可以訪(fǎng)問(wèn)FC設(shè)備。
4.2 FC驅(qū)動(dòng)軟件
FC驅(qū)動(dòng)軟件運(yùn)行于主機(jī)上,主要提供訪(fǎng)問(wèn)控制FC設(shè)備、FC通信、時(shí)鐘同步、網(wǎng)絡(luò)管理等功能的接口,用于上層軟件調(diào)用從而滿(mǎn)足應(yīng)用具體的要求。在該設(shè)計(jì)中,測(cè)試軟件完成PCIE配置后,通過(guò)調(diào)用驅(qū)動(dòng)軟件接口訪(fǎng)問(wèn)FC子卡,完成子卡的初始化,再進(jìn)行相關(guān)的測(cè)試。
4.3 FC測(cè)試軟件
FC測(cè)試軟件主要使用測(cè)試設(shè)備搭建的平臺(tái),進(jìn)行FC子卡的各種測(cè)試,可以實(shí)現(xiàn)單個(gè)FC子卡的功能、性能測(cè)試,也可以實(shí)現(xiàn)試驗(yàn)環(huán)境下多個(gè)FC子卡的通信測(cè)試。通過(guò)調(diào)用驅(qū)動(dòng)軟件,測(cè)試軟件可以完成以下測(cè)試:包括FC子卡硬件資源測(cè)試、FC協(xié)議符合性測(cè)試、通信功能的測(cè)試、時(shí)鐘同步功能測(cè)試、網(wǎng)絡(luò)管理功能測(cè)試、FC通信帶寬測(cè)試等其他功能的測(cè)試。
5 驗(yàn)證
為了驗(yàn)證測(cè)試設(shè)備是否滿(mǎn)足設(shè)計(jì)要求,需要對(duì)多個(gè)FC子卡進(jìn)行通信功能測(cè)試。驗(yàn)證環(huán)境中,運(yùn)行測(cè)試軟件進(jìn)行FC-AE-ASM通信測(cè)試,F(xiàn)C數(shù)據(jù)從CPU端產(chǎn)生,通過(guò)PCIE接口DMA到FC子卡內(nèi)部,然后從FC子卡發(fā)送出去,經(jīng)過(guò)分析儀,從接收通道接收,再?gòu)腇C子卡DMA到CPU端,對(duì)比發(fā)送和接收的數(shù)據(jù)是否一致。測(cè)試環(huán)境如圖7所示、經(jīng)過(guò)串口打印和分析儀捕獲的數(shù)據(jù),F(xiàn)C子卡運(yùn)行穩(wěn)定可靠,驗(yàn)證了測(cè)試設(shè)備完全滿(mǎn)足實(shí)驗(yàn)室測(cè)試驗(yàn)證的要求,并且該測(cè)試設(shè)備已經(jīng)用于FC子卡的試驗(yàn)測(cè)試,測(cè)試結(jié)果也滿(mǎn)足試驗(yàn)要求。
6 結(jié)束語(yǔ)
文章介紹了一種基于PCIE接口的多FC子卡測(cè)試設(shè)備,對(duì)總體設(shè)計(jì)方案、硬件組成和軟件設(shè)計(jì)進(jìn)行了闡述,通過(guò)測(cè)試驗(yàn)證了該設(shè)備良好的可行性和穩(wěn)定性。該設(shè)備對(duì)提高設(shè)備試驗(yàn)效率,降低科研、生產(chǎn)成本有顯著作用,且通用性、擴(kuò)展性好,對(duì)于其他類(lèi)型的PCIE/PCI接口設(shè)備有很好的參考意義和借鑒作用。
評(píng)論