国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于XC3S1600E的以太網(wǎng)遠(yuǎn)傳模塊實(shí)現(xiàn)

2020-12-04 07:48王少龍
無(wú)線(xiàn)互聯(lián)科技 2020年16期
關(guān)鍵詞:前導(dǎo)狀態(tài)機(jī)計(jì)數(shù)器

王少龍

(中國(guó)長(zhǎng)城科技集團(tuán)股份有限公司,湖南 長(zhǎng)沙 410006)

0 引言

本文給出了完全用現(xiàn)場(chǎng)可編程邏輯門(mén)陣列(Field Programmable Gate Array,F(xiàn)PGA)的控制邏輯來(lái)實(shí)現(xiàn)以太網(wǎng)控制器及遠(yuǎn)傳模塊的封裝與解析,其中,以太網(wǎng)控制器符合IEEE802.3標(biāo)準(zhǔn),遠(yuǎn)傳模塊遵循高級(jí)數(shù)據(jù)鏈路控制(High-level Data Link Control,HDLC)協(xié)議,并通過(guò)軟件實(shí)現(xiàn)100 M以太網(wǎng)和8 M遠(yuǎn)傳接口之間的流量控制[1]。

1 總體設(shè)計(jì)方案

以太網(wǎng)遠(yuǎn)傳模塊的FPGA設(shè)計(jì)工作包括:(1)以太網(wǎng)MAC子層的FPGA設(shè)計(jì);(2)MAC與物理層(PHY)的MII接口設(shè)計(jì);(3)遠(yuǎn)傳接口HDLC協(xié)議的FPGA封裝與解析;(4)以太網(wǎng)與遠(yuǎn)傳模塊之間流量控制的設(shè)計(jì)??傮w結(jié)構(gòu)設(shè)計(jì)框架如圖1所示。

圖1 以太網(wǎng)遠(yuǎn)傳模塊的結(jié)構(gòu)設(shè)計(jì)框架

該以太網(wǎng)遠(yuǎn)傳模塊的整個(gè)系統(tǒng)包括:以太網(wǎng)MAC發(fā)送處理模塊、以太網(wǎng)MAC接收處理模塊、以太網(wǎng)MAC流量控制模塊、MII處理模塊、遠(yuǎn)傳發(fā)送模塊、遠(yuǎn)傳接收模塊、遠(yuǎn)傳管理模塊[2]。

(1)MAC發(fā)送處理模塊和MAC接收處理模塊,主要完成MAC幀的發(fā)送和接收處理,主要實(shí)現(xiàn)MAC幀的封裝、解析、錯(cuò)誤檢測(cè),模塊與外部物理層芯片(PHY)之間通過(guò)并行數(shù)據(jù)接口(MII)相連。(2)MAC流量控制模塊,實(shí)現(xiàn)了MAC全雙工模式中的流量控制功能,完成MAC與遠(yuǎn)傳模塊之間的流量控制。(3)MII管理模塊提供了介質(zhì)獨(dú)立接口(MII),符合標(biāo)準(zhǔn)的IEEE802.3標(biāo)準(zhǔn),主要對(duì)PHY芯片BCM5461S進(jìn)行初始化。(4)遠(yuǎn)傳發(fā)送模塊,主要執(zhí)行HDLC幀的發(fā)送,包括將從MAC接收到的數(shù)據(jù)幀封裝成HDLC格式的幀,并向MAC流量控制報(bào)告發(fā)送緩沖區(qū)的狀態(tài);遠(yuǎn)傳接收模塊主要執(zhí)行HDLC幀的接收,將從遠(yuǎn)傳接口接收到的HDLC格式的幀進(jìn)行HDLC協(xié)議解析以及錯(cuò)誤檢測(cè),并將解析后的數(shù)據(jù)幀發(fā)送到MAC發(fā)送模塊。(5)遠(yuǎn)傳管理模塊,用來(lái)管理遠(yuǎn)傳的速率、主從模式設(shè)置等。以太網(wǎng)遠(yuǎn)傳模塊的應(yīng)用連接如圖2所示。

