楊青山
(廣州海格通信集團股份有限公司,廣東 廣州 510663)
千兆以太網具有大數據傳輸以及高速實時性的特征,因此在視頻以及音頻等領域具有廣闊的應用前景。在進行數據傳輸的過程中越來越重視實時性問題,針對這一問題,用戶數據協(xié)議(User Data Protocol,UDP)作為一共新型數據傳輸協(xié)議被提出,具有很好的高效性以及低延遲性,這一傳輸協(xié)議的引入也很好地解決了數據實時傳輸的問題。目前在數據傳輸中比較常用的協(xié)議主要有兩種:TCP/1P協(xié)議和ASIC內置協(xié)議,這兩大協(xié)議雖然比較成熟得到了發(fā)展,但是在可集成化、可移植性以及傳輸效率方面還存在極大的困難。在這樣的背景下,本文結合FPGA的優(yōu)勢,提出一種基于FPGA的UDP/IP協(xié)議,將該優(yōu)化設計應用于千兆以太網的傳輸當中,兼顧傳輸效率的同時,還能夠保證數據傳輸的實時性等,隨著這一方案的優(yōu)化和完善,目前已經在工程中得到應用。
開放系統(tǒng)互聯(lián)(Open System Interconnection,OSI)參考模型作為一種比較成熟的網絡結構標準模型,由國際互聯(lián)網標準化組織提出構建。通過該模型的構建與優(yōu)化能夠保證不同硬件的相互通信,但是這一模型往往比較復雜,因此在實際應用中比較困難。為解決OSI參考模型復雜度問題,TCP/IP模型被提出并應用,這一模型并不是簡單地將TCP和IP兩個協(xié)議進行聯(lián)合,而是聯(lián)合Internet整個TCP/IP協(xié)議組。為進一步確定TCP/IP的特點和優(yōu)越性,對TCP/IP模型與OSI模型進行了比較,如圖1所示。
圖1 OSI與TCP/IP參考模型對照
在TCP/IP參考模型中沒有對這一層進行細分,在OSI參考模型中將這一層分為物理層PHY和介質訪間控制層MAC。這一層的主要目的是能夠為下一層的數據傳輸提供接口,其中以太網就是一種重要的實現(xiàn)方式。
對于TCP/IP協(xié)議參考模型而言,這一層是整個模型的核心,為實現(xiàn)功能進行了細化,不僅僅定義了分組格式,而且明確了協(xié)議類型,能夠對路由、擁塞等進行控制。
在傳輸層當中為實現(xiàn)功能引入了TCP協(xié)議和UDP協(xié)議,TCP協(xié)議作為傳輸控制協(xié)議基于字節(jié)流進行,具有極大可靠性;這一協(xié)議還是在利用IP層機制來進一步提高連接可靠性,能夠引入窗口控制、分包控制等方法實現(xiàn)字節(jié)流的傳輸,不是一對一的傳輸,而是一對多的傳輸。
這一層中含有大量用戶應用協(xié)議來面向用戶。在本文的協(xié)議優(yōu)化當中,還引入了UDP協(xié)議,主要在TCP/IP傳輸層中引入這一協(xié)議,面向報文傳送與傳輸,通過這一協(xié)議之后接收方并不會提供反饋機制,這樣導致其可靠性存在一定問題。UDP協(xié)議的這一特點也提高了其數據傳輸速率,同時和TCP協(xié)議相比實時性更強,對于系統(tǒng)的要求和負載也相對較低?;谶@些優(yōu)點,本文在進行優(yōu)化設計的過程中引入了UDP傳輸協(xié)議在傳輸層中進行點對點的數據傳輸報送,同時還網絡層中采用最優(yōu)的IP協(xié)議,ARP協(xié)議和MAC協(xié)議主要應用于數據鏈路層,在物理層中應用自適應技術,應用千兆網1 000 Base-T的連接通道。
本文提出的接口優(yōu)化實際是UDP/IP協(xié)議,在這一優(yōu)化協(xié)議的實際運行過程中包括封包和解包兩個過程,在兩個過程中分別采用不同的傳輸協(xié)議來進行數據傳輸。進行數據傳輸與發(fā)送的過程中首先將應用層數據傳輸到協(xié)議棧中,在經過協(xié)議棧數據信息處理之后進入網絡層進行下一步處理。在每層數據傳輸的過程中需要對數據和信號進行首尾修飾,這一整個過程被稱作是封包過程。經過封包處理之后能夠將數據傳輸給通信主機結構從機,接收到的以太網幀數據從物理層輸入進行分層傳輸分析,和當前層的協(xié)議幀首部信息進行核對匹配,對于不匹配的幀數據進行丟棄處理,實際這一過程就是解包的過程,整個傳輸封包和解包過程如圖2所示。
圖2 TCP/IP協(xié)議層用戶數據傳輸過程
在進行數據傳輸的過程中需要遵循一定的協(xié)議來進行傳輸,本設計優(yōu)化中遵循協(xié)議透明原理進行設計,按照相應標準來進行數據封包和解封過程處理,完成之后傳輸到下一層進行處理。精簡后的協(xié)議棧具備以下功能:(1)實現(xiàn)基于UDP傳輸協(xié)議的數據傳輸。(2)按需求可以對目的IP地址和源IP地址進行靈活配置,支持ARP地址解析,支持checksum幀校驗。(3)支持數據流控制。
在千兆以太網的接口研究與發(fā)展中,也面臨一定的難題與困難,其中的典型代表就是如何實現(xiàn)以太網的MAC協(xié)議和以太網的接口功能。目前主要的以太網接口采用圖3所示的電路硬件結構框圖,一般采用FPGA控制器、網絡處理芯片以及高性能操作系統(tǒng)處理器來進行接口處理[1]。
圖3 以太網電路結構框圖
在本總體設計中選用FPGA作為主控制器,并且在物理層中引入物理層協(xié)議芯片來實現(xiàn)其功能,在MAC層中引入MAC芯片來實現(xiàn)其功能。改設計中的硬件系統(tǒng)功能也主要在FPGA內部以及FPGA控制器中實現(xiàn)。為進一步簡化系統(tǒng)的硬件電路,還在FPGA中引入MAC IP核,主要應用于MAC協(xié)議功能的實現(xiàn),可以節(jié)省MAC接口協(xié)議芯片的空間。
通過這樣的設計,能夠滿足千兆以太網系統(tǒng)間的高速數據傳輸,而且基于這樣的設計能夠節(jié)省硬件資源與空間,在內部即可實現(xiàn)MAC功能,這樣在節(jié)省硬件資源和空間的同時還節(jié)省了加工成本。另外充分利用FPGA的資源以及功能,能夠充分發(fā)揮硬件系統(tǒng)的作用,保證可靠性,另外由于FPGA具有很好的擴展性,有利于后期的應用功能擴展。
在本設計的硬件系統(tǒng)設計中采用PHY芯片,并結合FPGA控制器作為核心控制來進行千兆以太網的數據傳輸,綜合分析下確定采用UDP通信協(xié)議來作為整個系統(tǒng)的通信協(xié)議,另外PHY芯片能夠輔助FPGA控制器實現(xiàn)通信功能,通過這一芯片能夠實現(xiàn)和PC機之間的數據傳輸。
FPGA控制器作為控制核心芯片的選擇十分重要,本設計中選用Cyclone IV系列EP4CE40F23I7N芯片,另外比較重要的PHY芯片選用88E1111來進行數據通信和傳輸,另外為完善系統(tǒng)功能需要配備相應的各種寄存器,確定最終硬件連接關系如圖4所示。
圖4 MAC控制器與PHY芯片接口
如圖4所示,在千兆以太網的數據通信和傳輸過程中,綜合分析GMII模式和GMII模式兩種模式類型器,最終確定PHY芯片88E1111電路進行數據傳輸的時候應該采用GMII接口的GMII接口模式,對于100 Mbps全雙工模式的數據傳輸和通信,采用PHY芯片88E1111電路中的MII接口模式中的MII接口模式進行。
為完善本設計,在硬件設計的基礎上需要配置相匹配的軟件系統(tǒng),本設計中基于Vcrilog HDL硬件設計語言進行程序開發(fā)設計。
在進行程序設計中一共包括4個模塊和部分,包括頂層模塊、UDP發(fā)送數據模塊和結構模塊,另外在設計中還增加優(yōu)化了CRC校驗模塊。
在千兆以太網的數據傳輸和接口當中,主要通過FPGA作為核心控制器進行控制,并且能夠對PC機的情況進行實時監(jiān)測在檢測基礎上能夠接受UDP發(fā)送的以太網數據包,并且通過軟件程序設計將數據包在外置SRAM存儲芯片中存儲,利用軟件程序進行初步解析的基礎上,將以太網數據包通過網絡和系統(tǒng)傳遞回實驗PC機[2]。
在設計中,必須通過一系列的配置才能使MAC軟核正常工作,在SOPC系統(tǒng)中,可以通過Avalon-MM控制接口來配置MAC軟核。對MAC控制寄存器的配置來完成控制MAC功能模塊,MAC功能模塊將在發(fā)送或接收位使用后立即開始工作。在對MAC軟核的配置中,主要涉及以下寄存器的配置:命令配置(command_ config ),MAC地址(mac_0/mac_ 1}、最大幀長(frm length、外部PHY地址Cmdio_addr0/mdio_ addrl,另外,由于本設計中的MAC軟核包含了內部FIFO需要配置FIFO緩存器的一些閡值(almost empty,almost full,section empty,section full)。
軟件控制是整個設計正常運行的關鍵一環(huán)。由于設計中MAC軟核、自定義模塊等均基于SOPC技術進行設計,所以NIOS軟核的正常運行將是硬件邏輯工作的基礎。
在設計中,為了使以太網的網絡配置更加靈活,設計中利用Avalon-MM總線對自定義模塊中的IP地址,MAC地址以及UDP端口號等進行配置??刂栖浖脑O計主要包括自定義模塊的設置、MAC軟核以及PHY芯片寄存器的配置,在上述過程完成后,觸發(fā)整個系統(tǒng)運行。
系統(tǒng)首先初始化自定義模塊并利用MDIO接口初始化外部PHY芯片。然后進行MAC配置寄存器的初始化,分為4個步驟:第一步,禁用MAC軟核的發(fā)送接收功能;第二步,對MAC軟核FIFO相關參數進行配置;第三步,對MAC軟核的地址進行配置;最后,完成MAC軟核的其他配置(最大幀長等)。接著,對PHY寄存器進行配置,將PHY芯片配置在支持自動協(xié)商、支持全雙工、支持10 Mpbs/1 000 Mbps模式上。最后完成MAC控制寄存器配置,使能系統(tǒng)啟動標志。
本文主要是對當前FPGA的特點以及優(yōu)勢進行分析,設計了一種基于FPGA的千兆以太網接口,將FPGA控制器作為核心,來實現(xiàn)MAC層協(xié)議,F(xiàn)PGA引入不僅僅提高了方法運用的靈活性、可靠性,而且有利于實現(xiàn)高速傳輸,具有重要意義。