《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 吉比特MAC接口IP軟核的分析與研究
吉比特MAC接口IP軟核的分析與研究
2015年微型機與應(yīng)用第13期
趙 竹1,肖 帥2
1.湖南交通職業(yè)技術(shù)學(xué)院,,湖南 長沙 410132,; 2.湖南現(xiàn)代物流職業(yè)技術(shù)學(xué)院,,湖南 長沙 410131
摘要: MAC(Media Access Control)層位于網(wǎng)絡(luò)結(jié)構(gòu)七層協(xié)議中的數(shù)據(jù)鏈路層,,控制局域網(wǎng)中的多個節(jié)點對共享介質(zhì)的訪問,,保證相鄰節(jié)點之間數(shù)據(jù)的可靠傳輸,。本文介紹一種吉比特MAC接口的結(jié)構(gòu),,該MAC采用基于描述符傳輸?shù)腄MA(Direct Memory Access)和雙通道的MTL(MAC Transaction Layer),,在半雙工模式下支持10/100 Mb/s,、全雙工模式下支持10/100/1 000 Mb/s的網(wǎng)絡(luò)數(shù)據(jù)傳輸速率。
關(guān)鍵詞: MAC 描述符 DMA MTL
Abstract:
Key words :

  摘  要MAC(Media Access Control)層位于網(wǎng)絡(luò)結(jié)構(gòu)七層協(xié)議中的數(shù)據(jù)鏈路層,,控制局域網(wǎng)中的多個節(jié)點對共享介質(zhì)的訪問,,保證相鄰節(jié)點之間數(shù)據(jù)的可靠傳輸。本文介紹一種吉比特MAC接口的結(jié)構(gòu),,該MAC采用基于描述符傳輸?shù)?a class="innerlink" href="http://forexkbc.com/tags/DMA" title="DMA" target="_blank">DMA(Direct Memory Access)和雙通道的MTL(MAC Transaction Layer),,在半雙工模式下支持10/100 Mb/s、全雙工模式下支持10/100/1 000 Mb/s的網(wǎng)絡(luò)數(shù)據(jù)傳輸速率,。

  關(guān)鍵詞: MAC,;描述符;DMA,;MTL

0 引言

  在計算機網(wǎng)絡(luò)技術(shù)飛速發(fā)展的新時期,,人們對現(xiàn)有資源共享越來越依賴網(wǎng)絡(luò),,并設(shè)計開發(fā)了多種不同應(yīng)用范圍的局域網(wǎng)技術(shù)。其中,,以太網(wǎng)憑借其較高的靈活性和操作性,,在局域網(wǎng)技術(shù)使用過程中得到了飛速迅猛的發(fā)展。隨著人們對網(wǎng)絡(luò)帶寬和數(shù)據(jù)傳輸速率要求的提高,,千兆位以太網(wǎng)應(yīng)運而生,。千兆位以太網(wǎng)仍然保留了以太網(wǎng)的幀格式、CSMA/CS機制和MTU[1],,并且引入了載波擴展和幀突發(fā)機制[2],。以太網(wǎng)IEEE802.3協(xié)議根據(jù)LAN的特點,把數(shù)據(jù)鏈路層分為LLC(邏輯鏈路控制)和MAC(介質(zhì)訪問控制)兩個子層,。MAC層協(xié)議作為數(shù)據(jù)幀收發(fā)的基礎(chǔ),,是以太網(wǎng)技術(shù)的核心,主要負(fù)責(zé)上層數(shù)據(jù)和物理層的數(shù)據(jù)流量控制以及數(shù)據(jù)流的檢測,、校驗工作,。

  IP核是采用Verilog等硬件描述語言實現(xiàn)的功能塊。使用IP核的方式便于實現(xiàn)元件系統(tǒng)引用,、修改基本元件功能及IP核復(fù)用都非常容易,。在SoC設(shè)計中,IP核的使用可以縮短設(shè)計周期,,降低設(shè)計風(fēng)險,,已經(jīng)成為SoC設(shè)計中不可缺少的部分[3]。

  本文主要介紹吉比特MAC接口IP軟核的結(jié)構(gòu)和實現(xiàn),。

