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