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