圖2 以太網(wǎng)遠(yuǎn)傳模塊的應(yīng)用連接

2 MAC發(fā)送模塊

MAC發(fā)送模塊將從遠(yuǎn)傳接收模塊接收到的數(shù)據(jù),進(jìn)行MAC層協(xié)議封裝,并將封裝好的數(shù)據(jù)包通過(guò)MII接口發(fā)送給PHY[3]。MAC幀結(jié)構(gòu)如表1所示。

由于本項(xiàng)目中和以太網(wǎng)站點(diǎn)之間收發(fā)數(shù)據(jù)是全雙工模式,因此,在MAC發(fā)送模塊中無(wú)須載波幀聽(tīng)和沖突檢測(cè),MAC發(fā)送模塊從遠(yuǎn)傳接收模塊接收到數(shù)據(jù)幀開(kāi)始標(biāo)志后,從遠(yuǎn)傳接收模塊中的接收FIFO中讀取要發(fā)送的數(shù)據(jù),當(dāng)從遠(yuǎn)傳接收模塊接收到數(shù)據(jù)幀結(jié)束標(biāo)志后,表示當(dāng)前讀取的數(shù)據(jù)包讀取完畢,MAC發(fā)送模塊對(duì)數(shù)據(jù)進(jìn)行MAC層協(xié)議封裝,并將數(shù)據(jù)轉(zhuǎn)換為4位寬度的并行數(shù)據(jù),通過(guò)MII接口發(fā)送給PHY,最后,由PHY將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)上[4]。

表1 MAC幀結(jié)構(gòu)表

MAC發(fā)送模塊由CRC生成模塊(crc_gen)、發(fā)送計(jì)數(shù)模塊(tx_cnt)和發(fā)送狀態(tài)機(jī)(tx_statem)模塊等組成,其內(nèi)部結(jié)構(gòu)如圖3所示。

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

2.1 CRC生成模塊(crc_gen)

CRC生成模塊對(duì)發(fā)送數(shù)據(jù)進(jìn)行CRC計(jì)算,將產(chǎn)生的32位CRC校驗(yàn)值填寫(xiě)到數(shù)據(jù)幀的幀校驗(yàn)序列字段(FCS)內(nèi)。由于MAC模塊與PHY接口之間為4位并行接口。為了提高效率,設(shè)計(jì)時(shí),使用4位并行CRC計(jì)算,算法中通過(guò)使用次態(tài)函數(shù),并通過(guò)循環(huán)迭代進(jìn)行移位操作。使用4位并行CRC計(jì)算方法,發(fā)送模塊可以一邊發(fā)送數(shù)據(jù)到PHY,一邊計(jì)算CRC。當(dāng)數(shù)據(jù)發(fā)送完成后,緊接著發(fā)送計(jì)算完成的CRC校驗(yàn)值。

2.2 發(fā)送計(jì)數(shù)模塊(tx_cnt)

發(fā)送計(jì)數(shù)模塊由前導(dǎo)碼計(jì)數(shù)器、MAC幀長(zhǎng)度計(jì)數(shù)器、幀填充計(jì)數(shù)器、幀間隙計(jì)數(shù)器組成。其中,前導(dǎo)碼計(jì)數(shù)器用于控制MAC幀前導(dǎo)碼的發(fā)送,MAC幀的前導(dǎo)碼由7個(gè)字節(jié)的0×55和一個(gè)字節(jié)的0×d5組成;MAC幀的長(zhǎng)度計(jì)數(shù)器用于計(jì)數(shù)MAC幀的發(fā)送長(zhǎng)度,MAC幀的最小長(zhǎng)度為64字節(jié),其中,校驗(yàn)位共4個(gè)字節(jié),當(dāng)MAC幀的長(zhǎng)度小于64字節(jié)時(shí),就要進(jìn)行幀填充;幀填充計(jì)數(shù)器用于計(jì)數(shù)填充位的位數(shù);幀間間隙周期大于等于96個(gè)比特時(shí)間,幀間隙計(jì)數(shù)器用于計(jì)數(shù)幀間間隙周期。

