劉 浩,田 澤,劉承禹,雷 宇
(中航工業(yè)西安航空計(jì)算技術(shù)研究所 集成電路與微系統(tǒng)設(shè)計(jì)航空科技重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710068)
基于DMA的雙通道千兆以太網(wǎng)MAC設(shè)計(jì)與驗(yàn)證
劉 浩,田 澤,劉承禹,雷 宇
(中航工業(yè)西安航空計(jì)算技術(shù)研究所 集成電路與微系統(tǒng)設(shè)計(jì)航空科技重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710068)
以太網(wǎng)是現(xiàn)有局域網(wǎng)采用的通用的通信協(xié)議標(biāo)準(zhǔn)。千兆以太網(wǎng)向下完全兼容10/100 Mbps以太網(wǎng),并利用了原以太網(wǎng)標(biāo)準(zhǔn)所規(guī)定的全部技術(shù)規(guī)范。作為以太網(wǎng)技術(shù)的核心,千兆以太網(wǎng)MAC層協(xié)議是數(shù)據(jù)幀收發(fā)的基礎(chǔ),負(fù)責(zé)上層數(shù)據(jù)和物理層比特流的封裝和解封,流量控制,校驗(yàn)檢測(cè)等功能。針對(duì)航電系統(tǒng)應(yīng)用中對(duì)通信帶寬和數(shù)據(jù)實(shí)時(shí)性的要求,文中提出了基于DMA的雙通道千兆以太網(wǎng)MAC方案。首先對(duì)緩沖區(qū)描述符存儲(chǔ)結(jié)構(gòu)進(jìn)行描述,基于此種存儲(chǔ)結(jié)構(gòu)提出了基于DMA的雙通道千兆以太網(wǎng)MAC架構(gòu)設(shè)計(jì),最后對(duì)發(fā)送、接收模塊微結(jié)構(gòu)進(jìn)行了詳細(xì)設(shè)計(jì)。在NCSim平臺(tái)下對(duì)整個(gè)設(shè)計(jì)進(jìn)行了仿真驗(yàn)證。結(jié)果表明GMII接口能夠以10/100/1 000 Mbps的速率實(shí)現(xiàn)半雙工/全雙工通信,滿足設(shè)計(jì)要求。
緩沖區(qū)描述符;DMA;千兆以太網(wǎng)MAC;GMII
以太網(wǎng)自提出以來(lái),得到了飛速發(fā)展,已經(jīng)成為當(dāng)前局域網(wǎng)的標(biāo)準(zhǔn)。千兆以太網(wǎng)與10/100 Mbps以太網(wǎng)完全兼容[1],并利用了原以太網(wǎng)標(biāo)準(zhǔn)所規(guī)定的全部技術(shù)規(guī)范,包括CSMA/CD協(xié)議、以太網(wǎng)幀格式、全雙工、流量控制等[2]。千兆以太網(wǎng)以其高效、高速、高性能等特點(diǎn)廣泛應(yīng)用于工業(yè)、國(guó)防、航空航天等特殊領(lǐng)域[3]。
航電系統(tǒng)的發(fā)展趨勢(shì)要求網(wǎng)絡(luò)既能夠提供更大的帶寬,又能保證實(shí)時(shí)性數(shù)據(jù)的傳輸。文中提出的基于DMA[4]的雙通道千兆以太網(wǎng)MAC[5]解決方案,主機(jī)事先按照緩沖區(qū)描述符存儲(chǔ)結(jié)構(gòu)開(kāi)辟好緩沖區(qū),然后啟動(dòng)DMA實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)與發(fā)送、接收模塊之間的數(shù)據(jù)搬移,實(shí)現(xiàn)了PLB4[6]接口與GMII[7]接口之間高效的數(shù)據(jù)傳輸。
緩沖區(qū)描述符存儲(chǔ)結(jié)構(gòu)由一組寄存器和一組環(huán)形隊(duì)列組成。軟件將待發(fā)送的以太網(wǎng)數(shù)據(jù)填充到緩沖區(qū)中,為接收到的以太網(wǎng)數(shù)據(jù)開(kāi)辟好緩沖區(qū),同時(shí)更新描述符的控制字段;硬件自動(dòng)處理描述符并且在每一幀處理完成后更新描述符的狀態(tài)字段。緩沖區(qū)描述符存儲(chǔ)結(jié)構(gòu)如圖1所示。
圖1 緩沖區(qū)描述符存儲(chǔ)結(jié)構(gòu)
主機(jī)對(duì)描述符列表基地址寄存器進(jìn)行配置,該寄存器的值指向了主機(jī)內(nèi)存空間中描述符列表的基地址。描述符列表是一組環(huán)形隊(duì)列,最大可達(dá)256個(gè)。每個(gè)描述符長(zhǎng)度為8字節(jié),包含3個(gè)有效字段:狀態(tài)/控制字段定義了緩沖區(qū)的空/滿狀態(tài)、回繞模式;緩沖區(qū)數(shù)據(jù)長(zhǎng)度字段定義了緩沖區(qū)數(shù)據(jù)的長(zhǎng)度;緩沖區(qū)指針字段定義了緩沖區(qū)在主機(jī)內(nèi)存實(shí)際存儲(chǔ)的首地址。DMA根據(jù)該實(shí)際存儲(chǔ)地址完成緩沖區(qū)數(shù)據(jù)與以太網(wǎng)MAC之間的搬移。
緩沖區(qū)與以太網(wǎng)MAC之間的DMA數(shù)據(jù)搬運(yùn)如圖2所示。
圖2 緩沖區(qū)與以太網(wǎng)MAC之間的DMA數(shù)據(jù)搬運(yùn)
緩沖區(qū)中存放的數(shù)據(jù)包含以太網(wǎng)幀格式[8]中的目的地址(6字節(jié))、源地址(6字節(jié))、長(zhǎng)度/類型(2字節(jié))、數(shù)據(jù)負(fù)載(最大1 500字節(jié))以及CRC校驗(yàn)[9](4字節(jié))。DMA將緩沖區(qū)中的數(shù)據(jù)搬運(yùn)到以太網(wǎng)MAC后,以太網(wǎng)MAC只需添加先導(dǎo)碼(7字節(jié),由0/1相間的數(shù)據(jù)組成)和幀起始界定符(1字節(jié))即可形成標(biāo)準(zhǔn)的以太網(wǎng)幀并將其發(fā)送。以太網(wǎng)MAC在接收到一幀數(shù)據(jù)后,將先導(dǎo)碼和幀起始界定符剝離,然后將幀數(shù)據(jù)通過(guò)DMA搬運(yùn)到緩沖區(qū)中。
圖3描述了基于DMA的雙通道以太網(wǎng)MAC架構(gòu)設(shè)計(jì)。該設(shè)計(jì)包含如下子模塊:一個(gè)雙通道DMA模塊,實(shí)現(xiàn)緩沖區(qū)與以太網(wǎng)MAC之間的數(shù)據(jù)搬運(yùn);兩個(gè)以太網(wǎng)MAC模塊,實(shí)現(xiàn)以太網(wǎng)組幀解幀、流控管理、地址過(guò)濾等功能。
圖3 基于DMA的雙通道以太網(wǎng)MAC架構(gòu)設(shè)計(jì)
對(duì)于發(fā)送通道,軟件通過(guò)DCR總線[10]配置DMA模塊內(nèi)部的描述符列表基地址寄存器,DMA模塊根據(jù)該寄存器的值通過(guò)PLB4總線對(duì)緩沖區(qū)發(fā)起B(yǎng)urst讀操作,Burst長(zhǎng)度可配置為4、8、16四字傳輸;DMA模塊將讀取到的數(shù)據(jù)通過(guò)發(fā)送EOPB總線傳輸給以太網(wǎng)MAC。EOPB總線是基于標(biāo)準(zhǔn)OPB總線[11]的擴(kuò)展,將數(shù)據(jù)位寬從32位擴(kuò)展到128位,字節(jié)使能位寬從4位擴(kuò)展到16位。這樣做的好處是保證了數(shù)據(jù)位寬與PLB4總線數(shù)據(jù)位寬一致,提高傳輸效率的同時(shí)也降低了設(shè)計(jì)的復(fù)雜度。以太網(wǎng)MAC將接收到的數(shù)據(jù)打包成標(biāo)準(zhǔn)以太網(wǎng)幀格式通過(guò)GMII接口發(fā)送到網(wǎng)絡(luò)上[12-13]。
對(duì)于接收通道,以太網(wǎng)MAC將從網(wǎng)絡(luò)上收到的標(biāo)準(zhǔn)以太網(wǎng)幀解包后通過(guò)接收EOPB總線提交給DMA模塊,DMA模塊通過(guò)PLB4總線發(fā)起B(yǎng)urst寫(xiě)操作將數(shù)據(jù)寫(xiě)入緩沖區(qū)中。
3.1 發(fā)送模塊微結(jié)構(gòu)設(shè)計(jì)
以太網(wǎng)發(fā)送模塊微結(jié)構(gòu)設(shè)計(jì)如圖4所示。
圖4 以太網(wǎng)發(fā)送模塊微結(jié)構(gòu)設(shè)計(jì)
軟件先將發(fā)送數(shù)據(jù)包準(zhǔn)備好,通過(guò)處理器將發(fā)送數(shù)據(jù)包解析到發(fā)送緩沖區(qū)中并且更新發(fā)送描述符的控制字段,然后軟件通過(guò)寄存器配置啟動(dòng)以太網(wǎng)MAC模塊的發(fā)送功能。以太網(wǎng)MAC模塊向DMA模塊請(qǐng)求發(fā)送數(shù)據(jù)包。DMA模塊獲取發(fā)送描述符信息,將控制字段寫(xiě)入以太網(wǎng)MAC模塊,同時(shí)啟動(dòng)DMA將發(fā)送數(shù)據(jù)包從緩沖區(qū)搬移至以太網(wǎng)MAC模塊。以太網(wǎng)MAC模塊將發(fā)送數(shù)據(jù)包組幀形成標(biāo)準(zhǔn)以太網(wǎng)幀格式并發(fā)送到網(wǎng)絡(luò)上。待發(fā)送完成后,以太網(wǎng)MAC模塊請(qǐng)求DMA模塊讀取狀態(tài)字段。DMA模塊將讀取到的狀態(tài)字段寫(xiě)入發(fā)送描述符。以太網(wǎng)MAC模塊向處理器發(fā)出發(fā)送中斷表明數(shù)據(jù)包發(fā)送完成;軟件清除以太網(wǎng)MAC模塊的發(fā)送中斷。
3.2 接收模塊微結(jié)構(gòu)設(shè)計(jì)
以太網(wǎng)接收模塊微結(jié)構(gòu)設(shè)計(jì)如圖5所示。
圖5 以太網(wǎng)接收模塊微結(jié)構(gòu)設(shè)計(jì)
軟件先開(kāi)辟一塊空閑的接收緩沖區(qū)并且更新接收描述符的控制字段,然后軟件通過(guò)寄存器配置啟動(dòng)以太網(wǎng)MAC模塊的接收功能。以太網(wǎng)MAC模塊從網(wǎng)絡(luò)上接收以太網(wǎng)幀,并且向DMA模塊發(fā)起接收數(shù)據(jù)包處理請(qǐng)求。DMA模塊獲取接收描述符信息,并將控制字段寫(xiě)入以太網(wǎng)MAC模塊,同時(shí)啟動(dòng)DMA將接收到的數(shù)據(jù)包寫(xiě)入緩沖區(qū)中。待接收完成后,以太網(wǎng)MAC模塊請(qǐng)求DMA模塊讀取狀態(tài)字段。DMA模塊將讀取到的狀態(tài)字段寫(xiě)入接收描述符。以太網(wǎng)MAC模塊向處理器發(fā)出接收中斷表明數(shù)據(jù)包接收完成;軟件清除以太網(wǎng)MAC模塊的接收中斷。
3.3 仿真驗(yàn)證
通過(guò)NCSim平臺(tái)搭建仿真環(huán)境,使用Verilog和BFL[14]語(yǔ)言,借助外部PLB模型、DCR模型、OPB模型、以太網(wǎng)PHY模型以及時(shí)鐘復(fù)位模型對(duì)設(shè)計(jì)添加激勵(lì),詳盡地對(duì)10/100/1 000 Mbps下全雙工/半雙工模式、流量控制、地址匹配等功能進(jìn)行了驗(yàn)證。
典型的全雙工千兆以太網(wǎng)自環(huán)過(guò)程如下:
(1)軟件通過(guò)DCR接口配置發(fā)送通道和接收通道的描述符列表基地址;
(2)軟件通過(guò)OPB接口配置以太網(wǎng)MAC模塊的收發(fā)功能;
(3)DMA模塊讀取發(fā)送通道描述符控制字;
(4)DMA模塊啟動(dòng)DMA讀取PLB空間發(fā)送緩沖區(qū)中的數(shù)據(jù);
(5)GMII接口自環(huán)發(fā)送、接收以太網(wǎng)幀;
(6)DMA模塊將狀態(tài)字寫(xiě)回到發(fā)送通道描述符;
(7)DMA模塊讀取接收通道描述符控制字;
(8)DMA模塊啟動(dòng)DMA將經(jīng)過(guò)自環(huán)接收到的以太網(wǎng)幀數(shù)據(jù)寫(xiě)入PLB空間;
(9)DMA模塊將狀態(tài)字寫(xiě)回到接收通道描述符。
文中提出一種基于DMA的雙通道千兆以太網(wǎng)MAC方案,詳細(xì)論述了緩沖區(qū)描述符,體系結(jié)構(gòu)設(shè)計(jì),以太網(wǎng)幀發(fā)送、接收微結(jié)構(gòu)設(shè)計(jì)。經(jīng)過(guò)驗(yàn)證,該設(shè)計(jì)滿足千兆以太網(wǎng)MAC層協(xié)議,實(shí)現(xiàn)了以太網(wǎng)幀的高效、高速、低開(kāi)銷傳輸,可以方便地集成到嵌入式系統(tǒng)中。
[1] 董小娜,甄國(guó)涌,杜 志,等.基于Express Card接口的千兆以太網(wǎng)網(wǎng)卡設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2012,20(8):2267-2269.
[2] 詹俊鵬,李 鵬.基于Altera FPGA的千兆以太網(wǎng)實(shí)現(xiàn)方案[J].電子設(shè)計(jì)工程,2009,17(2):50-52.
[3] 董繼承,劉 健,王 瑞.一種帶優(yōu)先級(jí)隊(duì)列的千兆以太網(wǎng)MAC設(shè)計(jì)[J].電子設(shè)計(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層的設(shè)計(jì)與實(shí)現(xiàn)[J].電子工程師,2006,32(12):63-66.
[9] 劉 偉,王俊芳,王立瑩,等.千兆以太網(wǎng)MAC中CRC算法的設(shè)計(jì)與實(shí)現(xiàn)[J].通信技術(shù),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] 孔 陽(yáng),武 杰,馬毅超,等.基于千兆以太網(wǎng)物理層的高速傳輸設(shè)計(jì)[J].核技術(shù),2010,33(11):863-866.
[13] 曹 政,李 磊,陳明宇.萬(wàn)兆以太網(wǎng)MAC層控制器設(shè)計(jì)與實(shí)現(xiàn)[J].小型微型計(jì)算機(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
時(shí)間:2016-05-05
中國(guó)航空工業(yè)集團(tuán)公司創(chuàng)新基金(2010BD63111)
劉 浩(1985-),男,碩士研究生,工程師,研究方向?yàn)榧呻娐吩O(shè)計(jì);田 澤,博士,研究員,中航首席技術(shù)專家,研究方向?yàn)镾oC設(shè)計(jì)、嵌入式系統(tǒng)設(shè)計(jì)、VLSI設(shè)計(jì)。
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