国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于Xilinx FPGA的千兆以太網控制器的開發

發布時間:2010-11-9 20:38    發布者:techshare
關鍵詞: FPGA , Xilinx , 控制器 , 千兆 , 以太網
1.千兆以太網技術簡介

以太網技術是當今應用廣泛的網絡技術,千兆以太網技術繼承了以往以太網技術的許多優點,同時又具有許多新的特性,例如傳輸介質包括光纖和銅纜,使用8B/10B的編解碼方案,采用載波擴展和分組突發技術等。正是因為具有良好的繼承性和許多優秀的新特性,千兆以太網已經成為目前局域網的主流解決方案。

千兆以太網利用了原以太網標準所規定的全部技術規范,其中包括CSMA/CD協議、以太網幀、全雙工、流量控制以及IEEE 802.3標準中所定義的管理對象。千兆以太網的關鍵技術是千兆以太網二層(MAC層)的交換與以太網接口的實現。隨著多媒體應用的普及,千兆以太網必將成為各類以太網技術的主力軍。

2.Xilinx的千兆以太網解決方案

1)IP的支持

Xilinx提供了可參數化的10/1Gbps以太網媒體訪問控制器功能LogiCORE解決方案。該核設計用來同最新的Virtex-5、Virtex-4和Virtex-II Pro平臺FPGA一起工作,并可以無縫集成到Xilinx設計流程中。吉比特級以太網媒體訪問控制器核(GEMAC)是針對1Gb/s(Gbps)以太網媒體訪問控制器功能的可參數化的LogiCORE IP解決方案。GEMAC核的設計符合 IEEE 802.3-2002規范。GWMAC核支持兩個PHY端接口選項:GMII或RGMII。并且,Xilinx 全面的1Gb/s以太網解決方案包含吉比特MAC和PCS/PMA IP核產品。Xilinx吉比特以太網MAC解決方案還包括帶有內置處理器本地總線(PLB)接口(PLB GEMAC)的配置。該配置通過Xilinx嵌入式開發套件(EDK)提供。GEMAC LogiCORE IP可以實現與1000 Base-X PCS/PMA或SGMII核的無縫集成,并提供3種選項用來與PHY器件接口:1000 BASE-X或10位接口(TBI)或SGMII。

GEMAC核非常適合開發高密度吉比特級以太網通信和存儲設備,其關鍵特性有:
  • 單速全雙工11 Gbps MAC控制器;
  • 設計符合IEEE 802.3-2002規范;
  • 具有最小緩沖的直通操作,以最大限度地實現客戶端接口的靈活性;
    通過可選的獨立微處理器中的接口進行配置和監控;
  • 直接與以太網統計數據核接口,以便實現功能強大的統計數據收集;
  • 通過MAC控制暫停幀實現對稱的或非對稱的可選的流程控制;
  • VLAN幀的可選技術支持符合IEEE 802.3-2002規范的要求;
  • 支持任意長度的“jumbo幀”(可選);
  • 可選的地址濾波器,具有數量可選的地址表輸入。


2)相應的開發板套件

Xilinx提供的千兆以太網開發套件為Virtex-5 ML505/ML506開發板(使用的FPGA芯片為:XC5VLX50T-1FF1136),該開發板支持10/100兆、1/10吉以太網,加上Xilinx公開的基于ML505/506的設計,可為基于以太網開發的設計提供全方位的參考。此外,ML505/506還具備SFP、PCI E、SATA以及SMA接口等其余吉比特接口,是學習和研發高速連接設備的理想平臺。

10.4.2 基于FPGA的千兆以太網MAC控制器實現方案

1.整體設計方案

以太網控制器的FPGA設計工作包括以太網MAC子層的FPGA設計、MAC子層與上層協議的接口設計以及MAC與物理層(PHY)的MII接口設計。該以太網控制器的總體結構設計框圖如圖10-30所示。整個系統分為發送模塊、接收模塊、MAC狀態模塊、MAC控制模塊、MII管理模塊和主機接口模塊六部分。發送模塊和接收模塊主要提供MAC幀的發送和接收功能,其主要操作有MAC幀的封裝與解包以及錯誤檢測,它直接提供了到外部物理層芯片的并行數據接口。在實現中物理層處理直接利用商用的千兆PHY芯片,主要開發量集中在MAC控制器的開發上。