2.3 發(fā)送狀態(tài)機(jī)模塊(tx_statem)

發(fā)送狀態(tài)機(jī)模塊完成MAC發(fā)送過(guò)程的控制,是MAC發(fā)送模塊的核心。發(fā)送狀態(tài)機(jī)由空閑狀態(tài)(Idle_State)、前導(dǎo)碼發(fā)送狀態(tài)(Preamble_State)、數(shù)據(jù)發(fā)送狀態(tài)(Data_State)、填充碼發(fā)送狀態(tài)(PAD_State)、校驗(yàn)位發(fā)送狀態(tài)(FCS_State)、幀間間隙狀態(tài)(IPG_State)、延遲狀態(tài)(Defer_State)等8個(gè)狀態(tài)組成。MAC發(fā)送狀態(tài)的狀態(tài)轉(zhuǎn)意如圖4所示。

圖4 MAC發(fā)送狀態(tài)轉(zhuǎn)移

發(fā)送模塊的初始狀態(tài)為延遲狀態(tài);在延遲狀態(tài)下,若信道空閑,則狀態(tài)機(jī)進(jìn)入幀間間隙狀態(tài),在幀間間隙狀態(tài)等待一個(gè)幀間間隙后,如果在幀間間隙的前2/3個(gè)周期檢測(cè)到信道忙信號(hào),狀態(tài)機(jī)將重新回到延遲狀態(tài),否則狀態(tài)機(jī)進(jìn)入總線(xiàn)空閑狀態(tài)。

狀態(tài)機(jī)進(jìn)入總線(xiàn)空閑狀態(tài)之后,MAC發(fā)送模塊一直檢測(cè)遠(yuǎn)傳接收模塊是否有發(fā)送請(qǐng)求,判斷遠(yuǎn)傳接收模塊是否有數(shù)據(jù)要發(fā)送到以太網(wǎng)接口。如果檢測(cè)到遠(yuǎn)傳接收模塊的發(fā)送請(qǐng)求,狀態(tài)機(jī)就進(jìn)入前導(dǎo)碼狀態(tài),開(kāi)始發(fā)送前導(dǎo)碼,前導(dǎo)碼由7個(gè)字節(jié)的0×55組成;前導(dǎo)碼發(fā)送完畢后,發(fā)送一個(gè)字節(jié)的幀起始定界符,幀起始定界符為0×d5。發(fā)送完前導(dǎo)碼和幀起始定界符后,狀態(tài)機(jī)進(jìn)入數(shù)據(jù)發(fā)送狀態(tài),MAC發(fā)送模塊每次從遠(yuǎn)傳接收模塊的FIFO中讀取一個(gè)字節(jié),并先將該字節(jié)的低4位發(fā)送到MII接口、再將高4位發(fā)送到MII接口,當(dāng)讀取發(fā)送數(shù)據(jù)幀的最后一個(gè)字節(jié)時(shí),根據(jù)數(shù)據(jù)幀的長(zhǎng)度,狀態(tài)機(jī)將進(jìn)入到校驗(yàn)狀態(tài)或者填充狀態(tài)。

如果數(shù)據(jù)幀的長(zhǎng)度在發(fā)送范圍內(nèi)(64≤L≤1 518),狀態(tài)機(jī)就進(jìn)入校驗(yàn)狀態(tài)。在校驗(yàn)狀態(tài),發(fā)送模塊發(fā)送CRC生成模塊計(jì)算出的CRC值。FCS字段的CRC值發(fā)送完后,該MAC幀發(fā)送完成,狀態(tài)機(jī)進(jìn)入延遲狀態(tài),重新進(jìn)入初始狀態(tài),等待新的發(fā)送請(qǐng)求。

如果數(shù)據(jù)幀的長(zhǎng)度小于64個(gè)字節(jié),狀態(tài)機(jī)就進(jìn)入填充狀態(tài),發(fā)送模塊發(fā)送填充碼,滿(mǎn)足最小幀長(zhǎng)度后,狀態(tài)機(jī)進(jìn)入校驗(yàn)狀態(tài)。若數(shù)據(jù)幀的長(zhǎng)度大于1 518字節(jié),發(fā)送模塊將放棄該幀的發(fā)送,狀態(tài)機(jī)直接進(jìn)入延遲狀態(tài),重新進(jìn)入初始狀態(tài),等待新的發(fā)送請(qǐng)求。

