你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32H7当前主流的小型嵌入式网络协议栈

[复制链接]
STMCU小助手 发布时间:2022-1-1 20:00
1.1   当前主流的嵌入式网络协议栈
当前主流的小型嵌入式网络协议栈主要有:uIP,LwIP,embOS/IP,uC/TCP-IP,FreeRTOS-TCP,Cyclone TCP,RL-TCPnet和ThreadX NetXDUO。当然,还有其它的网络协议栈,只是不被我们所知,这里把前面说到的其中几款协议栈进行简单的介绍。另外,物联网系统Contiki和Mbed OS也进行了介绍。

1.2   uIP网络协议栈介绍
uIP主要用于8位和16位微控制器的小型嵌入式网络协议栈。最初,uIP 网络协议栈由瑞典计算机科学院的Adam Dunkels 开发,其源代码由C 语言编写,并完全开源。

uIP协议栈最大的优势就是短小精悍,Flash和RAM需求小,去掉了完整的 TCP/IP 中不常用的功能,简化了通讯流程,但保留了网络通信必须使用的协议,重点放在了 IP/TCP/ICMP/UDP/ARP 这些网络层和传输层协议上,保证了其代码的通用性和结构的稳定性。


1.3   LwIP网协议栈介绍
LwIP也是瑞典计算机科学院的Adam Dunkels 开发的开源TCP/IP协议栈。

LwIP属于小型嵌入式网络协议栈,有无操作系统的支持都可以运行。LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40KB左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。LwIP协议栈主要关注的是怎样减少内存的使用和代码的大小,这样就可以让LwIP适用于资源有限的小型平台。

LwIP的特点如下:

  支持的协议
IP, ICMP, UDP, TCP, IGMP, ARP, PPPoS, PPPoE, DHCP client, DNS client, AutoIP/APIPA (Zeroconf), SNMP agent。

  API接口函数

提供专门的内部回调接口(Raw API),用于提高应用程序性能以及可选择的BSD Socket API (在多线程情况下使用) 。

  扩展功能

通过多个网络接口进行IP转发,TCP拥塞控制,RTT估算和快速恢复/快速重传机制。

  应用层的支持

HTTP server, SNTP client, SMTP client, ping, NetBIOS nameserver。

1.4   Contiki物联网系统介绍
Contiki的内核以及大部分的核心功能也是由瑞典计算机科学院的Adam Dunkels开发。

Contiki是一个小型的,开源的,易移植的多任务系统。可用于内存受限的网络系统,支持在各种平台上运行。Contiki最强大的还是它的网络功能,提供了强大的低功耗互联网通信,Contiki支持完整标准的IPv6和IPv4以及近几年新出的低功耗无线标准:6lowpan,RPL,CoAP。 如果使用Contik 的ContikiMAC和可休眠的路由器功能,即使是无线路由器也可以使用电池供电。

根据Contiki官方的说明,当前的定位就是:开源的物联网系统,将低成本、低功耗的设备连接到网络,通过强劲的网络功能来构建复杂的无线网络。

  作者Adam Dunkels
由前面的介绍,我们了解到uIP,LwIP和Contiki的作者都是他,所以我们有必要了解下。

1.5   embOS/IP网络协议栈介绍
embOS/IP是SEGGER出品的高性能小型网络协议栈,已经针对速度、功能和占用空间进行优化,纯C编写,几乎可以用于任何CPU上。它是作为embOS实时操作系统中间件存在的。

embOS/IP的功能特性如下:

  含有类似ANSI C 中socket.h的头文件,如果一个应用程序是用标准C Socket编写的,那么使用embOS/IP将极其方便移植。
  高性能。
  代码容量小。
  简单易用。
  无需配置。
  用于多任务环境的话,可以跟任何RTOS一起使用。
  支持超快性能的零数据复制。
  标准的Socket接口。
  支持原始Socket。
  所有函数都有非阻塞版本。
  连接数量仅受内存容量限制。
  数据包重组。
  驱动代码支持大部分常见的设备。
  运行时可配置。
  支持PPP/PPPOE。
  支持各种上层协议。
  支持大部分常用MCU自带MAC和外置MAC。


具体支持协议和功能如下:

0ac07a9bf9596c5d0342454f1268e33a.png



1.6   uC/TCP-IP网络协议栈介绍
uC/TCP-IP是Micrium发布的小型协议栈,这个协议栈不像uCOS那么多人去使用,因为源码是不开源的,所以相比uCOS来说,研究uC/TCP-IP的人非常少。

不过从2017年开始,Micrium推出了傻瓜式图形开发平台Platform Builder,打算全面推广uCOS及其所有中间件,以后应该会有不少人去用。

uC/TCP-IP支持的功能如下:

073cf046bfc25f3afcb3d62c44176604.png


更多uC/TCP-IP相关的知识可以上其官网。另外,uCTCP/TCP-IP也是收费的。

1.7   Mbed OS物联网系统介绍
Mbed OS是ARM官方这两年新推出的,发展迅猛,是一种专为物联网 (IoT) 中的设备而设计的开源嵌入式操作系统。该操作系统非常适合涉及智能城市、智能家庭和穿戴式设备等领域的应用程序。

Mbed操作系统在微控制器上属于Mbed IoT设备的客户端部分,专为Mbed设备连接器、Mbed设备服务器和 Mbed客户端配合使用而设计。总的来说,这一平台提供了全面的 IoT 解决方案,从驱动、开发环境、软件、开发工具到物联网云端的一条龙服务,以便能够大规模创建和部署IoT 设备。

Mbed支持以太网,WiFi,IPv6,6LoWPAN和Bluetooth Low Energy (BLE)。

1.8   FreeRTOS-TCP网络协议栈介绍
FreeRTOS-TCP网络协议栈是FreeRTOS官方在2016年年初发布的,也是开源免费的,有兴趣可以研究下

当前支持的功能如下:

f7b990e6a2d6681ebe87315637d09995.png


FreeRTOS-TCP的手册在网站的左侧列表上,比LwIP的文档好很多。

4cbef603448816a868d571d0a798c62a.png


1.9   Cyclone TCP网络协议栈介绍

Cyclone TCP是开源的,功能齐全,整体框架如下:

51c84059ae786fd560dcf8c369bd63c8.png


支持的安全连接方式:

99dc8ec25ed57050f1c7b29ad587d57c.png


各种加密应有尽有:

bcdf2c3eb7188b71575e4fe50b031294.png


一般我们可以使用开源免费版的GPLv2授权方式:

e712fdfa2ce1b6671bb4afd5dd6568d6.png


1.10 RL-TCPnet网络协议栈介绍
RL-TCPnet是KEIL发布的,功能也比较全面,而且抗网络攻击通过 Achilles Level 1认证。

8cc565587c14b1699a8f0b31c053a45f.png


1.11 ThreadX NetXDUO网络协议栈
ThreadX的网络协议栈对其它网络协议栈几乎是碾压性优势。一张图,几乎涵盖了我们日常项目大部分应用:

a201b9229dd0af01394e8f25b3776a96.png


各个行业的安全认证:

42754f51e87a89c2669fba777e76b4bb.png


物联网协议方向安全认证:

fe23c0384c0669dea577777c18b16637.png


加密库也做了认证:

fa9e0ff69ad0b0a77c56e96e8a60d37b.png


1.12 总结
本章主要为大家讲解了几款主流的嵌入式网络协议栈,让大家对当前的小型嵌入式网络协议栈有一个整体的了解,关于这几款嵌入式协议栈的更多知识可以上其官网进行了解和学习。



收藏 评论0 发布时间:2022-1-1 20:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版