圖10-30 以太網控制器的結構設計框圖

MAC控制模塊則用于執行全雙工模式中的流量控制功能。MAC狀態模塊可用來監視MAC操作過程的各種狀態信息,并作修改。MII管理模塊提供了標準的IEEE 802.3介質獨立接口,可用于連接以太網的鏈路層與物理層。主機接口則提供以太網控制器與上層協議(如TCP/IP協議)之間的接口,以用于數據的發送、接收以及對控制器內各種寄存器(控制、狀態和命令寄存器)的設置。  

2.MAC控制器結構和工作流程

1)MAC發送模塊

MAC發送模塊可將上層協議提供的數據封裝之后通過MII接口發送給PHY。發送模塊可接收主機接口模塊的數據幀開始和數據幀結束標志,并通過主機接口從外部存儲器中讀取要發送的數據,然后對數據進行封裝,再通過PHY提供的載波偵聽和沖突檢測信號,在信道空閑時由MII接口將數據以4位的寬度發送給PHY芯片,最后由PHY將數據發送到網絡上。



發送模塊由CRC生成模塊(crc_gen)、隨機數生成模塊(random_gen)、發送計數模塊(tx_cnt)和發送狀態機(tx_statem_machine)模塊等四個主要子模塊組成,其內部結構如圖10-31所示。





圖10-31 以太網MAC發送模塊的結構示意圖

發送狀態機由Idle_State、Preamble_State、Data0_State、Data1_State、PAD_State、FCS_State、IPG_State、Jam_State、BackOff_State、Defer_State 等十個狀態組成。其狀態轉移圖如圖10-32所示。





圖10-32 發送狀態機的狀態轉移圖

系統復位后,發送模塊即進入Defer_State狀態,并一直檢測載波偵聽(CarrierSense)信號。當載波偵聽信號變成無效(表示信道空閑)時,狀態機進入IPG_State狀態。此后,在等待一個幀間間隙之后,狀態機進入Idle_State狀態。如果在幀間間隙的前2/3個周期檢測到信道忙信號,狀態機將重新回到Defer_State狀態。

狀態機進入Idle_State狀態之后,發送模塊將檢測載波偵聽信號和主機接口的發送請求。若主機模塊請求發送,狀態機將進入Preamble_State狀態,發送模塊即通知PHY發送開始,同時開始發送前序碼(7個0x5), 然后發送幀起始定界符(SFD, 0xd)。狀態機進入Data0_State后,發送模塊將發送一個數據字節的低4位(LSB nibble),當其進入Data1_State狀態后,發送模塊則發送數據字節的高4位(MSB nibble)。隨后,狀態機一直在data0和data1之間循環,直到數據發送完畢。當還剩一個字節時,主機模塊將通過發送幀結束信號來通知發送模塊。如果數據幀的長度大于最小幀并且小于最大幀,狀態機就進入FCS_State狀態,此時發送模塊則將CRC生成模塊生成的CRC值添加到幀的FCS字段中并發送給PHY。

幀發送完之后,狀態機進入Defer_State 狀態,之后是IPG_State和Idle_State狀態。此后狀態機又回到初始狀態,以重新等待新的發送請求。如果數據幀的長度小于最短幀,狀態機就進入PAD_State狀態,發送模塊根據系統設置確定是否在數據之后添加填充碼。然后,狀態機進入FCS_State狀態。如果數據幀的長度大于最大幀,而系統設置又支持發送超長幀,那么,狀態機就進入FCS_State狀態;如果不支持發送超長幀,發送模塊將放棄發送,狀態機直接進入Defer狀態,然后是IPG狀態,最后回到Idle狀態。

在發送數據的過程中,發送模塊會一直檢查沖突檢測信號(collision detected)。如果發現沖突且狀態機正處于Preamble_State,狀態機將在發送完前序碼和SFD之后進入Jam_State,并發送擁塞碼,然后進入BackOff狀態,以等待重試。之后,狀態機經過Defer和IPG回到Idle狀態。如果此時重試次數計數器的值沒有達到額定值,發送模塊將重新開始發送剛才的幀,并將重試次數計數器的值加1;如果發現沖突且狀態機處于data0、data1或FCS狀態,而且沒有超過沖突時間窗,那么狀態機將馬上進入Jam狀態發送擁塞碼,之后經過BackOff、Defer、IPG、回到Idle,并根據重試計數器的值決定是否重新發送剛才的數據幀;如果檢測到發生沖突的時間超過了沖突時間窗,狀態機將進入Defer狀態,然后經過IPG到IDLE狀態,并放棄重試。

