《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于可靠數據傳輸協議的高速數據交換節點設計
基于可靠數據傳輸協議的高速數據交換節點設計
2015年微型機與應用第17期
張 樂,武 杰
(中國科學技術大學 近代物理系 核探測與核電子學國家重點實驗室,安徽 合肥 230026)
摘要: 在以太網物理層的基礎上,設計了一種利用專用硬件接口結合低功耗MCU實現可靠數據傳輸協議,可在不同物理鏈路之間進行可靠、可控、高速數據交換的數據節點。與傳統TCP的實現機制不同,傳輸協議由專用硬件接口實現,與一般的純軟件實現可靠數據傳輸方案相比,在CPU主頻和功耗相當的情況下該設計具有更高的數據率,本節點同時具備對采集系統進行分布式管理的能力。經測試,本節點可以達到97%以上信道利用率,具有數據傳輸可靠、功耗低等優點。
Abstract:
Key words :

  摘  要: 在以太網物理層的基礎上,設計了一種利用專用硬件接口結合低功耗MCU實現可靠數據傳輸協議,可在不同物理鏈路之間進行可靠、可控、高速數據交換的數據節點。與傳統TCP的實現機制不同,傳輸協議由專用硬件接口實現,與一般的純軟件實現可靠數據傳輸方案相比,在CPU主頻和功耗相當的情況下該設計具有更高的數據率,本節點同時具備對采集系統進行分布式管理的能力。經測試,本節點可以達到97%以上信道利用率,具有數據傳輸可靠、功耗低等優點。

  關鍵詞: 以太網;FPGA高速可靠數據傳輸;低功耗

0 引言

  在一些工業應用領域,如大規模數據采集系統,由于數據采集節點分布范圍廣、數據率高,從而需要在不同數據信道間進行數據交換[1],在數據傳輸過程中不可避免地需要數據交換節點進行數據的接收、發送和管理。

  傳統傳輸協議(如TCP/IP、TFTP、SCTP等)的實現方法為在底層傳輸介質基礎上依靠復雜的CPU運算來保證數據的可靠性,在不同的CPU主頻下TCP性能測試如表1所示。

006.jpg

  可見傳統的TCP實現方案對CPU主頻依賴性強,隨之帶來的高功耗無法滿足系統低功耗的設計要求。本文在可靠數據傳輸協議基礎上,設計了一種高速數據交換節點,在100 Mb/s和1 000 Mb/s信道之間進行數據交換和管理,在更低CPU主頻(168 MHz)情況下具有信道利用率高(百兆97%以上,千兆98%以上)、可靠、可控、低功耗等特點。

1 節點所處網絡的拓撲結構

  在大規模數據采集系統中數據采集節點數量大、分布范圍廣,在有線數字傳感網絡中將采集節點采集到的數據通過百兆以太網鏈路回傳,并通過數據交換節點進行匯總通過千兆以太網鏈路向更高級進行傳輸[5],此方向為數據通道(上行通道)。

  另一方面需要對各采集節點進行控制和管理,在大規模采集系統中,為減輕中心節點的運算壓力,采用分布式管理對采集節點進行控制。接收千兆以太網鏈路命令利用本地低功耗MCU進行分析處理,通過百兆以太網鏈路向下級發送,此方向為命令通道(下行通道)。其拓撲結構如圖1所示。

001.jpg

2 可靠數據傳輸協議

  傳統的通信協議(TCP/IP)需要復雜的路由協議,高層協議還需要大量的應用服務,對于嵌入式系統來說過于復雜,且對CPU運算能力有較高要求。在相對較低的主頻及功耗條件下無法滿足高速、可靠數據傳輸的要求。

  可靠數據傳輸協議在傳統通信協議的基礎上進行精心裁剪,對于一些工業領域應用系統,如大規模地震數據采集系統,本協議針對性強、結構簡單、適應底層硬件。上層軟件根據系統需要設計,減少不必要的開銷以適合高效率數據封裝,滿足高速、可控、可靠的數據傳輸需求[1]。

  可靠數據傳輸協議包括:ACK回應與超時重發機制;轉發優先及本地緩存機制;命令、回應、確認機制等。相比傳統的通信協議更適應數據采集系統,效率更高。