3 MAC接收模塊

MAC接收模塊主要完成MAC幀的接收處理。將從外部PHY接收到的4位并行數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù),對(duì)轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行MAC協(xié)議解析、前導(dǎo)碼檢測(cè)、地址識(shí)別、CRC校驗(yàn)、長(zhǎng)度判斷等操作后,將正確接收的數(shù)據(jù)移除前導(dǎo)碼和CRC值后,通過(guò)遠(yuǎn)傳發(fā)送模塊接口寫(xiě)入遠(yuǎn)傳發(fā)送模塊的發(fā)送FIFO中,并通知遠(yuǎn)傳發(fā)送模塊幀起始和幀結(jié)束信號(hào)。

MAC接收模塊由4個(gè)部分組成,包括:CRC校驗(yàn)?zāi)K、地址識(shí)別模塊、接收計(jì)數(shù)器和接收狀態(tài)機(jī)模塊等,MAC接收模塊的結(jié)構(gòu)框架如圖5所示。

圖5 MAC接收模塊框架

CRC校驗(yàn)?zāi)K與CRC生成模塊算法相同,CRC校驗(yàn)?zāi)K對(duì)接收的數(shù)據(jù)進(jìn)行CRC計(jì)算,并通過(guò)檢查輸入幀的CRC值來(lái)驗(yàn)證幀的正確性。

地址識(shí)別模塊完成接收幀目的MAC地址的識(shí)別,若目的MAC地址匹配上,則該幀被接收,否則,幀將被丟棄。

接收計(jì)數(shù)器模塊主要對(duì)接收字節(jié)及幀間間隙進(jìn)行計(jì)數(shù),包括接收字節(jié)計(jì)數(shù)器(Byte_cnt)和幀間間隙計(jì)數(shù)器(IFG_cnt)組成。在接收幀過(guò)程中,接收字節(jié)計(jì)數(shù)器將對(duì)接收字節(jié)進(jìn)行計(jì)數(shù),通過(guò)該計(jì)數(shù)器識(shí)別幀中的各個(gè)字段,如前導(dǎo)碼、目的地址字段、數(shù)據(jù)、校驗(yàn)等,也可以完成幀長(zhǎng)的判斷。幀間間隙計(jì)數(shù)器對(duì)兩幀之間的間隔時(shí)間進(jìn)行計(jì)數(shù), IEEE802.3規(guī)定,兩幀之間的間隔至少96個(gè)比特間隔。因此,如果兩幀之間的間隔小于96個(gè)比特間隔,幀將被丟棄。

接收狀態(tài)機(jī)完成MAC接收過(guò)程的控制,是MAC接收模塊的核心。接收狀態(tài)機(jī)由空閑狀態(tài)(Idle_State)、前導(dǎo)碼狀態(tài)(Preamble_State)、幀起始定界符狀態(tài)(SFD_State)、數(shù)據(jù)接收狀態(tài)(Data_State)、丟棄狀態(tài)(Drop_State)等5個(gè)狀態(tài)組成,其狀態(tài)轉(zhuǎn)移如圖6所示。

圖6 MAC接收狀態(tài)轉(zhuǎn)移

狀態(tài)機(jī)的初始狀態(tài)處于空閑狀態(tài),在該狀態(tài)下檢測(cè)接收數(shù)據(jù)有效信號(hào)。接收模塊檢測(cè)到接收數(shù)據(jù)有效信號(hào)為“1”,且接收數(shù)據(jù)為0×55后,狀態(tài)機(jī)跳轉(zhuǎn)到前導(dǎo)碼狀態(tài),否則為空閑狀態(tài)。在前導(dǎo)碼狀態(tài)若數(shù)據(jù)有效信號(hào)為“1”,且連續(xù)接收7個(gè)0×55后,狀態(tài)機(jī)進(jìn)入幀起始定界符狀態(tài),否則,跳轉(zhuǎn)回空閑狀態(tài)。

