基于FPGA的以太網(wǎng)控制器設(shè)計(jì)
發(fā)布時(shí)間:2007/8/28 0:00:00 訪問(wèn)次數(shù):1109
西安電子科技大學(xué)機(jī)電工程學(xué)院 許全泉,胡文江,蘇里
引言
目前,以太網(wǎng)802.3協(xié)議和TCP/IP協(xié)議是現(xiàn)今嵌入式系統(tǒng)接入Internet的首選協(xié)議。而以太網(wǎng)(Ethernet)的核心思想是多用戶使用共享的公共傳輸信道,它通過(guò)帶沖突檢測(cè)的載波偵聽(tīng)多路訪問(wèn)協(xié)議(CSMA/CD)來(lái)控制對(duì)介質(zhì)的訪問(wèn)。
本文給出了完全用FPGA的控制邏輯來(lái)實(shí)現(xiàn)嵌入式系統(tǒng)Internet接人中的底層以太網(wǎng)控制器的設(shè)計(jì)方法。并最終設(shè)計(jì)出符合IEEE 802.3標(biāo)準(zhǔn)的控制器,從而實(shí)現(xiàn)了10 Mbps和100 Mbps兩種傳輸速率以及半雙工和全雙工兩種工作模式,并可通過(guò)IEEE802.3標(biāo)準(zhǔn)定義的介質(zhì)獨(dú)立接口(MII)與以太網(wǎng)物理層芯片相連接。
1 總體設(shè)計(jì)方案
以太網(wǎng)控制器的FPGA設(shè)計(jì)工作包括以太網(wǎng)MAC子層的FPGA設(shè)計(jì)、MAC子層與上層協(xié)議的接口設(shè)計(jì)以及MAC與物理層(PHY)的MII接口設(shè)計(jì)。
該以太網(wǎng)控制器的總體結(jié)構(gòu)設(shè)計(jì)框圖如圖1所示。整個(gè)系統(tǒng)分為發(fā)送模塊、接收模塊、MAC狀態(tài)模塊、MAC控制模塊、MII管理模塊和主機(jī)接口模塊六部分。發(fā)送模塊和接收模塊主要提供MAC幀的發(fā)送和接收功能,其主要操作有MAC幀的封裝與解包以及錯(cuò)誤檢測(cè),它直接提供了到外部物理層芯片(PHY)的并行數(shù)據(jù)接口(MII)。MAC控制模塊則用于執(zhí)行全雙工模式中的流量控制功能。MAC狀態(tài)模塊可用來(lái)監(jiān)視MAC的操作過(guò)程的各種狀態(tài)信息,并作修改。MII管理模塊提供了標(biāo)準(zhǔn)的IEEE 802.3介質(zhì)獨(dú)立接口(MII),可用于連接以太網(wǎng)的鏈路層與物理層(PHY)。主機(jī)接口則提供有以太網(wǎng)控制器與上層協(xié)議(如TCP/IP協(xié)議)之間的接口,以用于數(shù)據(jù)的發(fā)送、接收以及對(duì)控制器內(nèi)各種寄存器(控制、狀態(tài)和命令寄存器)的設(shè)置。
2 MAC發(fā)送模塊
MAC發(fā)送模塊可將上層協(xié)議提供的數(shù)據(jù)封裝之后通過(guò)MII接口發(fā)送給PHY。發(fā)送模塊可接收主機(jī)接口模塊的數(shù)據(jù)幀開(kāi)始和數(shù)據(jù)幀結(jié)束標(biāo)志,并通過(guò)主機(jī)接口從外部存儲(chǔ)器中讀取要發(fā)送的數(shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行封裝,然后通過(guò)PHY提供的載波偵聽(tīng)和沖突檢測(cè)信號(hào),在信道空閑時(shí)通過(guò)MII接口將數(shù)據(jù)以4位的寬度發(fā)送給PHY,最后由PHY將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)上。
發(fā)送模塊由CRC生成模塊(crc_gen)、隨機(jī)數(shù)生成模塊(random_gen)、發(fā)送計(jì)數(shù)模塊(tx_cnt) 和發(fā)送狀態(tài)機(jī)(tx_statem_模塊等四個(gè)子模塊組成。其內(nèi)部結(jié)構(gòu)如圖2所示。
2.1 CRC生成模塊(crc_gen)
該模塊用于計(jì)算發(fā)送數(shù)據(jù)的CRC值,并將CRC值添加到數(shù)據(jù)幀的幀校驗(yàn)序列字段(FCS)內(nèi)。為了提高效率,并考慮到MAC與PHY的數(shù)據(jù)通道為4位,設(shè)計(jì)時(shí)可采用4位并行CRC計(jì)算方法,算法中可使用一個(gè)次態(tài)函數(shù),并通過(guò)循環(huán)迭代來(lái)模擬移位操作。這樣,發(fā)送模塊就可以在邊發(fā)送數(shù)據(jù)到PHY的同時(shí),一邊計(jì)算CRC,這樣當(dāng)數(shù)據(jù)發(fā)送完時(shí),CRC值也計(jì)算完成了。
2.2 隨機(jī)數(shù)生成模塊(random_gen)
如在發(fā)送過(guò)程中檢測(cè)到?jīng)_突,發(fā)送模塊就先發(fā)送擁塞碼(jam),隨后停止發(fā)送。在下次重新發(fā)送之前,發(fā)送模塊會(huì)先執(zhí)行一個(gè)后退(backoff)操作,即發(fā)送模塊等待一個(gè)半隨機(jī)(生成的隨機(jī)數(shù)有范圍限制)的時(shí)間之后再開(kāi)始發(fā)送。該隨機(jī)數(shù)就是由隨機(jī)數(shù)生成模塊產(chǎn)生的,它采用經(jīng)典的截?cái)喽笖?shù)后退算法,后退的時(shí)間是一個(gè)與發(fā)生沖突次數(shù)有關(guān)的隨機(jī)數(shù),隨著沖突的次數(shù)增多,用于生成該隨機(jī)數(shù)的范同也將逐漸增大,以減少?zèng)_突的概率。
2.3 發(fā)送計(jì)數(shù)模塊(tx_cnt)
發(fā)送計(jì)數(shù)模塊由半字節(jié)計(jì)數(shù)器(nibcnt)、字節(jié)計(jì)數(shù)器和重試次數(shù)計(jì)數(shù)器(retrycnt)三個(gè)計(jì)數(shù)器組成。其中重試次數(shù)計(jì)數(shù)器(retrycnt)可對(duì)發(fā)送某個(gè)幀時(shí)產(chǎn)生沖突次數(shù)進(jìn)行計(jì)數(shù)。當(dāng)計(jì)數(shù)器的值達(dá)到最大重試次數(shù)時(shí),它將放棄重試,并丟棄發(fā)送緩沖器內(nèi)的數(shù)據(jù)。同時(shí),重試計(jì)數(shù)器的值還被隨機(jī)數(shù)生成模塊用于計(jì)算下次重試之前需要后退(backoff)的時(shí)隙的個(gè)數(shù)。
半字節(jié)計(jì)數(shù)器和字節(jié)計(jì)數(shù)器分別用于對(duì)發(fā)送過(guò)程中的半
西安電子科技大學(xué)機(jī)電工程學(xué)院 許全泉,胡文江,蘇里
引言
目前,以太網(wǎng)802.3協(xié)議和TCP/IP協(xié)議是現(xiàn)今嵌入式系統(tǒng)接入Internet的首選協(xié)議。而以太網(wǎng)(Ethernet)的核心思想是多用戶使用共享的公共傳輸信道,它通過(guò)帶沖突檢測(cè)的載波偵聽(tīng)多路訪問(wèn)協(xié)議(CSMA/CD)來(lái)控制對(duì)介質(zhì)的訪問(wèn)。
本文給出了完全用FPGA的控制邏輯來(lái)實(shí)現(xiàn)嵌入式系統(tǒng)Internet接人中的底層以太網(wǎng)控制器的設(shè)計(jì)方法。并最終設(shè)計(jì)出符合IEEE 802.3標(biāo)準(zhǔn)的控制器,從而實(shí)現(xiàn)了10 Mbps和100 Mbps兩種傳輸速率以及半雙工和全雙工兩種工作模式,并可通過(guò)IEEE802.3標(biāo)準(zhǔn)定義的介質(zhì)獨(dú)立接口(MII)與以太網(wǎng)物理層芯片相連接。
1 總體設(shè)計(jì)方案
以太網(wǎng)控制器的FPGA設(shè)計(jì)工作包括以太網(wǎng)MAC子層的FPGA設(shè)計(jì)、MAC子層與上層協(xié)議的接口設(shè)計(jì)以及MAC與物理層(PHY)的MII接口設(shè)計(jì)。
該以太網(wǎng)控制器的總體結(jié)構(gòu)設(shè)計(jì)框圖如圖1所示。整個(gè)系統(tǒng)分為發(fā)送模塊、接收模塊、MAC狀態(tài)模塊、MAC控制模塊、MII管理模塊和主機(jī)接口模塊六部分。發(fā)送模塊和接收模塊主要提供MAC幀的發(fā)送和接收功能,其主要操作有MAC幀的封裝與解包以及錯(cuò)誤檢測(cè),它直接提供了到外部物理層芯片(PHY)的并行數(shù)據(jù)接口(MII)。MAC控制模塊則用于執(zhí)行全雙工模式中的流量控制功能。MAC狀態(tài)模塊可用來(lái)監(jiān)視MAC的操作過(guò)程的各種狀態(tài)信息,并作修改。MII管理模塊提供了標(biāo)準(zhǔn)的IEEE 802.3介質(zhì)獨(dú)立接口(MII),可用于連接以太網(wǎng)的鏈路層與物理層(PHY)。主機(jī)接口則提供有以太網(wǎng)控制器與上層協(xié)議(如TCP/IP協(xié)議)之間的接口,以用于數(shù)據(jù)的發(fā)送、接收以及對(duì)控制器內(nèi)各種寄存器(控制、狀態(tài)和命令寄存器)的設(shè)置。
2 MAC發(fā)送模塊
MAC發(fā)送模塊可將上層協(xié)議提供的數(shù)據(jù)封裝之后通過(guò)MII接口發(fā)送給PHY。發(fā)送模塊可接收主機(jī)接口模塊的數(shù)據(jù)幀開(kāi)始和數(shù)據(jù)幀結(jié)束標(biāo)志,并通過(guò)主機(jī)接口從外部存儲(chǔ)器中讀取要發(fā)送的數(shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行封裝,然后通過(guò)PHY提供的載波偵聽(tīng)和沖突檢測(cè)信號(hào),在信道空閑時(shí)通過(guò)MII接口將數(shù)據(jù)以4位的寬度發(fā)送給PHY,最后由PHY將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)上。
發(fā)送模塊由CRC生成模塊(crc_gen)、隨機(jī)數(shù)生成模塊(random_gen)、發(fā)送計(jì)數(shù)模塊(tx_cnt) 和發(fā)送狀態(tài)機(jī)(tx_statem_模塊等四個(gè)子模塊組成。其內(nèi)部結(jié)構(gòu)如圖2所示。
2.1 CRC生成模塊(crc_gen)
該模塊用于計(jì)算發(fā)送數(shù)據(jù)的CRC值,并將CRC值添加到數(shù)據(jù)幀的幀校驗(yàn)序列字段(FCS)內(nèi)。為了提高效率,并考慮到MAC與PHY的數(shù)據(jù)通道為4位,設(shè)計(jì)時(shí)可采用4位并行CRC計(jì)算方法,算法中可使用一個(gè)次態(tài)函數(shù),并通過(guò)循環(huán)迭代來(lái)模擬移位操作。這樣,發(fā)送模塊就可以在邊發(fā)送數(shù)據(jù)到PHY的同時(shí),一邊計(jì)算CRC,這樣當(dāng)數(shù)據(jù)發(fā)送完時(shí),CRC值也計(jì)算完成了。
2.2 隨機(jī)數(shù)生成模塊(random_gen)
如在發(fā)送過(guò)程中檢測(cè)到?jīng)_突,發(fā)送模塊就先發(fā)送擁塞碼(jam),隨后停止發(fā)送。在下次重新發(fā)送之前,發(fā)送模塊會(huì)先執(zhí)行一個(gè)后退(backoff)操作,即發(fā)送模塊等待一個(gè)半隨機(jī)(生成的隨機(jī)數(shù)有范圍限制)的時(shí)間之后再開(kāi)始發(fā)送。該隨機(jī)數(shù)就是由隨機(jī)數(shù)生成模塊產(chǎn)生的,它采用經(jīng)典的截?cái)喽笖?shù)后退算法,后退的時(shí)間是一個(gè)與發(fā)生沖突次數(shù)有關(guān)的隨機(jī)數(shù),隨著沖突的次數(shù)增多,用于生成該隨機(jī)數(shù)的范同也將逐漸增大,以減少?zèng)_突的概率。
2.3 發(fā)送計(jì)數(shù)模塊(tx_cnt)
發(fā)送計(jì)數(shù)模塊由半字節(jié)計(jì)數(shù)器(nibcnt)、字節(jié)計(jì)數(shù)器和重試次數(shù)計(jì)數(shù)器(retrycnt)三個(gè)計(jì)數(shù)器組成。其中重試次數(shù)計(jì)數(shù)器(retrycnt)可對(duì)發(fā)送某個(gè)幀時(shí)產(chǎn)生沖突次數(shù)進(jìn)行計(jì)數(shù)。當(dāng)計(jì)數(shù)器的值達(dá)到最大重試次數(shù)時(shí),它將放棄重試,并丟棄發(fā)送緩沖器內(nèi)的數(shù)據(jù)。同時(shí),重試計(jì)數(shù)器的值還被隨機(jī)數(shù)生成模塊用于計(jì)算下次重試之前需要后退(backoff)的時(shí)隙的個(gè)數(shù)。
半字節(jié)計(jì)數(shù)器和字節(jié)計(jì)數(shù)器分別用于對(duì)發(fā)送過(guò)程中的半
上一篇:CMOS圖像傳感器芯片OV5017及其應(yīng)用
上一篇:32
熱門點(diǎn)擊
- ARMv7架構(gòu)技術(shù)細(xì)節(jié)披露,三大系列面向不同
- 電風(fēng)扇遙控電路PT2128及其應(yīng)用
- ELK-04型SF6氣體絕緣金屬封閉開(kāi)關(guān)設(shè)備
- 10KV開(kāi)關(guān)站開(kāi)關(guān)柜選型對(duì)城區(qū)供電的影響
- MIPS挺進(jìn)中國(guó),在上海設(shè)研發(fā)中心
- 基于FPGA的以太網(wǎng)控制器設(shè)計(jì)
- EEMBC進(jìn)行OAmark測(cè)試,可配置處理器
- 瑞薩推出32位RSIC微控制器,最高工作頻率
- 高壓變電站10kV母線保護(hù)的分析和研究
- 直流無(wú)刷電機(jī)驅(qū)動(dòng)芯片LB11820M的原理及
推薦技術(shù)資料
- 自制經(jīng)典的1875功放
- 平時(shí)我也經(jīng)常逛一些音響DIY論壇,發(fā)現(xiàn)有很多人喜歡LM... [詳細(xì)]
- 1200 V CoolSiC MOSFET
- 高帶寬內(nèi)存(HBM)和芯片間互連(ICI)應(yīng)
- 第七代TPU—Ironwood
- Neuralink新款“心靈感
- IR最新功率MOSFET的30
- 全新第4代SiC MOSFET
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究