基于FPGA的以太網(wǎng)MII接口擴展設(shè)計與實現(xiàn)
引言
傳統(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),因此,對嵌入式系統(tǒng)接入因特網(wǎng)的研究是有必要的。目前有兩種方法可以實現(xiàn)單片機系統(tǒng)接入因特網(wǎng):一種方法是利用NIC (網(wǎng)絡(luò)控制/網(wǎng)卡)實現(xiàn)網(wǎng)絡(luò)接口,由單片機來提供所需的網(wǎng)絡(luò)協(xié)議;另外一種方法是利用具有網(wǎng)絡(luò)協(xié)議棧結(jié)構(gòu)的芯片和PHY(物理層的接收器)來實現(xiàn)網(wǎng)絡(luò)接口,主控制器只負(fù)責(zé)往協(xié)議棧結(jié)構(gòu)芯片的某個寄存器里放上適當(dāng)?shù)臄?shù)據(jù)。與此同時,用FPGA實現(xiàn)單片機系統(tǒng)接入因特網(wǎng)的方法也日益受到人們的重視。本文提出采用FPGA實現(xiàn)網(wǎng)絡(luò)協(xié)議棧,介紹100M以太網(wǎng)MII接口協(xié)議的硬件實現(xiàn)方法,其中的奇偶模塊分頻器和異步FIFO等通用器件在日常中也很有應(yīng)用價值。
以太網(wǎng)MII接口協(xié)議
IEEE802協(xié)議標(biāo)準(zhǔn)系列中,數(shù)據(jù)鏈路層包括LLC (邏輯鏈路控制)子層和MAC (媒體訪問控制)子層。其中MAC單獨作為一個子層,完成數(shù)據(jù)幀的封裝、解封、發(fā)送和接收功能。物理層PHY的結(jié)構(gòu)隨著傳輸速率的不同而有一定差異,在100M和1000M以太網(wǎng)中,依次為PCS子層、PMA子層和PMD子層。MII接口是連接數(shù)據(jù)鏈路層和物理層的接口,因為本設(shè)計中以太網(wǎng)速率采用100Mb/s,所以MII接口實際連接的是MAC子層和PCS子層。根據(jù)協(xié)議,要求MII接口具有的功能有:數(shù)據(jù)和幀分隔符的讀寫時鐘同步,提供獨立的讀寫數(shù)據(jù)通道,為MAC層和PCS層提供相應(yīng)的管理信號,以及支持全雙工模式。
擴展MII接口功能及其
FPGA實現(xiàn)
由于100M以太網(wǎng)的物理層采用4b/5b編碼,為了擴展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,同時要求MII接口將從PHY傳來的信號COL、CRS轉(zhuǎn)為信號Carrier和Collision,并提供給MAC子層用于載波監(jiān)聽和沖突檢測,以及發(fā)送和接收時的時鐘、使能、錯誤位信號的傳送。擴展功能后的MII接口硬件結(jié)構(gòu)框圖如圖1所示,由4b/5b編解碼器、控制信號與4位/8位轉(zhuǎn)換、分頻器及雙口FIFO 4個模塊組成,而且能夠同時支持半雙工和全雙工模式。
在設(shè)計過程中,為了考慮測試和支持多種速率傳輸?shù)男枰?,要求設(shè)計帶有分頻參數(shù)的可實現(xiàn)奇偶分頻的分頻器和支持能夠同時進行讀寫操作和異步讀寫時鐘的FIFO。這是MII接口設(shè)計中的難點,本身也具有很高的實用價值。
分頻器相關(guān)文章:分頻器原理
評論