在幀起始定界狀態(tài),若數(shù)據(jù)有效信號(hào)被清零,跳轉(zhuǎn)回空閑狀態(tài);若數(shù)據(jù)有效信號(hào)為“1”,且接收數(shù)據(jù)為0×d5,則根據(jù)幀間間隙計(jì)數(shù)器的值進(jìn)入不同的狀態(tài)。如果幀間間隙所確定的時(shí)間大于96個(gè)比特時(shí)間,則狀態(tài)機(jī)進(jìn)入數(shù)據(jù)接收狀態(tài)進(jìn)行數(shù)據(jù)接收,直到數(shù)據(jù)接收完畢后進(jìn)入空閑狀態(tài),以重新等待接收新的數(shù)據(jù);如果幀間間隙計(jì)數(shù)器所確定的間隔小于96個(gè)比特時(shí)間,則狀態(tài)機(jī)將進(jìn)入丟棄狀態(tài),并一直維持丟棄狀態(tài)直到數(shù)據(jù)有效信號(hào)結(jié)束(MRxDV信號(hào)為0)。之后,狀態(tài)機(jī)再回到空閑狀態(tài)等待新的數(shù)據(jù)接收。

4 MII管理模塊

MII管理模塊完成MAC與外部PHY之間的接口管理,主要完成對(duì)PHY芯片的配置或者讀取PHY芯片的狀態(tài)信息。MII接口主要包括:時(shí)鐘信號(hào)MDC、雙向數(shù)據(jù)信號(hào)MDIO。時(shí)鐘信號(hào)MDC利用系統(tǒng)時(shí)鐘分頻產(chǎn)生,在本項(xiàng)目中,MDC選用6 M。利用移位寄存器對(duì)PHY的控制數(shù)據(jù)進(jìn)行寫(xiě)入操作或者對(duì)PHY的狀態(tài)信息進(jìn)行讀出操作,當(dāng)對(duì)PHY的控制數(shù)據(jù)進(jìn)行寫(xiě)入操作時(shí),移位寄存器將待寫(xiě)入的控制數(shù)據(jù)進(jìn)行并串轉(zhuǎn)換;而在讀狀態(tài)信息時(shí),移位寄存器將讀取出數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換。

5 遠(yuǎn)傳模塊程序設(shè)計(jì)說(shuō)明

5.1 遠(yuǎn)傳管理模塊

遠(yuǎn)傳管理模塊主要設(shè)置遠(yuǎn)傳模塊的速率以及遠(yuǎn)出模塊的主從模式。遠(yuǎn)傳模塊的速率有128 Kbps,256 Kbps,512 Kbps,1 Mbps,2 Mbps,4 Mbps,8 Mbps等8種速率,在本文的應(yīng)用中,遠(yuǎn)傳模塊的速率為8 Mbps。

5.2 遠(yuǎn)傳接收模塊

遠(yuǎn)傳接收模塊從遠(yuǎn)傳接口上接收到的數(shù)據(jù)遵循HDLC協(xié)議格式,因此,遠(yuǎn)傳接收模塊要對(duì)接收到的數(shù)據(jù)幀進(jìn)行HDLC協(xié)議解封裝,將解封裝后的數(shù)據(jù)存放在遠(yuǎn)傳接收FIFO中,并向MAC發(fā)送模塊提供幀開(kāi)始、幀結(jié)束信號(hào)。遠(yuǎn)傳接收模塊的程序框架如圖8所示。

圖8 遠(yuǎn)傳接收模塊程序框架

HDLC的幀起始和結(jié)束標(biāo)志都是 “7E”(01111110),在起始和結(jié)束標(biāo)志之間為數(shù)據(jù)字段和幀校驗(yàn)序列。為了避免將數(shù)據(jù)中的“7E”誤為標(biāo)志,在發(fā)送數(shù)據(jù)時(shí),要進(jìn)行“插零”操作,即連續(xù)5個(gè)“1”后要插入一個(gè)“0”;在接收數(shù)據(jù)時(shí),要進(jìn)行“刪零”操作,即要將接收到的5個(gè)“1”后面的“0”刪除掉。HDLC采用生成多項(xiàng)式為x16+x12+x5+1的CRC算法進(jìn)行幀校驗(yàn),對(duì)除了插入的“0”以外的所有數(shù)據(jù)進(jìn)行校驗(yàn)。

