在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA+ARM多路千兆以太網通信接口設計

現代電子技術 ? 來源:現代電子技術 ? 作者:李 楊,蘇和平,張 ? 2022-11-02 16:55 ? 次閱讀

作者:李 楊,蘇和平,張 丹,許喬

摘要:針對現有的千兆以太網通信接口設計中存在的價格昂貴、不能勝任多路以太網傳輸等問題,提出并實現一種基于 FPGA+ARM 的多路千兆以太網通信接口模塊。該設計分為 ARM 和 FPGA 兩個部分,通過 STM32 微處理器帶有的靈活靜態存儲控制器(FSMC)接口進行數據交換。ARM 部分通過發送函數、接收函數實現對以太網接口控制以及對數據的處理;FPGA 部分采用自頂向下的設計方法,通過時序轉換模塊、打包解包模塊以及 MAC 控制模塊實現以太網接口功能,并且定義了兩個自定義協議,分別用于 ARM 與 FPGA 通信以及 FPGA 內部打解包模塊與 MAC 控制模塊的通信。搭建了硬件測試驗證平臺對設計進行了全面驗證。硬件測試驗證結果表明該設計能夠正確實現以上功能。該方案成本低廉、擴展性強、支持多通道傳輸且支持網絡風暴抑制,適用于對成本要求較高且需多通道以太網傳輸的場景。

引 言

隨著人工智能、大數據和物聯網等新興技術的發展,原始數據井噴式地涌現出來,這也對接口提出了更高的要求[1?2],高速、可靠的傳輸接口往往是整個項目的技術關鍵。

近年來,國內對于以太網接口的研究取得了顯著進步。文獻[3?4]采用 Zynq?7000 芯片,利用 ARM+FPGA 架構在芯片內搭建了千兆以太網模塊,傳輸速度分別為640 Mb/s 和 870 Mb/s。文獻[5]采用國產 FPGA 芯片,自行研發了 SGMII core與 MAC core,實現了千兆以太網口的設計。文獻[6]采用 DSP+FPGA 架構形式,搭建了多路串口、以太網通信系統,實現 40 路 RS 422/RS 485 通信功能。文獻[7]采用 ARM 和 FPGA 芯片,利用 FSMC 實現兩個芯片通信,采集多路光柵數據。文獻[8]采用 FPGA設計實現了一種UDP 網絡 IP 核,兼容GMII、RGMII以及SGMII接口,且移植性較強。

但是上述設計存在價格昂貴、不能勝任多路以太網傳輸任務、不支持風暴抑制等不足。而網絡風暴抑制[9?11]的功能一般在軟件層面,這會消耗大量資源算力。為此本文采用 ARM+FPGA 架構,通過 FSMC 總線進行芯片間通信,充分發揮 ARM 在控制方面及 FPGA 善于擴展和并行處理的優點,實現一種多通道、擴展性強、成本低廉且支持風暴抑制的千兆以太網接口模塊。

1 整體結構

基于 FPGA+ARM 的多路千兆以太網通信系統的整體結構如圖 1 所示。外部數據通過千兆網口進入 FPGA進行解包,然后通過 FSMC 總線[12]傳遞給 ARM 進行處理;下行數據由 ARM 發出,通過 FSMC 總線進入 FPGA中進行打包,根據命令從相應通道的千兆以太網口向外發送。

7391f3fe-5a82-11ed-a3b6-dac502259ad0.png

FPGA 與 ARM 之間通過 FSMC 總線連接,如圖 2 所示。FSMC 總線包含 6 位地址總線、16 位數據總線以及控制總線。

73b11b9e-5a82-11ed-a3b6-dac502259ad0.png

2 FPGA 設計

FPGA 芯 片 選 用 Altera 公 司 的 EP4CE10F17C8 芯片,其擁有 10 320 個邏輯單元,可以滿足本系統功能要求。ARM 處理器選用 ST 公司的 STM32F407IG,具有Cortex?M4處理器內核,1 MB FLASH 且具有 FSMC。