1 MAC功能

  本設(shè)計中的MAC遵守CSMA/CD協(xié)議,,網(wǎng)絡(luò)數(shù)據(jù)在發(fā)送的過程中打包成標(biāo)準(zhǔn)的IEEE802.3幀格式;在接收數(shù)據(jù)過程中,,對數(shù)據(jù)幀進(jìn)行CRC校驗,,有效刪除錯誤數(shù)據(jù),提高數(shù)據(jù)傳輸效率[4],。支持半雙工和全雙工的操作模式,,半雙工模式下支持10 Mb/s/100 Mb/s的網(wǎng)絡(luò)數(shù)據(jù)傳輸速率,提高載波擴展和幀突發(fā)機制,,并以back-pressure的形式進(jìn)行流控制,;全雙工模式下支持10 Mb/s/100 Mb/s/1 000 Mb/s的網(wǎng)絡(luò)數(shù)據(jù)傳輸速率,并采用pause幀的方式進(jìn)行流控制,;支持可編程的幀間距以及幀長度以適應(yīng)標(biāo)準(zhǔn)以太網(wǎng)幀和長達(dá)16 kB的超大以太網(wǎng)幀,;支持IPv4、IPv6和ICMP網(wǎng)絡(luò)協(xié)議和TCP,、UDP傳輸協(xié)議,;提供GMII/RGMII/MII/RMII端口與相應(yīng)的PHY端口連接,,并且提供MDIO主機對PHY進(jìn)行配置管理。

2 MAC體系結(jié)構(gòu)

  如圖1所示,,MAC由以下四個部分構(gòu)成:MAC-AXI,、MAC-DMA、MAC-MTL,、MAC-CORE,。MAC采用獨立的數(shù)據(jù)傳輸與寄存器訪問接口,通過AXI接口與DSP連接,,通過AXI主機端口進(jìn)行數(shù)據(jù)的傳輸,,通過AXI從機端口訪問DMA和MAC的系統(tǒng)控制、狀態(tài)寄存器(CSR)[5],。AXI接口基于burst的傳輸方式和獨立的控制,、數(shù)據(jù)及響應(yīng)通道,提高了傳輸效率和總線的利用率,;DMA提供獨立的數(shù)據(jù)和寄存器訪問接口,,數(shù)據(jù)端采用基于描述符的傳輸將數(shù)據(jù)傳輸?shù)組TL,大大提高了數(shù)據(jù)傳輸效率,;MTL提供兩個FIFO對DMA與MAC-CORE之間傳輸?shù)臄?shù)據(jù)進(jìn)行緩存,;MAC-CORE對網(wǎng)絡(luò)數(shù)據(jù)幀進(jìn)行接收發(fā)送并對PHY進(jìn)行配置管理;各個層次都提供了單獨的發(fā)送,、接收通道,,加快數(shù)據(jù)傳輸速率。此外,,該MAC IP核的各個層次可獨立,,用戶可以根據(jù)自己的需求選擇合適的結(jié)構(gòu),。

Image 001.png

  2.1 AXI接口

  MAC通過AMBA3 AXI總線接口與DSP連接,。AXI主機接口支持burst請求以隊列的形式發(fā)出讀寫請求,并通過請求重排序,,數(shù)據(jù)交錯使得主機可以更加靈活地選擇優(yōu)先請求,、慢速外設(shè)從機。在寫數(shù)據(jù)通道設(shè)計了一個深度為8的數(shù)據(jù)請求FIFO,,這樣AXI總線上最多能支持8個讀寫請求,。此外還設(shè)計了深度為2的數(shù)據(jù)FIFO和響應(yīng)FIFO,用以支持DMA的OSF操作模式,,提高數(shù)據(jù)傳輸效率,。AXI從機接口訪問MAC的系統(tǒng)控制、狀態(tài)寄存器(CSR),。

  該接口提供128 bit的數(shù)據(jù)位寬,、32 bit的地址位寬,,最大burst長度為32,每個ID最多支持4個讀/寫請求,,為數(shù)據(jù)的高效傳輸提供了保障,。該接口允許來自不同DMA通道的讀寫同時傳輸,以提高總線的利用率,。另外,,為了減少整個芯片的功耗,DSP可以通過控制AXI接口使MAC進(jìn)入低功耗模式,。

  2.2 MAC-DMA

  DMA模塊實現(xiàn)MTL模塊和AXI接口之間的數(shù)據(jù)交換,,DSP通過AXI從機接口配置DMA寄存器直接啟動MAC,DSP可以通過設(shè)置DMA CSR來控制DMA的操作,。該模塊采用128 bit的數(shù)據(jù)位寬與AXI接口和MTL模塊連接,。如圖2所示,DMA提供獨立的CSR訪問接口和數(shù)據(jù)接口,;具有獨立的發(fā)送,、接收引擎,發(fā)送引擎將數(shù)據(jù)從DSP的發(fā)送數(shù)據(jù)buffer傳輸?shù)組TL,,接收引擎將數(shù)據(jù)從MTL傳輸?shù)紻SP接收數(shù)據(jù)buffer,,描述符作為這些buffer的指針;沖裁模塊除了對讀寫操作進(jìn)行沖裁和發(fā)送接收之間的沖裁之外,,還包括對描述符傳輸與數(shù)據(jù)傳輸?shù)臎_裁,。讀寫數(shù)據(jù)通過數(shù)據(jù)單元緩沖,提高傳輸效率,。

