日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

基于FPGA的以太網(wǎng)MII接口擴(kuò)展設(shè)計(jì)與實(shí)現(xiàn)

出處:yinbo 發(fā)布于:2007-10-19 10:28:06

  摘??? 要:本文介紹了基于FPGA、功能經(jīng)過擴(kuò)展的以太網(wǎng)MII接口的硬件實(shí)現(xiàn)方法。硬件結(jié)構(gòu)上由控制信號(hào)模塊、分頻器、異步FIFO緩沖和4b/5b編解碼器4個(gè)部分組成。
  關(guān)鍵詞:100M以太網(wǎng)MII;FPGA;奇偶分頻器;4b/5b編解碼;異步雙口FIFO
 
引言
  傳統(tǒng)以PC為中心的互聯(lián)網(wǎng)應(yīng)用現(xiàn)已開始轉(zhuǎn)向以嵌入式設(shè)備為中心。據(jù)網(wǎng)絡(luò)預(yù)測,將來在互聯(lián)網(wǎng)上傳輸?shù)男畔⒅?,?0%來自小型嵌入式系統(tǒng),因此,對(duì)嵌入式系統(tǒng)接入因特網(wǎng)的研究是有必要的。目前有兩種方法可以實(shí)現(xiàn)單片機(jī)系統(tǒng)接入因特網(wǎng):一種方法是利用NIC (網(wǎng)絡(luò)控制/網(wǎng)卡)實(shí)現(xiàn)網(wǎng)絡(luò)接口,由單片機(jī)來提供所需的網(wǎng)絡(luò)協(xié)議;另外一種方法是利用具有網(wǎng)絡(luò)協(xié)議棧結(jié)構(gòu)的芯片和PHY(物理層的接收器)來實(shí)現(xiàn)網(wǎng)絡(luò)接口,主控制器只負(fù)責(zé)往協(xié)議棧結(jié)構(gòu)芯片的某個(gè)寄存器里放上適當(dāng)?shù)臄?shù)據(jù)。與此同時(shí),用FPGA實(shí)現(xiàn)單片機(jī)系統(tǒng)接入因特網(wǎng)的方法也日益受到人們的重視。本文提出采用FPGA實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議棧,介紹100M以太網(wǎng)MII接口協(xié)議的硬件實(shí)現(xiàn)方法,其中的奇偶模塊分頻器和異步FIFO等通用器件在日常中也很有應(yīng)用價(jià)值。
以太網(wǎng)MII接口協(xié)議
  IEEE802協(xié)議標(biāo)準(zhǔn)系列中,數(shù)據(jù)鏈路層包括LLC (邏輯鏈路控制)子層和MAC (媒體訪問控制)子層。其中MAC單獨(dú)作為一個(gè)子層,完成數(shù)據(jù)幀的封裝、解封、發(fā)送和接收功能。物理層PHY的結(jié)構(gòu)隨著傳輸速率的不同而有一定差異,在100M和1000M以太網(wǎng)中,依次為PCS子層、PMA子層和PMD子層。MII接口是連接數(shù)據(jù)鏈路層和物理層的接口,因?yàn)楸驹O(shè)計(jì)中以太網(wǎng)速率采用100Mb/s,所以MII接口實(shí)際連接的是MAC子層和PCS子層。根據(jù)協(xié)議,要求MII接口具有的功能有:數(shù)據(jù)和幀分隔符的讀寫時(shí)鐘同步,提供獨(dú)立的讀寫數(shù)據(jù)通道,為MAC層和PCS層提供相應(yīng)的管理信號(hào),以及支持全雙工模式。
?
擴(kuò)展MII接口功能及其
FPGA實(shí)現(xiàn)
  由于100M以太網(wǎng)的物理層采用4b/5b編碼,為了擴(kuò)展MII接口的功能,要求其能夠?qū)崿F(xiàn)直接物理層5位數(shù)據(jù)和MAC層8位數(shù)據(jù)的發(fā)送接收傳輸轉(zhuǎn)換。即把從MAC子層用于發(fā)送的數(shù)據(jù)和從PHY用于接收的數(shù)據(jù)存入數(shù)據(jù)緩沖FIFO,同時(shí)要求MII接口將從PHY傳來的信號(hào)COL、CRS轉(zhuǎn)為信號(hào)Carrier和Collision,并提供給MAC子層用于載波監(jiān)聽和沖突檢測,以及發(fā)送和接收時(shí)的時(shí)鐘、使能、錯(cuò)誤位信號(hào)的傳送。擴(kuò)展功能后的MII接口硬件結(jié)構(gòu)框圖如圖1所示,由4b/5b編解碼器、控制信號(hào)與4位/8位轉(zhuǎn)換、分頻器及雙口FIFO 4個(gè)模塊組成,而且能夠同時(shí)支持半雙工和全雙工模式。
