劉 浩,田 澤,劉承禹,雷 宇
(中航工業西安航空計算技術研究所 集成電路與微系統設計航空科技重點實驗室,陜西 西安 710068)
基于DMA的雙通道千兆以太網MAC設計與驗證
劉 浩,田 澤,劉承禹,雷 宇
(中航工業西安航空計算技術研究所 集成電路與微系統設計航空科技重點實驗室,陜西 西安 710068)
以太網是現有局域網采用的通用的通信協議標準。千兆以太網向下完全兼容10/100 Mbps以太網,并利用了原以太網標準所規定的全部技術規范。作為以太網技術的核心,千兆以太網MAC層協議是數據幀收發的基礎,負責上層數據和物理層比特流的封裝和解封,流量控制,校驗檢測等功能。針對航電系統應用中對通信帶寬和數據實時性的要求,文中提出了基于DMA的雙通道千兆以太網MAC方案。首先對緩沖區描述符存儲結構進行描述,基于此種存儲結構提出了基于DMA的雙通道千兆以太網MAC架構設計,最后對發送、接收模塊微結構進行了詳細設計。在NCSim平臺下對整個設計進行了仿真驗證。結果表明GMII接口能夠以10/100/1 000 Mbps的速率實現半雙工/全雙工通信,滿足設計要求。
緩沖區描述符;DMA;千兆以太網MAC;GMII
以太網自提出以來,得到了飛速發展,已經成為當前局域網的標準。千兆以太網與10/100 Mbps以太網完全兼容[1],并利用了原以太網標準所規定的全部技術規范,包括CSMA/CD協議、以太網幀格式、全雙工、流量控制等[2]。千兆以太網以其高效、高速、高性能等特點廣泛應用于工業、國防、航空航天等特殊領域[3]。
航電系統的發展趨勢要求網絡既能夠提供更大的帶寬,又能保證實時性數據的傳輸。文中提出的基于DMA[4]的雙通道千兆以太網MAC[5]解決方案,主機事先按照緩沖區描述符存儲結構開辟好緩沖區,然后啟動DMA實現以太網數據與發送、接收模塊之間的數據搬移,實現了PLB4[6]接口與GMII[7]接口之間高效的數據傳輸。
緩沖區描述符存儲結構由一組寄存器和一組環形隊列組成。軟件將待發送的以太網數據填充到緩沖區中,為接收到的以太網數據開辟好緩沖區,同時更新描述符的控制字段;硬件自動處理描述符并且在每一幀處理完成后更新描述符的狀態字段。緩沖區描述符存儲結構如圖1所示。

圖1 緩沖區描述符存儲結構
主機對描述符列表基地址寄存器進行配置,該寄存器的值指向了主機內存空間中描述符列表的基地址。描述符列表是一組環形隊列,最大可達256個。每個描述符長度為8字節,包含3個有效字段:狀態/控制字段定義了緩沖區的空/滿狀態、回繞模式;緩沖區數據長度字段定義了緩沖區數據的長度;緩沖區指針字段定義了緩沖區在主機內存實際存儲的首地址。DMA根據該實際存儲地址完成緩沖區數據與以太網MAC之間的搬移。
緩沖區與以太網MAC之間的DMA數據搬運如圖2所示。

圖2 緩沖區與以太網MAC之間的DMA數據搬運
緩沖區中存放的數據包含以太網幀格式[8]中的目的地址(6字節)、源地址(6字節)、長度/類型(2字節)、數據負載(最大1 500字節)以及CRC校驗[9](4字節)。DMA將緩沖區中的數據搬運到以太網MAC后,以太網MAC只需添加先導碼(7字節,由0/1相間的數據組成)和幀起始界定符(1字節)即可形成標準的以太網幀并將其發送。以太網MAC在接收到一幀數據后,將先導碼和幀起始界定符剝離,然后將幀數據通過DMA搬運到緩沖區中。
圖3描述了基于DMA的雙通道以太網MAC架構設計。該設計包含如下子模塊:一個雙通道DMA模塊,實現緩沖區與以太網MAC之間的數據搬運;兩個以太網MAC模塊,實現以太網組幀解幀、流控管理、地址過濾等功能。

