當前位置:
首頁 > 最新 > 基於FPGA的TCP/IP硬體協議棧研究與設計

基於FPGA的TCP/IP硬體協議棧研究與設計

研究生創新基金申請書原文

一、立項依據

該項目的研究意義,國內外研究現狀分析及主要參考文獻

(1) 研究意義

隨著信息技術與網路技術的飛速發展,在音頻視頻、智能交通、工業控制、航天測控等領域,對網路數據傳輸處理速度、可靠性及實時性的要求越來越高。如何在提高網路傳輸速度的同時,又能夠盡量減少對處理器資源的佔用,確保數據傳輸的正確性,一直是高性能數據處理的熱點[1-3]。

傳統的基於CPU軟體實現TCP/IP協議的處理方式,無論在處理速度,還是穩定性方面,都無法與基於硬體的實現相比,而且基於軟體的實現會佔用大量的CPU資源、消耗存儲空間[4-5]。特別是在對體積、能耗有非常嚴格要求的應用環境中,這種基於CPU軟體實現TCP/IP協議的處理方式就很難完成要求。其成本與穩定性極大地制約了這種處理方式[6-7]。

本課題中針對上述問題,利用FPGA實現基於TCP/IP協議的精簡TCP硬體協議棧,由於FPGA體積小、邏輯處理方便,以及硬體自身帶寬大,處理速度快,信息處理延時低等特點[8-11],使得將CPU承擔的通信協議處理過程,有可能轉移到FPGA專用硬體設備上。這種方式可以解決當前嵌入式系統中普遍存在的網路傳輸帶寬小,數據處理速度慢等限制,能提高網路的傳輸和利用效率[12-17]。在嵌入式網路傳輸應用環境中具有非常重要的意義。

與CPU軟體實現方式相比,在FPGA上實現複雜的TCP/IP協議棧,具有很大的挑戰性。主要體現在:1)對FPGA內部邏輯門陣列進行描述實現,需對TCP/IP協議的功能進行模塊化設計;2)若考慮不細緻,TCP/IP協議的某些功能,可能會佔用大量FPGA內部邏輯資源。

本課題在這種背景下,提出了「基於FPGA的TCP/IP硬體協議棧研究與設計」。整個設計通過Verilog HDL硬體描述語言和Xilinx的ISE開發套件進行模塊化的編寫、系統的集成和功能模擬與板級驗證,並通過cadence等軟體設計的FPGA硬體平台進行實際系統的測試和聯調,並在通用計算機上利用抓包軟體和開發測試軟體對設計的硬體協議棧進行測試和驗證。

本課題的研究與設計,旨在為體積受限、能耗受限的嵌入式網路傳輸應用環境,提供一種通用可靠的、可定製裁剪的、硬體協議棧的可行性方案。本課題的實施對嵌入式網路傳輸技術的推廣應用,具有積極的推進作用。

(2) 國內外研究現狀

近年來,基於互聯網的基礎協議TCP/IP協議的應用也越來越多[18-19]。傳統的基於軟體實現TCP/IP協議的方式,已經不能滿足現在的需求,逐漸成為高性能網路數據傳輸處理的瓶頸。

國外對於乙太網環境下的TCP/IP的硬體協議棧研究已具備一定的水平,其中應用最為廣泛的被稱為TCP/IP卸載引擎(TCP Offload Engine)的技術,即通過專門設計的TOE晶元硬體網卡來實現TCP/IP協議棧的硬體化[20]。TOE技術與傳統的技術區別如圖1所示。目前已經商用的產品主要為WIZnet公司的W3150A、W5500等晶元[21-23]。但是網路傳輸的有效帶寬受晶元自身限制,最多只能達到百兆乙太網速率,已不能較好地滿足當前應用環境。

圖1TOE技術與傳統技術比較

通過對國內外對於TCP/IP硬體協議棧的研究現狀可以看出,國外對於TCP/IP的硬體協議棧在理論研究上已經達到了千兆乙太網的速率標準,並且在TCP/IP的硬體協議棧實現上已經推出了一些協議棧經過精簡的商用產品。國內由於對該領域的研究較晚,多停留在理論研究層面[24-25]。利用FPGA嵌入式系統實現的TOE技術,也沒有能夠實現完全的硬體協議棧設計。