HDLC協(xié)議解封裝的過(guò)程:在接收的數(shù)據(jù)流中檢測(cè)幀起始和結(jié)束標(biāo)志;當(dāng)檢測(cè)到數(shù)據(jù)流中有連續(xù)5個(gè)“1”時(shí),對(duì)數(shù)據(jù)進(jìn)行“刪零”操作,即將5個(gè)“1”后面緊隨的“0”刪除掉;把接收的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),并存入接收FIFO中;對(duì)經(jīng)“刪零”后的數(shù)據(jù)進(jìn)行CRC校驗(yàn),當(dāng)接收到完整的一幀,檢查CRC校驗(yàn)值是否正確,若正確,則向MAC發(fā)送模塊產(chǎn)生發(fā)送請(qǐng)求;若CRC校驗(yàn)失敗,則將該幀數(shù)據(jù)丟棄。HDLC的基本幀結(jié)構(gòu)如表2所示。

表2 HDLC幀結(jié)構(gòu)

5.3 遠(yuǎn)傳發(fā)送模塊

遠(yuǎn)傳發(fā)送模塊完成的功能是將從MAC接收模塊接收到的數(shù)據(jù)幀存放在遠(yuǎn)傳發(fā)送FIFO中,將存放在發(fā)送FIFO中的數(shù)據(jù)讀取出來(lái),并進(jìn)行HDLC協(xié)議封裝,將封裝后的數(shù)據(jù)串行發(fā)送到遠(yuǎn)傳線(xiàn)路上。遠(yuǎn)傳發(fā)送模塊的程序框架如圖8所示。

圖8 遠(yuǎn)傳發(fā)送模塊

HDLC協(xié)議封裝的過(guò)程:首先,發(fā)送幀起始標(biāo)志“7E”;其次,發(fā)送數(shù)據(jù)段,并對(duì)發(fā)送數(shù)據(jù)逐位做CRC計(jì)算,數(shù)據(jù)發(fā)送完畢后,發(fā)送計(jì)算出的16位CRC校驗(yàn)值。在協(xié)議封裝時(shí),需要對(duì)包括CRC計(jì)算值在內(nèi)的數(shù)據(jù)進(jìn)行“插零”操作,即連續(xù)5個(gè)“1”后面需要插入一個(gè)“0”;數(shù)據(jù)和CRC值發(fā)送完畢后,發(fā)送幀結(jié)束標(biāo)志“7E”。

6 以太網(wǎng)模塊與遠(yuǎn)傳模塊之間流量控制

在本應(yīng)用中,以太網(wǎng)模塊的傳輸速率為100 Mbps,而遠(yuǎn)傳模塊的傳輸速率最高為8 Mbps,因此,要想數(shù)據(jù)能夠正確、可靠傳輸,需要在兩者之間增加流量控制。流量控制可以通過(guò)緩存FIFO或者M(jìn)AC的PAUSE控制幀來(lái)實(shí)現(xiàn)。本應(yīng)用中,流量控制通過(guò)發(fā)送和接收MAC控制幀——PAUSE幀來(lái)實(shí)現(xiàn)。

MAC接收模塊檢測(cè)到有效的數(shù)據(jù)幀時(shí),將接收到的數(shù)據(jù)發(fā)送到HDLC發(fā)送模塊,并存放在HDLC Transmit FIFO中,程序根據(jù)HDLC Transmit FIFO的剩余緩沖區(qū)的大小來(lái)產(chǎn)生PAUSE幀發(fā)送的開(kāi)(Xon_gen)、關(guān)(Xoff_gen)信號(hào)。