3 數據交換節點設計與實現

  本數據交換節點利用FPGA邏輯實現專用硬件接口,實現硬件ACK響應和判斷、硬件重發、硬件轉發和硬件發送仲裁等功能,并利用低功耗MCU進行命令響應和數據處理。基于可靠數據傳輸協議在百兆以太網鏈路和千兆以太網鏈路之間進行數據交換和命令響應。

  3.1 硬件平臺及節點結構

002.jpg

  節點結構如圖2所示,主要由三部分組成:

  (1)低功耗MCU,主要用于命令響應和數據處理。硬件接口將數據及命令通過MII高速數據接口及低速命令接口將信息傳送至中央處理單元,經過處理的數據、需要向上級返回的命令響應及向下級分發的命令通過對應的接口發送至硬件接口進行數據傳輸。作為原型機硬件,MCU采用ST公司STM32F407,其基于CortexTM-M4架構,主頻168 MHz。在原型機平臺上實現了命令處理、高數據率(>97 Mb/s)數據傳輸等功能。

  (2)千兆以太網硬件接口部分,主要由Xilinx Spartan 6 FPGA和Broadcom千兆以太網芯片組成。在FPGA內編寫專用通信硬件接口,硬件實現轉發、接收、本地數據發送。其內部的可拓展RDT(Reliable Data Transmission)模塊根據幀類型及地址進行自動ACK確認、本地發送與轉發仲裁、超時等待及重發等,通過拓展RDT模塊增加發送緩存區數目可以有效地增加信道的利用率。FPGA使用Xilinx TriMode Ethernet Logic Core[6]通過RGMII接口與以太網芯片進行數據交換,通過以太網物理層與其他數據節點及主機進行數據交換。測試100 m CAT6類網線傳輸正確。

  (3)百兆以太網硬件接口部分主要由Xilinx Spartan 6 FPGA和TI TLK100百兆以太芯片組成。在FPGA內由硬件實現接收、自動ACK生成和發送。其內部可拓展RDT模塊自動完成ACK確認、發送仲裁、超時等待及重發。測試200 m CAT6類網線傳輸正確。

  3.2 可靠數據傳輸及可控數據管理協議的實現

  為保證數據在對稱的信道之間進行可靠、可控的交換,結合硬件平臺和可靠數據傳輸協議,實現數據交換節點的設計,設計要點如下。

  (1)ACK回應及超時重發

  發送方發出數據幀后等待ACK回應,收到正確的ACK回應后表明本次發送正確完成,進行下一幀的發送;若超時后未收到ACK回應或回應錯誤則進行重發并在重發幀內重發次數位段進行加一(區別重發次數不同的幀),進入下一次的等待回應過程。

  對于ACK回應在鏈路發生偶然性誤碼的情況下,通過重發可以排除可恢復性錯誤,發生不可恢復故障時向高層應用報告錯誤,由上層應用判斷并進行動態路由,尋找其他可靠的數據鏈路完成發送或是進入低功耗待機模式以節約能源。ACK機制同時可以實現流量控制,可根據需要停止ACK回應終止本地接收,或有計劃地控制ACK幀的回應頻度對鏈路數據率進行調節,以保證數據傳輸的可控性,借此排除整個數據傳輸中數據率的隨機性,通過ACK回應保證數據均勻。

003.jpg

  ACK等待和重發由硬件接口內部的RDT模塊實現,在實現協議的同時減輕了CPU的運算壓力。如圖3所示,本地數據先由RDT模塊緩存,多發送緩存可提高信道的利用率,根據幀信息確定是否需要重發,發送完成后等待ACK,若收到回應則進行下一次發送,否則重發(重發次數+1),若重發次數達到上限(本文設定為4),則認為本次發送失敗,通知上層應用,以硬件實現的方式使得低CPU主頻、高數據率的實現成為可能。

  (2)轉發優先及本地緩存