這都說明,利用FPGA實現純硬體的高速TCP硬體協議棧具有一定的難度[26-28]。

(3)立項目的

針對前述現狀與問題,本課題擬使用Verilog HDL硬體編程語言,按照千兆乙太網的傳輸標準將TCP/IP協議族中的ARP協議、IP協議和TCP協議等協議棧進行適當的裁剪,並且根據網路傳輸特點,加入對TCP/IP滑動窗口進行優化[29-30]等演算法,以提高傳輸速率,通過硬體語言進行描述、設計、模擬驗證和深入研究。最後設計相應的硬體、軟體測試平台,對擬實現的功能進行實際的測試和驗證。

本課題擬實現一種實時、可靠、性能優良、便於移植和使用的,基於FPGA的TCP/IP硬體協議棧傳輸系統,為例如,自主巡航機器人、高頻率採集測試系統等,提供了一個很好的解決方案。

現代社會是一個網路高度互聯的時代,人們對信息(數據)的傳輸速度、可靠性要求越來越高,可以預見,本課題設計的應用前景廣闊,兼具實際應用的價值和深入研究的意義。

(4) 參考文獻

[1~30] 略

二、研究方案

1.研究目標、研究內容和擬解決的關鍵問題

(1) 研究目標

本課題主要研究如何通過FPGA來實現TCP/IP更有效的傳輸處理問題。從處理速度、高速實時和可靠性的要求來考慮,選擇了使用Verilog HDL硬體描述語言,在FPGA上進行精簡TCP硬體協議棧的研究和設計。為當前眾多的高速採集傳輸系統,提供一種低成本、高性能、易移植的TCP/IP數據通信的解決方案。

(2) 研究內容

本課題的研究和設計內容,主要分為兩大部分。

一)精簡TCP/IP硬體協議棧的設計

在理解TCP/IP協議的體系結構後,提出「精簡TCP/IP協議棧的FPGA設計方案」,通過裁剪TCP/IP協議棧,結合FPGA性能特點,實現純硬體的TCP/IP硬體協議棧設計。

1) 細緻理解TCP/IP協議的體系結構,著重掌握其關鍵的傳輸流程,如超時重傳機制、滑動窗口設計等,為下一步協議棧的裁剪做準備。

2) 對精簡TCP/IP硬體協議棧方案,進行設計,首先對整體模塊的設計,精心裁剪出能實現本課題要求的「最小系統」,然後對各個子模塊進行設計。

3) 綜合各個子模塊,結合FPGA設計特點,加入傳輸優化演算法,梳理時序,完成最終的設計。

二)測試驗證平台的設計

本課題旨在實現一種切實可行的網路傳輸方案,因此很重視測試平台的設計與搭建。結合已有的實驗平台和相關的項目經驗,對本課題的測試驗證平台進行了初步的方案設計。

1)對於TCP/IP硬體協議棧的設計平台,擬選用FPGA+DDR3核心板,並使用Verilog HDL硬體描述語言進行研究與設計。

2)對於本課題的硬體測試平台,擬進行實物測試板設計;軟體測試平台,擬使用「TCP&UDP測試工具」和功能強大的Wireshark軟體進行測試。隨著課題研究深入,會進行專用測試軟體的設計。

(3) 擬解決的關鍵問題

1) 怎樣合理有效地精簡TCP/IP協議。

完整的TCP/IP體系非常複雜,不但需理解其整個通信流程,還需在理解後,結合整體性能,裁剪出針對本課題有效的關鍵模塊。需要對TCP/IP協議有深入系統的研究。

2) 怎樣合理高效地規劃各個子模塊功能。

基於FPGA的特點,需要對功能進行模塊劃分,而TCP/IP協議是高度融合相關的,所以精簡、分層、劃分等都具有很高的難度,需要進行細緻的考慮,否則會極大增加硬體描述的難度,和邏輯資源的耗費。目前關於FPGA的TCP/IP協議棧,硬體實現的參考文獻較少,在具體實現過程中,可能會遇到瓶頸。但這也正是值得關注和研究的地方。

3) 怎樣合理設計,綜合所有功能模塊後的邏輯控制。

