專利名稱::一種以太網(wǎng)錯誤幀提取接口裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種應(yīng)用于以太網(wǎng)通信的接口裝置,具體來講,涉及一種在以太網(wǎng)通信中,對錯誤幀進行提取的接口裝置。
背景技術(shù):
:現(xiàn)有技術(shù)的以太網(wǎng)適配器接口裝置采用多個FIFO并聯(lián)或單獨的RAM存儲結(jié)構(gòu),錯誤幀提取的實現(xiàn)代價太大,并且都不能主動地接收所有的錯誤幀,因為錯誤幀不是標準的以太網(wǎng)幀。多個FIFO并聯(lián)存儲結(jié)構(gòu)的接口裝置,如圖1所示,每個FIFO只存儲一幀數(shù)據(jù),利用FIFO的清空機制可以清除存入的錯誤幀數(shù)據(jù)。但其上下端需要多路接收和提取的仲裁邏輯配合。FIFO并聯(lián)的數(shù)量越多,仲裁邏輯越復(fù)雜,擴展性欠佳。另外,每個FIFO無論大小,只存儲一幀數(shù)據(jù),當(dāng)存儲短幀時勢必會造成存儲空間的浪費。不能充分利用存儲空間和有限數(shù)量的FIFO并聯(lián),也容易出現(xiàn)接收丟幀的現(xiàn)象。單個RAM存儲結(jié)構(gòu)的接口裝置,如圖2所示,單個RAM可以存儲多幀數(shù)據(jù),修改寫入指針可以實現(xiàn)錯誤幀數(shù)據(jù)的拋棄。每次接收幀數(shù)據(jù)前,保存RAM的寫入指針。若隨后接收到是錯誤幀,可以還原之前保存寫入指針,完成寫入的錯誤幀數(shù)據(jù)的拋棄。但RAM的寫入指針同時要受到錯誤幀處理邏輯和狀態(tài)機正常寫入的控制,不易實現(xiàn)。此外,現(xiàn)有技術(shù)的以太網(wǎng)錯誤幀提取接口裝置是將錯誤幀直接拋棄,不能主動接收錯誤幀。在網(wǎng)絡(luò)故障測試領(lǐng)域,既要能完成正常的以太網(wǎng)通信,又要能檢測很多網(wǎng)絡(luò)故障,這就要求以太網(wǎng)接口裝置應(yīng)能接收標準的以太網(wǎng)幀和錯誤幀,而且可根據(jù)需求取舍其中特定類型的錯誤幀。
發(fā)明內(nèi)容本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種結(jié)構(gòu)簡單、能主動接收4錯誤幀的以太網(wǎng)錯誤幀提取接口裝置。為實現(xiàn)上述發(fā)明目的,本發(fā)明的以太網(wǎng)錯誤幀提取接口裝置,包括接收狀態(tài)機、底層數(shù)據(jù)FIFO緩存、底層狀態(tài)FIFO緩存、錯誤幀拋棄邏輯模塊、高層數(shù)據(jù)FIFO緩存以及高層狀態(tài)FIFO緩存;接收狀態(tài)機,用于接收來自PHY模塊的以太網(wǎng)幀,并解析獲得以太網(wǎng)幀數(shù)據(jù),產(chǎn)生狀態(tài)描述符;底層數(shù)據(jù)FIFO緩存,用于存儲來自接收狀態(tài)機的所有以太網(wǎng)幀數(shù)據(jù);底層狀態(tài)FIFO緩存,用于存儲來自接收狀態(tài)機的、和以太網(wǎng)幀一一對應(yīng)的狀態(tài)描述符,狀態(tài)描述符記錄該以太網(wǎng)幀的信息;錯誤幀拋棄邏輯模塊,用于根據(jù)預(yù)先設(shè)定的接收控制位和底層狀態(tài)FIFO緩存讀出的狀態(tài)描述符中的錯誤幀標識,判斷該以太網(wǎng)幀是否進一步接收,如果錯誤幀標識為接受控制位允許的,則進一步接收該以太網(wǎng)幀,否則,不接收,直接拋棄;高層數(shù)據(jù)FIFO緩存和高層狀態(tài)FIFO緩存,用于存儲錯誤幀拋棄邏輯模塊判斷后進一步接收的以太網(wǎng)幀數(shù)據(jù)和狀態(tài)描述符。本發(fā)明以太網(wǎng)錯誤幀提取接口裝置通過底層數(shù)據(jù)FIFO緩存和底層狀態(tài)FIFO緩存,先將以太網(wǎng)幀數(shù)據(jù)和狀態(tài)描述符存儲,這樣可以輕易通過與預(yù)先設(shè)定的接收控制位控制錯誤幀的主動接收,將以太網(wǎng)錯誤幀提取出來,同時兼顧標準以太網(wǎng)幀的存取。FIFO技術(shù)現(xiàn)成,數(shù)量固定,結(jié)構(gòu)簡單。FIFO的容量可自定義,接收控制易實現(xiàn)也易調(diào)整,具有非常好的擴展性,適用于通用的可編程邏輯器件。圖1是現(xiàn)有技術(shù)中FIFO并聯(lián)存儲結(jié)構(gòu)接口裝置原理圖2是現(xiàn)有技術(shù)中單個RAM存儲結(jié)構(gòu)接口裝置原理圖3是本發(fā)明以太網(wǎng)錯誤幀提取接口裝置一種具體實施方式原理圖4是圖3所示錯誤幀拋棄邏輯模塊結(jié)構(gòu)圖5是本發(fā)明以太網(wǎng)錯誤幀提取接口裝置一種具體實施方式以太網(wǎng)錯誤幀提取流程圖。具體實施力'式下面結(jié)合附圖,對本發(fā)明優(yōu)選具體實施方式進行描述。需要提醒注意的是,盡管相似部件出現(xiàn)在不同附圖中,但它們被賦予相似的附圖標記。在以下的描述中,當(dāng)采用的已知功能和設(shè)計的詳細描述也許會淡化本發(fā)明的主題內(nèi)容時,這些描述在這兒將被忽略。圖1、圖2是現(xiàn)有技術(shù)中FIFO并聯(lián)存儲結(jié)構(gòu)接口裝置及單個RAM存儲結(jié)構(gòu)接口裝置原理圖,前面已經(jīng)進行過描述,在此不再贅述。圖3是本發(fā)明以太網(wǎng)錯誤幀提取接口裝置一種具體實施方式原理圖。在本實施例中,本發(fā)明的以太網(wǎng)錯誤幀提取接口裝置包括接收狀態(tài)機l、底層數(shù)據(jù)FIFO緩存201、底層狀態(tài)FIFO緩存202、錯誤幀拋棄邏輯模塊3,以及高層數(shù)據(jù)FIFO緩存401和高層狀態(tài)FIFO緩存402。接收狀態(tài)機1接收來自PHY模塊5的以太網(wǎng)幀,并解析獲得以太網(wǎng)幀數(shù)據(jù),產(chǎn)生狀態(tài)描述符,無條件地分別存儲于底層數(shù)據(jù)FIFO緩存201,底層狀態(tài)FIFO緩存202中,這樣,底層狀態(tài)FIFO緩存202存儲來自接收狀態(tài)機的l、和以太網(wǎng)幀一一對應(yīng)的狀態(tài)描述符,狀態(tài)描述符記錄該以太網(wǎng)幀的信息。錯誤幀拋棄邏輯模塊3根據(jù)預(yù)先設(shè)定的接收控制位和底層狀態(tài)FIFO緩存讀出的狀態(tài)描述符中的錯誤幀標識,判斷該以太網(wǎng)幀是否進一步接收,如果錯誤幀標識為接受控制位允許的,則進一步接收該以太網(wǎng)幀,并將以太網(wǎng)幀數(shù)據(jù)和狀態(tài)描述符分別存儲于否則高層數(shù)據(jù)FIFO緩存401和高層狀態(tài)FIFO402緩存,不接收,直接拋棄。在本實施例中,高層FIFO緩存4、底層FIFO緩存2都由數(shù)據(jù)FIFO緩存和狀態(tài)FIFO緩存組成,均為32位寬。高層FIFO緩存4采用傳統(tǒng)讀出型的雙口FIFO;底層FIFO緩存2采用預(yù)讀出型(Show-Ahead)的單口FIFO,即FIFO的數(shù)據(jù)在讀信號有效前就輸出,讀信號只作為一次輸出的應(yīng)答。底層、高層數(shù)據(jù)FIFO緩存201、401存儲以太網(wǎng)幀數(shù)據(jù),一個數(shù)據(jù)FIFO可以存儲多個幀,以太網(wǎng)幀數(shù)據(jù)由接收狀態(tài)機1解析獲得。幀數(shù)據(jù)先儲存在底層數(shù)據(jù)FIFO緩存201,再有選擇的進入高層數(shù)據(jù)FIFO緩存401中。底層、高層狀態(tài)FIFO緩存202、402存儲和以太網(wǎng)幀一一對應(yīng)的狀態(tài)描述符,每個狀態(tài)描述符是32位。狀態(tài)描述符由接收狀態(tài)機l產(chǎn)生,記錄了該以太網(wǎng)幀的信息。在本實施例中,底層、高層數(shù)據(jù)FIFO緩存201、401將先后存入的幀數(shù)據(jù)按32位對齊后,首尾緊緊挨著,充分利用存儲空間。這樣一幀數(shù)據(jù)可以跨高層、底層數(shù)據(jù)FIFO緩存401、201儲存。即若卨層數(shù)據(jù)FIFO緩存401在接收底層數(shù)據(jù)FIFO緩存201讀出幀時變滿了,底層數(shù)據(jù)FIFO緩存201會暫時停止讀出,這-幀數(shù)據(jù)會同時存儲在兩層數(shù)據(jù)FIFO緩存201、401里,高層數(shù)據(jù)FIFO緩存401滿了之后,底層數(shù)據(jù)FIFO緩存201才會變滿,最大程度地利用了存儲空間。同理,狀態(tài)FIFO緩存202、402也采用同樣的存儲方法,這樣,底層數(shù)據(jù)或狀態(tài)FIFO緩存滿后才不接收到達幀,最大程度地利用兩層FIFO緩存所有空間,最大限度地避免了接收丟幀的現(xiàn)象。兩層FIFO狀態(tài)2、4之間的錯誤幀處理邏輯模塊3起到了以太網(wǎng)幀的篩選過濾作用,錯誤幀的拋棄操作在此完成。錯誤幀處理邏輯模塊3只用監(jiān)測從底層狀態(tài)FIFO緩存202讀出狀態(tài)描述符,根據(jù)接收控制位和狀態(tài)描述符中的錯誤幀標識,判斷該以太網(wǎng)幀是否進一步接收,如果錯誤幀標識為接受控制位允許的,則進一步接收該以太網(wǎng)幀,否則,不接收,直接拋棄。這一幀篩選過程保證了高層FIFO緩存401中的幀數(shù)據(jù)都是期待接收的。當(dāng)處理器6從高層FIFO緩存401提取幀數(shù)據(jù)時,就省去了錯誤幀的判斷操作,存取負擔(dān)會減輕,實現(xiàn)了以太網(wǎng)幀的高效接收。在本實施例中,狀態(tài)描述符包括了錯誤幀標識,均為高有效,它們指示了該幀屬于哪一類錯誤幀,共有8類,見表l。<table>tableseeoriginaldocumentpage7</column></row><table>表1在本實施例中,接收控制位包括全局接收控制位和獨立接收控制位,均為高有效,見表2。全局控制位有效時,允許接收所有錯誤幀;無效時,獨立控制位將起作用。錯誤幀是對應(yīng)的獨立控制位允許的,即有效時,就被允許接收。引入全局和獨立接收控制位后,錯誤幀處理,即進一步接收或拋棄操作變得簡單易行,可以自由設(shè)定接收一種或幾種錯誤幀。<table>tableseeoriginaldocumentpage8</column></row><table>表2圖4是圖3所示錯誤幀拋棄邏輯模塊結(jié)構(gòu)圖。在本實施例中,包括接收控制寄存器301、位運算及狀態(tài)描述符暫存電路302以及與電路303,與電路303在圖中用&符號表示。接收控制位存儲在接收控制寄存器301中,位運算及狀態(tài)描述符暫存電路302從接收控制寄存器301中讀出接收控制位,在底層狀態(tài)FIFO緩存202中讀出狀態(tài)描述符,根據(jù)接收控制寄存器301中預(yù)先設(shè)定的接收控制位和底層狀態(tài)FIFO緩存202讀出的狀態(tài)描述符中的錯誤幀標識,輸出是否進一步接收的接收控制信號,如果錯誤幀標識為接受控制位允許的,則進一步接收該以太網(wǎng)幀,否則,不接收,直接拋棄。在本實施例中,接收控制信號為位運算的結(jié)果。其運算如下接收控制=全局接收控制位I((短幀標識&短幀接收控制位)I(長幀標識&長幀接收控制位)I(校驗錯誤幀標識&校驗錯誤幀接收控制位)I(地址失配幀標識&地址失配幀接收控制位)),各個接收控制位和錯誤幀標識都是高有效。由上述公式可知"接收控制"為邏輯"1"時,表示允許接收,為邏輯"0"時表示拒絕接收。例如只允許接收短幀時,全局接收控制位置0,短幀接收控制位置l,其他獨立接收控制位置0。錯誤幀處理邏輯模塊3遇到短幀時"接收控制"的結(jié)果為1,遇到其他幀時為0,使得高層FIFO緩存4只接收短幀。接收控制信號和底層數(shù)據(jù)FIFO緩存201的讀信號在與電路303相與,作為高層數(shù)據(jù)FIFO緩存401的寫信號,控制底層數(shù)據(jù)FIFO緩存201的以太網(wǎng)幀數(shù)據(jù)是否進入到高層數(shù)據(jù)FIFO緩存401。接收控制信號為1時,高層數(shù)據(jù)FIFO緩存401的寫信號可看成時底層數(shù)據(jù)FIFO緩存201的讀信號,實現(xiàn)了高低兩層數(shù)據(jù)FIFO緩存401、201數(shù)據(jù)以最快的速度存儲。接收控制信號為0時,底層數(shù)據(jù)FIFO緩存201的讀信號雖然有效,但高層數(shù)據(jù)FIFO緩存401的寫信號卻無效,即底層幀數(shù)據(jù)只被讀出而沒被寫入,實現(xiàn)了錯誤幀的快速拋棄。在底層數(shù)據(jù)FIFO緩存401讀出數(shù)據(jù)前,位運算及狀態(tài)描述符暫存電路302會先讀出對應(yīng)狀態(tài)描述符,并將其暫存于一寄存器中。當(dāng)數(shù)據(jù)FIFO緩存401讀出幀數(shù)據(jù)后,接收控制信號會有選擇地將暫存的狀態(tài)描述符寫入高層狀態(tài)FIFO緩存402中。高低兩層FIFO緩存4、2的存儲結(jié)構(gòu)簡單,搭建的元件數(shù)量固定,各個FIFO的容量可以根據(jù)需求調(diào)整大小,能很好的適用于不同場合。獨立接收控制位也可以根據(jù)需求擴展,接收控制信號可擴展為-接收控制=全局接收控制位I((錯誤幀標識1&獨立接收控制位1)I(錯誤幀標識2&獨立接收控制位2)I(錯誤幀標識n&獨立接收控制位n))其中錯誤幀標識必須是接收狀態(tài)機能識別出的錯誤幀,n為錯誤幀標識編號。采用高低兩層FIFO緩存4、2的存儲結(jié)構(gòu)后,幀數(shù)據(jù)接收流程如下1.底層數(shù)據(jù)FIFO緩存201無條件地接收所有來自接收狀態(tài)機1的以太網(wǎng)幀,包括標準以太網(wǎng)幀和錯誤幀。存儲完一幀數(shù)據(jù)后,接收狀態(tài)機1產(chǎn)生一個對應(yīng)的狀態(tài)描述符,并寫入底層狀態(tài)FIFO緩存202中。2.從底層狀態(tài)FIFO緩存202讀出一個狀態(tài)描述符,并臨時保存到位運算及狀態(tài)描述符暫存電路302—個寄存器中。根據(jù)該狀態(tài)描述符和預(yù)設(shè)的錯誤幀接收控制位,計算出該幀的處理結(jié)果,是否進一步接收允許接收或拒絕接收。3.處理結(jié)果為允許接收時,高層數(shù)據(jù)FIFO緩存401從底層數(shù)據(jù)FIFO緩存201中接收對應(yīng)的一幀數(shù)據(jù),之后再將暫存的狀態(tài)描述符寫入高層狀態(tài)FIFO緩存402。處理結(jié)果為拒絕接收時,底層數(shù)據(jù)FIFO緩存201只讀出該幀數(shù)據(jù),不寫入,數(shù)據(jù)和狀態(tài)描述符都予以拋棄。圖5是本發(fā)明以太網(wǎng)錯誤幀提取接口裝置一種具體實施方式以太網(wǎng)錯誤幀提取流程圖。在本實施例中,以只提取短幀為例,幀數(shù)據(jù)提取流程如下1.底層數(shù)據(jù)FIFO緩存201存儲了所有接收幀,每一幀對應(yīng)的狀態(tài)描述符也都存入底層狀態(tài)FIFO緩存202。2.從底層狀態(tài)FIFO緩存202讀出一個狀態(tài)描述符,錯誤幀處理邏輯模塊3會判斷是該幀否是短幀。只有短幀,才允許進一歩接收。3.若該幀為短幀,則該幀數(shù)據(jù)和該幀的狀態(tài)描述符都會被寫入到高層FIFO緩存4中。否則數(shù)據(jù)和狀態(tài)都不會被寫入高層FIFO緩存4中。最后高層FIFO緩存4保存的都是短幀。.盡管上面對本發(fā)明說明性的具體實施方式進行了描述,但應(yīng)當(dāng)清楚,本發(fā)明不限于具體實施方式的范圍,對本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些變化是顯而易見的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護之列。權(quán)利要求1.一種以太網(wǎng)錯誤幀提取接口裝置,包括接收狀態(tài)機,其特征在于,還包括底層數(shù)據(jù)FIFO緩存、底層狀態(tài)FIFO緩存、錯誤幀拋棄邏輯模塊、高層數(shù)據(jù)FIFO緩存以及高層狀態(tài)FIFO緩存;接收狀態(tài)機,用于接收來自PHY模塊的以太網(wǎng)幀,并解析獲得以太網(wǎng)幀數(shù)據(jù),產(chǎn)生狀態(tài)描述符;底層數(shù)據(jù)FIFO緩存,用于存儲來自接收狀態(tài)機的所有以太網(wǎng)幀數(shù)據(jù);底層狀態(tài)FIFO緩存,用于存儲來自接收狀態(tài)機的、和以太網(wǎng)幀一一對應(yīng)的狀態(tài)描述符,狀態(tài)描述符記錄該以太網(wǎng)幀的信息;錯誤幀拋棄邏輯模塊,用于根據(jù)預(yù)先設(shè)定的接收控制位和底層狀態(tài)FIFO緩存讀出的狀態(tài)描述符中的錯誤幀標識,判斷該以太網(wǎng)幀是否進一步接收,如果錯誤幀標識為接受控制位允許的,則進一步接收該以太網(wǎng)幀,否則,不接收,直接拋棄;高層數(shù)據(jù)FIFO緩存和高層狀態(tài)FIFO緩存,用于存儲錯誤幀拋棄邏輯模塊判斷后進一步接收的以太網(wǎng)幀數(shù)據(jù)和狀態(tài)描述符。2、根據(jù)權(quán)利要求l所述的以太網(wǎng)錯誤幀提取接口裝置,其特征在于,所述的錯誤幀拋棄邏輯模塊包括接收控制寄存器、位運算及狀態(tài)描述符暫存電路以及與電路;接收控制位存儲在接收控制寄存器中;位運算及狀態(tài)描述符暫存電路從接收控制寄存器中讀出接收控制位,在底層狀態(tài)FIFO緩存中讀出狀態(tài)描述符,根據(jù)接收控制寄存器中預(yù)先設(shè)定的接收控制位和底層狀態(tài)FIFO緩存讀出的狀態(tài)描述符中的錯誤幀標識,輸出是否進一步接收的接收控制信號;接收控制信號和底層數(shù)據(jù)FIFO緩存的讀信號在與電路相與,作為高層數(shù)據(jù)FIFO緩存的寫信號,控制底層數(shù)據(jù)FIFO緩存的以太網(wǎng)幀數(shù)據(jù)是否進入到高層數(shù)據(jù)FIFO緩存。3、根據(jù)權(quán)利要求2所述的以太網(wǎng)錯誤幀提取接口裝置,其特征在于,所述的接收控制位包括全局接收控制位和獨立接收控制位;全局控制位有效時,允許接收所有錯誤幀;無效時,獨立控制位將起作用,錯誤幀是對應(yīng)的獨立控制位允許的,即有效時,就被允許接收。4、根據(jù)權(quán)利要求3所述的以太網(wǎng)錯誤幀提取接口裝置,其特征在于,所述的接收控制信號為位運算的結(jié)果,其運算如下接收控制=全局接收控制位I((錯誤幀標識1&獨立接收控制位1)I(錯誤幀標識2&獨立接收控制位2)I(錯誤幀標識11&獨立接收控制位n))。全文摘要本發(fā)明公開了一種以太網(wǎng)錯誤幀提取接口裝置,其接收狀態(tài)機接收來自PHY模塊的以太網(wǎng)幀,并解析獲得以太網(wǎng)幀數(shù)據(jù),產(chǎn)生狀態(tài)描述符;底層數(shù)據(jù)FIFO緩存存儲來自接收狀態(tài)機的所有以太網(wǎng)幀數(shù)據(jù),底層狀態(tài)FIFO緩存存儲來自接收狀態(tài)機的、和以太網(wǎng)幀一一對應(yīng)的狀態(tài)描述符;錯誤幀拋棄邏輯模塊根據(jù)接收控制位和狀態(tài)描述符中的錯誤幀標識判斷該以太網(wǎng)幀是否接收,如果接受控制位允許,則接收,否則,直接拋棄;高層數(shù)據(jù)FIFO緩存和高層狀態(tài)FIFO緩存存儲錯誤幀拋棄邏輯模塊判斷后以太網(wǎng)幀數(shù)據(jù)和狀態(tài)描述符。這樣可以輕易通過與預(yù)先設(shè)定的接收控制位控制錯誤幀的主動接收,將以太網(wǎng)錯誤幀提取出來,同時兼顧標準以太網(wǎng)幀的存取。文檔編號H04L1/00GK101286873SQ20081004434公開日2008年10月15日申請日期2008年5月5日優(yōu)先權(quán)日2008年5月5日發(fā)明者科劉,文大悅,田書林,肖寅東申請人:電子科技大學(xué)