004.jpg

  節點間級聯的拓撲結構如圖4所示,需要將下游節點的數據向主機轉發及轉發主機向下游發送的命令,同時需要進行本地的接收和發送。轉發優先和本地緩存可以保證整個鏈路的通暢和鏈路數據可靠不丟。

  ①轉發優先:在千兆鏈路通信建立伊始通過上層應用判斷鏈接方向確定上行(靠近主機)與下行(連接其他數據交換節點),在通信過程中當節點收到來自上游的命令時判斷是否為本地命令,若為本地命令則通過硬件通道傳至本地處理單元進行命令解析和處理,若非本地命令則向下游轉發;收到下游發來的數據幀時則向上游主機轉發。當節點收到轉發數據或命令,即轉發緩存非空時,無論本地發送緩存內是否有數據或命令需要發送,優先轉發,待鏈路空閑時進行本地發送。在數據傳輸過程中千兆鏈路數據率高,多級節點級聯對于實時性要求高,緩存壓力大,優先轉發可以避免本地轉發緩存的壓力。

  ②本地緩存:在千兆鏈路進行數據傳輸過程中,數據交換節點必須同時接收下級采集節點接收的數據進行統計、匯總及相應的處理后存入本地緩存,當千兆以太網空閑時將本地數據通過千兆以太網發送到數據中心。本地數據和來自其他節點的數據共享千兆以太網鏈路,如果整個系統的平均數據率高于千兆鏈路的最大數據率則數據可靠性一定無法滿足,需要對系統數據節點及鏈路進行重新設計。在系統設計正確恰當的條件下,整體數據率低于(或等于)千兆的最大數據率,通過本地緩存的機制可以保證在轉發的同時各節點的本地數據可靠有序地發送。根據數據量及分布可以推算出合理的緩存大小,保證本地接收數據不丟在轉發空閑時而發送至主機。

  其硬件實現如圖3所示,本地發送數據緩存在RDT模塊內經過ACK確認及重發處理后與轉發數據或ACK一起送至發送仲裁模塊,通過硬件接口進行判斷并依照轉發優先進行數據傳輸。

  (3)命令、回應、確認機制

  為保證命令執行的正確性,TCP/IP協議內的三次握手用于建立鏈接及四次握手關閉連接。對于數據采集系統,命令隨機性高、命令短暫(64 B)及間隔不可控,采用類似RUDP協議[7]將判斷鏈路可靠性和命令執行(信息傳達)過程合二為一,保證命令執行可靠,同時相比TCP基于鏈接的機制,效率和功耗方面更適合數據采集系統。具體過程如圖5所示。

005.jpg

  ①命令發起方發送一個含有信息的命令至接收方,等待對方響應,若對方無響應則進行固定次數重發,判斷發生故障后通知上層應用進行處理;

  ②接收方進行響應,通過命令回應幀回傳信息,上級無響應則進行固定次數重發,判斷發生故障后撤銷本次命令,通知上層應用進行處理,并等待下次命令;

  ③上級收到命令回應表示命令執行過程完成,命令成功;若未收到對應的命令回應表明命令失敗,撤銷命令。

  回應確認機制排除了鏈路誤碼的影響,同時排除了命令一方出現錯誤后命令繼續執行,發生不可逆錯誤的可能。相比軟件實現的RUDP機制,在相同功耗及CPU主頻下,基于硬件的重發、ACK發送及確認實現,具有更高的命令執行效率。

4 測試結果

  4.1 數據率測試

