色偷偷偷久久伊人大杳蕉,色爽交视频免费观看,欧美扒开腿做爽爽爽a片,欧美孕交alscan巨交xxx,日日碰狠狠躁久久躁蜜桃

x
x

基于FPGA的以太網(wǎng)MAC子層協(xié)議設(shè)計(jì)實(shí)現(xiàn)

發(fā)布時間:2010-7-31 20:00    發(fā)布者:lavida
關(guān)鍵詞: FPGA , Mac , 以太網(wǎng)
傳統(tǒng)以PC為中心的互聯(lián)網(wǎng)應(yīng)用現(xiàn)已開始轉(zhuǎn)向以嵌入式設(shè)備為中心. IA(internet appliance) 概念現(xiàn)在甚為流行,這表明互聯(lián)網(wǎng)應(yīng)用進(jìn)入了嵌入式互聯(lián)網(wǎng)的時代已經(jīng)來臨. 據(jù)網(wǎng)絡(luò)專家預(yù)測,將來在互聯(lián)網(wǎng)上傳輸?shù)男畔⒅?有70%來自小型嵌入式系統(tǒng). 因此,對嵌入式系統(tǒng)接入Internet網(wǎng)絡(luò)的研究是有必要的.

目前有兩種方法可以實(shí)現(xiàn)單片機(jī)系統(tǒng)接入Internet.一種方法是利用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)芯片的某個寄存器里放上適當(dāng)?shù)臄?shù)據(jù). 美國Seiko Instrument 公司生產(chǎn)的S7600A 就是具有這種結(jié)構(gòu)的芯片. 與此同時,用FPGA實(shí)現(xiàn)單片機(jī)系統(tǒng)接入Internet的方法也日益受到人們的重視.

FPGA是現(xiàn)場可編程門陣列的縮寫,是近年來發(fā)展迅速的大規(guī)模可編程器件,具有密度高,速度快,功耗小、使用方便等特點(diǎn) ,在嵌入式系統(tǒng)設(shè)計(jì)中得到了廣泛的應(yīng)用. 以MCU 為核心,采用FPGA 設(shè)計(jì)實(shí)現(xiàn)外圍電路,不僅可以使設(shè)計(jì)的電子產(chǎn)品小型化、集成化和實(shí)現(xiàn)高可靠性,還大大縮短了設(shè)計(jì)周期,減少了設(shè)計(jì)費(fèi)用,降低了設(shè)計(jì)風(fēng)險. 本文提出采用FPGA實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議棧,著重介紹以太網(wǎng)MAC 子層協(xié)議的硬件實(shí)現(xiàn)方法.

1 以太網(wǎng)MAC 子層協(xié)議

IEEE802協(xié)議標(biāo)準(zhǔn)系列中,數(shù)據(jù)鏈路層包括邏輯鏈路控制(LLC) 子層和媒體訪問控制(MAC) 子層. 其中MAC 位于LLC 和物理層之間,它使LLC 適應(yīng)于不同的媒體訪問技術(shù)和物理媒體. MAC 單獨(dú)作為一個子層,就不會因?yàn)槊襟w訪問方法的改變而影響較高層次的協(xié)議. MAC 由數(shù)據(jù)拆裝和媒體訪問管理兩個模塊組成,完成數(shù)據(jù)幀的封裝、解封、發(fā)送和接收功能.以太網(wǎng)數(shù)據(jù)幀封裝格式如表1 所示,其中目的地址、源地址、長度/ 類型和數(shù)據(jù)4 個字段由上一層協(xié)議模塊生成. 傳送數(shù)據(jù)幀時,數(shù)據(jù)封裝模塊自動在待傳輸數(shù)據(jù)前面添加7 個字節(jié)的前導(dǎo)碼和1 個字節(jié)的定界符,并在數(shù)據(jù)傳送結(jié)束時加發(fā)4 個字節(jié)的循環(huán)冗余校驗(yàn)碼,如果數(shù)據(jù)長度小于46 字節(jié),則會自動進(jìn)行數(shù)據(jù)填充以達(dá)到要求的最短長度. 接收數(shù)據(jù)幀時,數(shù)據(jù)拆裝模塊將自動丟棄前導(dǎo)碼和定界符2 個字段.

