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

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

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

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

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

圖5 以太網(wǎng)接收模塊微結(jié)構(gòu)設計
軟件先開辟一塊空閑的接收緩沖區(qū)并且更新接收描述符的控制字段,然后軟件通過寄存器配置啟動以太網(wǎng)MAC模塊的接收功能。以太網(wǎng)MAC模塊從網(wǎng)絡上接收以太網(wǎng)幀,并且向DMA模塊發(fā)起接收數(shù)據(jù)包處理請求。DMA模塊獲取接收描述符信息,并將控制字段寫入以太網(wǎng)MAC模塊,同時啟動DMA將接收到的數(shù)據(jù)包寫入緩沖區(qū)中。待接收完成后,以太網(wǎng)MAC模塊請求DMA模塊讀取狀態(tài)字段。DMA模塊將讀取到的狀態(tài)字段寫入接收描述符。以太網(wǎng)MAC模塊向處理器發(fā)出接收中斷表明數(shù)據(jù)包接收完成;軟件清除以太網(wǎng)MAC模塊的接收中斷。
3.3 仿真驗證
通過NCSim平臺搭建仿真環(huán)境,使用Verilog和BFL[14]語言,借助外部PLB模型、DCR模型、OPB模型、以太網(wǎng)PHY模型以及時鐘復位模型對設計添加激勵,詳盡地對10/100/1 000 Mbps下全雙工/半雙工模式、流量控制、地址匹配等功能進行了驗證。
典型的全雙工千兆以太網(wǎng)自環(huán)過程如下:
(1)軟件通過DCR接口配置發(fā)送通道和接收通道的描述符列表基地址;
(2)軟件通過OPB接口配置以太網(wǎng)MAC模塊的收發(fā)功能;
(3)DMA模塊讀取發(fā)送通道描述符控制字;
(4)DMA模塊啟動DMA讀取PLB空間發(fā)送緩沖區(qū)中的數(shù)據(jù);
(5)GMII接口自環(huán)發(fā)送、接收以太網(wǎng)幀;
(6)DMA模塊將狀態(tài)字寫回到發(fā)送通道描述符;
(7)DMA模塊讀取接收通道描述符控制字;
(8)DMA模塊啟動DMA將經(jīng)過自環(huán)接收到的以太網(wǎng)幀數(shù)據(jù)寫入PLB空間;
(9)DMA模塊將狀態(tài)字寫回到接收通道描述符。
文中提出一種基于DMA的雙通道千兆以太網(wǎng)MAC方案,詳細論述了緩沖區(qū)描述符,體系結(jié)構(gòu)設計,以太網(wǎng)幀發(fā)送、接收微結(jié)構(gòu)設計。經(jīng)過驗證,該設計滿足千兆以太網(wǎng)MAC層協(xié)議,實現(xiàn)了以太網(wǎng)幀的高效、高速、低開銷傳輸,可以方便地集成到嵌入式系統(tǒng)中。
[1] 董小娜,甄國涌,杜 志,等.基于Express Card接口的千兆以太網(wǎng)網(wǎng)卡設計[J].計算機測量與控制,2012,20(8):2267-2269.
[2] 詹俊鵬,李 鵬.基于Altera FPGA的千兆以太網(wǎng)實現(xiàn)方案[J].電子設計工程,2009,17(2):50-52.
[3] 董繼承,劉 健,王 瑞.一種帶優(yōu)先級隊列的千兆以太網(wǎng)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高速以太網(wǎng)控制器MAC層的設計與實現(xiàn)[J].電子工程師,2006,32(12):63-66.
[9] 劉 偉,王俊芳,王立瑩,等.千兆以太網(wǎng)MAC中CRC算法的設計與實現(xiàn)[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] 孔 陽,武 杰,馬毅超,等.基于千兆以太網(wǎng)物理層的高速傳輸設計[J].核技術,2010,33(11):863-866.
[13] 曹 政,李 磊,陳明宇.萬兆以太網(wǎng)MAC層控制器設計與實現(xiàn)[J].小型微型計算機系統(tǒng),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
中國航空工業(yè)集團公司創(chuàng)新基金(2010BD63111)
劉 浩(1985-),男,碩士研究生,工程師,研究方向為集成電路設計;田 澤,博士,研究員,中航首席技術專家,研究方向為SoC設計、嵌入式系統(tǒng)設計、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