圖3 基于DMA的雙通道以太網MAC架構設計
對于發送通道,軟件通過DCR總線[10]配置DMA模塊內部的描述符列表基地址寄存器,DMA模塊根據該寄存器的值通過PLB4總線對緩沖區發起Burst讀操作,Burst長度可配置為4、8、16四字傳輸;DMA模塊將讀取到的數據通過發送EOPB總線傳輸給以太網MAC。EOPB總線是基于標準OPB總線[11]的擴展,將數據位寬從32位擴展到128位,字節使能位寬從4位擴展到16位。這樣做的好處是保證了數據位寬與PLB4總線數據位寬一致,提高傳輸效率的同時也降低了設計的復雜度。以太網MAC將接收到的數據打包成標準以太網幀格式通過GMII接口發送到網絡上[12-13]。
對于接收通道,以太網MAC將從網絡上收到的標準以太網幀解包后通過接收EOPB總線提交給DMA模塊,DMA模塊通過PLB4總線發起Burst寫操作將數據寫入緩沖區中。
3.1 發送模塊微結構設計
以太網發送模塊微結構設計如圖4所示。

圖4 以太網發送模塊微結構設計
軟件先將發送數據包準備好,通過處理器將發送數據包解析到發送緩沖區中并且更新發送描述符的控制字段,然后軟件通過寄存器配置啟動以太網MAC模塊的發送功能。以太網MAC模塊向DMA模塊請求發送數據包。DMA模塊獲取發送描述符信息,將控制字段寫入以太網MAC模塊,同時啟動DMA將發送數據包從緩沖區搬移至以太網MAC模塊。以太網MAC模塊將發送數據包組幀形成標準以太網幀格式并發送到網絡上。待發送完成后,以太網MAC模塊請求DMA模塊讀取狀態字段。DMA模塊將讀取到的狀態字段寫入發送描述符。以太網MAC模塊向處理器發出發送中斷表明數據包發送完成;軟件清除以太網MAC模塊的發送中斷。
3.2 接收模塊微結構設計
以太網接收模塊微結構設計如圖5所示。