在設(shè)計(jì)過程中,為了考慮測試和支持多種速率傳輸?shù)男枰?,要求設(shè)計(jì)帶有分頻參數(shù)的可實(shí)現(xiàn)奇偶分頻的分頻器和支持能夠同時(shí)進(jìn)行讀寫操作和異步讀寫時(shí)鐘的FIFO。這是MII接口設(shè)計(jì)中的難點(diǎn),本身也具有很高的實(shí)用價(jià)值。
?
奇偶分頻器的實(shí)現(xiàn)
  分頻器是數(shù)字系統(tǒng)設(shè)計(jì)中的基本電路,同一個(gè)設(shè)計(jì)中有時(shí)要求多種形式的分頻。通常由計(jì)數(shù)器或計(jì)數(shù)器的級(jí)聯(lián)構(gòu)成各種形式的偶數(shù)分頻及非等占空比的奇數(shù)分頻,實(shí)現(xiàn)較為簡單;對(duì)等占空比的奇數(shù)分頻實(shí)現(xiàn)則較為困難。本文對(duì)2n+1等占空比奇數(shù)分頻的基本思路是:先通過模2n+1的計(jì)數(shù)器實(shí)現(xiàn)占空比為n+1/n的奇數(shù)分頻(比如三分頻,正負(fù)波形的占空比為2:1),然后有兩種方法可以實(shí)現(xiàn)等占空比的奇數(shù)分頻,一種是當(dāng)計(jì)數(shù)器至n+1時(shí),讓此波形與輸入時(shí)鐘波形相“與”,不過可能會(huì)存在毛刺輸出;另一種是當(dāng)計(jì)數(shù)器至n+1時(shí),在輸入時(shí)鐘的下降沿觸發(fā)產(chǎn)生低電平脈沖,然后再和原波形相“或”,這種方法沒有毛刺產(chǎn)生。因此本文采用第二種方法。
?
4b/5b編解碼器的設(shè)計(jì)
  為了減少系統(tǒng)的開銷,本文把4b/5b的編碼和解碼同時(shí)集中到一個(gè)模塊上實(shí)現(xiàn)。數(shù)據(jù)0~F可以直接編、解碼。PCS層有6個(gè)特殊的5b碼:11111為幀間填充碼;11000、10001和01101、00111是兩對(duì)成對(duì)出現(xiàn)的碼組,分別為數(shù)據(jù)流開始和結(jié)束時(shí)的分隔符;00100則是數(shù)據(jù)錯(cuò)誤位,用以表示錯(cuò)誤。數(shù)據(jù)接收時(shí),可以直接對(duì)這幾個(gè)5b碼組解碼,00100則產(chǎn)生信號(hào)rx_er。發(fā)送時(shí),需要對(duì)從MII接口傳來的信號(hào)位進(jìn)行判斷:若tx_en上升沿,則在頭兩個(gè)前導(dǎo)碼時(shí)編碼輸出SSD;若tx_en下降沿(幀間隔),則在FCS后輸出ESD,然后一直用11111為數(shù)據(jù)流間隔填充碼;若有tx_er觸發(fā),則編碼00100輸出。
?
異步雙口FIFO的設(shè)計(jì)
  為了滿足PCS層數(shù)據(jù)的物理層時(shí)鐘以及MAC層總線時(shí)鐘不同步的需求,需要FIFO有異步的讀、寫時(shí)鐘。當(dāng)沖突檢測COL為高時(shí),要求發(fā)送幀執(zhí)行退回操作回至FIFO中等待下一個(gè)Transmitting信號(hào)。
FIFO的設(shè)計(jì)思路如下:設(shè)置異步Reset,高電平觸發(fā);設(shè)置8位寄存器fifodata保存FIFO的數(shù)據(jù);設(shè)置fifo_rp和fifo_wp為讀、寫指針;cr_rp和cr_wr為進(jìn)位標(biāo)志,fifo_rp和fifo_wp為FIFO_DEPTH-1的時(shí)候取反;設(shè)置nempty、nfull、near_empty、near_full為數(shù)據(jù)空、滿指示。
  讀寫時(shí),F(xiàn)IFO_RD為1,則fifo_out<=fifodata[fifo_rp],fifo_rp<=fiforp+1;FIFO_WR為1,則fifodata[fifo_wr]<=fifo_in,fifo_wr<=fifo_wr+1。nempty、nfull位信號(hào)值的變化通過借助r_rp和cr_wr的進(jìn)位輸出來判斷實(shí)現(xiàn)。當(dāng)讀寫兩個(gè)指針的值相等,即fifo_rp==fifo_wp時(shí),判斷cr_rp^cr_wr(異或)的值:若是1,則FIFO滿,nfull<=0;若是0,則FIFO空,nempty<=0。如果fifo_rp!=fifo_wp,則nfull=nempty=0,F(xiàn)IFO不為空也不為滿。
