基于FPGA的以太網(wǎng)MII接口擴(kuò)展設(shè)計(jì)與實(shí)現(xiàn)
引言
傳統(tǒng)以PC為中心的互聯(lián)網(wǎng)應(yīng)用現(xiàn)已開(kāi)始轉(zhuǎn)向以嵌入式設(shè)備為中心。據(jù)網(wǎng)絡(luò)專家預(yù)測(cè),將來(lái)在互聯(lián)網(wǎng)上傳輸?shù)男畔⒅?,?0%來(lái)自小型嵌入式系統(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ī)來(lái)提供所需的網(wǎng)絡(luò)協(xié)議;另外一種方法是利用具有網(wǎng)絡(luò)協(xié)議棧結(jié)構(gòu)的芯片和PHY(物理層的接收器)來(lái)實(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 (媒體訪問(wèn)控制)子層。其中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傳來(lái)的信號(hào)COL、CRS轉(zhuǎn)為信號(hào)Carrier和Collision,并提供給MAC子層用于載波監(jiān)聽(tīng)和沖突檢測(cè),以及發(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ì)過(guò)程中,為了考慮測(cè)試和支持多種速率傳輸?shù)男枰?,要求設(shè)計(jì)帶有分頻參數(shù)的可實(shí)現(xiàn)奇偶分頻的分頻器和支持能夠同時(shí)進(jìn)行讀寫操作和異步讀寫時(shí)鐘的FIFO。這是MII接口設(shè)計(jì)中的難點(diǎn),本身也具有很高的實(shí)用價(jià)值。
分頻器相關(guān)文章:分頻器原理
評(píng)論