FPGA 用 Verilog語言開發,FPGA 結構框圖如圖 3所示,由時序轉換模塊、打包解包模塊和 MAC 控制模塊三部分組成,其中可以接多個 MAC接收模塊。

2.1 時序轉換模塊

時序轉換模塊將 FSMC 復雜時序轉換為較簡單時序,同時將一路 FSMC轉換多路內部總線,其中包括傳遞數據的總線和各個模塊的控制總線。其中轉換出來的控制總線使能各個模塊功能,訪問各個模塊的寄存器

73cabc3e-5a82-11ed-a3b6-dac502259ad0.png

2.2 打包模塊和解包模塊

打包解包模塊約定了 ARM 與 FPGA 通信的協議,如表 1 所示。在要發送的數據前添加要發通道號以及待發送數據的字節長度,以便于打包模塊知道數據應當發送到哪個 MAC 和解包模塊,以及數據包來自哪個 MAC,同時將一路內部數據總線又分為多路數據總線,與多個MAC相連。

73dd8116-5a82-11ed-a3b6-dac502259ad0.png

發送功能:當檢測到發送開始寄存器操作后,將發送數據寄存器的數據寫入前級 FIFO 緩存,直到檢測到發送完成寄存器操作,停止向前級 FIFO 緩存,接著開始檢查保存包是否正確并產生接收完成信號,若當前包不正確,讀出當前包同時丟棄,正確則保留。根據表 1 協議判斷當前包要發送到的 MAC,待其可以接收數據時向其發送。

接收功能:4 個通道的數據首先進入 4 個通道 FIFO中,隨后通道掃描器會依次循環掃描這 4 個通道 FIFO,若該通道使能且有數據,就將該通道數據緩存到前級FIFO 并產生接收完成信號,等待 ARM 讀取數據,待ARM 讀取完繼續循環之前操作。

2.3 MAC模塊

MAC 控制模塊實現以太網的數據鏈路層協議,同時定義了與打解包模塊的通信協議,如表 2 所示。這個協議是在表 1 通信協議的基礎上,在包頭添加包頭標志SOP,包中部添加中部標志 MID,在包尾添加包尾標志EOP,以便于以數據包的形式進行傳輸和處理。設計功能:速率為 1 000 Mb/s,幀間隔可配,支持自動填充,支持 CRC 校驗,支持廣播/組播風暴抑制,支持 MAC 地址白名單。

73f63792-5a82-11ed-a3b6-dac502259ad0.png

MAC 發送的邏輯:首先有 MAC 數據幀待 MAC 模塊發出,等待設定的幀間隔時間結束,接著發送前導碼和幀定界符,然后發送待發送 MAC 數據幀,若長度小于60 B則用零填充至 60 B,最后發送循環校驗序列。

廣播/組播風暴抑制邏輯如圖 4 所示。根據設定時間以及設定的廣播包閾值,如果在設定的時間內接收的廣播包數量超過閾值,進行廣播包抑制。同理,組播風暴抑制邏輯和廣播風暴抑制邏輯相同。

740b619e-5a82-11ed-a3b6-dac502259ad0.png

MAC 接收的邏輯流程圖如圖 5 所示。接收使能MAC 模塊開始接收,若 rxdv 信號有效且接收到前導碼和幀定界符,則進行下一步的目的 MAC 地址接收。接下來進行廣播/組播/單播的類型判斷,廣播或組播的處理類似,會判斷是否已經發生廣播/組播風暴,發生則不再接收數據,沒有就繼續;單播的話不需要考慮抑制,所以這步跳過。接下來接收源 MAC 地址,僅單播需要判斷是否源 MAC 地址在 MAC 地址白名單中,不在白名單則停止操作,在就接收數據,直到 rxdv 變為低電平。最后判斷接收是否錯誤,包括長度和 CRC校驗。

2.4 ARM 系統軟件設計

ARM 端程序是運行在 μCOSⅢ操作系統[13]之上的,ARM 程序使用 C 語言編寫,ARM 程序分為兩個模塊,即發送程序和接收程序。

