亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于fpga的以太網(wǎng)接口驅(qū)動裝置的制作方法

文檔序號:7662104閱讀:178來源:國知局
專利名稱:基于fpga的以太網(wǎng)接口驅(qū)動裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及以太網(wǎng)接口驅(qū)動程序,尤其是一種基于FPGA(現(xiàn)場可編程門陣列) 技術(shù)的以太網(wǎng)接口驅(qū)動裝置。
背景技術(shù)
隨著信息化和網(wǎng)絡(luò)技術(shù)的發(fā)展,以太網(wǎng)技術(shù)被用于工業(yè)控制和信息化生活的 各個方面,極大的提高了我們的生活水平。以太網(wǎng)接口是連接以太網(wǎng)的關(guān)鍵,而 FPGA具有極好的靈活性。采用FPGA設(shè)計以太網(wǎng)接口,它不但可以簡化系統(tǒng)而且 還可以降低成本。
對FPGA在以太網(wǎng)接口控制中的使用進行研究與實踐,并且開發(fā)出具有自主知
識產(chǎn)權(quán)的IP控制核,無疑會使我國逐漸擺脫對國外類似核心控制芯片的依賴,具
有良好的經(jīng)濟核社會效益。
1982年12月IEEE802. 3標(biāo)準(zhǔn)的出現(xiàn),標(biāo)志著以太網(wǎng)技術(shù)標(biāo)準(zhǔn)的起步,同時
也標(biāo)志著符合國際標(biāo)準(zhǔn)、具有高度互通性的以太網(wǎng)產(chǎn)品的面世。IEEE802.3標(biāo)準(zhǔn)
規(guī)定以太網(wǎng)是以10Mbps的速度運行,采用載波偵聽多路訪問/沖突檢測(簡稱為
CSMA/MD)介質(zhì)存取控制(簡稱為MAC)協(xié)議在共享介質(zhì)上傳輸數(shù)據(jù)的技術(shù)。
以太網(wǎng)從出現(xiàn)至今,僅僅經(jīng)過不到20年的發(fā)展時間,其運行速度卻提高了兩
個數(shù)量級,從10Mbps到100Mbps到了 1000Mbps,乃至最近出現(xiàn)的10Gbps的以太
網(wǎng)原型,這是一個非常令人心動的變革。而以太網(wǎng)低廉的端口價格和優(yōu)越的性能,
使得以太網(wǎng)在不到20年的發(fā)展時間里,占據(jù)了整個局域網(wǎng)市場的85%左右,從
而使得CSMA/MD協(xié)議在局域網(wǎng)協(xié)議中居于統(tǒng)治地位,成了局域網(wǎng)協(xié)議的事實標(biāo)準(zhǔn),
也使得以太網(wǎng)成了局域網(wǎng)的代名詞。事實上,以太網(wǎng)提高的兩個數(shù)量級的這個速
度是其在介質(zhì)上傳輸數(shù)據(jù)的實際速度,并不是以太網(wǎng)傳輸有用數(shù)據(jù)的速度。無論 是以太網(wǎng)、快速以太網(wǎng),還是高速以太網(wǎng),MAC層協(xié)議采用相同的CSMA/MD協(xié)議, 也采用相同的以太網(wǎng)802. 3的幀結(jié)構(gòu)傳輸數(shù)據(jù)。以太網(wǎng)這種采用相同的協(xié)議和傳 輸幀結(jié)構(gòu),使得以太網(wǎng)在對已有投資的保護基礎(chǔ)上,完成對網(wǎng)絡(luò)性能的升級。802.3 標(biāo)準(zhǔn)中規(guī)定的以太網(wǎng)幀是由64位前同步信號、96位地址、16位類型/長度字段、 46_1500字節(jié)的數(shù)據(jù)和32位校驗等幾部分組成,并且CSMA/MD還規(guī)定,在連續(xù) 傳輸兩個以太網(wǎng)幀時,必須等待至少96位的幀間隙時間,如果在這段時間信道內(nèi) 一直沒有數(shù)據(jù),就說明此時信道空閑,才允許此站點發(fā)送下一個以太網(wǎng)幀??梢?看出,在一個以太網(wǎng)幀中,只有46 — 1500字節(jié)的數(shù)據(jù)才是有效數(shù)據(jù),其它的字節(jié) 均是消耗。因此,以太網(wǎng)的連續(xù)發(fā)送數(shù)據(jù)的情況下,每發(fā)送一個以太網(wǎng)幀就總共 至少要消耗掉304位的額外開銷。因此,10Mbps/100MbpsAGbps僅是在介質(zhì)上傳 輸數(shù)據(jù)的實際速度,通常將這個速度稱為端口線速度,或稱為信道帶寬;而其傳 輸有用數(shù)據(jù)的速度,無論是從理論上還是在實際中是都要小于端口線速度,通常 將這個速度稱為端口吞吐量。
以太網(wǎng)驅(qū)動的設(shè)計大多是使用芯片控制的,現(xiàn)在比較常用的方法有
(1)利用RTL8019AS芯片和單片機。 RTL8019AS是一個高度集成的以太網(wǎng)控制器,它提供了一種簡單的解決方案 以實現(xiàn)具備全雙工和掉電模式特性的即插即用NE2000兼容的以太網(wǎng)適配器。由于 具備3種等級掉電模式控制特性,所以對于GREEN PC系統(tǒng)RTL8019AS是網(wǎng)絡(luò)設(shè) 備的理想選擇。全雙工功能使得RTL8019AS能夠同時收發(fā)全雙工以太網(wǎng)交換機雙 絞線鏈路上的數(shù)據(jù)。這個特性不僅使得信道帶寬從10Mbps增加到20Mbps,而且 避免了由于基于以太網(wǎng)CSMA/CD協(xié)議的信道競爭特性引起的性能惡化[3]。設(shè)計人 員利用單片機編寫控制模塊來實現(xiàn)對該芯片輸入輸出的協(xié)調(diào)控制。由于該芯片功 能比較強大,如適用于IEEE802. 3協(xié)議、10Base5、 10Base2、 10BaseT;支持8
位、16位數(shù)據(jù)總線,8個中斷申請線以及16個I/0基地址選擇;全雙工,收發(fā)可 同時達到10Mbps的速率,具有休眠模式,可以降低功耗;內(nèi)置16KB的SRAM用于 收發(fā)緩存。所以大多數(shù)設(shè)計者都對該芯片情有獨鐘。
(2) 利用IIM7010模塊與TMS320VC33。
TMS320VC33是TI的第一代浮點DSP芯片,作為數(shù)字中頻接收機的主控制器。 XC2S100EPQ208為XILINX公司推出的SPARTAN-IIE系列FPGA中的一款,在接收 機中主要控制AD采集,實現(xiàn)解調(diào),為IIM7010提供相應(yīng)的控制信號。1IM7010的 讀寫信號,片選信號,W3100A的復(fù)位信號等都是由FPGA給出。
數(shù)字中頻接收機與外部設(shè)備進行以太網(wǎng)通信采用客戶/服務(wù)器模式,接收機作 為服務(wù)器,采用TCP協(xié)議。DSP控制程序采用C語言編寫。通過設(shè)計DSP, FPGA 與IIM7010模塊的接口電路和驅(qū)動程序,實現(xiàn)數(shù)字中頻接收機的以太網(wǎng)通信。
(3) 利用CS8900A和TMS320VC32
該芯片是Cirrus Logic公司生產(chǎn)的一種局域網(wǎng)信號處理芯片,內(nèi)部繼承了片 上RAM,其模擬前端包括曼徹斯特編解碼器,始終恢復(fù)電路,10BASE2T收發(fā)器和濾 波器及一個AUI接口。 CS8900A的MAC引擎負責(zé)以太網(wǎng)數(shù)據(jù)幀的發(fā)送和接收,檢測和 處理沖突,生成和檢測幀引導(dǎo)頭,自動生成和校驗CRC碼。CS8900A的20位地址線 和TMS320VC32地址線低20位相連;通過一片CPLD擴展TMS320VC32的外部控制功能, 控制CS8900A的中斷請求,復(fù)位和讀寫操作[2]。
以上三種是較為常用的以太網(wǎng)接口驅(qū)動設(shè)計的方案。但是由于芯片本身的成 本問題,對于一些特殊環(huán)境來說它的成本還是偏貴了一些,并且由于TCP/IP協(xié) 議本身的復(fù)雜性和繁瑣性,利用芯片來完成以太網(wǎng)接口驅(qū)動的設(shè)計就不太讓人滿 息。