媒體訪問管理模塊主要實(shí)現(xiàn)CSMA/CD(carrier sense multiple access with collision detection) 協(xié)議 . CSMA/CD 是一種分布式介質(zhì)訪問控制協(xié)議,使網(wǎng)中的多個站(節(jié)點(diǎn)) 可以共享傳輸介質(zhì). 發(fā)送數(shù)據(jù)幀時,節(jié)點(diǎn)首先進(jìn)行載波監(jiān)聽,當(dāng)介質(zhì)空閑時開始發(fā)送幀. 如果在傳輸過程中與其他節(jié)點(diǎn)產(chǎn)生沖突,則正在傳輸?shù)拿總節(jié)點(diǎn)必須發(fā)出32 比特大小的阻塞信號來加強(qiáng)沖突,以便通知總線上各個站點(diǎn)已發(fā)生沖突,然后隨機(jī)延時一段時間重新爭用介質(zhì),再重新傳送數(shù)據(jù)幀.

2 MAC 子層協(xié)議的FPGA 實(shí)現(xiàn)

以太網(wǎng)MAC 子層協(xié)議的硬件結(jié)構(gòu)框圖如圖1 所示,由控制模塊、發(fā)送模塊和接收模塊3個部分組成. 由于小型嵌入式系統(tǒng)主要應(yīng)用在集散控制系統(tǒng)中,信息交流多為“一問一答”式的半雙工通信模式,同時為了降低硬件資源的開銷,本模塊僅支持半雙工通信模式.



圖1 硬件結(jié)構(gòu)框圖

2. 1 控制模塊

該模塊包含主機(jī)接口、寄存器、發(fā)送數(shù)據(jù)緩沖區(qū)及接收數(shù)據(jù)緩沖區(qū)4 個部分. 主機(jī)接口部分用以實(shí)現(xiàn)與MCU 之間的數(shù)據(jù)交換,采用8 位外部數(shù)據(jù)總線. 寄存器主要用于功能參數(shù)的設(shè)置及狀態(tài)信息的存貯. 發(fā)送數(shù)據(jù)緩沖區(qū)是主機(jī)與發(fā)送模塊之間的數(shù)據(jù)傳輸通道,接收數(shù)據(jù)緩沖區(qū)則是主機(jī)與接收模塊之間的數(shù)據(jù)傳輸通道.

控制模塊的工作時鐘有兩種選擇方式,一種是直接由外部提供,另一種是外部時鐘通過FPGA 片內(nèi)的延遲鎖相環(huán)進(jìn)行倍頻后供內(nèi)部使用,用戶可以根據(jù)系統(tǒng)設(shè)計(jì)實(shí)際需要自由選擇.

數(shù)據(jù)緩沖區(qū)(發(fā)送數(shù)據(jù)緩沖區(qū)和接收數(shù)據(jù)緩沖區(qū)) 用作發(fā)送與接收數(shù)據(jù)的緩沖,以使主機(jī)的傳輸速度與本模塊相匹配. 發(fā)送數(shù)據(jù)時,主機(jī)先將待發(fā)送的數(shù)據(jù)幀寫入發(fā)送數(shù)據(jù)緩沖區(qū),然后由發(fā)送模塊將數(shù)據(jù)讀出. 傳統(tǒng)意義上的數(shù)據(jù)緩沖區(qū)由一塊內(nèi)部或外部RAM來實(shí)現(xiàn),但這樣需要設(shè)計(jì)實(shí)現(xiàn)一個復(fù)雜的控制狀態(tài)機(jī)來管理主機(jī)、發(fā)送模塊和接收模塊3 個部分對RAM的讀寫. Spartan Ⅱ系列的FPGA 內(nèi)部提供了豐富的塊RAM資源,可以配置雙端口RAM. 因此本文將發(fā)送緩沖區(qū)分成兩個獨(dú)立的部分,這樣每個數(shù)據(jù)緩沖區(qū)便可以由雙端口的RAM來實(shí)現(xiàn),大大簡化了設(shè)計(jì),節(jié)省了硬件資源.

