在现代嵌入式软件工程中,网络协议栈的作用简直无法被高估。事实上,大量的设备在今天的市场环境中被贴上了“智能”的标签,而这些设备的智能性,很大程度上是基于它们能够连接到互联网的能力。
为了使自己的嵌入式平台实现网络连接,通常需要选择一款合适的网络协议栈软件。虽然在某些情况下也会使用硬件实现的网络协议栈,但它们往往在功能上相对有限。
尝试从头开始编写一个软件网络协议栈对于绝大多数开发者而言可谓是一项庞大的任务,尤其是当考虑到已经有许多成熟、高效的开源网络协议栈可供选用的时候。在绝大多数情况下,重复开发一个已经存在的成熟协议栈并不是一个经济高效的决策。
那么,今天就由我,跟各位分享四个在嵌入式领域中广泛使用的网络协议栈,它们已经被证明在各种应用中都十分有效和可靠。
LWIP
lwIP 是一个非常流行的开源 TCP/IP 协议栈,最初是在瑞典计算机科学研究所的计算机和网络架构实验室联合开发,它专门为嵌入式系统设计,具有低内存占用和高效率的特点。
lwIP是TCP/IP协议的一个小型独立实现,重点是减少RAM的使用,同时仍然具有全规模的TCP。这使得lwIP适用于具有数十千字节空闲RAM和大约40千字节代码ROM空间的嵌入式系统。
同时其具有TCP、UDP、IP、ICMP、ARP、DNS、SNMP、DHCP等协议的支持,并且易于移植到各种操作系统和处理器体系结构上。目前在非常多的物联网模块或者嵌入式操作系统重都有广泛的应用。
uIP
uIP协议栈是专为8/16位的嵌入式微处理器设计的小型TCP/IP协议栈。
去掉了TCP/IP一些不常用的功能,采用BSD授权,遵循RFC标准,完全由C语言编写。
它以库函数的形式提供给嵌入式 Internet 应用开发人员,并采用了一种基于事件驱动的程序模型(说白了就是不断地去轮询),并且还不使用动态内存,都是共用同一个缓存区,基本上不存在数据的copy,从而大大减少了代码容量和 RAM 的占用量,在单片机中Flash和RAM都占用比较小。
可以说,在51单片机上运行也很丝滑。
FreeRTOS-Plus-TCP
适用于 FreeRTOS 的开源、可扩展和线程安全 TCP/IP 堆栈。
它提供了一个熟悉的基于标准 Berkeley 套接字的接口, 简单易用,便于快速学习。 高级用户还可以使用替代回调接口。
功能和RAM占用空间完全可扩展,使FreeRTOS-Plus-TCP 既适用于较小的低吞吐量微控制器, 也适用于较大的高吞吐量 微处理器。
RL_TCP net
RL-TCPnet 组件来自于 RL-ARM 库,而RL-RAM又是Keil MDK自来的实时运行库,RL-TCPnet 是一个TCP/IP 协议协议栈。该堆栈旨在减少内存使用量和代码大小。这使得它适用于资源有限的嵌入式系统设备。
RL-TCPnet 库是ARM7、ARM9、Cortex-M3等软件架构的底层思实现软件。
用户应用程序使用标准 C 结构编写,并且使用 ARM 编译器编译,并且其中已经集成了web服务器、SMTP发客户端、SNMP Agent、DNS解析等高层应用,且稳定性还是挺不错的。
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !