999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于XC3S1600E的以太網遠傳模塊實現

2020-12-04 07:48:52王少龍
無線互聯科技 2020年16期

王少龍

(中國長城科技集團股份有限公司,湖南 長沙 410006)

0 引言

本文給出了完全用現場可編程邏輯門陣列(Field Programmable Gate Array,FPGA)的控制邏輯來實現以太網控制器及遠傳模塊的封裝與解析,其中,以太網控制器符合IEEE802.3標準,遠傳模塊遵循高級數據鏈路控制(High-level Data Link Control,HDLC)協議,并通過軟件實現100 M以太網和8 M遠傳接口之間的流量控制[1]。

1 總體設計方案

以太網遠傳模塊的FPGA設計工作包括:(1)以太網MAC子層的FPGA設計;(2)MAC與物理層(PHY)的MII接口設計;(3)遠傳接口HDLC協議的FPGA封裝與解析;(4)以太網與遠傳模塊之間流量控制的設計。總體結構設計框架如圖1所示。

圖1 以太網遠傳模塊的結構設計框架

該以太網遠傳模塊的整個系統包括:以太網MAC發送處理模塊、以太網MAC接收處理模塊、以太網MAC流量控制模塊、MII處理模塊、遠傳發送模塊、遠傳接收模塊、遠傳管理模塊[2]。

(1)MAC發送處理模塊和MAC接收處理模塊,主要完成MAC幀的發送和接收處理,主要實現MAC幀的封裝、解析、錯誤檢測,模塊與外部物理層芯片(PHY)之間通過并行數據接口(MII)相連。(2)MAC流量控制模塊,實現了MAC全雙工模式中的流量控制功能,完成MAC與遠傳模塊之間的流量控制。(3)MII管理模塊提供了介質獨立接口(MII),符合標準的IEEE802.3標準,主要對PHY芯片BCM5461S進行初始化。(4)遠傳發送模塊,主要執行HDLC幀的發送,包括將從MAC接收到的數據幀封裝成HDLC格式的幀,并向MAC流量控制報告發送緩沖區的狀態;遠傳接收模塊主要執行HDLC幀的接收,將從遠傳接口接收到的HDLC格式的幀進行HDLC協議解析以及錯誤檢測,并將解析后的數據幀發送到MAC發送模塊。(5)遠傳管理模塊,用來管理遠傳的速率、主從模式設置等。以太網遠傳模塊的應用連接如圖2所示。

圖2 以太網遠傳模塊的應用連接

2 MAC發送模塊

MAC發送模塊將從遠傳接收模塊接收到的數據,進行MAC層協議封裝,并將封裝好的數據包通過MII接口發送給PHY[3]。MAC幀結構如表1所示。

由于本項目中和以太網站點之間收發數據是全雙工模式,因此,在MAC發送模塊中無須載波幀聽和沖突檢測,MAC發送模塊從遠傳接收模塊接收到數據幀開始標志后,從遠傳接收模塊中的接收FIFO中讀取要發送的數據,當從遠傳接收模塊接收到數據幀結束標志后,表示當前讀取的數據包讀取完畢,MAC發送模塊對數據進行MAC層協議封裝,并將數據轉換為4位寬度的并行數據,通過MII接口發送給PHY,最后,由PHY將數據發送到網絡上[4]。

表1 MAC幀結構表

MAC發送模塊由CRC生成模塊(crc_gen)、發送計數模塊(tx_cnt)和發送狀態機(tx_statem)模塊等組成,其內部結構如圖3所示。

圖3 MAC發送模塊結構框架

2.1 CRC生成模塊(crc_gen)

CRC生成模塊對發送數據進行CRC計算,將產生的32位CRC校驗值填寫到數據幀的幀校驗序列字段(FCS)內。由于MAC模塊與PHY接口之間為4位并行接口。為了提高效率,設計時,使用4位并行CRC計算,算法中通過使用次態函數,并通過循環迭代進行移位操作。使用4位并行CRC計算方法,發送模塊可以一邊發送數據到PHY,一邊計算CRC。當數據發送完成后,緊接著發送計算完成的CRC校驗值。

2.2 發送計數模塊(tx_cnt)

發送計數模塊由前導碼計數器、MAC幀長度計數器、幀填充計數器、幀間隙計數器組成。其中,前導碼計數器用于控制MAC幀前導碼的發送,MAC幀的前導碼由7個字節的0×55和一個字節的0×d5組成;MAC幀的長度計數器用于計數MAC幀的發送長度,MAC幀的最小長度為64字節,其中,校驗位共4個字節,當MAC幀的長度小于64字節時,就要進行幀填充;幀填充計數器用于計數填充位的位數;幀間間隙周期大于等于96個比特時間,幀間隙計數器用于計數幀間間隙周期。

2.3 發送狀態機模塊(tx_statem)

發送狀態機模塊完成MAC發送過程的控制,是MAC發送模塊的核心。發送狀態機由空閑狀態(Idle_State)、前導碼發送狀態(Preamble_State)、數據發送狀態(Data_State)、填充碼發送狀態(PAD_State)、校驗位發送狀態(FCS_State)、幀間間隙狀態(IPG_State)、延遲狀態(Defer_State)等8個狀態組成。MAC發送狀態的狀態轉意如圖4所示。

圖4 MAC發送狀態轉移

發送模塊的初始狀態為延遲狀態;在延遲狀態下,若信道空閑,則狀態機進入幀間間隙狀態,在幀間間隙狀態等待一個幀間間隙后,如果在幀間間隙的前2/3個周期檢測到信道忙信號,狀態機將重新回到延遲狀態,否則狀態機進入總線空閑狀態。

狀態機進入總線空閑狀態之后,MAC發送模塊一直檢測遠傳接收模塊是否有發送請求,判斷遠傳接收模塊是否有數據要發送到以太網接口。如果檢測到遠傳接收模塊的發送請求,狀態機就進入前導碼狀態,開始發送前導碼,前導碼由7個字節的0×55組成;前導碼發送完畢后,發送一個字節的幀起始定界符,幀起始定界符為0×d5。發送完前導碼和幀起始定界符后,狀態機進入數據發送狀態,MAC發送模塊每次從遠傳接收模塊的FIFO中讀取一個字節,并先將該字節的低4位發送到MII接口、再將高4位發送到MII接口,當讀取發送數據幀的最后一個字節時,根據數據幀的長度,狀態機將進入到校驗狀態或者填充狀態。

如果數據幀的長度在發送范圍內(64≤L≤1 518),狀態機就進入校驗狀態。在校驗狀態,發送模塊發送CRC生成模塊計算出的CRC值。FCS字段的CRC值發送完后,該MAC幀發送完成,狀態機進入延遲狀態,重新進入初始狀態,等待新的發送請求。

如果數據幀的長度小于64個字節,狀態機就進入填充狀態,發送模塊發送填充碼,滿足最小幀長度后,狀態機進入校驗狀態。若數據幀的長度大于1 518字節,發送模塊將放棄該幀的發送,狀態機直接進入延遲狀態,重新進入初始狀態,等待新的發送請求。

3 MAC接收模塊

MAC接收模塊主要完成MAC幀的接收處理。將從外部PHY接收到的4位并行數據轉換為8位并行數據,對轉換后的數據進行MAC協議解析、前導碼檢測、地址識別、CRC校驗、長度判斷等操作后,將正確接收的數據移除前導碼和CRC值后,通過遠傳發送模塊接口寫入遠傳發送模塊的發送FIFO中,并通知遠傳發送模塊幀起始和幀結束信號。

MAC接收模塊由4個部分組成,包括:CRC校驗模塊、地址識別模塊、接收計數器和接收狀態機模塊等,MAC接收模塊的結構框架如圖5所示。

圖5 MAC接收模塊框架

CRC校驗模塊與CRC生成模塊算法相同,CRC校驗模塊對接收的數據進行CRC計算,并通過檢查輸入幀的CRC值來驗證幀的正確性。

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