7420f59a-5a82-11ed-a3b6-dac502259ad0.png

當任務調用發送函數,向發送開始寄存器寫操作,接著向發送數據寄存器發送通道號以及數據長度,然后向發送數據寄存器發送待發送數據,發送數據完成后,向發送完成寄存器寫操作。

當有 ARM 檢測到接收中斷時,ARM 查詢中斷狀態寄存器,確定是接收中斷,同時清除該中斷標志,然后進行讀取操作。同時接收過程也支持輪詢寄存器,方法與中斷接收類似,不再贅述。

3 驗 證

測試內容包括單通道和多通道功能驗證。單通道驗證通過如圖 6 所示的測試環境驗證,多通道的驗證通過 ModelSim 仿真驗證。

3.1 單通道驗證

單通道測試環境如圖 6 所示。待測試設計模塊外接一個 RTL8211EG?VB 芯片的擴展板,然后通過網線與電腦相連。用 Wireshark 軟件抓取 ARM 發來的數據幀,驗證本系統的發送功能;采用科來數據包生成器生成驗證接收功能所需的各種數據幀,使用科來數據包播放器從電腦端向本接口發送數據幀,并用串口助手查看本接口接收到的包數。

7444c650-5a82-11ed-a3b6-dac502259ad0.png

測試項目分為兩部分:發送功能測試和接收功能測試。發送功能測試需要驗證發送內容是否正確,需要填充的數據幀是否填充。接收功能測試需要驗證正確接收、MAC地址白名單功能以及廣播/組播風暴抑制功能。

3.1.1 發送功能驗證

測試工具為 Wireshark。測試內容:ARM 端生成一些待發送數據,統計電腦接收數據包個數,以及檢查要填充的數據包是否填充。測試結果見表 3。其中,圖 7是 2 000 次發送測試的 Wireshark 抓包圖。為了不影響抓取,固定 MAC幀類型為 0x1234,設計系統的 MAC地址為00:00:00:11:22:33,以廣播的形式發包進行測試。

745c1652-5a82-11ed-a3b6-dac502259ad0.png

3.1.2 接收功能驗證

1)正常接收驗證

測試工具:科來數據包生成器、科來數據包播放器、串口調試助手。向設計接口發送不在白名單中的單播包,驗證接口的接收功能以及地址白名單功能。具體測

747c0dcc-5a82-11ed-a3b6-dac502259ad0.png

2) 廣播包/組播包風暴抑制

測試工具:科來數據包生成器、科來數據包播放器、串口調試助手。測試中固定風暴抑制區間間隔為65 ms。設置不同的廣播包接收的抑制閾值,構造廣播包與單播包各不同的組合,將其循環向設計接口發送。測試結果見表 5,其中理論接收包數等于發包總數乘以一次循環中不會發生風暴的比例。

74932278-5a82-11ed-a3b6-dac502259ad0.png

3.2 多通道驗證

仿真環境如圖 8所示,例化 3個 MAC 模塊,將這 3個模塊的 MAC 發送端口和接收端口相連構成回環。激勵文件模擬 FSMC 時序,通過 FSMC 接口分別向通道 0,1,2各發送一包數據。這三包的構成一致都是從 0 開始遞增,且結尾為固定值 1,他們的長度分別是 50 B,46 B,60 B。圖 9是這三包數據中的第一包數據。

74a18566-5a82-11ed-a3b6-dac502259ad0.png

根據表 1 所示的協議,經過回環得到的數據包頭部是該數據包的長度與通道號。要驗證多通道功能的正確性,需保證接收的數據包頭部的長度和通道號正確且后面數據部分正確。仿真測試中將包頭的[15:14]位表示通道,[10:0]位表示數據部分長度,單位為字節。如圖 10所示,按照協議解析,表示通道 0,長度為 50 B。其余兩包內容類似,由于篇幅原因就不附上,同時核對各包實際數據部分也與對應發送包相同。

