您好,登錄后才能下訂單哦!
今天小編給大家分享一下FPGA千兆網(wǎng)TCP通信是什么的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
首先通過上面的簡單分析,我們應(yīng)該很清楚一件事:TCP協(xié)議很復(fù)雜,光握手過程就需要“三次握手、四次揮手”的復(fù)雜過程,不是特別適合FPGA的純邏輯實(shí)現(xiàn),因?yàn)橛肍PGA實(shí)現(xiàn)以太網(wǎng)通信的主要目的就是進(jìn)行低延時(shí)的傳輸數(shù)據(jù),而一旦設(shè)計(jì)規(guī)模達(dá)到一定量級(jí),F(xiàn)PGA實(shí)現(xiàn)通信的優(yōu)勢(shì)便不復(fù)存在,轉(zhuǎn)而體現(xiàn)出“性價(jià)比”低的劣勢(shì)。
難道利用TCP協(xié)議進(jìn)行通信就不可實(shí)現(xiàn)嗎?答案當(dāng)然是否。因?yàn)楝F(xiàn)在各大廠商都會(huì)在自己芯片內(nèi)部增加軟核和硬核,而利用軟核和硬核來實(shí)現(xiàn)以太網(wǎng)通信也是目前使用比較廣泛的方式,但是并不是所有的TCP協(xié)議都適合軟核或者硬核實(shí)現(xiàn),接下來就簡單介紹比較簡單的TCP/IP協(xié)議棧lwIP (A Lightweight TCP/IP stack)。
首先看下LwIP的網(wǎng)絡(luò)模型,這樣就會(huì)有個(gè)整體概念,如下圖所示:
圖8?16 LwIP模型
UDP/IP模型后面會(huì)詳細(xì)介紹,這張圖片也沒有很特殊的東西,主要對(duì)LwIP有個(gè)整體的概念。
LwIP實(shí)現(xiàn)的重點(diǎn)是在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對(duì)RAM 的占用,它只需十幾KB的RAM和40K左右的ROM就可以運(yùn)行,這使LwIP協(xié)議棧適合在低端的嵌入式系統(tǒng)中使用。LwIP 具有三種應(yīng)用編程接口 (API):
Raw API:為原始的 LwIP API。它通過事件回調(diào)機(jī)制進(jìn)行應(yīng)用開發(fā)。該 API 提供了最好的性能和優(yōu)化的代碼長度,但增加了應(yīng)用開發(fā)的復(fù)雜性。
Netconn API:為高層有序 API,需要實(shí)時(shí)操作系統(tǒng) (RTOS)的支持 (提供進(jìn)程間通訊的方法)。 Netconn API 支持多線程工作。
BSD Socket API:類似 Berkeley 的套接字 API (開發(fā)于 Netconn API 之上) 。
對(duì)于以上三種接口,前一種只需要裸機(jī)即可調(diào)用,后兩種需要操作系統(tǒng)才能調(diào)用。所以據(jù)此LwIP存在兩種移植方式:一是,只移植內(nèi)核,此時(shí)應(yīng)用程序的編寫只能基于RAW/Callback API進(jìn)行。二是,移植內(nèi)核和上層API,此時(shí)應(yīng)用程序編寫可以使用3種API,即:RAW/Callback API、Sequential API和Socket API。
以上就是“FPGA千兆網(wǎng)TCP通信是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。