發(fā)明內(nèi)容
為了克服已有以太網(wǎng)接口驅(qū)動裝置的成本高、通用性差、靈活性低、實用性
差的不足,本發(fā)明提供一種能夠降低成本、具有很強的通用性、靈活性和實用性 的基于FPGA的以太網(wǎng)接口驅(qū)動裝置。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是
一種基于FPGA的以太網(wǎng)接口驅(qū)動裝置,包括以太幀生成模塊,用于產(chǎn)生以
太幀數(shù)據(jù),并完成IP數(shù)據(jù)包和以太幀的封裝,將CRC循環(huán)校驗碼放置在數(shù)據(jù)的最 后;CRC循環(huán)校驗?zāi)K,用于將傳過來的數(shù)據(jù)進行CRC校驗,并輸出CRC循環(huán)校 驗碼;以太幀輸出模塊,用于將輸入的數(shù)據(jù)加上IP報頭和以太幀前端并輸出;以 太幀前端控制模塊,用于將UDP格式的數(shù)據(jù)包輸入到FPGA芯片的RAM中并且從中 獲取長度信息,并且根據(jù)TCP/IP協(xié)議中對IP報頭的要求依次產(chǎn)生數(shù)據(jù),生成IP 報頭,對IP數(shù)據(jù)包進行處理,加上以太幀前端,并按照時序輸出;輸出端口選擇 模塊,用于控制以太幀和IP報頭的順序;IP數(shù)據(jù)報控制模塊,用于將輸入的數(shù) 據(jù)緩存設(shè)定的時鐘后輸出;IP數(shù)據(jù)報輸出模塊,用于將輸入的UDP數(shù)據(jù)報按照 TCP/IP協(xié)議加上IP報頭,然后按照時序輸出。
作為優(yōu)選的一種方案所述的以太網(wǎng)接口驅(qū)動裝置還包括IP報頭控制模塊, 用于獲取UDP報中的長度數(shù)據(jù),并計算頭標(biāo)校驗和;IPRAM控制模塊,用于將輸 入的數(shù)據(jù)放入RAM里,并在恰當(dāng)?shù)臅r機輸出UDP報中的數(shù)據(jù)長度;IP數(shù)據(jù)報數(shù)據(jù) 輸出端口模塊,用于調(diào)節(jié)IP報頭和數(shù)據(jù)的時序。
進一步,所述的CRC循環(huán)校驗?zāi)K為八位并行CRC-32循環(huán)校驗?zāi)K,CRC校 驗碼的生成多項式是
CRC32校驗產(chǎn)生器預(yù)先將移位寄存器值置為全1;八位并行CRC-32循環(huán)校驗?zāi)K 輸出一個32位的校驗碼。
本發(fā)明的技術(shù)構(gòu)思為通過FPGA來實現(xiàn)現(xiàn)有技術(shù)中的芯片的大部分功能。基
于FPGA的設(shè)計技術(shù)是發(fā)展迅速的一項技術(shù)。使用FPGA設(shè)計以太網(wǎng)接口驅(qū)動可以 充分利用FPGA所具有的可編程、控制邏輯實現(xiàn)方式靈活的特點,使設(shè)計出的以太 網(wǎng)接口控制具有很強的通用性、靈活性和使用性。設(shè)計者能夠根據(jù)協(xié)議的要求自 行更改設(shè)計內(nèi)容,在價格便宜的前提下使得功能更符合使用場合。
在網(wǎng)絡(luò)中本發(fā)明選用IP協(xié)議,以下簡述一下IP協(xié)議的內(nèi)容
互聯(lián)網(wǎng)把它的基本傳輸單元稱為IP數(shù)據(jù)報(datagram),有時成為Internet 數(shù)據(jù)報。
IP數(shù)據(jù)報符合典型數(shù)據(jù)分組的一般格式,分為報頭(或稱首部)和數(shù)據(jù)區(qū)兩 部分。
(1) 版本和協(xié)議類型
IP數(shù)據(jù)報中的第一個域為版本(VERS)域,長度為4比特。表示數(shù)據(jù)報所對 應(yīng)的IP協(xié)議版本號。不同的IP協(xié)議版本,其數(shù)據(jù)報格式有所不同。當(dāng)前的IP 協(xié)議版本好為"4"。
IP數(shù)據(jù)報中的協(xié)議(PROTOCOL)域表示創(chuàng)建該數(shù)據(jù)報數(shù)據(jù)區(qū)數(shù)據(jù)的高級協(xié)議 的類型比如TCP (6), UDP (17), ICMP (1)等。協(xié)議類型代碼是有一個中央管理 機構(gòu)管理的,在整個Internet范圍內(nèi)保持一致。
(2) 長度
IP數(shù)據(jù)報頭含兩個長度域報頭長(HLEN)和總長(TOTAL LENGTH)。 報頭是一個4個比特域,指出32比特(4字節(jié))為單位的報頭長度。 一個不含選 項域和填充域的普通IP數(shù)據(jù)報其報頭長度取值為"5"??傞L域知識整個IP數(shù)據(jù) 報的長度,以字節(jié)為單位。其中包含報頭長以及數(shù)據(jù)長。由于總長度為16比特, 所以IP數(shù)據(jù)報最長可達到65535個字節(jié)。
(3) 服務(wù)類型與優(yōu)先權(quán) 服務(wù)類型規(guī)定大隊本數(shù)據(jù)報的處理方式。該域長度為一個字節(jié),分為六個子
域。取全"1"。
(4) 頭校驗和
"頭校驗和"(HEADER CHECKSUM)域用于保證報頭數(shù)據(jù)的完整性,IP協(xié)議 報頭校驗和算法很簡單設(shè)"頭校驗和"初值為0,然后對報頭數(shù)據(jù)每16位求異 或,結(jié)果取反,便得到校驗和。在IP數(shù)據(jù)報中只含報頭校驗和,而不對數(shù)據(jù)區(qū)校 驗。
(5) 地址
在IP數(shù)據(jù)報的報頭中,兩個地址域是"信源地址"(SOURCE ADDRESS)和"信 宿地址"(DESTINATION ADDRESS)域。這32比特的域分別表示本IP數(shù)據(jù)報最初 發(fā)送者和最終接收者的地址,在整個數(shù)據(jù)報傳輸過程中,無論經(jīng)過什么路徑,無 論如何分片,此兩域均保持不變。
為了簡化本程序,所以IP數(shù)據(jù)報的分片和片偏移部分皆為"0",即不對UDP 數(shù)據(jù)報進行分片處理。對IP數(shù)據(jù)報的處理主要集中在獲取長度信息和計算校驗和 上,由于長度信息的可變性所以對于每個不同的UDP數(shù)據(jù)報,其IP數(shù)據(jù)報報頭都 是不相同的。程序需要對傳輸過來的UDP數(shù)據(jù)報報頭進行判斷和處理,從中獲取 出整個數(shù)據(jù)的長度信息并進行合適的處理,得出IP數(shù)據(jù)報的長度值,并用這個值 去計算校驗和。
基于FPGA的以太網(wǎng)端口驅(qū)動的設(shè)計和應(yīng)用,主要包括TCP/IP協(xié)議中IP數(shù)據(jù) 包的設(shè)計和以太幀結(jié)構(gòu)的設(shè)計,實現(xiàn)對UDP數(shù)據(jù)包的合適處理,使其能夠在特定情 況下在以太網(wǎng)中傳輸?;贔PGA的設(shè)計能夠最終做到軟件的仿真和硬件調(diào)試。在 輸出端能夠看到符合以太網(wǎng)傳輸協(xié)議的幀結(jié)構(gòu)的產(chǎn)生。由于應(yīng)用環(huán)境的特殊性和 自身水平的限制,本發(fā)明現(xiàn)在所設(shè)計的以太幀發(fā)射過程中去除了 CSMA/CD的過程, 這大大減少的工作量,也便于利用FPGA來完成這項工作。
將UDP格式的數(shù)據(jù)包輸入到FPGA芯片的RAM中并且從中獲取長度信息,并且
根據(jù)TCP/IP協(xié)議中對IP報頭的要求依次產(chǎn)生合理的數(shù)據(jù),生成合適的IP報頭, 放在UDP數(shù)據(jù)包的開始形成IP數(shù)據(jù)包格式。然后將IP數(shù)據(jù)包緩存幾個時鐘用來 產(chǎn)生正確的以太幀前端,同時將IP數(shù)據(jù)包輸入至CRC循環(huán)校驗碼程序,當(dāng)數(shù)據(jù) 傳輸完畢后產(chǎn)生的CRC循環(huán)校驗碼放置于數(shù)據(jù)包的最后,同時在IP數(shù)據(jù)包前端 產(chǎn)生以太幀前端數(shù)據(jù),通過如此處理的數(shù)據(jù)串就形成合適以太網(wǎng)傳輸?shù)囊蕴珟?式。整個發(fā)明都是在FPGA芯片上進行程序的編寫并且下載到FPGA芯片上進行硬 件的調(diào)試來實現(xiàn)的。
實現(xiàn)過程數(shù)據(jù)經(jīng)過IP的處理后已經(jīng)成為IP數(shù)據(jù)包,然后將IP數(shù)據(jù)包 緩存數(shù)個時鐘,同時輸出以太幀的前端數(shù)據(jù),包括前端,目的地址,源地址和長 度數(shù)據(jù)。特別是長度需要從原來的數(shù)據(jù)中獲取之。將此數(shù)據(jù)放在IP數(shù)據(jù)包的甜 端合適時間輸出。
本發(fā)明的有益效果主要表現(xiàn)在1、能夠降低成本;2、具有很強的通用性、
靈活性和實用性。