經過以上一系列測試,數據發送和接收功能正常,傳輸時不丟包,且能穩定可靠工作,滿足設計要求。

74b7ffa8-5a82-11ed-a3b6-dac502259ad0.png

4 結 語

本文針對多路以太網通信需求,基于 ARM 和 FPGA特點,綜合兩者的優勢提出一種基于 ARM+FPGA 的多路千兆以太網通信系統。實現了 MAC 幀發送和接收、廣播/組播風暴抑制、幀間隔配置、MAC 白名單和錯誤檢測。從驗證結果來看,系統運行穩定可靠,滿足設計需求。本設計只針對千兆以太網進行設計,在實際應用中可以做成 10M/100M/1 000M 自協商,以適應市場需求。本文設計的以太網接口相比其他設計,具有多通道和硬件風暴抑制的功能,適合多通道的以太網傳輸。由于日益緊張的國際形勢,使得國內對于芯片國產化的觀念日趨強烈,下一步將考慮實現此接口在國產化芯片上的移植應用。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1643

    文章

    21983

    瀏覽量

    614618
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9321

    瀏覽量

    375417
  • 以太網
    +關注

    關注

    40

    文章

    5594

    瀏覽量

    174973

原文標題:論文速覽 | 基于FPGA+ARM多路千兆以太網通信接口設計

