摘要:針對(duì)CPCI 架構(gòu)通用信號(hào)處理平臺(tái)上利用系統(tǒng)自身以太網(wǎng)絡(luò)接口實(shí)現(xiàn)數(shù)據(jù)傳輸效率低、擴(kuò)展性差等問題, 提出一種采用高速Link 口基于FPGA 上硬核Pow erPC405 的嵌入式千兆以太網(wǎng)通信實(shí)現(xiàn)方案, 詳細(xì)說(shuō)明了以太網(wǎng)通信板卡的硬件和邏輯的實(shí)現(xiàn), 并分析了TCP/ IP 性能最大化的技術(shù)。
傳統(tǒng)基于CPCI 架構(gòu)通用信號(hào)處理平臺(tái), 由于其并行CPCI 總線物理傳輸速率的限制, 加上存在以太網(wǎng)協(xié)議系統(tǒng)消耗, 造成通過主板網(wǎng)絡(luò)接口數(shù)據(jù)傳輸效率很低, 遠(yuǎn)遠(yuǎn)不能滿足雷達(dá)、聲納等復(fù)雜系統(tǒng)對(duì)網(wǎng)絡(luò)通訊帶寬的需求。
采用新型高性能FPGA 芯片, 利用高速Link 口4GByte/ s 傳輸帶寬, 開發(fā)新的千兆以太網(wǎng)通信板, 實(shí)現(xiàn)以太網(wǎng)和高速Link 口數(shù)據(jù)的交互, 解決通用CPCI 架構(gòu)信號(hào)處理平臺(tái)之間數(shù)據(jù)傳輸?shù)腎O 瓶頸問題. 千兆以太網(wǎng)通信板是滿足CPCI 規(guī)范的一個(gè)功能模塊, 可以靈活的應(yīng)用到模擬器、信號(hào)處理和數(shù)據(jù)采集等實(shí)際CPCI 架構(gòu)系統(tǒng)中, 從而滿足武器裝備系統(tǒng)網(wǎng)絡(luò)化、通用化、一體化、模塊化的要求。
1 基于FPGA 的千兆以太網(wǎng)通信板的系統(tǒng)應(yīng)用
基于FPGA 的千兆以太網(wǎng)通信板在CPCI 架構(gòu)通用信號(hào)處理平臺(tái)上實(shí)現(xiàn)聲納模擬系統(tǒng)應(yīng)用時(shí)實(shí)現(xiàn)框圖如下圖1 示, 模擬的聲納信號(hào)需要通過以太網(wǎng)傳送給Linux 集群計(jì)算機(jī)。
?
在基于FPGA 的千兆以太網(wǎng)通信卡的信號(hào)處理平臺(tái)上, DSP 板、A/ D 板、D/ A 板和千兆以太網(wǎng)通信板之間的高速、大容量數(shù)據(jù)交換是通過高速Link 口來(lái)實(shí)現(xiàn)的. 系統(tǒng)間的數(shù)據(jù)交互是通過千兆以太網(wǎng)實(shí)現(xiàn)的, 利用高速Link 口, 通過千兆以太網(wǎng)數(shù)據(jù)通信板,實(shí)現(xiàn)系統(tǒng)高速Link 口和千兆以太網(wǎng)的無(wú)縫銜接, 從而能夠解決CPCI 總線帶寬問題, 實(shí)現(xiàn)數(shù)據(jù)的和Linux 集群機(jī)等其他應(yīng)用系統(tǒng)的共享和交互. CPCI 總線( 32 bit x 33 Mhz)主要用于實(shí)現(xiàn)系統(tǒng)主板和功能板卡( DSP板、A/ D 板、D/ A 板或千兆以太網(wǎng)通信板) ,以及功能板卡間數(shù)據(jù)互連, 完成系統(tǒng)控制、配置和低速數(shù)據(jù)傳輸?shù)裙δ堋?/p>
在CPCI 架構(gòu)通用信號(hào)處理平臺(tái)和Linux 集群計(jì)算機(jī)之間實(shí)現(xiàn)高速網(wǎng)絡(luò)數(shù)據(jù)交互的實(shí)現(xiàn)主要工作是開發(fā)Link 鏈路口到以太網(wǎng)通信的CPCI 架構(gòu)板卡。
2 基于FPGA 的千兆以太網(wǎng)通訊板卡的開發(fā)
本設(shè)計(jì)采用了基于Pow erPC405 處理器的SOPC 解決方案, 實(shí)現(xiàn)了基于FPGA 的高速嵌入式通信系統(tǒng)板卡, 數(shù)據(jù)通過千兆以太網(wǎng)實(shí)現(xiàn)系統(tǒng)間互連與共享, 主要介紹硬件和邏輯開發(fā)方面工作。
2. 1 通訊板硬件開發(fā)
設(shè)計(jì)的千兆以太網(wǎng)通信板卡符合CPCI 架構(gòu)U6 板卡標(biāo)準(zhǔn), 是基于Xilinx XC4VFX20 系列FPGA, 內(nèi)部集成了PowerPC405 處理器, 1 000 M 以太網(wǎng)MAC 模塊, 運(yùn)行頻率高達(dá)300 MHz。
FPGA 實(shí)現(xiàn)Link 鏈路口數(shù)據(jù)到以太網(wǎng)MAC 層數(shù)據(jù)的轉(zhuǎn)換. PCI 接口芯片本地總線的接口邏輯, 系統(tǒng)控制等功能. PLX9056 實(shí)現(xiàn)了CPCI 接口邏輯. 在板上擴(kuò)展了兩片MICRON 公司的256 Mb DDR 內(nèi)存, 作為上電時(shí)操作系統(tǒng)的加載和運(yùn)行空間. 采用Marvell 公司的千兆以太網(wǎng)PHY 芯片88 E1111 和帶隔離器的RJ45 接口, 加上FPGA 中的MAC IP 核實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)的傳輸功能. Plat form Flash 用于存儲(chǔ)FPGA 配置文件和系統(tǒng)文件. 本設(shè)計(jì)擴(kuò)展了1 個(gè)RS422 串行接口用于嵌入式軟件的調(diào)試. 整個(gè)系統(tǒng)的硬件功能原理結(jié)構(gòu)框圖如圖2 所示。
?
在進(jìn)行電路設(shè)計(jì)時(shí), 要特別注意作為電路核心器件FPGA 各個(gè)引腳的連接. 重要快速的時(shí)鐘信號(hào)必須接到全局時(shí)鐘引腳上; 和DDR、PHY 芯片連接引腳所在的BANK 需要提供電壓參考要考慮DDR、PHY 芯片的工作電壓; DDR 布線時(shí), 數(shù)據(jù)和地址線要等長(zhǎng)走線, 數(shù)據(jù)線之間誤差控制在10 Mil 內(nèi), 地址線誤差要控制在20 Mil 以內(nèi), 時(shí)鐘也需要走差分等長(zhǎng)線, 長(zhǎng)度應(yīng)大于地址線。
2. 2 FPGA 中邏輯開發(fā)
開發(fā)采用Xilinx 公司的EDK10. 1 和ISE10. 1 工具軟件, EDK 稱為嵌入式開發(fā)工具包, 由XPS( Xilinx Plat form Studio) , SDK( Softw are development Kit ) , Creat-Import peripheral 和Bash shell 組成. 開發(fā)者可以調(diào)用上述所有工具, 來(lái)完成整個(gè)的嵌入式系統(tǒng)開發(fā). 在XPS 環(huán)境下添加所需的IP 核, 生成硬件系統(tǒng)框架;調(diào)用Platg en 生成嵌入式處理系統(tǒng)的網(wǎng)表文件( . NGC 文件) , 通過軟件描述文件( . MSS 文件) 來(lái)設(shè)置系統(tǒng)軟件配置, 并調(diào)用Libgen 生成驅(qū)動(dòng)層和庫(kù); 在XPS 工程中添加應(yīng)用軟件項(xiàng)目并編寫應(yīng)用軟件, 把EDK 中編寫好的工程作為一個(gè)模塊, 加入到ISE 工程中, 然后統(tǒng)一編譯, 然后調(diào)用處理器對(duì)應(yīng)的編譯器編譯并和硬件綜合后生成的. bit 文件合成后下載到目標(biāo)板便可以進(jìn)行調(diào)試了。
基于FPGA 的嵌入式千兆以太網(wǎng)的通訊功能實(shí)現(xiàn)邏輯如下圖3 所示。 FPGA 中邏輯開發(fā)參考Xilinx 公司的GSRD 參考設(shè)計(jì)方案。 Virtex4 FPGA 芯片中嵌入了PowerPC405 處理器是針對(duì)嵌入式處理器開發(fā)應(yīng)用推出的一種32 位嵌入式處理器內(nèi)核, 它是一種硬核結(jié)構(gòu), 提供了相應(yīng)的總線架構(gòu), 豐富的IP 核資源, 以及方便、高效的設(shè)計(jì)開發(fā)工具, 簡(jiǎn)單但靈活性強(qiáng), 在目標(biāo)器件中可以任意配置. 多端口存儲(chǔ)器控制器( MPMC)有效分配了Pow erPC 指令/ 數(shù)據(jù)PLB 接口與一個(gè)通信用直接存儲(chǔ)器訪問控制器( CDMA C) 間的可用存儲(chǔ)器帶寬. CDMA C 通過Xilinx 標(biāo)準(zhǔn)Local Link 流線接口提供兩個(gè)連接到外設(shè)的DMA 雙向通道( 以太網(wǎng)接口數(shù)據(jù)通路和LINK 鏈路口通路)。 CDMAC 實(shí)現(xiàn)了數(shù)據(jù)重排, 用于支持存儲(chǔ)器中的分組緩沖器的強(qiáng)制排列. Local Link 千兆位級(jí)以太網(wǎng)MAC( LLGMAC) 外設(shè)整合了經(jīng)過U NH 測(cè)試的Xilinx LogiCORE 1-Gigabit 以太網(wǎng)MAC, 可以提供1 Gbps 1 000-BASE-X 以太網(wǎng)接口. LLGMAC 實(shí)現(xiàn)了發(fā)射通路和接收通路上的校驗(yàn)和卸載功能, 從而實(shí)現(xiàn)了最優(yōu)的TCP 性能. 使用的是UartLite 模塊, 設(shè)置需要的波特率和校驗(yàn)類型, 來(lái)實(shí)現(xiàn)異步收發(fā)器功能。
3 性能優(yōu)化
硬件確定好后, TCP/ IP 協(xié)議的系統(tǒng)消耗成為提高系統(tǒng)網(wǎng)絡(luò)帶寬的主要因素. 下面從單位字節(jié)、單位包的處理成本和系統(tǒng)架構(gòu)三方面討論實(shí)現(xiàn)千兆位以太網(wǎng)TCP/ IP 性能最大化的技術(shù)。
3. 1 TCP/ IP 單位字節(jié)處理成本
產(chǎn)生單位字節(jié)處理成本的兩個(gè)最常見的操作是緩沖區(qū)復(fù)制和TCP 校驗(yàn)和計(jì)算. 可以引入零復(fù)制軟件API 函數(shù), 并將校驗(yàn)和計(jì)算利用FPGA 邏輯結(jié)構(gòu)實(shí)現(xiàn), 將有助于減少單位字節(jié)處理成本. Linux 和其他操作系統(tǒng)提供了類似的零復(fù)制特性, 已經(jīng)引入了用于此目的的軟件接口, 這些軟件特性允許消除用戶應(yīng)用程序與TCP/ IP ?;虿僮飨到y(tǒng)之間的緩沖區(qū)復(fù)制。
校驗(yàn)和卸載是以太網(wǎng)外設(shè)的一種特性. 它允許當(dāng)以太網(wǎng)幀在主存儲(chǔ)器與外設(shè)的硬件FIFO 之間傳輸時(shí),在FPGA 結(jié)構(gòu)中進(jìn)行TCP 有效載荷的校驗(yàn). 這些系統(tǒng)特性消除了代價(jià)較高的緩沖區(qū)復(fù)制與處理器校驗(yàn)和操作, 讓處理器專心執(zhí)行協(xié)議操作和用戶功能. 可以在下面的實(shí)驗(yàn)數(shù)據(jù)中得到驗(yàn)證。
3. 2 TCP/ IP 單位包處理成本
包中斷、硬件接口和頭處理等數(shù)據(jù)發(fā)送與接收操作構(gòu)成單位包處理成本, 特別是在傳輸小包時(shí), 中斷處理成本對(duì)處理器和存儲(chǔ)器子系統(tǒng)構(gòu)成相當(dāng)大的負(fù)擔(dān). 利用NAPI 結(jié)合巨幀傳輸技術(shù)用來(lái)減少中斷處理成本。
3. 3 系統(tǒng)架構(gòu)
存儲(chǔ)器帶寬對(duì)高性能網(wǎng)絡(luò)連接應(yīng)用來(lái)說(shuō)是一個(gè)重要考慮事項(xiàng). 利用了多端口DDR SDRAM 存儲(chǔ)器控制器, 在PowerPC 處理器本地總線( PLB) 接口與兩個(gè)數(shù)據(jù)端口間分配存儲(chǔ)器帶寬. 每個(gè)數(shù)據(jù)端口連接到一個(gè)直接存儲(chǔ)器訪問( DMA) 控制器, 從而允許硬件外設(shè)對(duì)存儲(chǔ)器進(jìn)行高帶寬訪問。
系統(tǒng)的分散-收集與校驗(yàn)和卸載特性為零復(fù)制功能提供了所需的硬件支持. 分散-收集特性是DMA 控制器的一種靈活性, 它允許軟件緩沖區(qū)位于任意字節(jié)偏移處. 這避免了處理器復(fù)制未對(duì)齊或碎片化的緩沖區(qū)。
對(duì)于需要使用嵌入式操作系統(tǒng)的應(yīng)用, 可提供MontaVista Linux 端口和來(lái)自T reck 的商業(yè)獨(dú)立TCP/IP 棧, 以滿足具有最高帶寬要求的應(yīng)用。
4 性能測(cè)試
測(cè)試環(huán)境:
系統(tǒng)板卡: PPC405 Clock-300 MHz
MPMC/ DDR Clock-300 MHz
PLBv46 Clock-100 MHz
XPS_LL_T EMA C Clock-300 MHz
測(cè)試主機(jī): Pentium( R) Clock-1 600 MHz
內(nèi)存768MB
千兆以太網(wǎng)卡
Windows xp SP3
iPerf 網(wǎng)絡(luò)測(cè)試軟件
從測(cè)試的結(jié)果看, 利用經(jīng)零復(fù)制, 校驗(yàn)和卸載優(yōu)化過的Treck 公司的TCP/ IP 協(xié)議棧, 采用9000 Byte 巨幀可以實(shí)現(xiàn)高達(dá)641 Mbps 的傳輸速率。
5 結(jié) 論
通過開發(fā)的基于FPGA 的Link 口到以太網(wǎng)的通信板, 利用優(yōu)化后的TCP/ IP 協(xié)議棧, 解決了原來(lái)CPCI架構(gòu)信號(hào)處理平臺(tái)上利用PCI 總線進(jìn)行數(shù)據(jù)分發(fā)和轉(zhuǎn)存的IO 瓶頸問題. 基于FPGA 的Link 鏈路到以太網(wǎng)的通信板已經(jīng)成功應(yīng)用于某型聲納信號(hào)模擬器上, 并且作為一個(gè)通用以太網(wǎng)數(shù)據(jù)分發(fā)模塊可以應(yīng)用于CPCI架構(gòu)雷達(dá)、聲納信號(hào)處理和數(shù)據(jù)采集等系統(tǒng)應(yīng)用領(lǐng)域。
評(píng)論
查看更多