圖5 以太網接收模塊微結構設計
軟件先開辟一塊空閑的接收緩沖區并且更新接收描述符的控制字段,然后軟件通過寄存器配置啟動以太網MAC模塊的接收功能。以太網MAC模塊從網絡上接收以太網幀,并且向DMA模塊發起接收數據包處理請求。DMA模塊獲取接收描述符信息,并將控制字段寫入以太網MAC模塊,同時啟動DMA將接收到的數據包寫入緩沖區中。待接收完成后,以太網MAC模塊請求DMA模塊讀取狀態字段。DMA模塊將讀取到的狀態字段寫入接收描述符。以太網MAC模塊向處理器發出接收中斷表明數據包接收完成;軟件清除以太網MAC模塊的接收中斷。
3.3 仿真驗證
通過NCSim平臺搭建仿真環境,使用Verilog和BFL[14]語言,借助外部PLB模型、DCR模型、OPB模型、以太網PHY模型以及時鐘復位模型對設計添加激勵,詳盡地對10/100/1 000 Mbps下全雙工/半雙工模式、流量控制、地址匹配等功能進行了驗證。
典型的全雙工千兆以太網自環過程如下:
(1)軟件通過DCR接口配置發送通道和接收通道的描述符列表基地址;
(2)軟件通過OPB接口配置以太網MAC模塊的收發功能;
(3)DMA模塊讀取發送通道描述符控制字;
(4)DMA模塊啟動DMA讀取PLB空間發送緩沖區中的數據;
(5)GMII接口自環發送、接收以太網幀;
(6)DMA模塊將狀態字寫回到發送通道描述符;
(7)DMA模塊讀取接收通道描述符控制字;
(8)DMA模塊啟動DMA將經過自環接收到的以太網幀數據寫入PLB空間;
(9)DMA模塊將狀態字寫回到接收通道描述符。
文中提出一種基于DMA的雙通道千兆以太網MAC方案,詳細論述了緩沖區描述符,體系結構設計,以太網幀發送、接收微結構設計。經過驗證,該設計滿足千兆以太網MAC層協議,實現了以太網幀的高效、高速、低開銷傳輸,可以方便地集成到嵌入式系統中。
[1] 董小娜,甄國涌,杜 志,等.基于Express Card接口的千兆以太網網卡設計[J].計算機測量與控制,2012,20(8):2267-2269.
[2] 詹俊鵬,李 鵬.基于Altera FPGA的千兆以太網實現方案[J].電子設計工程,2009,17(2):50-52.
[3] 董繼承,劉 健,王 瑞.一種帶優先級隊列的千兆以太網MAC設計[J].電子設計工程,2011,19(8):116-119.
[4] MCMAL DMA to PLB4 synthesizeble core databook[M].[s.l.]:IBM,2007.
[5] Ethernet Media Access Controller4 (EMAC4) core databook[M].[s.l.]:IBM,2004.
[6] 128-bit processor local bus architecture specifications[M].[s.l.]:IBM,2004.
[7] Ethernet Gigabit MAC4 (GMAC4) core databook[M].[s.l.]:IBM,2006.
[8] 李俊生,袁繼兵,鄭林華.基于AM79C874高速以太網控制器MAC層的設計與實現[J].電子工程師,2006,32(12):63-66.
[9] 劉 偉,王俊芳,王立瑩,等.千兆以太網MAC中CRC算法的設計與實現[J].通信技術,2012,45(7):32-34.
[10] Devic econtrol register bus 3.5 architecture specifications[M].[s.l.]:IBM,2006.
[11] On-chip peripheral bus architecture specifications[M].[s.l.]:IBM,2001.
[12] 孔 陽,武 杰,馬毅超,等.基于千兆以太網物理層的高速傳輸設計[J].核技術,2010,33(11):863-866.
[13] 曹 政,李 磊,陳明宇.萬兆以太網MAC層控制器設計與實現[J].小型微型計算機系統,2007,28(6):974-978.
[14] Processor local bus functional model toolkit[M].[s.l.]:IBM,2003.
Design and Verification of Dual-channel Gigabit Ethernet MAC Based on DMA
LIU Hao,TIAN Ze ,LIU Cheng-yu,LEI Yu
(Aeronautics Science and Technology Key Laboratory of Integrate Circuit and Micro-system Design,AVIC Computing Technique Research Institute,Xi’an 710068,China)
Ethernet is the popular communication protocol standard implemented in existing LANs.Gigabit Ethernet is fully compatible with 10/100 Mbps Ethernet,and adopting all specifications of original Ethernet.As the key of Ethernet technique,gigabit Ethernet MAC is the base of frame data transmitting,it implements the assembling and disassembling framing between upper data and physical level,flow control,and CRC check so on.Aiming at the demands of high-bandwidth and real-time-transmission in avionics applications,a method of dual-channel gigabit Ethernet MAC based on DMA is put forward.First,an overview of buffer descriptor is described,based on which propose the system design of dual-channel gigabit Ethernet MAC based on DMA.Finally,the structure design of sending and receiving module is discussed.Through simulation of the whole design under NCSim platform,the results show that the GMII interface can work in Full Duplex/Half Duplex mode at 10/100/1 000 Mbps respectively to meet the requirements.
buffer descriptor;DMA;gigabit Ethernet MAC;GMII
2015-06-16
2015-09-22
時間:2016-05-05
中國航空工業集團公司創新基金(2010BD63111)
劉 浩(1985-),男,碩士研究生,工程師,研究方向為集成電路設計;田 澤,博士,研究員,中航首席技術專家,研究方向為SoC設計、嵌入式系統設計、VLSI設計。
http://www.cnki.net/kcms/detail/61.1450.TP.20160505.0814.002.html
TP39
A
1673-629X(2016)05-0132-03
10.3969/j.issn.1673-629X.2016.05.028