時間:2018-06-21 17:49:24來æºï¼šç¶²(wÇŽng)絡(luò)轉(zhuÇŽn)載
摘è¦ï¼šåœ¨æ•¸(shù)å—系統(tÇ’ng)互è¯(lián)è¨(shè)計ä¸ï¼Œé«˜é€Ÿä¸²è¡ŒI/O技術(shù)å–代傳統(tÇ’ng)的并行I/O技術(shù)æˆç‚ºç•¶(dÄng)å‰ç™¼(fÄ)展的趨勢,與傳統(tÇ’ng)å¹¶è¡ŒæŽ¥å£æŠ€è¡“(shù)相比,串行方案æä¾›äº†æ›´å¤§çš„å¸¶å¯¬ã€æ›´é çš„è·é›¢ã€æ›´ä½Žçš„æˆæœ¬å’Œæ›´é«˜çš„èƒ½åŠ›ã€‚ä»¥å¤ªç¶²(wÇŽng)作為一種高速的串行傳輸方å¼ï¼Œæ˜¯ç•¶(dÄng)剿œ€åŸºæœ¬ã€æœ€æµè¡Œçš„局域網(wÇŽng)組網(wÇŽng)技術(shù)ï¼Œç‚ºäº†é©æ‡‰(yÄ«ng)å„種新開展的æ¥(yè)å‹™(wù)如æµè¦–é »ç‰ï¼Œå…¶é€ŸçŽ‡ä¹Ÿåœ¨ä¸æ–·æé«˜ã€‚GMII是標(biÄo)準(zhÇ”n)çš„å‰æ¯”特以太網(wÇŽng)接å£ï¼Œä½äºŽMAC層和物ç†å±¤ä¹‹é–“ã€‚å› æ¤ï¼Œå¯ä»¥åŸºäºŽFPGA平臺,實ç¾(xià n)GMII接å£å”(xié)è°ï¼Œå®Œæˆæ•¸(shù)據(jù)在MAC和物ç†å±¤é–“的通信。
1 GMII接å£å”(xié)è°ç°¡ä»‹
MII(MediaIndependentInterface(介質(zhì)ç„¡é—œ(guÄn)接å£)或稱為媒體ç¨ç«‹æŽ¥å£ï¼Œæ˜¯IEEE-802.3定義的以太網(wÇŽng)行æ¥(yè)標(biÄo)準(zhÇ”n)。以太網(wÇŽng)ä¸åŒ…括有一個數(shù)據(jù)接å£ä»¥åŠä¸€å€‹MACå’ŒPHYä¹‹é–“çš„ç®¡ç†æŽ¥å£[1]。數(shù)據(jù)接å£åŒ…括兩æ¢ç¨ç«‹çš„ä¿¡é“,這兩æ¢ä¿¡é“分別用于發(fÄ)é€å’ŒæŽ¥æ”¶æ•¸(shù)據(jù),它們都ç¨è‡ªæ“有數(shù)據(jù)ä¿¡è™Ÿã€æ™‚é˜ä¿¡è™Ÿä»¥åŠæŽ§åˆ¶ä¿¡è™Ÿã€‚GMII是åƒå…†ä»¥å¤ªç¶²(wÇŽng)çš„MII的接å£ï¼Œè©²æ•¸(shù)據(jù)接å£ç¸½å…±éœ€è¦16個信號,接å£ä¿¡è™Ÿå¦‚圖1所示。
GMII采用8使ޥ壿•¸(shù)據(jù),工作時é˜125MHzï¼Œå› æ¤å‚³è¼¸é€Ÿçއå¯é”1000Mbpsã€‚åŒæ™‚兼容MII所è¦(guÄ«)定的10/100Mbps工作方å¼ã€‚MII接å£ä¸»è¦åˆ†ç‚ºå››å€‹éƒ¨åˆ†ï¼Œåˆ†åˆ¥æ˜¯MAC層到物ç†å±¤çš„發(fÄ)逿•¸(shù)據(jù)接å£ã€ç‰©ç†å±¤åˆ°MAC層的接收數(shù)據(jù)接å£ã€ç‰©ç†å±¤åˆ°MAC層的狀態(tà i)指示接å£ã€MAC層和物ç†å±¤çš„æŽ§åˆ¶å’Œç‹€æ…‹(tà i)ä¿¡æ¯æŽ¥å£(MDIO)。具體的信號說明如表1所示。
2 è¨(shè)計方案
Xilinxæä¾›çš„åƒå…†ä»¥å¤ªç¶²(wÇŽng)開發(fÄ)套件為Virtex-5ML505/ML506開發(fÄ)æ¿ï¼Œè©²é–‹ç™¼(fÄ)æ¿æ”¯æŒ10/100Mã€1/10G以太網(wÇŽng),是å¸(xué)ç¿’(xÃ)å’Œç ”ç™¼(fÄ)高速連接è¨(shè)å‚™çš„ç†æƒ³å¹³è‡ºã€‚Xilinxæä¾›äº†å¯åƒæ•¸(shù)化的10/1Gbps以太網(wÇŽng)物ç†å±¤æŽ§åˆ¶å™¨åŠŸèƒ½çš„LogiCORE解決方案[2]ã€‚è©²æ ¸è¨(shè)è¨ˆç”¨ä¾†åŒæœ€æ–°çš„Virtex-5ã€Virtex-4å’ŒVirtex-IIPro平臺FPGA一起工作,并å¯ä»¥ç„¡ç¸«é›†æˆåˆ°Xilinxè¨(shè)計æµç¨‹ä¸ã€‚
以太網(wÇŽng)系統(tÇ’ng)çš„å…©å€‹ä¸»è¦æ¨¡å¡Šæ˜¯åª’體接入控制(MAC)和物ç†å±¤PHY,MAC由數(shù)據(jù)拆è£å’Œåª’體訪å•管ç†å…©å€‹æ¨¡å¡Šçµ„æˆï¼Œå®Œæˆæ•¸(shù)據(jù)幀的å°è£ã€è§£å°ã€ç™¼(fÄ)é€å’ŒæŽ¥æ”¶åŠŸèƒ½ã€‚PHYå°ç™¼(fÄ)é€çš„æ•¸(shù)據(jù)按照物ç†å±¤çš„編碼è¦(guÄ«)則將數(shù)據(jù)編碼,å†é€²è¡Œæ•¸(shù)模轉(zhuÇŽn)æ›è®Šæˆæ¨¡æ“¬ä¿¡è™ŸæŠŠæ•¸(shù)據(jù)é€å‡ºåŽ»ã€‚æŽ¥æ”¶æ•¸(shù)據(jù)則與之相å。
2.1電路架構(gòu)
該以太網(wÇŽng)控制器主è¦é€²è¡ŒMACå層ã€MAC層與上層å”(xié)è°çš„æŽ¥å£ä»¥åŠMAC層與PHY接å£çš„GMIIçš„FPGAè¨(shè)計,總體çµ(jié)æ§‹(gòu)框圖如圖2所示。整個系統(tÇ’ng)分為待發(fÄ)逿•¸(shù)據(jù)的產(chÇŽn)生模塊ã€ç™¼(fÄ)逿¨¡å¡Šã€CRCç·¨ç¢¼ç”Ÿæˆæ¨¡å¡Šã€ç‰©ç†å±¤ç·¨è§£ç¢¼æ¨¡å¡Šã€æŽ¥æ”¶åŠæ ¡é©—?zÄi)î—ŽKã€GMIIç®¡ç†æ¨¡å¡Šç‰éƒ¨åˆ†ã€‚發(fÄ)逿¨¡å¡Šå’ŒæŽ¥æ”¶æ¨¡å¡Šä¸»è¦æä¾›MAC幀的發(fÄ)é€å’ŒæŽ¥æ”¶åŠŸèƒ½ï¼Œå…¶ä¸»è¦æ“作有MAC幀的å°è£èˆ‡è§£åŒ…以åŠéŒ¯èª¤æª¢æ¸¬ï¼Œå®ƒç›´æŽ¥æä¾›äº†åˆ°å¤–部物ç†å±¤èŠ¯ç‰‡çš„å¹¶è¡Œæ•¸(shù)據(jù)接å£[3]。在實ç¾(xià n)ä¸ç‰©ç†å±¤è™•ç†ç›´æŽ¥åˆ©ç”¨å•†ç”¨çš„åƒå…†PHY芯片,在仿真éŽç¨‹ä¸åˆ©ç”¨ç‰©ç†å±¤IP_CORE來實ç¾(xià n),所以本文é‡è¦é—œ(guÄn)注在MAC控制器的開發(fÄ)上。
2.2MACå”(xié)è°ä»‹ç´¹
MAC控制模塊是由數(shù)據(jù)拆è£å’Œåª’體訪å•管ç†å…©å€‹æ¨¡å¡Šçµ„æˆï¼Œå®Œæˆæ•¸(shù)據(jù)幀的å°è£ã€è§£å°ã€ç™¼(fÄ)é€å’ŒæŽ¥æ”¶åŠŸèƒ½ã€‚å¹€æ ¼å¼å¦‚表2所示。
å‰å°Ž(dÇŽo)碼的作用是讓物ç†å±¤ä¿¡è™Ÿèˆ‡æŽ¥æ”¶å¹€æ™‚åºé”åˆ°æ°¸ä¹…åŒæ¥ã€‚長度類型表明åŽé¢ç™¼(fÄ)逿•¸(shù)據(jù)的長度,當(dÄng)實際數(shù)據(jù)的長度ä¸å¤ 時,需è¦è£œ0填充。類型0X0800代表IPå”(xié)è°æ•¸(shù)據(jù),16進制0x809b代表Appletalkå”(xié)è°æ•¸(shù)據(jù)ç‰ï¼Œæœ¬æ–‡ç™¼(fÄ)é€çš„æ˜¯IPå”(xié)è°æ•¸(shù)據(jù)。幀çµ(jié)尾的數(shù)據(jù)æ˜¯æ ¹æ“š(jù)CRC電路計算生æˆçš„æ ¡é©—碼。
2.3以太網(wÇŽng)çš„FCS處ç†
æ ¡é©—ä½çš„FCSå³ç‚ºå¾ªç’°(huán)冗余碼CRC,它的編碼詳細(xì)éŽç¨‹æ˜¯ï¼Œæ ¹æ“š(jù)數(shù)據(jù)æµMçš„é•·åº¦å’Œç‰¹æ€§ï¼Œé¸æ“‡é•·åº¦ç‚ºn次的特å¾å¤šé …å¼ï¼Œåœ¨æ•¸(shù)據(jù)æµMä¹‹åŽæ·»åŠ n個0,作為被除數(shù)除以由特å¾å¤šé …弿§‹(gòu)æˆçš„(n+1)bit的二進制數(shù)列P,得到商Q以åŠé™¤æ•¸(shù)R,除數(shù)R為nbit,將Rä½œç‚ºå†—ä½™ç¢¼æ·»åŠ åœ¨M之åŽç™¼(fÄ)é€å‡ºåŽ»ã€‚Crc8編碼的串行算法實ç¾(xià n)電路如圖3所示[4]:
編碼å‰å…ˆå°‡æ‰€æœ‰å¯„å˜å™¨åˆå§‹åŒ–,之åŽå°‡å¾…發(fÄ)é€çš„ä¿¡æ¯åºåˆ—便¬¡åœ¨input端輸入編碼器,信æ¯åºåˆ—全部輸入之åŽï¼Œå¯„å˜å™¨ä¸çš„å€¼å°±æ˜¯æ‰€è¦æ±‚的余數(shù),å³CRCæ ¡é©—ç¢¼ã€‚æœ¬æ–‡ä½¿ç”¨çš„æ˜¯crc32å¤šé …å¼ï¼Œå¤šé …å¼çš„表é”å¼å¦‚下所示,需è¦ç·¨ç¢¼çš„æ•¸(shù)據(jù)æ®µå¾žç›®çš„å—æ®µé–‹å§‹åˆ°æ•¸(shù)據(jù)å—æ®µçµ(jié)æŸï¼Œåˆ©ç”¨åŒæ¨£çš„類似的電路,å³å¯åˆ©ç”¨verilog實ç¾(xià n)冗余碼編碼。
3 電路實ç¾(xià n)與仿真
3.1MAC發(fÄ)é€ç«¯-數(shù)據(jù)æˆå¹€
以太網(wÇŽng)的發(fÄ)逿–¹å¼æ˜¯æŒ‰ç…§ä¸€å€‹å¹€ä¸€å€‹å¹€ä¾†ç™¼(fÄ)é€çš„,網(wÇŽng)絡(luò)è¨(shè)備和組件在接收一個幀以åŽï¼Œéœ€è¦ä¸€æ®µçŸæš«çš„æ™‚間來æ¢å¾©(fù)å¹¶ç‚ºæŽ¥æ”¶ä¸‹ä¸€å¹€åšæº–(zhÇ”n)備。幀間隙是幀與幀之間需è¦çš„æ™‚é–“ä½™é‡ï¼Œä»¥å¤ªç¶²(wÇŽng)的最å°å¹€é–“隙為96bit(12byte)。所以在開始發(fÄ)逿™‚,è¦åˆ¤æ–·æ˜¯å¦æ»¿è¶³å¹€é–“éš™ã€‚æ ¹æ“š(jù)GMII接å£çš„傳輸時åºå¦‚圖4,è¨(shè)計圖5所示的狀態(tà i)機,通éŽå°æ¯å€‹ç‹€æ…‹(tà i)ä¸ï¼Œå°å—節(jié)進行計數(shù)實ç¾(xià n)狀態(tà i)的跳轉(zhuÇŽn)。
在數(shù)據(jù)傳輸éŽç¨‹ä¸ï¼ŒMAC發(fÄ)逿¨¡å¡Šå°‡ä¸Šå±¤å”(xié)è°éœ€è¦ç™¼(fÄ)é€çš„æ•¸(shù)據(jù)ç¶“(jÄ«ng)éŽä»¥å¤ªç¶²(wÇŽng)å”(xié)è°é€²è¡Œå°è£å°‡æ•¸(shù)據(jù)發(fÄ)é€çµ¦PHY層,發(fÄ)逿¨¡å¡Šé‚„å¯å°‡å¾žä¸»æ©ŸæŽ¥æ”¶åˆ°çš„å¹€é 以åŠå¹€å°¾æ¨™(biÄo)志信號,與主機接å£å¾žå¤–部å˜å„²å–®å…ƒç²å–的發(fÄ)逿•¸(shù)據(jù)按照標(biÄo)準(zhÇ”n)å”(xié)è°é€²è¡Œå°è£ï¼Œå°‡æ•¸(shù)據(jù)以8使•¸(shù)據(jù)å¯¬åº¦çš„æ ¼å¼åœ¨ä¿¡é“空閑時發(fÄ)é€çµ¦PHY層,å†é€šéŽPHY芯片將數(shù)據(jù)進行數(shù)模轉(zhuÇŽn)æ›ç™¼(fÄ)é€åˆ°ç¶²(wÇŽng)絡(luò)ä¸åŽ»ã€‚
在物ç†å±¤éƒ¨åˆ†ï¼Œåˆ©ç”¨ISE平臺生æˆEtherent1000BASE-XPCS/PMAIPCORE來接收MAC層的數(shù)據(jù)ï¼Œè©²æ ¸æ”¯æŒå…§(nèi)部或外部GMII,å¯å¯¦ç¾(xià n)與MAC或定制é‚è¼¯çš„éˆæŽ¥ã€‚IPæ ¸å…§(nèi)的主è¦çµ„æˆéƒ¨åˆ†ç‚ºPMAå’ŒPCS,其ä¸PMA為物ç†å±¤çš„媒介層,PCS為物ç†å±¤ç·¨ç¢¼æ¨¡å¡Šï¼Œå¯ä»¥é€²è¡Œ8B/10B編解碼,64B/66B編解碼,COMMAå—符檢測,將接收的數(shù)據(jù)å°é½Šåˆ°åˆé©çš„å—邊界,å½éš¨æ©Ÿåºåˆ—的生æˆå’Œæª¢æ¸¬ï¼Œæ™‚é˜ä¿®æ£å’Œé€šé“ç¶å®šç‰[5]。
3.2MAC接收端-數(shù)據(jù)æå–
MAC端接收到傳回的數(shù)據(jù)åŽï¼Œéœ€è¦å°æŽ¥æ”¶åˆ°çš„æ•¸(shù)據(jù)進行檢測,首先æå–出pay_load數(shù)據(jù)和冗余檢驗碼crc_cmp。當(dÄng)發(fÄ)逿•¸(shù)據(jù)包的長度ä¸ç¢ºå®šæ™‚,ä¸èƒ½é€šéŽè¨ˆæ•¸(shù)器來æå–å°æ‡‰(yÄ«ng)的數(shù)據(jù)å’Œæ ¡é©—ç¢¼ï¼Œå¯è¡Œçš„æ“ä½œå¦‚åœ–6的時åºåœ–所示。
在接收端如果檢測到å‰å°Ž(dÇŽo)碼的第一個å—節(jié)55時,計數(shù)器開始計數(shù),當(dÄng)計數(shù)到14時,下一個時é˜ï¼Œä¾¿æ˜¯ç™¼(fÄ)é€ä¾†çš„實際數(shù)據(jù),產(chÇŽn)生Rx_dv_i信號,直到接收到四個å—節(jié)çš„æ ¡é©—ç¢¼æ™‚æ‹‰ä½Žï¼Œå¹¶å°‡Rx_dv_iå»¶é²å››æ‹å¾—到Rx_dv_a4ä¿¡è™Ÿï¼ŒåŒæ™‚å°‡Rx_data也延é²å››æ‹ï¼Œå‰‡åœ¨Rx_dv為高電平且Rx_dv_a4為高電平,å–Rx_data_d4上的數(shù)據(jù),å³ç‚ºpay_load數(shù)據(jù),在Rx_dv為低電平,Rx_dv_a3為高電平時,Rx_data_a4ç‚ºæ ¡é©—ç¢¼ã€‚é‡‡ç”¨é€™ç¨®æ–¹æ¡ˆï¼Œåœ¨ä¸ç¢ºç™¼(fÄ)逿•¸(shù)據(jù)的個數(shù)情æ³ä¸‹ï¼Œå¯ä»¥åˆ†åˆ¥æå–出pay_load數(shù)據(jù)å’Œfcsæ ¡é©—ç¢¼æ•¸(shù)據(jù)。
3.3電路功能仿真
æå–到相應(yÄ«ng)的數(shù)據(jù)åŽï¼Œå…ˆå°‡ç™¼(fÄ)é€ç«¯çš„æ•¸(shù)據(jù)和接收到的數(shù)據(jù)進行比較,如果ä¸åŒï¼Œç”¢(chÇŽn)生data_errorä¿¡è™Ÿçš„ä½Žé›»å¹³ï¼ŒæŒ‡ç¤ºå‡ºéŒ¯ï¼ŒåŒæ™‚將接收到的數(shù)據(jù)é€å…¥CRC編碼電路,來產(chÇŽn)ç”Ÿæ ¡é©—ç¢¼rx_crc,將發(fÄ)é€ç«¯çš„æ ¡é©—碼crc_cmp與rx_crc進行比較,如果ä¸åŒï¼Œç”¢(chÇŽn)生crc_error的低電平信號。最終電路的錯誤指示信號errorç”±data_errorå’Œcrc_error相與產(chÇŽn)生。
è¨(shè)計完æˆä»¥åŽï¼Œåˆ©ç”¨modelsim軟件å°é›»è·¯é€²è¡Œäº†ä»¿çœŸï¼Œä»¿çœŸæ³¢å½¢å¦‚圖7所示:å¯ä»¥çœ‹åˆ°ä¸‰å€‹éŒ¯èª¤æ¨™(biÄo)志信號error,在開始工作åŽå‡ç‚ºé«˜é›»å¹³ï¼Œè¡¨æ˜Žè©²é›»è·¯æˆåŠŸå®Œæˆäº†åœ¨MACå’ŒPHY之間的數(shù)據(jù)傳輸。
4 çµ(jié)è«–
高速串行傳輸技術(shù)是FPGA未來的三大應(yÄ«ng)ç”¨é ˜(lÇng)域之一,本文從以太網(wÇŽng)傳輸?shù)目傮wçµ(jié)æ§‹(gòu)和基本å”(xié)è°å‡ºç™¼(fÄ),è¨(shè)計了åƒå…†ä»¥å¤ªç¶²(wÇŽng)傳輸系統(tÇ’ng)的方案,以MAC+PHYç‚ºæ ¸å¿ƒï¼Œå®Œæˆäº†ç¶²(wÇŽng)絡(luò)æž¶æ§‹(gòu)ä¸ç‰©ç†å±¤å’Œæ•¸(shù)據(jù)éˆè·¯å±¤çš„基本功能。通éŽä»¿çœŸé©—è‰äº†æ•¸(shù)據(jù)在數(shù)據(jù)éˆè·¯å±¤å’Œç‰©ç†å±¤ä¹‹é–“準(zhÇ”n)確無誤的傳輸,穩(wÄ›n)å®šæ€§å¥½ï¼Œéˆæ´»æ€§é«˜ï¼Œæœ¬ç³»çµ±(tÇ’ng)é‚„å¯ä»¥ç”¨ä¾†å‚³è¼¸åœ–åƒå’Œå¤§æ•¸(shù)據(jù)ä¿¡æ¯ã€‚
標(biÄo)簽:
ä¸åœ‹å‚³å‹•ç¶²(wÇŽng)版權(quán)與å…責(zé)è²æ˜Žï¼šå‡¡æœ¬ç¶²(wÇŽng)注明[來æºï¼šä¸åœ‹å‚³å‹•ç¶²(wÇŽng)]的所有文å—ã€åœ–片ã€éŸ³è¦–å’Œè¦–é »æ–‡ä»¶ï¼Œç‰ˆæ¬Š(quán)å‡ç‚ºä¸åœ‹å‚³å‹•ç¶²(wÇŽng)(www.siyutn.com)ç¨å®¶æ‰€æœ‰ã€‚如需轉(zhuÇŽn)載請與0755-82949061è¯(lián)系。任何媒體ã€ç¶²(wÇŽng)站或個人轉(zhuÇŽn)è¼‰ä½¿ç”¨æ™‚é ˆæ³¨æ˜Žä¾†æºâ€œä¸åœ‹å‚³å‹•ç¶²(wÇŽng)â€ï¼Œé•å者本網(wÇŽng)將追究其法律責(zé)任。
本網(wÇŽng)轉(zhuÇŽn)載并注明其他來æºçš„稿件,å‡ä¾†è‡ªäº’è¯(lián)ç¶²(wÇŽng)或æ¥(yè)å…§(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuÇŽn)載請ä¿ç•™ç¨¿ä»¶ä¾†æºåŠä½œè€…ï¼Œç¦æ¢æ“…自篡改,é•è€…è‡ªè² (fù)版權(quán)法律責(zé)任。
相關(guÄn)資訊