根據FPGA設計經驗,時序邏輯問題是大型設計中的重難點。由於TCP/IP協議的複雜性,每個子功能模塊都對時序要求很高,可以預見,將整個子模塊進行綜合後,時序處理必將是難點問題之一。

2.擬採取的研究方法及可行性分析

(1) 研究方法

經過反覆調研和評估,下面對本課題擬採用的研究和設計方法,進行簡要闡述。

一)精簡TCP/IP硬體協議棧的設計

通過詳細了解TCP/IP協議族中的相關協議,將IP協議、TCP協議和ARP協議等進行基於FPGA的硬核代碼實現。這是本課題的難點和核心部分。

1.1TCP/IP協議的體系結構

TCP/IP協議(Transmission Control Protocol/Internet Protocol)即傳輸控制/網際協議,也叫網路通訊協議。TCP/IP是一個四層的體系結構,它包括應用層、運輸層、網路層和數據鏈路層。經過對協議的分層,使得各層間可以透明的傳送數據,不必要關心下層協議的實現細節。

TCP/IP協議實際上包括上百個各種功能的協議,如遠程登錄、文件傳輸和電子郵件等,而TCP協議和IP協議是保證數據完整傳輸的兩個基本的重要協議。

TCP/IP協議的通信過程如圖2所示,每次通信過程都需要一層一層地進行相應的打包(解包)處理,每層之間都會按照相應的協議進行可靠性傳輸。

圖2TCP/IP協議通訊過程

網路層協議主要包括IP、ARP、ICMP協議等,主要功能是負責相鄰節點之間的數據傳送。IP協議是網路層的核心協議,也是TCP/IP協議族中最核心的協議。所有的TCP、UDP和ICMP報文都是以IP數據報的格式傳輸的。

運輸層負責端到端通信,其兩個主要協議是傳輸控制協議TCP和用戶數據報協議UDP。而UDP協議是不可靠傳輸,不滿足本課題要求。TCP協議是面向連接的、點對點的、提供可靠交付和全雙工的、面向位元組流的通信。TCP協議提供可靠傳輸,但其工作流程和實現細節要複雜很多。

如果按照標準的傳輸協議進行硬體協議棧設計,這將花費巨大的FPGA邏輯資源,且開發周期較長,不易維護。經過對TCP/IP協議的深入理解,和對相關論文的研究後,本課題採用了,精簡TCP/IP協議棧的方案,針對核心的TCP協議和IP協議進行裁剪,實現必要功能的同時,還能有效地簡化FPGA設計複雜度。

1.2精簡TCP/IP協議棧的FPGA設計方案

將TCP/IP協議的處理交由FPGA內部硬體來完成,充分利用FPGA高速並行處理的優勢。

由於TCP/IP協議中的功能繁多,硬體描述難度大,而且部分功能在實現過程中將佔用過多的FPGA片內資源,並且簡化後的TCP/IP協議棧並不影響正常的數據通信傳輸。經過深入細緻的考慮,初步確定了如下的簡化方案。精簡TCP/IP協議棧模塊分為TCP模塊、IP模塊、ARP模塊、ICMP模塊。裁剪後的TCP/IP協議棧功能模塊如圖3所示。

圖3精簡TCP/IP協議棧功能模塊

雖對TCP/IP的整體功能進行了適當的裁剪,但餘下的各個子模塊的硬體描述實現,仍包含著大量的工作,這是TCP/IP協議自身優良屬性的必然要求。在此,對簡化後的TCP協議棧的流程,進行了初步的分析,其流程較為複雜,如圖4所示。

圖4簡化的TCP協議棧流程圖

對於精簡TCP/IP硬體協議棧中,其他各個子模塊的具體功能,如ARP模塊、超時重傳等等,都是本課題需要重點理解和分析的地方,需進一步進行研究,在此不再詳述。

對於其中各個子模塊的具體實現細節,以及綜合整個模塊的功能,是本課題中,重點設計、調試和研究的部分,也正是本課題創新性、難點和核心的地方。並結合FPGA高速並行處理的特點,對傳輸協議加入優化演算法,如GAIMD擁塞控制演算法等,以提供更佳的高速乙太網傳輸系統設計。

二)測試驗證平台的設計