接收計數器模塊主要對接收字節及幀間間隙進行計數,包括接收字節計數器(Byte_cnt)和幀間間隙計數器(IFG_cnt)組成。在接收幀過程中,接收字節計數器將對接收字節進行計數,通過該計數器識別幀中的各個字段,如前導碼、目的地址字段、數據、校驗等,也可以完成幀長的判斷。幀間間隙計數器對兩幀之間的間隔時間進行計數, IEEE802.3規定,兩幀之間的間隔至少96個比特間隔。因此,如果兩幀之間的間隔小于96個比特間隔,幀將被丟棄。

接收狀態機完成MAC接收過程的控制,是MAC接收模塊的核心。接收狀態機由空閑狀態(Idle_State)、前導碼狀態(Preamble_State)、幀起始定界符狀態(SFD_State)、數據接收狀態(Data_State)、丟棄狀態(Drop_State)等5個狀態組成,其狀態轉移如圖6所示。

圖6 MAC接收狀態轉移

狀態機的初始狀態處于空閑狀態,在該狀態下檢測接收數據有效信號。接收模塊檢測到接收數據有效信號為“1”,且接收數據為0×55后,狀態機跳轉到前導碼狀態,否則為空閑狀態。在前導碼狀態若數據有效信號為“1”,且連續接收7個0×55后,狀態機進入幀起始定界符狀態,否則,跳轉回空閑狀態。

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

4 MII管理模塊

MII管理模塊完成MAC與外部PHY之間的接口管理,主要完成對PHY芯片的配置或者讀取PHY芯片的狀態信息。MII接口主要包括:時鐘信號MDC、雙向數據信號MDIO。時鐘信號MDC利用系統時鐘分頻產生,在本項目中,MDC選用6 M。利用移位寄存器對PHY的控制數據進行寫入操作或者對PHY的狀態信息進行讀出操作,當對PHY的控制數據進行寫入操作時,移位寄存器將待寫入的控制數據進行并串轉換;而在讀狀態信息時,移位寄存器將讀取出數據進行串并轉換。

5 遠傳模塊程序設計說明

5.1 遠傳管理模塊

遠傳管理模塊主要設置遠傳模塊的速率以及遠出模塊的主從模式。遠傳模塊的速率有128 Kbps,256 Kbps,512 Kbps,1 Mbps,2 Mbps,4 Mbps,8 Mbps等8種速率,在本文的應用中,遠傳模塊的速率為8 Mbps。

5.2 遠傳接收模塊

遠傳接收模塊從遠傳接口上接收到的數據遵循HDLC協議格式,因此,遠傳接收模塊要對接收到的數據幀進行HDLC協議解封裝,將解封裝后的數據存放在遠傳接收FIFO中,并向MAC發送模塊提供幀開始、幀結束信號。遠傳接收模塊的程序框架如圖8所示。

圖8 遠傳接收模塊程序框架

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

HDLC協議解封裝的過程:在接收的數據流中檢測幀起始和結束標志;當檢測到數據流中有連續5個“1”時,對數據進行“刪零”操作,即將5個“1”后面緊隨的“0”刪除掉;把接收的串行數據轉換為并行數據,并存入接收FIFO中;對經“刪零”后的數據進行CRC校驗,當接收到完整的一幀,檢查CRC校驗值是否正確,若正確,則向MAC發送模塊產生發送請求;若CRC校驗失敗,則將該幀數據丟棄。HDLC的基本幀結構如表2所示。

表2 HDLC幀結構

5.3 遠傳發送模塊

遠傳發送模塊完成的功能是將從MAC接收模塊接收到的數據幀存放在遠傳發送FIFO中,將存放在發送FIFO中的數據讀取出來,并進行HDLC協議封裝,將封裝后的數據串行發送到遠傳線路上。遠傳發送模塊的程序框架如圖8所示。

圖8 遠傳發送模塊

HDLC協議封裝的過程:首先,發送幀起始標志“7E”;其次,發送數據段,并對發送數據逐位做CRC計算,數據發送完畢后,發送計算出的16位CRC校驗值。在協議封裝時,需要對包括CRC計算值在內的數據進行“插零”操作,即連續5個“1”后面需要插入一個“0”;數據和CRC值發送完畢后,發送幀結束標志“7E”。

6 以太網模塊與遠傳模塊之間流量控制

在本應用中,以太網模塊的傳輸速率為100 Mbps,而遠傳模塊的傳輸速率最高為8 Mbps,因此,要想數據能夠正確、可靠傳輸,需要在兩者之間增加流量控制。流量控制可以通過緩存FIFO或者MAC的PAUSE控制幀來實現。本應用中,流量控制通過發送和接收MAC控制幀——PAUSE幀來實現。

MAC接收模塊檢測到有效的數據幀時,將接收到的數據發送到HDLC發送模塊,并存放在HDLC Transmit FIFO中,程序根據HDLC Transmit FIFO的剩余緩沖區的大小來產生PAUSE幀發送的開(Xon_gen)、關(Xoff_gen)信號。

在本應用中,最大幀長度為1 518字節。PHY發送一個最大幀需要的時間為(8+1 518)×8/(100×106/S)≈122 μs,而遠傳發送模塊以8 M的速率發送一個最大幀需要的時間為(2+1 518)×8/(8×106/S)= 1 520 μs。

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

7 結語

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

主站蜘蛛池模板: 91人妻日韩人妻无码专区精品| 一级成人欧美一区在线观看| 国产永久免费视频m3u8| 青青热久麻豆精品视频在线观看| 欧美日韩导航| 日韩精品一区二区深田咏美| 国产精品 欧美激情 在线播放| 国产成人综合在线观看| 精品无码国产自产野外拍在线| 免费亚洲成人| 日韩中文无码av超清| 亚洲资源站av无码网址| 国产精品2| 美女一区二区在线观看| 日韩无码黄色| 国产欧美网站| 亚洲精品成人福利在线电影| 久久永久视频| 91成人免费观看| 新SSS无码手机在线观看| 亚洲黄色片免费看| 国产福利免费观看| 精品国产网站| 久久精品波多野结衣| 美女裸体18禁网站| 国产日产欧美精品| 国产精品亚洲一区二区三区z | 97精品久久久大香线焦| 色综合久久88色综合天天提莫| 91无码国产视频| 久久久无码人妻精品无码| 黄色一及毛片| 欧美日韩精品在线播放| 亚洲欧美自拍中文| 日韩a级毛片| 99精品在线视频观看| 国产欧美日韩综合在线第一| 91在线无码精品秘九色APP| 999国内精品视频免费| 免费看黄片一区二区三区| 国产99精品久久| 国产美女91呻吟求| 午夜综合网| 多人乱p欧美在线观看| 1024国产在线| 精品视频福利| 亚洲一区二区无码视频| 狠狠五月天中文字幕| 日韩在线成年视频人网站观看| 国产精品女同一区三区五区| 日韩最新中文字幕| 看你懂的巨臀中文字幕一区二区| 波多野结衣中文字幕一区| 高清精品美女在线播放| 无码日韩人妻精品久久蜜桃| 91av成人日本不卡三区| 亚洲国产理论片在线播放| 国产裸舞福利在线视频合集| 黄色网在线| 99热6这里只有精品| 永久免费无码日韩视频| 日本久久网站| 91福利在线观看视频| 伊人久久综在合线亚洲91| 曰韩人妻一区二区三区| 又污又黄又无遮挡网站| 无码高清专区| 巨熟乳波霸若妻中文观看免费 | 欧洲高清无码在线| 亚洲美女一区| 亚洲第一国产综合| 国产欧美日韩另类| 好久久免费视频高清| 在线视频亚洲色图| 午夜a级毛片| 国产www网站| 人妻无码中文字幕第一区| 国产成人久久综合一区| 国产免费黄| 国产无码制服丝袜| 园内精品自拍视频在线播放| 小说 亚洲 无码 精品|