測試時(shí),暫定容量FIFO_DEPTH為32(實(shí)際要求是至少一個(gè)幀的大小即1530字節(jié)大小),讀、寫時(shí)鐘分別為50MHz和25MHz,在寫550ns之后同時(shí)讀寫。
主控制模塊的實(shí)現(xiàn)
  主控制模塊要求實(shí)現(xiàn)的功能是:4/8位數(shù)據(jù)的轉(zhuǎn)換;給MAC層和PCS層的控制信號(hào)輸出;雙向數(shù)據(jù)MDIO,表征MII接口與物理層相連接的情況,可以異步輸入輸出控制。
  實(shí)現(xiàn)4/8位數(shù)據(jù)轉(zhuǎn)換的要求是:發(fā)送時(shí),將8位數(shù)據(jù)分成兩個(gè)nibble依次輸出;接收時(shí),將4b/5b編解碼器接收到的4位數(shù)據(jù)依次填入高、低nibble組成8位數(shù)據(jù)輸出。
  采用狀態(tài)寄存器對(duì)控制信號(hào)的輸出是MII模塊的。設(shè)立3位status1[2:0],從高位到低位依次是{duplex, col, crs}輸入;4位status2[3:0],從高位到低位依次是{ transmitting ,transmiterror ,rx_en ,rx_er }輸入。輸出控制信號(hào)的基本算法流程如下:
.  status1[2]為1時(shí),工作在全雙工模式。CollisionDetect和CarrierSense輸出始終置為0。
.  status1[2]為0時(shí),工作在半雙工模式。如果status1[1]為1,則CollisionDetect輸出置為1,開始執(zhí)行退回(backoff)程序;如果status1[0]為1,則CarrierSense輸出置為1,繼續(xù)等待。
  . status2 [1]為1時(shí),工作在接收狀態(tài),Receiving輸出置為1 (此時(shí)status2[3]必須為0)。此時(shí)如果status2[0]為0,則接收數(shù)據(jù)有效,ReceiveDataValid輸出為1;反之則置為0,停止數(shù)據(jù)傳輸。
  . status2 [1]為0時(shí),工作在接收停止?fàn)顟B(tài),Receiving輸出置為0。此時(shí)如果status2[0]為1,eceiveDataValid輸出為0,若接收端數(shù)據(jù)為1110,則表示載波錯(cuò)誤,若接收端數(shù)據(jù)為0000,則表示正常的幀間隔階段;如果status2[0]為0,則表示正常的幀間隔階段,ReceiveDataValid輸出為1。
  . status2 [3]為1時(shí),工作在發(fā)送狀態(tài),tx_en輸出置為1(此時(shí)status2[1]必須為0)。此時(shí)如果status2[2]為0,則正常發(fā)送,tx_er置為0;否則發(fā)送錯(cuò)誤,tx_er置為1,且跳過該字節(jié)繼續(xù)執(zhí)行發(fā)送程序。
  . status2 [3]為0時(shí),若status2 [2]為0,則處于正常幀間隔,tx_en、tx_er置為0;若status2 [2]為1,則為無效狀態(tài)。
 
綜合與仿真
  本文采用Altela公司的Cyclone系列EP1C20F400C8芯片,整個(gè)設(shè)計(jì)全部采用Verilog HDL硬件描述語言來實(shí)現(xiàn),并在Quatus4.0的設(shè)計(jì)平臺(tái)上完成整個(gè)模塊的設(shè)計(jì)、綜合、仿真、映射及布局布線。發(fā)送時(shí)序仿真的波形如圖3所示,從圖中可以看出,當(dāng)傳輸過程中發(fā)生沖突時(shí),繼續(xù)發(fā)送32比特的阻塞碼(16進(jìn)制FF),然后隨機(jī)延時(shí)一段時(shí)間重新爭用介質(zhì)以傳輸數(shù)據(jù),這說明本模塊滿足了協(xié)議要求以及CSMA/CD。
 
結(jié)語
  本文介紹了一種簡易的基于FPGA的以太網(wǎng)MII協(xié)議的設(shè)計(jì)方法。通過本模塊可以簡單方便地實(shí)現(xiàn)小型嵌入式系統(tǒng)的因特網(wǎng)接口,如果再結(jié)合基于FPGA實(shí)現(xiàn)的MAC層協(xié)議和TCP/IP協(xié)議棧及其他輔助功能模塊,不僅可以使小型嵌入式系統(tǒng)接入網(wǎng)絡(luò)更加簡單,系統(tǒng)的集成度、穩(wěn)定性也將進(jìn)一步得到提高。 (許俊 林水生)
 


  

參考文獻(xiàn):

[1]. 100M datasheet http://www.hbjingang.com/datasheet/100M_2509927.html.
[2]. 25MHz datasheet http://www.hbjingang.com/datasheet/25MHz_1136611.html.


關(guān)鍵詞:基于FPGA的以太網(wǎng)MII接口擴(kuò)展設(shè)計(jì)與實(shí)現(xiàn)EP1C20F400C8

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!