在本應(yīng)用中,最大幀長(zhǎng)度為1 518字節(jié)。PHY發(fā)送一個(gè)最大幀需要的時(shí)間為(8+1 518)×8/(100×106/S)≈122 μs,而遠(yuǎn)傳發(fā)送模塊以8 M的速率發(fā)送一個(gè)最大幀需要的時(shí)間為(2+1 518)×8/(8×106/S)= 1 520 μs。

因此,當(dāng)HDLC Transmit FIFO的剩余緩沖區(qū)小于1 400 (1 520-122=1 398≈1 400)字節(jié)時(shí),產(chǎn)生PAUSE幀發(fā)送開(kāi)始信號(hào)Xon_gen,MAC發(fā)送模塊檢測(cè)到Xon_gen信號(hào)后,發(fā)送PAUSE幀,PAUSE幀的pause quanta的值為300 (1 520/5.2≈300),即讓PHY等待1 520 μs再開(kāi)始發(fā)送數(shù)據(jù);當(dāng)發(fā)送了PAUSE幀后,MAC流量控制模塊對(duì)pause quanta的值(512/8)×300=19 200)進(jìn)行減計(jì)數(shù),每一個(gè)MAC_tx_clk的上升沿,pause quanta值累計(jì)減“1”,當(dāng)HDLC Transmit FIFO的剩余緩沖區(qū)大于1 400字節(jié)時(shí),此時(shí),若puase quanta計(jì)數(shù)值大于0,則產(chǎn)生PUASE幀發(fā)送停止信號(hào)Xoff_gen,MAC發(fā)送模塊檢測(cè)到Xoff_gen信號(hào)后,發(fā)送一個(gè)PAUSE幀,PUASE幀的pause quanta的值為0,即令PHY停止等待,重新開(kāi)始發(fā)送數(shù)據(jù)。

7 結(jié)語(yǔ)

根據(jù)上述設(shè)計(jì)方法,已成功地在XC3S1600E芯片上實(shí)現(xiàn)了以太網(wǎng)遠(yuǎn)傳模塊的功能。XC3S1600E芯片是XILINX公司的SPAN3E系列,最大邏輯門(mén)數(shù)為160萬(wàn)門(mén),可提供的分布式RAM為231 Kbits,Block RAM為648 Kbits。設(shè)計(jì)出的以太網(wǎng)遠(yuǎn)傳模塊通過(guò)如圖2所示的連接方式進(jìn)行數(shù)據(jù)傳輸時(shí),兩端的PC能互相ping包,能正確傳送文件。在傳送文件時(shí),遠(yuǎn)傳線(xiàn)路上的速率最高可達(dá)7.2 Mbps,平均傳輸速率大于7 Mbps,能滿(mǎn)足應(yīng)用的需求。

猜你喜歡
前導(dǎo)狀態(tài)機(jī)計(jì)數(shù)器
煤氣與熱力(2022年2期)2022-03-09
基于“三思而行”的數(shù)學(xué)章前導(dǎo)學(xué)課設(shè)計(jì)——以《數(shù)的開(kāi)方》(導(dǎo)學(xué)課)為例
基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
一種S模式ADS-B前導(dǎo)脈沖檢測(cè)方法
計(jì)數(shù)器競(jìng)爭(zhēng)冒險(xiǎn)及其處理的仿真分析
任意N進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法
基于單片機(jī)的仰臥起坐計(jì)數(shù)器
FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
基于反熔絲FPGA的有限狀態(tài)機(jī)加固設(shè)計(jì)
LTE隨機(jī)接入過(guò)程研究*
高碑店市| 辽阳市| 宜君县| 石柱| 凌云县| 苍山县| 中阳县| 赫章县| 曲阳县| 连城县| 吴桥县| 怀远县| 汕尾市| 富宁县| 呼伦贝尔市| 桑日县| 饶阳县| 朝阳县| 德清县| 遂溪县| 渑池县| 浦北县| 平舆县| 武义县| 甘孜| 平江县| 上犹县| 武乡县| 忻城县| 灵丘县| 武陟县| 西盟| 于都县| 安龙县| 山西省| 南丰县| 祁阳县| 琼结县| 黎平县| 罗江县| 新密市|