本課題旨在實現一種切實可行的網路傳輸方案,因此很重視測試平台的設計與搭建。結合已有的實驗平台和相關的項目經驗,對本課題的測試驗證平台進行了初步的方案設計。主要分為以下三個方面。

2.1精簡TCP/IP硬體協議棧的設計平台

結合項目開發設計經驗,本課題的硬體平台擬選用FPGA+DDR3核心板。其中FPGA是,基於Xilinx公司的Spartan6系列的XC6SLX150-2FG484C這款晶元。這款高性能核心板,具有高速,高帶寬,高容量等特點,使用了MICRON公司的MT41J128M16LA-187E這款DDR3晶元,容量為2Gbit,在16bit匯流排模式下,FPGA和DDR3之間的讀寫數據帶寬高達10Gb。

選擇該核心板,主要原因有:一是該核心板價格適中,尺寸僅為60*60(mm),並已有對該核心板的二次開發經驗和資料;二是通過估算,該FPGA晶元完全滿足,實現本設計的精簡TCP/IP硬體協議棧所需的內部邏輯資源。三是該核心板結合DDR3,能達到10Gb(萬兆)的讀寫數據帶寬,為本課題中,對精簡TCP/IP硬體協議棧的,最高傳輸速率的測試,提供了良好的條件。

本課題的軟體設計平台如前所述,使用Verilog HDL硬體描述語言,並選用Xilinx公司的設計綜合軟體ISE開發套件等進行研究與設計。

2.2硬體測試平台

結合已有的項目經驗和條件,以FPGA為中心,使用cadence軟體進行測試載板的PCB設計,下面將結合已完成的某軍工項目,「多通道綜合測試設備研製」(以下簡稱「多通道」),對本課題的最終硬體測試平台做初步的設計。

在「多通道」項目中,主要從成本控制和研發周期來考慮,所以採用了FPGA+W5500的TOE技術進行了方案設計。最後成功地完成了設備的製作,較好地達到了項目要求。

「多通道」項目是典型的高頻率(200KHz)採樣、多通道(64通道)、高精度(18位AD)採集傳輸系統,並且需採用TCP/IP協議進行數據可靠傳輸。可以計算,該設備每秒採集230.4Mb的數據,即數據傳輸帶寬已遠遠超過了百兆乙太網。而基於FPGA和W5500的TOE技術實現的TCP/IP傳輸系統,最高只支持100M乙太網傳輸。所以在「多通道」項目中,未能實現「實時傳輸」的要求,而是使用了NAND Flash對數據進行預存儲,然後再「緩慢」地進行TCP/IP傳輸。

正是結合「多通道」項目存在的問題,和對相關文獻的閱讀與研究,促成了本課題方案的提出。因此本課題的硬體測試平台,將會大量借鑒「多通道」項目的經驗和成果,在其基礎上進行改進、研究與設計。

2.3軟體測試平台

軟體測試平台初步擬用「TCP&UDP測試工具」和功能強大的Wireshark軟體進行輔助測試。隨著課題的成熟,將會進一步使用VS2015開發工具,針對特定的系統功能,設計專用的測試軟體。

軟體測試平台對於本課題,只作測試和驗證使用,不關係本課題核心內容,在此不做贅述。

(2)可行性分析

本課題結合前期大量的工作和成果,具備以下可行性條件。

1)前期已在某項目中對TCP/IP協議的整個架構進行了充分的學習和理解,並有TCP/IP協議棧的嵌入式開發、移植經驗,具備對TCP/IP協議的認知。

2)通過前期參與「多通道綜合測試設備研製」項目,採用了基於FPGA和W5500的TOE技術實現TCP/IP硬體協議棧的方案,充分對Verilog HDL硬體描述語言,和TCP/IP協議棧的工作方式,有了深入的理解,為本課題的實現,提供了充足的準備工作。

3)本課題有實際項目的需求作為牽引,有一定的研究經驗積累,並且課題成果在直升機風洞實驗與高鐵路基設備檢測中均具有迫切需求。

4)通過對國內外相關文獻的研讀,國外已有類似針對特定應用環境的硬體協議棧研究,可以為本課題的實施提供一定的借鑒。

3.本項目的創新之處

