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

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

[复制链接]
STMCU小助手 发布时间:2022-1-1 20:00
1.1   当前主流的嵌入式网络协议栈- m* V9 n8 \0 H; _
当前主流的小型嵌入式网络协议栈主要有:uIP,LwIP,embOS/IP,uC/TCP-IP,FreeRTOS-TCP,Cyclone TCP,RL-TCPnet和ThreadX NetXDUO。当然,还有其它的网络协议栈,只是不被我们所知,这里把前面说到的其中几款协议栈进行简单的介绍。另外,物联网系统Contiki和Mbed OS也进行了介绍。
6 v0 |2 F1 I  q6 w7 C4 X
  p3 m3 U% ~7 R+ J, f5 ~1.2   uIP网络协议栈介绍
" A0 n7 q- l+ V1 H- F: BuIP主要用于8位和16位微控制器的小型嵌入式网络协议栈。最初,uIP 网络协议栈由瑞典计算机科学院的Adam Dunkels 开发,其源代码由C 语言编写,并完全开源。* \4 e+ @4 d! F# W* G8 p

$ ]+ @( w" w8 i" QuIP协议栈最大的优势就是短小精悍,Flash和RAM需求小,去掉了完整的 TCP/IP 中不常用的功能,简化了通讯流程,但保留了网络通信必须使用的协议,重点放在了 IP/TCP/ICMP/UDP/ARP 这些网络层和传输层协议上,保证了其代码的通用性和结构的稳定性。4 x6 {2 c9 [' A& d+ x9 f( d' ~" H
. Y/ W3 i4 C1 {* A4 h

' W1 b) q+ W3 l1 C6 p1.3   LwIP网协议栈介绍  {' n4 {6 n& C) |: U5 x- X
LwIP也是瑞典计算机科学院的Adam Dunkels 开发的开源TCP/IP协议栈。* N2 @5 {0 A& E, Y9 J4 @2 y

( s+ E/ ^3 G" c9 L6 rLwIP属于小型嵌入式网络协议栈,有无操作系统的支持都可以运行。LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40KB左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。LwIP协议栈主要关注的是怎样减少内存的使用和代码的大小,这样就可以让LwIP适用于资源有限的小型平台。
6 L8 L: w. L1 i4 j( H  [
# C# z; L; k/ L# E0 P" Q7 ]3 v3 }LwIP的特点如下:3 J# A) y( J2 a* Y' n% o

( }7 i6 h% B3 U% o  支持的协议  V* C9 v" E. W
IP, ICMP, UDP, TCP, IGMP, ARP, PPPoS, PPPoE, DHCP client, DNS client, AutoIP/APIPA (Zeroconf), SNMP agent。3 Z* Q1 b6 o$ y2 ?+ v% H6 U
- M) \5 j) }, X& y
  API接口函数
2 q7 W$ d5 E; \
+ g6 i) Z: W/ x. g7 s提供专门的内部回调接口(Raw API),用于提高应用程序性能以及可选择的BSD Socket API (在多线程情况下使用) 。2 Y2 p/ z4 u- a: M# p
, S2 Y$ Z- e' a2 Y6 T
  扩展功能
; T% s, Q: I1 R+ K: ~3 P. i6 h( F% p  y3 D/ A
通过多个网络接口进行IP转发,TCP拥塞控制,RTT估算和快速恢复/快速重传机制。4 b- P& f  Q8 z

+ Q+ y; p6 \" I" q, {  应用层的支持
, T) o0 Q. M2 `3 [1 u* b0 Y, r, |+ I; @0 t# c
HTTP server, SNTP client, SMTP client, ping, NetBIOS nameserver。! B8 k# ]/ p4 ^7 ~4 r

' B$ j$ n% C  K1 u* A1.4   Contiki物联网系统介绍
' D6 Q+ w% V& f% [Contiki的内核以及大部分的核心功能也是由瑞典计算机科学院的Adam Dunkels开发。0 U% e( c, F: W+ r& u; F

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

4 e7 S  h: u& _; y6 L! Q1 ?0 X$ z根据Contiki官方的说明,当前的定位就是:开源的物联网系统,将低成本、低功耗的设备连接到网络,通过强劲的网络功能来构建复杂的无线网络。
5 e, S. B' a- o' s' ~( q
3 j' X8 X' i- y( {* I4 d2 h  作者Adam Dunkels2 g# K# n1 m5 i- Y
由前面的介绍,我们了解到uIP,LwIP和Contiki的作者都是他,所以我们有必要了解下。
) f+ T& t4 J+ z4 N. J3 A& L6 Q4 w
4 i; ?* ]* b# ~; L7 ^& r8 q! `1.5   embOS/IP网络协议栈介绍
( k* e' c) f: ~: V% YembOS/IP是SEGGER出品的高性能小型网络协议栈,已经针对速度、功能和占用空间进行优化,纯C编写,几乎可以用于任何CPU上。它是作为embOS实时操作系统中间件存在的。
' X1 e! v+ I: p' C) L
3 _& `/ Q8 p* V* @& i: i) ~embOS/IP的功能特性如下:
9 m7 \5 O1 K$ X9 v. m0 U* U
, g% P! n* V; r0 A. a* s& D$ M  含有类似ANSI C 中socket.h的头文件,如果一个应用程序是用标准C Socket编写的,那么使用embOS/IP将极其方便移植。8 N' Y. U  G1 G. X$ z3 N
  高性能。
- _+ X7 W, B/ f( @$ @& ^4 b  代码容量小。5 b) F# c9 X+ J- y. \
  简单易用。
: H" X! b0 s1 p- V+ p( F  无需配置。
9 [- |9 K2 S; w4 M, ~  用于多任务环境的话,可以跟任何RTOS一起使用。
9 z3 v( E! K+ @6 q6 c  支持超快性能的零数据复制。
$ C  h3 @4 i. B& x  标准的Socket接口。8 k. {& I  n1 h. h
  支持原始Socket。- G# w; x" Q" b" E1 t4 {% l
  所有函数都有非阻塞版本。
8 z- c1 |% R6 h8 ]- }  连接数量仅受内存容量限制。9 e  H, U9 X$ e4 G( s0 L" X1 n) U
  数据包重组。  K. c" F$ [0 P$ M
  驱动代码支持大部分常见的设备。
2 H" |& K& U  `7 R, {: V2 W  运行时可配置。
5 W  E! S2 ^2 `6 ?  支持PPP/PPPOE。* |3 w8 i9 E) P" H
  支持各种上层协议。  e8 {8 l7 N& z- F% G5 _8 A7 f
  支持大部分常用MCU自带MAC和外置MAC。/ ]4 w) P2 o5 U8 \
! C! F" B4 I# ~; J, S0 }* @
0 S" x$ X% i) F/ r; y( G
具体支持协议和功能如下:
. d  F- }9 O6 @% N4 W/ C
3 ^5 e/ H, Z" I. p/ a- w& h8 }
0ac07a9bf9596c5d0342454f1268e33a.png

3 T$ V* c- C+ j  E/ X
2 M% P" Q4 h7 L* x$ P% Y, p2 F2 D- ?: X$ g2 w3 e& \
1.6   uC/TCP-IP网络协议栈介绍
1 E4 G* T1 \# R5 {7 i; \( HuC/TCP-IP是Micrium发布的小型协议栈,这个协议栈不像uCOS那么多人去使用,因为源码是不开源的,所以相比uCOS来说,研究uC/TCP-IP的人非常少。
+ L1 H9 D1 J7 q9 y3 R/ e; c
! a, p1 X5 c) I, p: F; J不过从2017年开始,Micrium推出了傻瓜式图形开发平台Platform Builder,打算全面推广uCOS及其所有中间件,以后应该会有不少人去用。3 r3 _, M' N/ d+ ~: @
* ?& g) ]( d$ \' v/ o* L5 b3 d* N) F
uC/TCP-IP支持的功能如下:
- W/ G# B8 K# @7 p8 [! z( ]/ C7 P% o  @
073cf046bfc25f3afcb3d62c44176604.png

4 A7 |4 c& X+ @$ T
- X- ]0 Y' F, k8 H# Z更多uC/TCP-IP相关的知识可以上其官网。另外,uCTCP/TCP-IP也是收费的。
' e) L% G, Y8 i3 k# z1 X8 z
+ U) f0 r0 n% t' h  \1.7   Mbed OS物联网系统介绍
- F3 q4 s3 h/ E! R( d% wMbed OS是ARM官方这两年新推出的,发展迅猛,是一种专为物联网 (IoT) 中的设备而设计的开源嵌入式操作系统。该操作系统非常适合涉及智能城市、智能家庭和穿戴式设备等领域的应用程序。
6 H$ c& P- d5 h# H2 |+ ~
* t9 c# Z: L# F( n% r; dMbed操作系统在微控制器上属于Mbed IoT设备的客户端部分,专为Mbed设备连接器、Mbed设备服务器和 Mbed客户端配合使用而设计。总的来说,这一平台提供了全面的 IoT 解决方案,从驱动、开发环境、软件、开发工具到物联网云端的一条龙服务,以便能够大规模创建和部署IoT 设备。4 G9 }6 k" U/ G0 H0 e
6 J6 O; u  j' S9 i- \+ }
Mbed支持以太网,WiFi,IPv6,6LoWPAN和Bluetooth Low Energy (BLE)。- h# z. X: Q% K6 I7 N4 }: v5 h
/ [, N9 k9 [$ x0 ]
1.8   FreeRTOS-TCP网络协议栈介绍
; D6 T9 q% m; v5 B' j7 ?  uFreeRTOS-TCP网络协议栈是FreeRTOS官方在2016年年初发布的,也是开源免费的,有兴趣可以研究下, J9 G2 O$ k$ W. x+ r8 t& Q) M
( @; c2 I$ [$ |5 T  v
当前支持的功能如下:
3 A% T' {, w8 d0 o! Y4 E2 ^: N. y8 ?
f7b990e6a2d6681ebe87315637d09995.png
% Y6 x1 r! a% X' P
- C! i' o' s5 q  e4 X! r6 ?
FreeRTOS-TCP的手册在网站的左侧列表上,比LwIP的文档好很多。
' j7 \6 P+ Z3 Y+ Q" \3 F2 U( u% ^/ }8 k- T
4cbef603448816a868d571d0a798c62a.png

) i" d4 h- l# \" D
. h4 p, H) B0 ?2 s4 ?+ p& v9 J1.9   Cyclone TCP网络协议栈介绍1 b: H1 ?/ b- Z( R" q
9 k' t1 Z) k( }) ^, {" @
Cyclone TCP是开源的,功能齐全,整体框架如下:
% d3 H, _% D5 c/ [
+ K0 K( ?1 \' Q
51c84059ae786fd560dcf8c369bd63c8.png

+ g+ y8 {, O1 [+ [1 O+ c
- R6 P' J' l1 }& G支持的安全连接方式:
$ q  ]" d- Q8 h9 R/ F4 b% g" A& f, M) I; @0 K9 c( w
99dc8ec25ed57050f1c7b29ad587d57c.png

0 J1 _. Q4 |! I* w& s. l  y6 T6 F$ o) y  n/ I
各种加密应有尽有:
, H: n8 ^5 h. l* N* ?
+ t* a" k3 d* @2 c# ?
bcdf2c3eb7188b71575e4fe50b031294.png

( j6 W4 T1 \8 o4 E& k5 @0 O) @, v, l4 j4 L! j
一般我们可以使用开源免费版的GPLv2授权方式:' _1 S' A: h' c$ H& c3 q: o: k5 O; T0 }
# ?* s+ ^. S  O" l0 L1 J5 Y1 v. h
e712fdfa2ce1b6671bb4afd5dd6568d6.png

- P1 Z. H* S$ X
2 d9 G- x' ^7 A6 ~! t6 ^* w" I5 D1.10 RL-TCPnet网络协议栈介绍
/ P6 l. T" l6 N/ q" ?+ FRL-TCPnet是KEIL发布的,功能也比较全面,而且抗网络攻击通过 Achilles Level 1认证。
7 p7 K. M8 W7 |5 }; E' E. M; c3 I
3 [* N0 S1 }5 ^' d2 T/ C# y# x2 \. O+ \' _
8cc565587c14b1699a8f0b31c053a45f.png
" ]$ R# w, }5 y! q; M1 [4 {7 f
1 g+ ?9 }0 I" a6 k- q) [
1.11 ThreadX NetXDUO网络协议栈, G5 M0 A: \( D" P: L4 w4 u4 x8 m
ThreadX的网络协议栈对其它网络协议栈几乎是碾压性优势。一张图,几乎涵盖了我们日常项目大部分应用:. _+ A: |2 h* z7 @0 m
* e) v5 ]& P2 I9 |) V9 ]6 h
a201b9229dd0af01394e8f25b3776a96.png

# ?8 N8 f$ b# n" j/ c+ R
6 u* [, B+ L6 [2 j" K# u各个行业的安全认证:
; L, q# Z# b. o: r, J% h4 j8 N+ [
: X  }4 j) `, D# F
42754f51e87a89c2669fba777e76b4bb.png
7 i, [2 Q) c5 V
) F: O. Q. `  h. x9 O
物联网协议方向安全认证:
/ `) o* ~( q' h' g0 F8 m: t) D
% w7 Z9 w/ i- C( J4 |7 X# p
fe23c0384c0669dea577777c18b16637.png
% p: s, S1 w; K, ^

/ e( n  H0 E  L5 v4 X+ r加密库也做了认证:2 M1 F5 k( z/ ^: \$ T9 m
$ w' O  |4 j$ F, \; [
fa9e0ff69ad0b0a77c56e96e8a60d37b.png

0 O) o, T; f' d2 m  \
( q/ s0 g" L. ]" s3 ?  C1.12 总结$ |  ]5 J3 _4 w5 q8 b: C
本章主要为大家讲解了几款主流的嵌入式网络协议栈,让大家对当前的小型嵌入式网络协议栈有一个整体的了解,关于这几款嵌入式协议栈的更多知识可以上其官网进行了解和学习。3 H3 L1 F* F9 \  b% Z" `& b

: m; O0 q, P9 H0 ~3 Q9 r
5 e2 J1 [7 A, w3 l# t
% _( z( S% N5 r8 w
赞 收藏 评论0 发布时间:2022-1-1 20:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版