在全雙工模式中發送幀時,不會進行延遲(defer), 發送的過程中也不會產生沖突。此時,發送模塊將忽略PHY的載波偵聽和沖突檢測信號。當然,幀與幀之間仍然需遵守幀間間隙的規則。因此,全雙工模式下的發送狀態機沒有Jam_State、BackOff_State、Defer_State三個狀態。      

2)MAC接收模塊

MAC接收模塊結構如圖10-33所示,負責數據幀的接收。當外部PHY將通信信道的串行數據轉換為半字節長的并行數據并發送給接收模塊后,接收模塊會將這些半字節數據轉換為字節數據,然后經過地址識別、CRC校驗、長度判斷等操作后,再通過主機接口寫入外部存儲器,并在主機接口模塊的接收隊列中記錄幀的相關信息。此外,接收模塊還負責前序碼和CRC的移除。





圖10-33 以太網MAC接收模塊的結構示意圖

接收過程的接收狀態機由Idle_State、Drop_State、Preamble_State、SFD_State、Data0_State、Data1_State等六個狀態組成, 其狀態轉移圖如圖10-34所示。







圖10-34 接收狀態機的狀態轉移圖

當接收模塊檢測到數據有效信號之后,,狀態機將進入Preamble_State,并開始接收前序碼。此后狀態機進入SFD_State,接收一個字節的幀起始定界符,之后根據IFGcnt計數器的值進入不同的狀態。如果IFGcnt所確定的時間大于96個比特時間,狀態機將進入Data0狀態以接收字節的低4位,然后是Data1狀態,并接收字節的高4位,之后又回到Data0狀態。狀態機就一直在這兩個狀態之間循環,直到數據接收完畢(PHY清除MRxDV信號)后進入Idle,以重新等待接收新的數據;如果接收到幀起始定界符時,IFGcnt計數器所確定的時間小于96個比特時間,那么狀態機將進入Drop_State狀態,并一直維持該狀態直到數據有效信號結束(PHY清除MRxDV信號)。之后,狀態機再回到Idle等待接收新的數據。如果在接收前序碼、幀起始定界符和數據期間,數據有效信號被清除,那么狀態機將回到Idle。

3)MII管理模塊

MII管理模塊用于控制MAC與外部PHY之間的接口,用于對PHY進行配置并讀取其狀態信息。該接口由時鐘信號MDC和雙向數據信號MDIO組成。MII管理模塊則由時鐘生成模塊、移位寄存器模塊和輸出控制模塊三部分組成。

時鐘生成模塊可以根據系統時鐘和系統設置中的分頻系數來產生MII 管理模塊的時鐘信號MDC(10 Mbps速率時為2.5 MHz, 100 Mbps速率時為25 MHz)。移位寄存器模塊既可用于對PHY的控制數據進行寫入操作,也可用于對PHY的狀態信息進行讀出操作。寫控制數據時,移位寄存器根據其他模塊的控制信號將并行控制數據轉換為串行數據;而在讀狀態信息時,移位寄存器則將PHY的串行數據轉換為并行數據,MAC中的其他模塊可將該并行數據寫入適當的寄存器。

由于MDIO是雙向信號,因此輸出控制模塊就用來決定MDIO是處于輸入狀態還是輸出狀態。當MDIO處于輸出狀態時,移位寄存器輸出的串行控制數據在經過時鐘同步后發送到PHY;當MDIO處于輸入狀態時,移位寄存器將數據線上的串行數據轉換為并行數據

4)主機接口模塊

主機接口是運行以太網的上層協議(如TCP/IP協議)與MAC控制器的接口。通過該接口,上層協議可以設置MAC的工作模式并讀取MAC的狀態信息。該接口還可用于上層協議與MAC之間的數據交換。