本課題創新之處主要在於以下幾點:

1)通過硬體邏輯實現的TCP/IP協議棧,不僅具有非常高的數據處理速度,還具有功耗低、面積小、實時性好、可靠性高等優點。

闡述:將TCP/IP協議以硬體描述的形式,設計於FPGA晶元內部。

①對比基於CPU軟體實現的TCP/IP協議棧,FPGA本身特性具備高速並行處理的優點,讓本課題設計的數據傳輸帶寬大、處理速度快、功耗降低並且具備實時性要求。

②對比FPGA+TOE技術,不再使用W5500等額外的晶元,大大節省了印製電路板的空間,為體積要求高的系統提供了良好的方案。

2)將TCP/IP協議進行精心裁剪,對其協議棧進行硬核代碼實現,有效地縮短設計周期,減小研究開銷,並且具有較高的靈活性、適配性、維護性等,可以搭配多種通信系統平台進行功能實現和運行。

闡述:基於FPGA的硬體描述實現,本身具備較高的難度。再加上TCP/IP協議的複雜性,讓本課題的實現難度大大增加。使用精心裁剪TCP/IP協議的方案,是本課題的創新點之一,既減輕了設計複雜度,又提升了可行性、維護性等良好性能。合理的裁剪,可以提升該設計的靈活性、通用性等性能。

3) 基於FPGA的硬體開發環境,可以針對實際的網路需求適配多種型號的FPGA晶元,並且可以將課題中,實現的高效通用功能模塊封裝成IP核,易於使用和推廣。

闡述:擁有先天優勢的FPGA,在現代設計應用中日益繁榮,具有非常廣闊的前景。將本課題的核心功能模塊封裝成IP核,有利於技術的使用和傳播,從而推進通信技術的發展。

4.預期研究進展

本課題圍繞,基於FPGA的TCP/IP硬體協議棧,進行研究與設計,並且重點關注其實時、高速、可靠等性能。研究進展大致分配如下:

(1)2018.4.2-2018.4.30:

對本課題重難點,進行更深入的調研,初步設計最佳的實現方案,並對後續工作,進行細緻的規劃。

(2)2018.5.1-2018.8.30:

對方案進行模塊劃分,使用Verilog HDL硬體描述語言,對各個子模塊編寫程序,進行模擬測試,基本完成精簡TCP/IP硬體協議棧的設計。

(3)2018.9.1-2018.12.30:

針對TCP傳輸特點,加入傳輸優化演算法;綜合所有模塊,模擬測試完成最終的頂層模塊設計,並進行板級驗證。

(4)2019.1.1-2019.2.28:

對課題設計深入進行研究和優化,進行萬兆乙太網測試等,提取相關核心技術,撰寫並發表三大檢索論文,並申請發明專利。

5.預期成果

發表三大檢索論文1至2篇;申請發明1項。

三、研究基礎

與本項目有關的研究工作積累和已取得的研究成果

(1)長期研讀積累通信相關的知識,對《計算機網路》、《TCP/IP詳解》系列書籍,進行了細緻的學習和理解。

(2)作為主研人員,參與了基於FPGA的「旋翼槳葉壓力前置採集系統」項目,該項目中,極大地培養了硬體邏輯設計的技能,為本課題提供了良好的設計基礎。

(3)作為主研人員,參與了基於FPGA和W5500的TOE技術的「多通道綜合測試設備研製」項目,可為本課題中的TCP/IP協議棧設計,及硬體描述實現提供了參考與借鑒。

這是我的2018年創新基金申請原文,涉及較深的專業知識(即標題相關的專業知識),大家可能覺得很晦澀。所以在此呢,只是作為一個學術分享,感興趣的朋友可以看一下。

這是我熬夜多次,屢次修改的成果,雖然其中還有很多不足,並通過實踐發現了許多不足,但我會繼續努力,慢慢去改正的。

很高興最後通過了申請,實現一心愿。我相信,越努力越幸運。

希望閱讀本文的你,能體會到,學術的嚴謹,科研的辛苦,以及筆者的用心,謝謝大家。

謝謝那麼好看的你,能來閱讀~


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 王小Willian的日常 的精彩文章:

TAG:王小Willian的日常 |