《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 吉比特MAC接口IP軟核的分析與研究
吉比特MAC接口IP軟核的分析與研究
2015年微型機(jī)與應(yīng)用第13期
趙 竹1,肖 帥2
1.湖南交通職業(yè)技術(shù)學(xué)院,湖南 長(zhǎng)沙 410132; 2.湖南現(xiàn)代物流職業(yè)技術(shù)學(xué)院,湖南 長(zhǎng)沙 410131
摘要: MAC(Media Access Control)層位于網(wǎng)絡(luò)結(jié)構(gòu)七層協(xié)議中的數(shù)據(jù)鏈路層,控制局域網(wǎng)中的多個(gè)節(jié)點(diǎn)對(duì)共享介質(zhì)的訪(fǎng)問(wèn),保證相鄰節(jié)點(diǎn)之間數(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)中的多個(gè)節(jié)點(diǎn)對(duì)共享介質(zhì)的訪(fǎng)問(wèn),保證相鄰節(jié)點(diǎn)之間數(shù)據(jù)的可靠傳輸。本文介紹一種吉比特MAC接口的結(jié)構(gòu),該MAC采用基于描述符傳輸?shù)?a class="innerlink" href="http://theprogrammingfactory.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 引言

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

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

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

1 MAC功能

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

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

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

Image 001.png

  2.1 AXI接口

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

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

  2.2 MAC-DMA

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

Image 002.png

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

Image 003.png

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

  2.3 MAC-MTL

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

Image 004.png

  MTL提供了兩個(gè)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來(lái)保存,因此只要FIFO未滿(mǎn)就能不斷接收數(shù)據(jù)幀,提高傳輸效率。數(shù)據(jù)FIFO通過(guò)選擇信號(hào)啟動(dòng),即FIFO不工作時(shí)處于休眠狀態(tài),減小功耗。MTL將FIFO的空滿(mǎn)狀態(tài)信息反饋給DMA,再由DMA控制發(fā)送接收操作。此外,Rx FIFO滿(mǎn)的情況下,可以通過(guò)pause幀控制或產(chǎn)生back-pressure給MAC-CORE來(lái)控制數(shù)據(jù)幀的接收,進(jìn)行流控制。Tx FIFO的flush操作則是通過(guò)軟件來(lái)控制的。

  2.4 MAC-CORE

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

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

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

Image 005.png

4 結(jié)束語(yǔ)

  本文針對(duì)千兆位以太網(wǎng)的要求,介紹了一種吉比特MAC接口,用Verilog硬件描述語(yǔ)言,實(shí)現(xiàn)了一個(gè)RTL級(jí)的IP核,該MAC采用AXI接口,連續(xù)發(fā)送burst請(qǐng)求,各個(gè)通道獨(dú)立,提高總線(xiàn)利用率?;诿枋龇麄鬏?shù)腄MA在沒(méi)有CPU干涉的情況下,一次可以傳輸大量的數(shù)據(jù),獨(dú)立的雙通道MTL為數(shù)據(jù)快速傳輸提供了保障。MAC-CORE提供了多種類(lèi)型的PHY端口,數(shù)據(jù)并行輸出,加快了傳輸速率。最后對(duì)該MAC進(jìn)行了模擬和驗(yàn)證。驗(yàn)證結(jié)果表明,本文設(shè)計(jì)的模塊功能正確,達(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] 蔡開(kāi)裕,朱培棟,徐明.計(jì)算機(jī)網(wǎng)絡(luò)[M].北京:機(jī)械工業(yè)出版社,2008.

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

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

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


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