主機接口模塊內有一組寄存器,可用于存儲上層協議對MAC設置的參數以及MAC的狀態信息。上層協議對MAC設置的參數包括接收超短幀的使能、添加填充碼使能、發送超長幀的使能、添加CRC校驗值使能、全雙工模式或半雙工模式、持超長延遲使能、混雜模式(Promiscuous)、接收廣播幀使能、發送和接收使能、中斷源和中斷使能、幀間間隙的長度、最大幀和最小幀的長度、重試限制和沖突時間窗、MII地址和MII控制命令、接收和發送隊列的長度以及本機MAC地址等。

上層協議通過MAC發送和接收數據的操作主要由主機接口模塊內的兩個隊列來進行管理,這兩個隊列用于對等待發送的多個幀和接收到的多個幀進行排隊。發送隊列主要記錄等待發送的幀的相關信息、發送該幀時對MAC的設置以及該幀發送完之后產生的狀態信息。幀的相關信息包括幀的長度、幀在外部存儲器中的地址、該幀是否準備好發送以及隊列中是否還有其它幀等待發送;對MAC的設置則包括中斷使能、填充使能、CRC使能;產生的狀態信息包括成功發送之前的重試次數、由于達到重試限制而放棄發送、發送時產生的滯后沖突以及成功發送之前發生過的延遲。

接收隊列主要對接收到的數據幀進行排隊并記錄每個接收到的幀信息。這些信息包括幀的長度、是控制幀還是普通數據幀、幀中包含無效符號、接收到的幀太長或太短、發生CRC錯誤、接收的過程中發生滯后沖突、幀是否接收完、隊列中是否還有其它已接收到的幀以及幀存儲在外部存儲器中的地址等。同時隊列中還有針對每個幀的設置位,用來設置是否在接收到幀時產生中斷。發送隊列和接收隊列的長度都可以在控制寄存器中進行設置。

10.4.3 Xilinx 千兆以太網MAC IP Core

1.GMAC IP Core的應用場景和架構

Xilinx提供了三態以太網MAC控制器的IP Core,可實現單條吉比特以太網鏈路,通過交換機或路由器可與任意以太網端口相連。由于MAC控制器的速率很高,底層傳輸必須依賴Rocket I/O,在客戶端還需要利用FIFO來交換數據,其完整的設計方案如圖10-35所示。







圖10-35 千兆以太網MACIP Core的應用場合示意圖

2.GMAC IP Core的配置界面和接口信號

千兆以太網MACIP Core的配置界面如圖10-36所示。GEMAC控制器所實現的主要功能如圖10-37所示,包括發送引擎、接收引擎、流控制、GMII接口、客戶發送接口、客戶接收接口以及客戶管理接口。




圖10-36 千兆以太網MACIP Core的配置界面





圖10-37 千兆以太網MACIP Core的主要功能示意圖

下面給出相應模塊的功能和接口信號說明。

1)發送引擎

發送引擎通過客戶發送端口接收以太網的數據幀,并在幀頭添加幀引導區域,甚至在幀長小于最短要求時,添加一定的冗余比特。同時,該模塊還會在連續的數據幀之間插入以太網協議所規定的最小延時,將用戶數據轉化成標準的GMII數據幀,并送至GMII模塊。在應用時,面向用戶的操作就是將用戶數據讀入GEMAC核內部

該模塊接口信號的簡要信息如表10-10所列。

表10-10 發送引擎接口信號列表




發送引擎的時序如圖10-38所示。當客戶端有數據發送時,將tx_data_valid拉高,同時將數據的第一個字節置于tx_data端口;當GEMAC將第一字節數據讀入后,會將tx_ack信號拉高,用戶端邏輯檢測到tx_ack為高時,要在下一個時鐘上升沿將其余的數據發送到數據端口上,當數據發送完畢后,將x_data_valid拉低。




圖10-38 發送引擎的時序圖

2)接收引擎

接收引擎接收來自GMII模塊的數據,去掉幀頭的引導區域,包括為了增加幀長的冗余比特。此外,該模塊還能根據數據幀中的檢驗序列區域、接收到的GMII錯誤碼字以及幀長信息完成錯誤檢測,主要接口信號的簡要說明如表10-11所列。

表10-11 接收引擎接口信號列表




接收引擎的時序如圖10-39所示。客戶端邏輯必須在任何時候都準備好接收數據,因為在GEMAC核中沒有接收緩存,有時延就會丟失數據,因此用戶可自己添加緩沖邏輯。rx_data_valid為高時立即開始接收連續數據,在檢測到rx_data_valid變低后,判斷rx_good_frame信號的電平,如果為高則繼續處理該幀數據,否則直接丟棄。




