今天小编给大家分享一下FPGA千兆网TCP通信是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
首先通过上面的简单分析,我们应该很清楚一件事:TCP协议很复杂,光握手过程就需要“三次握手、四次挥手”的复杂过程,不是特别适合FPGA的纯逻辑实现,因为用FPGA实现以太网通信的主要目的就是进行低延时的传输数据,而一旦设计规模达到一定量级,FPGA实现通信的优势便不复存在,转而体现出“性价比”低的劣势。
难道利用TCP协议进行通信就不可实现吗?答案当然是否。因为现在各大厂商都会在自己芯片内部增加软核和硬核,而利用软核和硬核来实现以太网通信也是目前使用比较广泛的方式,但是并不是所有的TCP协议都适合软核或者硬核实现,接下来就简单介绍比较简单的TCP/IP协议栈lwIP (A Lightweight TCP/IP stack)。
首先看下LwIP的网络模型,这样就会有个整体概念,如下图所示:
图8‑16 LwIP模型
UDP/IP模型后面会详细介绍,这张图片也没有很特殊的东西,主要对LwIP有个整体的概念。
LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40K左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。LwIP 具有三种应用编程接口 (API):
Raw API:为原始的 LwIP API。它通过事件回调机制进行应用开发。该 API 提供了最好的性能和优化的代码长度,但增加了应用开发的复杂性。
Netconn API:为高层有序 API,需要实时操作系统 (RTOS)的支持 (提供进程间通讯的方法)。 Netconn API 支持多线程工作。
BSD Socket API:类似 Berkeley 的套接字 API (开发于 Netconn API 之上) 。
对于以上三种接口,前一种只需要裸机即可调用,后两种需要操作系统才能调用。所以据此LwIP存在两种移植方式:一是,只移植内核,此时应用程序的编写只能基于RAW/Callback API进行。二是,移植内核和上层API,此时应用程序编写可以使用3种API,即:RAW/Callback API、Sequential API和Socket API。
以上就是“FPGA千兆网TCP通信是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。