文章出處:【微信號:現代電子技術,微信公眾號:現代電子技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于Xilinx FPGA千兆以太網控制器的開發

    千兆以太網利用了原以太網標準所規定的全部技術規范,其中包括CSMA/CD協議、以太網幀、全雙工、流量控制以及IEEE 802.3標準中所定義的管理對象。##
    發表于 01-23 11:13 ?3.1w次閱讀
    基于Xilinx <b class='flag-5'>FPGA</b>的<b class='flag-5'>千兆</b><b class='flag-5'>以太網</b>控制器的開發

    以太網通信S7是什么意思?

    以太網通信
    YS YYDS
    發布于 :2023年06月25日 00:07:18

    PC與FPGA以太網通信

    我現在在做FPGA和PC之間的以太網通信,PC和FPGA用交叉線直連,板子上的以太網phy芯片是88e1111,以太網
    發表于 07-05 21:37

    FPGA+DSP;FPGA+ARM硬件設計

    本人剛入門FPGA,不知道如何實現FPGA+DSP,FPGA+ARM接口設計,網上查詢有的說FPGA+DSP可以通過EMIF,IP核實現,
    發表于 08-27 11:30

    STM32能否實現千兆以太網通信

    最近想用STM32做一個千兆以太網通信接口ARM小白,請求大神指點:1、能否實現?2、需要使用哪個系列的
    發表于 06-05 21:25

    簡談基于FPGA千兆以太網設計

    習。 咱們就以千兆以太網舉例,千兆以太網,只是說以太網的速率為千兆,也就是1G。除了
    發表于 06-01 18:39

    基于FPGA的十端口千兆以太網接口的設計與實現

    當前的路由器或交換機產品都提供多端口千兆以太網接口。采用高性能FPGA 設計十端口千兆以太網
    發表于 08-29 09:30 ?51次下載

    TM1300芯片的以太網通信接口的設計和實現

    設計通過TM1300的PCI接口驅動以太網芯片,實現了一種以太網通信接口。該方案將擅長多媒體信號處理的TM1300和十分普及的以太網結合起來
    發表于 05-05 19:44 ?1136次閱讀
    TM1300芯片的<b class='flag-5'>以太網通信</b><b class='flag-5'>接口</b>的設計和實現

    LPC23xx的自適應以太網通信接口設計

    LPC23xx的自適應以太網通信接口設計 以太網接口是嵌入式系統進行以太網通信的硬件基礎。隨著微電子技術的進步,許多嵌入式控制芯片集成了
    發表于 01-12 10:42 ?2630次閱讀
    LPC23xx的自適應<b class='flag-5'>以太網通信</b><b class='flag-5'>接口</b>設計

    基于ARM多路串行和以太網通信技術的研究與應用

    本文主要是對于多路串行和以太網通信技術的介紹,以及基于ARM多路串行和以太網通信技術的研究與應用
    發表于 10-17 17:41 ?76次下載
    基于<b class='flag-5'>ARM</b>的<b class='flag-5'>多路</b>串行和<b class='flag-5'>以太網通信</b>技術的研究與應用

    基于FPGA的UDP千兆以太網通信

    本文介紹一個FPGA開源項目:UDP千兆以太網通信。利用SFP接口,可以通過使用SFP轉RJ45模塊或者直接使用光纖進行
    的頭像 發表于 08-31 11:26 ?5310次閱讀
    基于<b class='flag-5'>FPGA</b>的UDP<b class='flag-5'>千兆</b><b class='flag-5'>以太網</b>光<b class='flag-5'>通信</b>

    以太網通信和串口通信區別

    以太網通信和串口通信區別? 以太網通信和串口通信都是網絡通信中常見的方式,在實際應用中,兩者的使用場景各有不同。
    的頭像 發表于 09-02 14:44 ?6949次閱讀

    基于FPGA的UDP RGMII千兆以太網通信方案

    本文介紹一個FPGA開源項目:UDP RGMII千兆以太網通信。該項目在我之前的工作中主要是用于FPGA和電腦端之間進行圖像數據傳輸。本文簡要介紹一下該項目的
    的頭像 發表于 09-04 16:49 ?2213次閱讀
    基于<b class='flag-5'>FPGA</b>的UDP RGMII<b class='flag-5'>千兆</b><b class='flag-5'>以太網通信</b>方案

    基于FPGA的UDP RGMII千兆以太網設計

    本文總結一下前段時間完成的FPGA以太網通信功能。該方案參考了MILIANKE的設計,但在其基礎上簡化了某些不必要的步驟以及解決了一些由于忽視細節導致的棘手的問題。
    的頭像 發表于 09-06 17:04 ?3610次閱讀
    基于<b class='flag-5'>FPGA</b>的UDP RGMII<b class='flag-5'>千兆</b><b class='flag-5'>以太網</b>設計

    如何使用AT32F407以太網通信接口實現在應用中編程(IAP)

    如何使用AT32F407以太網通信接口實現在應用中編程(IAP)
    的頭像 發表于 11-07 17:20 ?2622次閱讀
    如何使用AT32F407<b class='flag-5'>以太網通信</b><b class='flag-5'>接口</b>實現在應用中編程(IAP)
    主站蜘蛛池模板: 欧美色网在线 | 精品视频一区在线观看 | 午夜韩国理论片在线播放 | 国产一区中文字幕在线观看 | 日韩免费高清一级毛片在线 | 成人在线视频网 | 天天色综合社区 | 亚洲入口 | 国产 麻豆 | 日本黄色网址免费 | 国产深夜福利在线观看网站 | 狠狠色噜噜狠狠狠狠97影音先锋 | 国产成人1024精品免费 | 大尺度视频在线 | 亚洲一区二区三区首页 | 2021国产成人午夜精品 | 免费的很黄很色的床小视频 | 免费性bbbb台湾 | 黄色性生活毛片 | 上课被同桌强行摸下面小黄文 | 曰本裸色私人影院噜噜噜影院 | 伊人久久大香线蕉综合7 | 国产情侣草莓视频在线 | 无限国产资源 | 欧美1819| 你懂的网站在线观看网址 | 欧美高清成人 | 黄色大秀 | 精品国产理论在线观看不卡 | 国产三及 | 国产色婷婷免费视频 | 国漫在线观看 | 欧美成人在线影院 | 国产乱辈通伦影片在线播放 | 五月婷婷六月丁香 | 久久精品看片 | 国产在线视频www色 国产在线视频欧美亚综合 国产在线视频网站 | 猛操网 | 五月天天色 | 很黄很污的视频网站 | 天天操夜夜操免费视频 |