2. 2 發(fā)送模塊

該模塊主要實(shí)現(xiàn)CSMA/CD 協(xié)議,完成數(shù)據(jù)幀的傳送,即以字節(jié)為單位從發(fā)送緩沖區(qū)讀取數(shù)據(jù),并將其轉(zhuǎn)換成4 比特的半位元傳送給以太網(wǎng)的物理層PHY芯片,結(jié)構(gòu)框圖如圖2 所示.重發(fā)計(jì)數(shù)器用以存貯當(dāng)前幀成功傳輸時的發(fā)送次數(shù). 幀間隙計(jì)數(shù)器用以保證相鄰兩個幀之間保持一定的傳輸時間間隔. 沖突窗計(jì)數(shù)器用以判斷當(dāng)前所發(fā)生的沖突是否為后沖突(late collision) . 延時計(jì)數(shù)器用以存貯啟動傳輸后等待總線空閑的時間,當(dāng)超過一定時間后將放棄當(dāng)前幀的傳輸.這4 個功能子模塊都由1個計(jì)數(shù)器和1個比較器來實(shí)現(xiàn). 退避計(jì)數(shù)器模塊用以實(shí)現(xiàn)二進(jìn)制指數(shù)退避算法,包括一個偽隨機(jī)數(shù)生成器. CRC 生成電路用以實(shí)現(xiàn)數(shù)據(jù)幀的校驗(yàn)碼序列,采用4 位數(shù)據(jù)線并行方式實(shí)現(xiàn).


圖2 發(fā)送模塊結(jié)構(gòu)框圖

發(fā)送控制狀態(tài)機(jī)是整個發(fā)送模塊的核心,用以管理各個功能子模塊,并使它們按照一定的時序協(xié)同工作,其狀態(tài)圖如圖3 所示. 當(dāng)總線被其他站點(diǎn)占用進(jìn)行數(shù)據(jù)傳輸時,發(fā)送模塊處于Defer 狀態(tài),如果此時數(shù)據(jù)準(zhǔn)備好需要傳輸則啟動延時計(jì)數(shù)器,經(jīng)過規(guī)定的最大延時時間后總線仍被占用則放棄當(dāng)前幀的傳輸. 當(dāng)總線空閑后則進(jìn)入IPG狀態(tài),經(jīng)過最小幀間間隙時間自動進(jìn)入空閑狀態(tài)IDLE 并等待數(shù)據(jù)傳輸,此時如果數(shù)據(jù)準(zhǔn)備好并且數(shù)據(jù)的長度大于46 字節(jié)則按照前導(dǎo)碼、數(shù)據(jù)、校驗(yàn)序列的順序進(jìn)行數(shù)據(jù)幀的傳輸,否則按照前導(dǎo)碼、數(shù)據(jù)、數(shù)據(jù)填充、校驗(yàn)序列的順序進(jìn)行數(shù)據(jù)幀的傳輸;在傳輸過程中,如果遇到?jīng)_突則進(jìn)入Jam 狀態(tài),發(fā)送32 比特的阻塞信號加強(qiáng)沖突以保證網(wǎng)絡(luò)的各個站點(diǎn)都可以檢測到此次的沖突,如果此次沖突是后沖突則直接進(jìn)入Defer狀態(tài),并丟棄當(dāng)前幀,否則進(jìn)入Back狀態(tài),隨機(jī)延時一段時間后重新爭用總線來傳輸當(dāng)前幀.


圖3 發(fā)送控制狀態(tài)機(jī)

2. 3 接收模塊

該模塊主要完成數(shù)據(jù)幀的接收, 即從物理層PHY芯片接收4比特半位元數(shù)據(jù),將其轉(zhuǎn)化成以字節(jié)為單位的數(shù)據(jù)并存貯在接收數(shù)據(jù)緩沖區(qū),結(jié)構(gòu)框圖如圖4 所示.