圖10-39 接收引擎的時序圖

3)流控制

流控制模塊是根據IEEE 802.3-2002標準的31項條款設計的,在發送時附帶暫停幀,接收時也需要對其處理。在GEMAC核中,它是自動配置的,同時,也提供了用戶自定義的配置端口,如表10-12所列。

表10-12 流控制接口信號




4)可選的管理接口

管理接口是一個獨立的可選端口,其地址、數據和控制信號相對于其他模塊是獨立的,提供了和CoreConnec總線的交互能力,可掛在MicroBlaze軟核或PowerPC硬核處理器,可用于配置GEMAC核以及通過MDIO接口直接讀寫外部PHY芯片的內部配置寄存器。該模塊包括用戶管理的接口和MDIO接口兩部分,后者直接與PHY芯片相連,全部接口信號的簡要說明如10-13所列。

表10-13 管理模塊的接口信號





5)復位操作

管理模塊具備自己獨立的軟件復位信號,但當管理接口模塊被旁路掉,其相應的配置信號被作為configuraTIon_vector[64:0]輸入信號使用。此外,GEMAC核提供了硬件復位信號,如表10-14所列。

表10-14 復位信號列表




6)GMII模塊

GMII模塊的接收信號一般都是直接連到PHY芯片上,負責和PHY芯片的數據交互,其信號和PHY芯片的接口是一一對應的,如表10-15所列。

表10-15 GMII模塊接口信號列表




配置完成后,可在工程管理區選中GEMAC核,在過程管理區,點擊“View HDL Instantiation Template”命令,查看其例化代碼,它在代碼中的例化方法和一般IP Core的方法是一樣的。

10.5 本章小結

高速串行傳輸技術是FPGA未來的三大應用領域之一,本章主要介紹了Xilinx公司的Rocket I/O解決方案。首先給出高速傳輸的背景,指出串行方式是吉比特以及更高速率鏈路的必然選擇。其次,給出了吉比特串行傳輸的通用架構,為后文做好鋪墊。接著重點介紹了Xilinx公司Rocket I/O的系統組成、相關協議、時鐘設計方案、開發要素以及Rocket I/O的使用方法。最后說明了千兆以太網MAC控制器IP Core的使用方法。讀者需要注意的是Rocket I/O是Xilinx高端FPGA中的內嵌組件,和DCM、硬核乘法器、塊RAM等的使用方法是一樣的,可通過IP Core調用。高速傳輸是一種新技術,開發難度較大,本章只是介紹了其中的主要核心部分和基本原理,還需要讀者閱讀大量的文獻和實際操作才能熟練開發相關系統。
本文地址:http://m.qingdxww.cn/thread-37854-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
youyou_zh 發表于 2012-5-20 11:20:15
好文章
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一个人在线观看免费中文动漫视频| 免费无遮挡又黄又爽网站| 亚洲狠狠97婷婷综合久久久久| 一级做a爰片久久毛片一| 成人区精品一区二区不卡AV免费| 精品久久伊人| 天天躁日日躁狠狠躁AV麻豆| 午夜视频18| 最近中文字幕免费高清MV视频6| 欧美手机手机在线视频一区| 欧洲a视频| 天天影视综合色区| 四虎影视在线看| 在线观看国产久青草| 国产不卡一卡2卡三卡4卡网站| 男人到天堂a在538线| 野花香在线观看免费高清播放视频| 日韩有码在线播放| 日本精品网站| 亚洲高清视频在线播放| 性生大片免费看| 99re5.久久热在线视频| 久久精品国产亚洲AV妓女不卡| 性春院| 午夜精品久久久久久影视riav| 亚洲综合18p| 天天干夜夜躁| 午夜影院小视频| 99久久久无码国产AAA精品| 理论片午午伦夜理片2021| 孕妇bbwbbwbbwbbw超清| 亚洲精品欧美在线| 天天做天天爱夜夜爽女人爽宅 | 亚洲国产情侣偷自在线二页| 在线国产一区二区| 久久re这里精品23| 天天操大逼| 日韩在线视频免费播放| 伊人中文字幕在线| 一级毛片免费在线| 么公一夜要了我一八次视频HD|