周慶芳
【摘要】隨著以太網技術的不斷進步與發展,以太網MAC(媒體接入控制)層的傳輸時延將影響網絡的通信質量,通過FPGA實現以太網MAC協議層數據包進行正確收發,進而減少傳輸時延,提高網絡吞吐率,避免網絡擁塞,為千兆以太網的發展提供技術支撐。本文基于FPGA技術對以太網MAC協議層數據包進行收發設計。
【關鍵詞】MAC協議層 FPGA 數據幀收發 收發設計
一、引言
1975年,以太網技術在Palo Alto研究中心誕生,通過近30年的發展,各種新的局域網技術相繼產生,特別是令牌環、令牌總線等其他局域網技術的成熟與進步,促使以太網技術不斷向前發展。按照OSI(Open SystemInterconnection,開放系統互聯)七層網絡模型,以太網技術的關鍵在于物理層和數據鏈路層,其中,數據鏈路層包括媒體接人控制MAC(Medium Access Control)子層和邏輯鏈路控制LLC(Logical Link Control)子層。
二、基于FPGA以太網的相關技術原理
IEEE802以局域網標準委員會將局域網的數據鏈路層分成兩個子層,即媒體接入控制MAC(Medium Access Control)子層和邏輯鏈路控制LLC(Logical Link Contrl)子層,其中,傳輸媒體主要涉及的內容與MAC子層有關,而且MAC子層獨立性和兼容性較強,能夠適應不同的網絡通信拓撲結構的變化.所以,同樣的網絡協議棧軟件可以運行在大多數的以太網上,不需要做很大的修改。憑借MAC協議層的靈活性以及易擴展性,以太網已經從局域網擴大到城域網和廣域網的應用領域。
三、基于FPGA的以太網MAC協議層數據包的收發設計
(一)以太網MAC協議層的整體結構設計
在對以太網MAC協議進行深入分析研究后,本文的設計將以太網MAC協議在整體功能上劃分為數據接收、數據發送、控制管理等三個模塊。以太網數據包的封裝與解封主要通過數據接收和發送模塊完成,控制管理模塊主要用于實現與外部PHY其他芯片通信。
(二)數據接收和發送模塊的FPGA設計與實現
數據接收模塊將在PHY芯片接口處檢測輸入信號的變化,GMII模塊將GMII接口形式的信號轉換為系統內SOP格式的數據信號。本文中的MAC控制器工作頻率為100MHz,而系統端的工作頻率為125MHz,所以必須將MAC時鐘域進行轉換。對于跨時鐘域的數據信號處理,我們采用雙鎖存器法,即將源時鐘域的信號在目的時鐘域利用鎖存器鎖存兩次。
數據發送模塊從內部邏輯接口將數據包進行相關封裝操作之后發送到外部PHY芯片上。數據發送模塊的設計是以包為單位進行發送,當系統內模塊準備好發送一個數據包時,此模塊就進行數據包的封裝工作。根據以太網MAC協議,發送給外部物理層PHY芯片的數據包需要在有效數據之前添加MAC前導幀。
四、系統仿真測試
本文中的以太網MAC協議設計實現方案使用Altera公司的CycloneII系列FPGA,經過仿真與測試,可以實現以太網MAC協議層數據收發的基本功能,傳輸速率達到1Gbps。通過實踐,我們發現編譯的結果與仿真測試的結果一致,同時驗證了基于FPGA設計的以太網數據包收發模塊系統占用率低、傳輸速率高的特點。
五、總結與展望
本文詳細分析了以太網MAC協議的整體結構,然后將MAC協議層按功能劃分為接收模塊、發送模塊和控制模塊,并引入10/100/1000以太網MAC的IP核進行協議的邏輯控制,包括流量統計、數據幀的填充和校驗和,最后通過FPGA詳細設計了MAC協議層的收發數據幀模塊,而且還配置相關的外部PHY芯片接口。實驗仿真測試表明,基于FPGA平臺設計的以太網MAC收發數據包模塊能夠滿足實時網絡通信環境條件下的高速率傳輸要求,同時系統占用資源較小。