引言
現(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)開(kāi)發(fā)都采用ARM處理器或軟核處理器,,而對(duì)于處理能力更強(qiáng)大的PowerPC處理器卻沒(méi)有更深入的研究和廣泛的應(yīng)用,對(duì)于 Xilinx公司的嵌入式處理器PowerPC440" title="PowerPC440">PowerPC440的應(yīng)用性研究也非常少見(jiàn),。本文基于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系列開(kāi)發(fā)板為開(kāi)發(fā)平臺(tái),。此開(kā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開(kāi)發(fā)工具是一種專門針對(duì)FPGA內(nèi)部嵌入式處理器的集成開(kā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可供選擇,。光纖通道接口卡" title="光纖通道接口卡">光纖通道接口卡的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開(kāi)發(fā)工具,,在Virtex5系列FPGA開(kāi)發(fā)平臺(tái)上實(shí)現(xiàn)了接口卡芯片的基本功能,支持點(diǎn)對(duì)點(diǎn)拓?fù)浣Y(jié)構(gòu)和仲裁環(huán)拓?fù)浣Y(jié)構(gòu),,為用戶自定制IP核的開(kāi)發(fā)應(yīng)用提供了一定的參考,。