Image 002.png

  DMA通過描述符的傳輸在DSP盡量少干涉的情況下實現(xiàn)數(shù)據(jù)交互,,每個描述符可以傳輸8 KB的數(shù)據(jù),描述符地址寬度與總線寬度一致,。描述符有兩類:發(fā)送描述符(TDES0-3)和接收描述符(RDES0-3),,如圖3所示,每一類描述符包含兩個buffer,、兩個字節(jié)計數(shù)buffer和兩個指向DSP發(fā)送,、接收數(shù)據(jù)buffer的地址指針。每一個描述符最多指向兩個數(shù)據(jù)buffer,,數(shù)據(jù)buffer可以包含一整幀的數(shù)據(jù)或者不滿一幀的數(shù)據(jù),,但是不能超過一幀,并且只含數(shù)據(jù),,buffer狀態(tài)包含在描述符中,。一幀的數(shù)據(jù)可以跨越多個數(shù)據(jù)buffer,但是一個描述符中的數(shù)據(jù)不能跨越多幀。描述符列表有兩種結(jié)構(gòu):環(huán)型,,每個描述符指向兩個數(shù)據(jù)buffer,,執(zhí)行到最后一個描述符時跳回描述符列表的首地址;鏈接型,,將DES3配置成下一個描述符地址形成描述符鏈,,這種模式下的描述符只能指向一個數(shù)據(jù)buffer。

Image 003.png

  與以往基于計數(shù)的DMA傳輸相比,,采用基于描述符傳輸?shù)腄MA每次傳輸?shù)臄?shù)據(jù)量增大,,傳輸速率更快。此外,,DMA具有單獨的發(fā)送,、接收引擎可加快數(shù)據(jù)的傳輸,并提供幀分隔符以優(yōu)化報文結(jié)構(gòu)的傳輸,,對任何正確或錯誤的傳輸都給出狀態(tài)標(biāo)識位,,增強數(shù)據(jù)傳輸可靠性,支持可編程地發(fā)送,、接收DMA引擎burst尺寸以提高總線利用率,,支持每一幀的發(fā)送接收完成中斷控制和各種操作情況下可編程的中斷選擇。

  2.3 MAC-MTL

  MTL作為DMA的從設(shè)備,,采用128 bit數(shù)據(jù)位寬與DMA和MAC-CORE相連,,數(shù)據(jù)傳輸以簡單的FIFO協(xié)議執(zhí)行操作。該模塊包含兩個數(shù)據(jù)通道,,發(fā)送通道和接收通道,。發(fā)送通道將DMA的數(shù)據(jù)傳輸?shù)組AC-CORE,DMA控制發(fā)送通道的所有傳輸,;接收通道則把MAC-CORE的數(shù)據(jù)傳輸?shù)紻MA,,如圖4所示。每個通道都含有單獨的讀寫控制模塊,。根據(jù)接收幀的狀態(tài)信息,,接收寫控制模塊對接收幀進(jìn)行過濾,刪除錯誤幀,。在發(fā)送過程中產(chǎn)生沖突時,,發(fā)送讀模塊將沖突的數(shù)據(jù)幀重新發(fā)送到MAC-CORE端,。

