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