007.jpg

  利用多發送緩存的硬件模擬數據源發送數據幀到數據交換節點,由節點進行數據交換后發送至主機,在保證數據正確可靠的前提下得到測試數據(表2)。根據幀協議及以太網幀傳輸協議,在數據傳輸過程中存在前導((7+1)B)、CRC(4 B)、幀間隔(12 B)共24 B無效數據,即:

  ][IY`M)5P8)~7@FQBEX(3%X.jpg

  可得,在有效長度(Payload Size)為500 B和1 000 B時信道的可知理論有效帶寬及測試得到實際帶寬利用率如表2所示。在幀長度較小情況下,通過168 MHz MCU進行數據交換,由于CPU運算能力造成瓶頸限制,無法達到更高的帶寬利用率。

  4.2 命令響應測試

  節點與下級站體以最小幀長度64 B反復進行10 000次命令、回應、確認的命令響應過程,未發生錯誤。對比數據利用PC基于RUDP進行模擬站體間短暫(最小幀長)頻繁(類似多個下級站分別進行)的命令交換過程,結果見表3。

008.jpg

  CPS(CMD Per Second)/MHz為單位主頻下的每秒執行命令響應數,每條命令響應過程由命令、回應、確認三部分組成。由表3可見,對于下行通道在較低的CPU主頻下,本節點依然保持較高的命令執行效率。在實際系統中可以滿足對下級站體進行分布式管理的需求。

  現有節點在保證千兆鏈路和百兆鏈路通信及站體命令響應下正常工作功耗約3.5 W,其中千兆以太網PHY(兩個)功耗約1.6 W,百兆以太網PHY(兩個)功耗300 mW,MCU功耗約300 mW,FPGA(兩個)功耗約300 mW,電源效率損失約700 mW,控制層功耗約占總功耗的10%,物理層占85%。

5 結束語

  基于可靠數據傳輸協議實現的可靠數據傳輸,通過協議的硬件實現在較低的CPU主頻及功耗下保證鏈路的高利用率。通過本地緩存和轉發機制保證了不同鏈路的數據交換。結合MCU實現軟件對系統進行控制和管理。在原型機平臺上實現兩個百兆以太網和兩個千兆以太網接口,實現百兆鏈路96%、千兆鏈路98%以上的鏈路利用率,對至少200道(每道數據率400 Kb/s左右)數據采集節點進行管理和采集數據傳輸。作為普遍的協議及信道交換實現方法,可以做到與底層鏈路的速度和數目無關,具有普遍的適用性。

參考文獻

  [1] 王兵,武杰,孔陽,等.數字傳感網絡的高速數據傳輸協議設計[J].儀器儀表學報,2010,31(7):1644-1649.

  [2] 張文沛,彭先蓉,徐勇.基于SOPC的千兆以太網數據傳輸設計[J].儀器儀表用戶,2010,17(3):66-68.

  [3] GIBBS D. Measuring treck TCP/IP performance using the XPS locallink TEMAC in an embedded processor system [EB/OL].(2008-10-09)[2014-08-20]. http://china.xilinx.com/support/documentation/application_notes/xapp1043.pdf.

  [4] 陳輝,陳虎,奚建清.嵌入式系統TCP/IP協議性能測試與分析[J].計算機工程,2007,33(21):99-101.

  [5] 劉列峰.一種可擴展的大規模地球物理勘探數據采集系統研究[D].合肥:中國科學技術大學,2014.

  [6] Xilinx. LogiCORE IP Tri-Mode Ethernet MAC v4.5 User Guide[Z]. 2011.

  [7] 王繼剛,顧國昌,徐立峰,等.可靠UDP數據傳輸協議的研究與設計[J].計算機工程與應用,2006,42(15):113-116.


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 中文字幕亚洲综久久2021 | 欧美在线看欧美视频免费网站 | 国产在线欧美日韩一区二区 | 亚洲精品一卡2卡3卡三卡四卡 | 亚洲第一免费 | 深夜福利网| 日韩欧美中文在线 | 亚洲 欧美 日韩 在线 | 中文字幕在线观看亚洲日韩 | 久久狠狠 | a级毛片黄 | 玖玖在线精品 | 北条麻妃国产九九九精品视频 | 妇欲欢公爽公妇高h欲 | 老司机69精品成免费视频 | 欧美日韩在线播放一区二区三区 | 天天干天天射天天爽 | 久久精品国产欧美日韩99热 | 久久综合综合久久 | 伊人中文 | 免费黄色网址在线播放 | 99re在线精品视频免费 | 免费涩涩漫画大全 | 日韩成人片 | 操人视频网站 | 日本免费不卡视频一区二区三区 | 日韩国产成人精品视频人 | 日本一区二区三区不卡在线视频 | 九色福利 | 午夜在线网站 | 日本三级香港三级人妇三级 | 中国一级全黄的免费观看 | 美女涩涩网站 | 免费黄色片网站 | 成人免费视频在线播放 | 五月在线观看 | 午夜三级在线 | 国产日韩欧美一区二区三区在线 | 日韩中文在线观看 | 午夜高清在线 | 花蝴蝶亚洲一区二区三区 |