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