圖4 接收模塊結(jié)構(gòu)框圖

圖4中的地址判斷子模塊用以檢查幀的目的地址字段是否與本站地址相匹配,如果不匹配,則說明不是發(fā)送給本站的而將它丟棄掉. 幀間隙計(jì)數(shù)器用以檢測接收到的數(shù)據(jù)幀與前一幀之間是否滿足最小幀間間隔的要求,如果不滿足則將它丟棄. 接收字節(jié)計(jì)數(shù)器用以存貯接收幀的字節(jié)長度,判斷接收幀長度是否滿足要求(在最小幀長度與最大幀長度之間) . CRC 生成電路與發(fā)送模塊一樣采用4 位數(shù)據(jù)線并行方式實(shí)現(xiàn).

接收控制狀態(tài)機(jī)是整個接收模塊的核心,負(fù)責(zé)管理各個功能子模塊,檢測總線及實(shí)現(xiàn)接收數(shù)據(jù)幀的時序,其狀態(tài)圖如圖5 所示. 通常接收模塊處于IDLE 狀態(tài)并監(jiān)聽總線的狀態(tài),當(dāng)檢測到以太網(wǎng)幀的前導(dǎo)碼時自動進(jìn)入SFD 狀態(tài),此時如果接收到以太網(wǎng)數(shù)據(jù)幀的幀定界符,并且與前一個數(shù)據(jù)幀之間的時間間隔大于最小幀間間隙,則接收模塊進(jìn)入數(shù)據(jù)接收狀態(tài)開始接收數(shù)據(jù). 處于Data0 狀態(tài)時接收字節(jié)的低4 位,而處于Datal 狀態(tài)時接收字節(jié)的高4 位,并在Data0 狀態(tài)將接收到的完整字節(jié)數(shù)據(jù)存貯到接收數(shù)據(jù)緩沖區(qū).如果接收的數(shù)據(jù)字節(jié)數(shù)超過允許的最大幀長度,則接收模塊進(jìn)入Drop 狀態(tài),此時丟棄后面的數(shù)據(jù). 當(dāng)全部數(shù)據(jù)傳輸完畢即總線處于空閑時,接收模塊重新處于IDLE 狀態(tài),等待接收下一個數(shù)據(jù)幀.



圖5 接收控制狀態(tài)圖

3 綜合與仿真

本文采用Xilinx 公司的Spartan Ⅱ系列XC2S100PQ208芯片,整個設(shè)計(jì)全部采用Verilog HDL 硬件描述語言來實(shí)現(xiàn),并在Foundation3. 1 的設(shè)計(jì)平臺上完成整個模塊的設(shè)計(jì)、綜合、仿真、映射及布局布線. 圖6為發(fā)送時序仿真的波形,從圖中可以看出,當(dāng)傳輸過程中發(fā)生沖突時繼續(xù)發(fā)送32 比特的阻塞碼,然后隨機(jī)延時一段時間重新爭用介質(zhì)以傳輸數(shù)據(jù),這說明本模塊滿足了CSMA/ CD 協(xié)議.



圖6 發(fā)送時序仿真波形

4 結(jié)語

本文介紹了一種簡易的基于FPGA 的以太網(wǎng)MAC 子層協(xié)議的設(shè)計(jì)方法. 通過本模塊可以簡單方便地實(shí)現(xiàn)小型嵌入式系統(tǒng)的Internet 網(wǎng)絡(luò)接口,如果再結(jié)合基于FPGA 實(shí)現(xiàn)的TCP/ IP 協(xié)議棧及其他輔助功能模塊,不僅可以使小型嵌入式系統(tǒng)接入網(wǎng)絡(luò)更加簡單,而且系統(tǒng)的集成度、穩(wěn)定性將進(jìn)一步得到提高.
本文地址:http://m.54549.cn/thread-18217-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表