Image 004.png

  MTL提供了兩個8 KB的雙端口異步FIFO緩存DMA與MAC-CORE之間傳輸?shù)臄?shù)據(jù)幀,。Tx FIFO緩存DMA從DSP內(nèi)存讀取且尚未被發(fā)送到MAC的數(shù)據(jù),Rx FIFO保存從以太網(wǎng)接收且尚未被傳輸?shù)紻MA的數(shù)據(jù),。除了緩存每一幀的數(shù)據(jù)外,,每一幀的狀態(tài)信息緊跟數(shù)據(jù)存入FIFO中,而不需要額外的FIFO來保存,因此只要FIFO未滿就能不斷接收數(shù)據(jù)幀,,提高傳輸效率,。數(shù)據(jù)FIFO通過選擇信號啟動,即FIFO不工作時處于休眠狀態(tài),,減小功耗,。MTL將FIFO的空滿狀態(tài)信息反饋給DMA,再由DMA控制發(fā)送接收操作,。此外,,Rx FIFO滿的情況下,可以通過pause幀控制或產(chǎn)生back-pressure給MAC-CORE來控制數(shù)據(jù)幀的接收,,進(jìn)行流控制,。Tx FIFO的flush操作則是通過軟件來控制的。

  2.4 MAC-CORE

  MAC-CORE有發(fā)送,、接收兩個通道,,實現(xiàn)PHY與MTL模塊的數(shù)據(jù)交互,具有單獨的地址過濾單元,,對接收數(shù)據(jù)幀的地址進(jìn)行檢查以便決定接收幀的傳輸與否,。支持多種地址過濾方式:目的地址/源地址過濾、單播地址/多播地址過濾,,另外還可以提供哈希表對地址進(jìn)行過濾,,具有單獨的CRC模塊,對每一個接收幀進(jìn)行CRC校驗,,對需要發(fā)送的幀產(chǎn)生CRC檢驗碼,。支持可編程的IFG和接收幀的IEEE802.1Q VLAN檢測。對IPv4,、IPv6數(shù)據(jù)包負(fù)載進(jìn)行TCP,、UDP、ICMP檢驗以及IPv4首部檢驗和驗證,。提供四種PHY端口:MII,、GMII、RMII,、RGMII,,并且輸出端口的數(shù)據(jù)并行輸出,提高數(shù)據(jù)傳輸效率,。提供MDIO模塊對PHY進(jìn)行配置和管理,。

3 MAC體系結(jié)構(gòu)

  在VCS驗證平臺下,分別在10 Mb/s/100 Mb/s/    1 000 Mb/s傳輸速率下對MAC IP核的RTL級代碼進(jìn)行了模塊級和系統(tǒng)級驗證,,主要驗證其邏輯功能的正確性,,邏輯驗證和功能結(jié)果均符合要求,。圖5為半雙工模式下100 Mb/s傳輸速率MAC模擬波形圖,圖6是全雙工模式下1 000Mb/s傳輸速率MAC模擬波形圖,。模擬驗證表明,,該結(jié)構(gòu)的MAC設(shè)計達(dá)到了預(yù)期目標(biāo)。

Image 005.png

4 結(jié)束語

  本文針對千兆位以太網(wǎng)的要求,,介紹了一種吉比特MAC接口,,用Verilog硬件描述語言,實現(xiàn)了一個RTL級的IP核,,該MAC采用AXI接口,,連續(xù)發(fā)送burst請求,各個通道獨立,,提高總線利用率,。基于描述符傳輸?shù)腄MA在沒有CPU干涉的情況下,,一次可以傳輸大量的數(shù)據(jù),,獨立的雙通道MTL為數(shù)據(jù)快速傳輸提供了保障。MAC-CORE提供了多種類型的PHY端口,,數(shù)據(jù)并行輸出,,加快了傳輸速率。最后對該MAC進(jìn)行了模擬和驗證,。驗證結(jié)果表明,,本文設(shè)計的模塊功能正確,達(dá)到了預(yù)期目標(biāo),。

參考文獻(xiàn)

  [1] IEEE P802.3ba(tm) D3.2-2010. Telecommunication and information exchange between system-local and metropolitan area networks specific requirements Part3: carrier sense multiple access with collision detection(CSMA/CD)access methodand physical layer specifications[S]. 2010.

  [2] 蔡開裕,,朱培棟,徐明.計算機網(wǎng)絡(luò)[M].北京:機械工業(yè)出版社,,2008.

  [3] 韓建,,陳嵐,粟雅娟,,等.基于用戶的IP核評測方法[J].微電子學(xué)與計算機,,2009,26(11):43-47.

  [4] 張偉華,,魏仲慧,,何昕.嵌入式通用千兆以太網(wǎng)接口的設(shè)計與實現(xiàn)[J].儀表技術(shù)與傳感器,2011(6):41-43,,47.

  [5] 吳俊杰,,吳建輝.以太網(wǎng)MAC控制器的MII接口轉(zhuǎn)RMII接口的實現(xiàn)[J].電子器件,2008(2):712-715.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。