圖l是UDP偽首部格式圖。
圖2是以太幀結(jié)構(gòu)。
圖3是IP數(shù)據(jù)報結(jié)構(gòu)。
圖4是基于FPGA的以太網(wǎng)接口驅(qū)動裝置的總體結(jié)構(gòu)圖。
圖5是基于FPGA的以太網(wǎng)接口驅(qū)動裝置的總體功能結(jié)構(gòu)圖。
圖6是程序流程圖。
圖7是以太幀功能實現(xiàn)。
圖8是輔助程序功能圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明作進一步描述。
參照圖1 圖8, 一種基于FPGA的以太網(wǎng)接口驅(qū)動裝置,包括以太幀生成
模塊,用于產(chǎn)生以太幀數(shù)據(jù),并完成IP數(shù)據(jù)包和以太幀的封裝,將CRC循環(huán)校驗 碼放置在數(shù)據(jù)的最后;CRC循環(huán)校驗?zāi)K,用于將傳過來的數(shù)據(jù)進行CRC校驗, 并輸出CRC循環(huán)校驗碼;以太幀輸出模塊,用于將輸入的數(shù)據(jù)加上IP報頭和以太 幀前端并輸出;以太幀前端控制模塊,用于將UDP格式的數(shù)據(jù)包輸入到FPGA芯片 的RAM中并且從中獲取長度信息,并且根據(jù)TCP/IP協(xié)議中對IP報頭的要求依次 產(chǎn)生數(shù)據(jù),生成IP報頭,對IP數(shù)據(jù)包進行處理,加上以太幀前端,并按照時序 輸出;輸出端口選擇模塊,用于控制以太幀和IP報頭的順序;IP數(shù)據(jù)報控制模 塊,用于將輸入的數(shù)據(jù)緩存設(shè)定的時鐘后輸出;IP數(shù)據(jù)報輸出模塊,用于將輸入 的UDP數(shù)據(jù)報按照TCP/IP協(xié)議加上IP報頭,然后按照時序輸出。
所述的以太網(wǎng)接口驅(qū)動裝置還包括IP報頭控制模塊,用于獲取UDP報中的 長度數(shù)據(jù),并計算頭標(biāo)校驗和;IPRAM控制模塊,用于將輸入的數(shù)據(jù)放入RAM里, 并在恰當(dāng)?shù)臅r機輸出UDP報中的數(shù)據(jù)長度;IP數(shù)據(jù)報數(shù)據(jù)輸出端口模塊,用于調(diào) 節(jié)IP報頭和數(shù)據(jù)的時序。
所述的CRC循環(huán)校驗?zāi)K為八位并行CRC-32循環(huán)校驗?zāi)K,CRC校驗碼的生 成多項式是
CRC32校驗產(chǎn)生器預(yù)先將移位寄存器值置為全1;八位并行CRC-32循環(huán)校驗?zāi)K
輸出一個32位的校驗碼。
本實施例將UDP格式的數(shù)據(jù)包輸入到FPGA芯片的RAM中并且從中獲取長度信
息,并且根據(jù)TCP/IP協(xié)議中對IP報頭的要求依次產(chǎn)生合理的數(shù)據(jù),生成合適的
IP報頭,放在UDP數(shù)據(jù)包的開始形成IP數(shù)據(jù)包格式。然后將IP數(shù)據(jù)包緩存幾
個時鐘用來產(chǎn)生正確的以太幀前端,同時將IP數(shù)據(jù)包輸入至CRC循環(huán)校驗碼程 序,當(dāng)數(shù)據(jù)傳輸完畢后產(chǎn)生的CRC循環(huán)校驗碼放置于數(shù)據(jù)包的最后,同時在IP 數(shù)據(jù)包前端產(chǎn)生以太幀前端數(shù)據(jù),通過如此處理的數(shù)據(jù)串就形成合適以太網(wǎng)傳輸 的以太幀格式。整個發(fā)明都是在FPGA芯片上進行程序的編寫并且下載到FPGA 芯片上進行硬件的調(diào)試來實現(xiàn)的。
實現(xiàn)過程數(shù)據(jù)經(jīng)過IP的處理后已經(jīng)成為IP數(shù)據(jù)包,然后將IP數(shù)據(jù)包 緩存數(shù)個時鐘,同時輸出以太幀的前端數(shù)據(jù),包括前端,目的地址,源地址和長 度數(shù)據(jù)。特別是長度需要從原來的數(shù)據(jù)中獲取之。將此數(shù)據(jù)放在IP數(shù)據(jù)包的前 端合適時間輸出。
整個程序以ethernet為頂層文件,包括四個模塊ethfirstl, ethoutl, num 和crc。 crc的作用是產(chǎn)生CRC循環(huán)校驗碼,ethfirstl的作用是生成以太幀, 它又包括四個模塊ip, ethc, ipcome和ethout. ethc的作用是產(chǎn)生以太幀前端 結(jié)構(gòu),特別是取得IP數(shù)據(jù)的長度。ip的作用是產(chǎn)生IP數(shù)據(jù)包,主要是對IP 包頭進行處理,它包括三個模塊dac. ipramcontrol和ipout。 dac的作用是從 ROM中讀取一些固定的數(shù)據(jù),并且從UDP中取得長度信息,放在IP報頭規(guī)定的 位置,同時進行計算,取得頭標(biāo)校驗和。ipramcontrol的作用是控制輸入的數(shù) 據(jù),在合適的時機讀取數(shù)據(jù)。并按照順序?qū)⑤斎霐?shù)據(jù)依次輸出,便于處理。具 體設(shè)計框圖見附圖。
以太幀生成模塊ethernet. v,這是整個程序的頂層文件,它包括四個模塊, 分別是,crc.v, num. v, ethoutl. v和ethfirstl. v。它的作用是纟各各個模塊 的功能綜合在一起產(chǎn)生以太幀數(shù)據(jù)。數(shù)據(jù)經(jīng)過ethfirstl. v的處理后已經(jīng)完成 了 IP數(shù)據(jù)包和以太幀的封裝。然后將從ethfirstl. v傳來的數(shù)據(jù)(通過ipdata 端口)進行CRC循環(huán)檢驗(crc.v),然后加在數(shù)據(jù)的最后,利用num.v來計數(shù), 并在合適的時間加載在數(shù)據(jù)的最后,用ethoutl. v來選擇輸出。完成整個程序
的功能。
CRC循環(huán)校驗?zāi)Kcrc. v,八位并行CRC-32循環(huán)校驗?zāi)K,它的作用是將 傳輸過來的數(shù)據(jù)進行CRC校驗,并輸出校驗結(jié)果。本發(fā)明選擇的CRC校驗碼的
CRC- 32校驗產(chǎn)生器會在初始狀態(tài)的時候預(yù)先將移位寄存器值置為全1,如果沒 有這樣的預(yù)設(shè)置,就不能正確地保護數(shù)據(jù)包開始為0的數(shù)據(jù)位。此程序?qū)膁ata 端口輸入的數(shù)據(jù)進行八位并行運算并得出一個32位的校驗碼。
計數(shù)模塊num.v:對long端口的長度數(shù)據(jù)進行計數(shù),當(dāng)計到相應(yīng)長度時輸 出一個高電平。
輸出端口選擇模塊ethoutl. v:當(dāng)num. v給出高電平時輸出CRC校驗數(shù)據(jù), 否則輸出ethfirst. v的數(shù)據(jù)。
以太幀輸出模塊ethfirsetl.v:將輸入的數(shù)據(jù)加上IP報頭和以太幀前端 并輸出。它包括四個模塊,分別是ethc.v,ethout.v,ipcome. v和ip. v。它的 作用是將各個模塊綜合在一起。
以太幀前端控制模塊ethc. v:對IP數(shù)據(jù)包進行處理,加上以太幀前端, 并按照時序輸出。主要是獲取IP包長度。
輸出端口選擇模塊ethout. v是控制以太幀和IP報頭的順序。
IP數(shù)據(jù)報控制模塊ipcorae.v:簡單的緩存程序,將輸入的數(shù)據(jù)緩存7個時 鐘后輸出以保證時序的準(zhǔn)確性。
IP數(shù)據(jù)報輸出模塊ip.v:將輸入的UDP數(shù)據(jù)報按照TCP/IP協(xié)議加上IP 報頭,然后按照時序輸出。它包括三個模塊分別是dac. v, ipramcontrol. v和 ipout.v。它的作用是將各個模塊綜合在一起。IP功能實現(xiàn)過程將數(shù)據(jù)放至 32位的RAM中保存,同時從已經(jīng)寫好的ROM中提取IP報頭中固定的數(shù)據(jù),在第 5和第6個時鐘從RAM中先讀取UDP的長度,并經(jīng)過處理后放在IP報頭長度的 位置。將原有數(shù)據(jù)和IP長度數(shù)據(jù)綜合計算得出頭標(biāo)校驗和的值。然后完整的輸 出IP報頭,RAM中的數(shù)據(jù)在32個時鐘后按照順序輸出。
IP報頭控制程序dac.v:輸出符合IP報頭的數(shù)據(jù)串。主要包括獲取UDP報 中的長度數(shù)據(jù),并計算"頭標(biāo)校驗和"。
IPRAM控制模塊ipramcontrol. v:將輸入的數(shù)據(jù)放入一個32字節(jié)的RAM 里,并在恰當(dāng)?shù)臅r機輸出UDP報中的數(shù)據(jù)長度。
IP數(shù)據(jù)報數(shù)據(jù)輸出端口模塊ipout. v:調(diào)節(jié)IP報頭和數(shù)據(jù)的時序。
本實施例編寫的程序要通過"可編程通信系統(tǒng)教學(xué)實驗箱"進行硬件調(diào) 試,此試驗箱的主要芯片為FPGA芯片EPlK30TC144-3。利用邏輯分析儀來觀察 輸出數(shù)據(jù)的準(zhǔn)確性。為了便于觀察,本發(fā)明設(shè)計了幾個特別的模塊來輔助。
8分頻器divide8. v將8位并行的數(shù)據(jù)串行輸出,設(shè)計分頻器用于時鐘處理。 設(shè)計32分頻器divide32. v是由于試驗箱的時鐘過高,不便觀察,將其分頻后 能產(chǎn)生合適的時鐘信號。
數(shù)據(jù)產(chǎn)生器data.v產(chǎn)生輸入數(shù)據(jù),當(dāng)總體復(fù)位信號reset信號來時,開始產(chǎn) 生數(shù)據(jù),每128個時鐘變換一次,分別是OF和OO。并串轉(zhuǎn)換器將8位并行的數(shù) 據(jù)串行輸出。
將編寫的程序?qū)懭隕P1K30TC144-3芯片中進行調(diào)試。利用邏輯分析儀來進 行觀察。將輸出結(jié)果與仿真結(jié)果相比較,結(jié)果完全相同.可知此程序能夠適用于 該芯片.并輸出適合以太網(wǎng)傳輸?shù)囊蕴珟?br> 權(quán)利要求
1、一種基于FPGA的以太網(wǎng)接口驅(qū)動裝置,其特征在于所述的以太網(wǎng)接口驅(qū)動裝置包括以太幀生成模塊,用于產(chǎn)生以太幀數(shù)據(jù),并完成IP數(shù)據(jù)包和以太幀的封裝,將CRC循環(huán)校驗碼放置在數(shù)據(jù)的最后;CRC循環(huán)校驗?zāi)K,用于將傳過來的數(shù)據(jù)進行CRC校驗,并輸出CRC循環(huán)校驗碼;以太幀輸出模塊,用于將輸入的數(shù)據(jù)加上IP報頭和以太幀前端并輸出;以太幀前端控制模塊,用于將UDP格式的數(shù)據(jù)包輸入到FPGA芯片的RAM中并且從中獲取長度信息,并且根據(jù)TCP/IP協(xié)議中對IP報頭的要求依次產(chǎn)生數(shù)據(jù),生成IP報頭,對IP數(shù)據(jù)包進行處理,加上以太幀前端,并按照時序輸出;輸出端口選擇模塊,用于控制以太幀和IP報頭的順序;IP數(shù)據(jù)報控制模塊,用于將輸入的數(shù)據(jù)緩存設(shè)定的時鐘后輸出;IP數(shù)據(jù)報輸出模塊,用于將輸入的UDP數(shù)據(jù)報按照TCP/IP協(xié)議加上IP報頭,然后按照時序輸出。
2、 如權(quán)利要求1所述的基于FPGA的以太網(wǎng)接口驅(qū)動裝置,其特征在于所述的 以太網(wǎng)接口驅(qū)動裝置還包括IP報頭控制模塊,用于獲取UDP報中的長度數(shù)據(jù),并計算頭標(biāo)校驗和;IPRAM控制模塊,用于將輸入的數(shù)據(jù)放入RAM里,并在恰當(dāng)?shù)臅r機輸出UDP報中 的數(shù)據(jù)長度;IP數(shù)據(jù)報數(shù)據(jù)輸出端口模塊,用于調(diào)節(jié)IP報頭和數(shù)據(jù)的時序。
3、 如權(quán)利要求1或2所述的基于FPGA的以太網(wǎng)接口驅(qū)動裝置,其特征在于所 述的CRC循環(huán)校驗?zāi)K為八位并行CRC-32循環(huán)校驗?zāi)K,CRC校驗碼的生成多項式是<formula>formula see original document page 3</formula>CRC32校驗產(chǎn)生器預(yù)先將移位寄存器值置為全1;八位并行CRC-32循環(huán)校驗?zāi)K 輸出一個32位的校驗碼。
全文摘要
一種基于FPGA的以太網(wǎng)接口驅(qū)動裝置,包括以太幀生成模塊,用于產(chǎn)生以太幀數(shù)據(jù),并完成IP數(shù)據(jù)包和以太幀的封裝,將CRC循環(huán)校驗碼放置在數(shù)據(jù)的最后;CRC循環(huán)校驗?zāi)K,用于將傳過來的數(shù)據(jù)進行CRC校驗并輸出校驗碼;以太幀輸出模塊,用于將輸入的數(shù)據(jù)加上IP報頭和以太幀前端并輸出;以太幀前端控制模塊,用于對IP數(shù)據(jù)包加上以太幀前端并按照時序輸出;輸出端口選擇模塊,用于控制以太幀和IP報頭的順序;IP數(shù)據(jù)報控制模塊,用于將輸入的數(shù)據(jù)緩存設(shè)定的時鐘后輸出;IP數(shù)據(jù)報輸出模塊,用于將輸入的UDP數(shù)據(jù)報按照TCP/IP協(xié)議加上IP報頭,按照時序輸出。本發(fā)明能夠降低成本、具有很強的通用性、靈活性和實用性。
文檔編號H04L12/56GK101184030SQ20071015651
公開日2008年5月21日 申請日期2007年11月6日 優(yōu)先權(quán)日2007年11月6日
發(fā)明者孟利民, 羅佳波, 陶明淵 申請人:浙江工業(yè)大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1