摘要:介紹了模塊化光纖通道協(xié)議功能。采用新一代嵌入式處理器PowerPC440,搭建光纖通道接口卡的SOPC系統(tǒng),實現(xiàn)了光纖通道協(xié)議的基本功能,為基于PowerPC的嵌入式系統(tǒng)設(shè)計應(yīng)用提供了參考。
關(guān)鍵詞:PowerPC440;光纖通道接口卡;可編程片上系統(tǒng)
引言
現(xiàn)階段,主流的高性能光纖通道通用產(chǎn)品基本上被Qloglc、Morethan、DDC等少數(shù)幾家國外大公司壟斷,其昂貴的價格,加上一些發(fā)達國家對相關(guān)產(chǎn)品技術(shù)的封鎖,使得國內(nèi)的光纖通道技術(shù)發(fā)展受到了一定程度的影響。因此,對自主知識產(chǎn)權(quán)的專用光纖通道芯片的研究就顯得尤為重要。
目前,大多嵌入式系統(tǒng)開發(fā)都采用ARM處理器或軟核處理器,而對于處理能力更強大的PowerPC處理器卻沒有更深入的研究和廣泛的應(yīng)用,對于 Xilinx公司的嵌入式處理器PowerPC440的應(yīng)用性研究也非常少見。本文基于PowerPC440硬核,對嵌入式技術(shù)在光纖通道網(wǎng)絡(luò)中的應(yīng)用進行了一些探索。
1 設(shè)計方案
光纖通道協(xié)議(以下簡稱FC協(xié)議)支持多種拓撲結(jié)構(gòu),但由于交換機價格昂貴,在實際應(yīng)用中還未普及。相對而言,簡單的點對點拓撲和性價比較高的仲裁環(huán)拓撲在現(xiàn)階段更為適用。本文即針對這兩種拓撲結(jié)構(gòu),在深入分析FC協(xié)議的基礎(chǔ)上采用模塊化的思想對功能作了劃分,
如圖1所示。其中由虛線框標(biāo)識的序列/交換管理模塊由軟件實現(xiàn)。
接收數(shù)據(jù):
①接收通道從光接收機接收其輸出的串行信號,經(jīng)過串并轉(zhuǎn)換、8位/10位解碼、8:32解復(fù)用后,將沒有錯誤的字傳給接收控制模塊。
②接收控制模塊對接收通道接收的信息進行分流,將原語序列交給相應(yīng)的狀態(tài)機,將數(shù)據(jù)放入接收緩存后通知序列/交換管理模塊。
③交換管理邏輯將根據(jù)幀頭內(nèi)容和交換管理塊的內(nèi)容進行進一步的高層次的差錯檢驗和交換/序列管理,并且等序列接收完成后通知上層取數(shù)據(jù)。
發(fā)送數(shù)據(jù):
①當(dāng)上層需要發(fā)送數(shù)據(jù)時,首先給光纖通道接口控制模塊發(fā)送命令。接口控制模塊根據(jù)命令的內(nèi)容取出數(shù)據(jù),并結(jié)合命令參數(shù)將數(shù)據(jù)打包成幀后通知發(fā)送控制模塊。
②發(fā)送控制模塊根據(jù)一定的規(guī)則控制不同的數(shù)據(jù)源分時使用發(fā)送通道,數(shù)據(jù)源包括發(fā)送緩沖區(qū)的幀、狀態(tài)機發(fā)出的原語序列和原語信號。
③發(fā)送通道將從
接收控制模塊接收到的字進行分解,再對并行的字節(jié)信息經(jīng)過8位/10位編碼、并串轉(zhuǎn)換發(fā)送給光發(fā)射機。
其中環(huán)/端口控制模塊實現(xiàn)環(huán)初始化狀態(tài)機、環(huán)/端口狀態(tài)機、原有端口狀態(tài)機功能。根據(jù)原語信號和原語序列的不同,系統(tǒng)或進入原有端口狀態(tài)機進行點對點傳輸過程,或進入環(huán)端口狀態(tài)機進行仲裁環(huán)傳輸過程。
從總體上看,硬件應(yīng)該負責(zé)幀級別的管理,軟件應(yīng)該負責(zé)序列和交換級別的管理。軟硬件接口采用共享存儲器與寄存器的設(shè)計思想。系統(tǒng)硬件部分與軟件部分通過讀寫共享的幀緩存及接口寄存器實現(xiàn)信息交互。
2 基于PowerPC的SOPC系統(tǒng)搭建
本設(shè)計采用Xilinx公司的Virtex-5 FXT系列開發(fā)板為開發(fā)平臺。此開發(fā)板集成了兩個嵌入式PowerPC440RISC核,同時具有靈活的存儲器管理單元(MMU),3個相互獨立的128位PLB總線接口,獨立的32 KB數(shù)據(jù)存儲器和32 KB的指令存儲器,4個直接存儲器存儲(DMA)控制單元,以及設(shè)備控制寄存器(DCR)等。其中PowerPCA40處理器具有高達500 MHz的速度,采用IP嵌入架構(gòu)的形式整合到FPGA器件中,增強型BOOK-E體系結(jié)構(gòu),內(nèi)部包括一個具有7級流水線的微內(nèi)核,每周期最多可執(zhí)行兩條命令,從而提高了整體的吞吐量。PLB總線采用36位地址路徑,可提供64 GB的內(nèi)存尋址能力。
Xilinx公司提供的EDK開發(fā)工具是一種專門針對FPGA內(nèi)部嵌入式處理器的集成開發(fā)工具包,主要的軟件設(shè)計由EDK中的子工具包SDK完成。用戶可以通過集成在EDK中的XPS來調(diào)用各種工具完成嵌入式系統(tǒng)平臺的搭建工作。
EDK10.1版本較之9.1版本有很大的變化,其中軟核版本升級到7.1,IBM CoreConneet總線標(biāo)準中的OPB總線被PLB總線代替,還提供了豐富的外圍IP可供選擇。光纖通道接口卡的FPGA實現(xiàn)架構(gòu)如圖2所示。
(1)PowerPC處理器和高速存儲器通過PLB高速總線互聯(lián)在一起構(gòu)成嵌入式操作系統(tǒng)和軟件系統(tǒng)的運行平臺。
(2)用戶接口IP提供一個方便的接口,供外部設(shè)備操控接口卡芯片,亦可對該芯片的工作狀態(tài)進行動態(tài)監(jiān)控。
(3)采用FPGA芯片內(nèi)部集成的可編程高速串行收發(fā)器RoeketI/O來負責(zé)數(shù)據(jù)的發(fā)送和接收。
(4)在數(shù)據(jù)發(fā)送端,硬件通過DMA方式讀取與序列和交換管理有關(guān)的隊列,然后根據(jù)隊列中的信息,確定每個幀頭的內(nèi)容,再通過DMA方式讀取管理內(nèi)存中的數(shù)據(jù)并組裝成幀發(fā)送出去;在數(shù)據(jù)接收端,硬件接收到幀后,通過DMA方式寫到內(nèi)存中,軟件負責(zé)將幀重組為序列,再將序列重組成交換。
3 IPIF模塊
由于PLB總線接口協(xié)議非常復(fù)雜,為了讓用戶可以更便捷地實現(xiàn)總線與用戶IP的交互,Xilinx公司提供了在用戶IP核和PLB v4.6總線標(biāo)準之間的一個雙向的PLBV46_Slave_Single接口協(xié)議模塊IPIF,如圖3所示。
其中的Slave Attachment結(jié)構(gòu)提供了Slave運行的基礎(chǔ)功能,它在PLB總線和IPIC之間執(zhí)行協(xié)議和時序的轉(zhuǎn)換。用戶IP的用戶邏輯接口需按照IPIC接口標(biāo)準來設(shè)計,才能通過IPIF成功掛接到PLB總線上。
利用集成在EDK的XPS工具中Create/Import Peripheral Wizard(添加外設(shè)向?qū)Чぞ?,以對話框的形式可以很便捷地配置IPIF模塊,以Master/Slave的方式將用戶自定制IP核掛接到PLB總線上,通過ISE1O.1環(huán)境綜合驗證模塊的正確性。然后再利用此工具,將經(jīng)過驗證正確的IP核導(dǎo)入EDK環(huán)境下,這樣就成功建立了一個IP核的通用模板。最后再在相應(yīng)的.VHD文件中添加用戶功能代碼,即可完成基于PLB總線接口的用戶自定制IP核的添加。
結(jié)語
本文設(shè)計的光纖通道接口卡芯片采用Xilinx公司推出的新一代嵌入式硬核PowerPCA40,利用EDK開發(fā)工具,在Virtex5系列FPGA開發(fā)平臺上實現(xiàn)了接口卡芯片的基本功能,支持點對點拓撲結(jié)構(gòu)和仲裁環(huán)拓撲結(jié)構(gòu),為用戶自定制IP核的開發(fā)應(yīng)用提供了一定的參考。