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

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

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

9 m+ f& x- G6 R5 Q2 ^1.2   uIP网络协议栈介绍
. |4 R1 t- q# X( t8 b0 t8 O. SuIP主要用于8位和16位微控制器的小型嵌入式网络协议栈。最初,uIP 网络协议栈由瑞典计算机科学院的Adam Dunkels 开发,其源代码由C 语言编写,并完全开源。4 a6 @1 H! W9 a0 ?8 Z& h; `0 e) ~, \
2 _& N$ x; R0 G# z" ^0 U
uIP协议栈最大的优势就是短小精悍,Flash和RAM需求小,去掉了完整的 TCP/IP 中不常用的功能,简化了通讯流程,但保留了网络通信必须使用的协议,重点放在了 IP/TCP/ICMP/UDP/ARP 这些网络层和传输层协议上,保证了其代码的通用性和结构的稳定性。
* X" G& _, r! t! I7 t% O* W! v$ }3 v! z& b3 c9 e- d
  @# W& P4 f& s5 K/ l
1.3   LwIP网协议栈介绍
2 J/ f' \% S* c! X8 g6 DLwIP也是瑞典计算机科学院的Adam Dunkels 开发的开源TCP/IP协议栈。
/ n) ]- _) E! {1 c4 m9 }+ [' d% G
7 S4 \2 s: s2 F) r5 ^LwIP属于小型嵌入式网络协议栈,有无操作系统的支持都可以运行。LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40KB左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。LwIP协议栈主要关注的是怎样减少内存的使用和代码的大小,这样就可以让LwIP适用于资源有限的小型平台。
$ U: i; P' @4 Z- h; B7 q% R
. q- K$ X* L1 E! s* R' lLwIP的特点如下:
( x0 w9 X: r& T: [  @$ f( q; U7 |, Q, [3 r$ p! s* a' P& a3 o4 T
  支持的协议
  F7 T& {, Y& ^0 v' T" WIP, ICMP, UDP, TCP, IGMP, ARP, PPPoS, PPPoE, DHCP client, DNS client, AutoIP/APIPA (Zeroconf), SNMP agent。
8 X+ U- t$ w! L% y; v; G, C# Q& W2 m9 w0 M- L( j0 L
  API接口函数& G' j4 A) F4 g4 j$ A8 F# a' ~! \
& t3 e3 [% |: x. p. Y1 J1 ?
提供专门的内部回调接口(Raw API),用于提高应用程序性能以及可选择的BSD Socket API (在多线程情况下使用) 。! f# w3 Y/ x$ U) \
; i" I% u' T' M0 m, h) j- y
  扩展功能: L/ [0 D1 a2 a) [3 j5 C7 ^5 i

3 H( x) m) R" f9 M; r2 |通过多个网络接口进行IP转发,TCP拥塞控制,RTT估算和快速恢复/快速重传机制。
  @# r6 x( A( ?: w
0 B5 a% X3 Y- m  应用层的支持
+ D# s: }! r. n9 y: ^- C, i2 X7 T* a  d8 q. ~4 ]0 }
HTTP server, SNTP client, SMTP client, ping, NetBIOS nameserver。3 g3 m+ ^3 E+ w

; R5 b" [( u3 g& M1 K+ F! R/ _1.4   Contiki物联网系统介绍3 X2 {% e% A9 i9 n+ \8 t5 f7 d- [
Contiki的内核以及大部分的核心功能也是由瑞典计算机科学院的Adam Dunkels开发。
' @, }! N" h$ l5 s1 K( J7 A
, p& q* J  T" i1 C; p, J) ZContiki是一个小型的,开源的,易移植的多任务系统。可用于内存受限的网络系统,支持在各种平台上运行。Contiki最强大的还是它的网络功能,提供了强大的低功耗互联网通信,Contiki支持完整标准的IPv6和IPv4以及近几年新出的低功耗无线标准:6lowpan,RPL,CoAP。 如果使用Contik 的ContikiMAC和可休眠的路由器功能,即使是无线路由器也可以使用电池供电。# Y9 _  ~4 ?2 |5 g' `

+ M% `  D0 a5 k' D根据Contiki官方的说明,当前的定位就是:开源的物联网系统,将低成本、低功耗的设备连接到网络,通过强劲的网络功能来构建复杂的无线网络。2 \3 Y' d% C! ?& b7 D
' p( Z1 c9 h4 @  a9 H# y
  作者Adam Dunkels
( k7 ?* m$ f; x  i9 x  n由前面的介绍,我们了解到uIP,LwIP和Contiki的作者都是他,所以我们有必要了解下。1 y& U2 G) I, m, N6 a6 x' F
$ B& f4 m( a& P8 L" c! O9 U" J
1.5   embOS/IP网络协议栈介绍
0 M. b8 ^( B6 j+ X# ~embOS/IP是SEGGER出品的高性能小型网络协议栈,已经针对速度、功能和占用空间进行优化,纯C编写,几乎可以用于任何CPU上。它是作为embOS实时操作系统中间件存在的。
) e1 n* a& n/ E# w, r3 `/ j0 V2 f% I( m$ f0 x5 m& v
embOS/IP的功能特性如下:
. _6 v" p3 |( o% J$ M- K
. R/ q0 n" B" u* R1 L  含有类似ANSI C 中socket.h的头文件,如果一个应用程序是用标准C Socket编写的,那么使用embOS/IP将极其方便移植。# X/ v# u1 v" O: {5 ^* _( w
  高性能。
$ C+ r! C- h" Q! `1 [& g4 {  代码容量小。
% _- H) f, N! t5 k$ }) R2 v  简单易用。! s9 L% b5 I! O
  无需配置。! R  G* M7 p; _1 w
  用于多任务环境的话,可以跟任何RTOS一起使用。
6 m7 D/ W1 Z2 y3 @* ~9 A9 Y  支持超快性能的零数据复制。* N1 I) w' Z; z- @; f! y
  标准的Socket接口。
, v2 q7 f7 r/ n: K( {' U; \  支持原始Socket。  i2 ^" q- Y: W8 @: \% v; ^" |
  所有函数都有非阻塞版本。  y% H1 O' G1 z/ o) w9 }7 B
  连接数量仅受内存容量限制。' T5 A+ `/ t1 C
  数据包重组。
# y, f1 N" F. u" ]7 Z& b/ @  驱动代码支持大部分常见的设备。- `+ a6 l: k$ y0 U# u, p* f" n* ]
  运行时可配置。# Y1 p+ N* K9 U2 B
  支持PPP/PPPOE。
. T3 v( n0 D( H' O+ |) {2 D8 \/ Q  支持各种上层协议。8 W. v: ~- C: ], w: O2 o3 L
  支持大部分常用MCU自带MAC和外置MAC。
8 n" C5 m) P0 P) S& G
$ _: h, d0 K" S6 _" |2 X5 D) c. D' E6 B' v' P, R: h  x
具体支持协议和功能如下:
3 G# M/ |- F( M
$ ?) ^! m+ G( C& e& ~
0ac07a9bf9596c5d0342454f1268e33a.png
* {, c7 {4 s2 }

1 G4 f, g: f! T! t( J( }/ z# \7 ]) O( Y
1.6   uC/TCP-IP网络协议栈介绍
$ U( x7 l8 E$ ~uC/TCP-IP是Micrium发布的小型协议栈,这个协议栈不像uCOS那么多人去使用,因为源码是不开源的,所以相比uCOS来说,研究uC/TCP-IP的人非常少。
7 S4 ~( k0 N4 o, ~! B! i9 M- R6 E& @  G' a5 p5 L  u8 I6 t. Y
不过从2017年开始,Micrium推出了傻瓜式图形开发平台Platform Builder,打算全面推广uCOS及其所有中间件,以后应该会有不少人去用。; z3 |6 [+ A" i1 d  G4 i
2 Q& I3 L! i, q. b
uC/TCP-IP支持的功能如下:
. G8 H% p  p# x1 R# b8 `
; L9 @) ]$ x( C5 F: [$ l. e) [: S
073cf046bfc25f3afcb3d62c44176604.png
: ?% u7 t( A/ O1 y& S/ A5 _! H

* Z/ u9 J! n4 |& |9 _7 ^更多uC/TCP-IP相关的知识可以上其官网。另外,uCTCP/TCP-IP也是收费的。8 I9 i* i# n( Q% t% ]
9 r& u$ [/ I% }# b, i& x$ [
1.7   Mbed OS物联网系统介绍
8 c6 C; r% @$ \7 cMbed OS是ARM官方这两年新推出的,发展迅猛,是一种专为物联网 (IoT) 中的设备而设计的开源嵌入式操作系统。该操作系统非常适合涉及智能城市、智能家庭和穿戴式设备等领域的应用程序。
" R; a/ I) e0 F0 `& `2 G" @( _9 a; S9 ?7 P3 F9 ~& G  C
Mbed操作系统在微控制器上属于Mbed IoT设备的客户端部分,专为Mbed设备连接器、Mbed设备服务器和 Mbed客户端配合使用而设计。总的来说,这一平台提供了全面的 IoT 解决方案,从驱动、开发环境、软件、开发工具到物联网云端的一条龙服务,以便能够大规模创建和部署IoT 设备。/ w; U5 y7 |6 |3 J  n
% p" v" |- y* ]) }. F
Mbed支持以太网,WiFi,IPv6,6LoWPAN和Bluetooth Low Energy (BLE)。9 i$ n* a  ?; y6 G" h

* v2 b* o# \1 g4 r$ R! X1.8   FreeRTOS-TCP网络协议栈介绍
9 }6 x5 h% A3 w8 b$ o! z: UFreeRTOS-TCP网络协议栈是FreeRTOS官方在2016年年初发布的,也是开源免费的,有兴趣可以研究下
2 M' @& o: ?( @) y
: R; F1 ?( a6 Y0 w. y当前支持的功能如下:# u/ y4 }# e! w% e  l

9 j4 L2 D) n9 I4 G1 [7 i% @
f7b990e6a2d6681ebe87315637d09995.png

6 H6 r6 S1 j7 \/ K
9 h* i  s" v3 P. N0 \FreeRTOS-TCP的手册在网站的左侧列表上,比LwIP的文档好很多。* j; N+ l: N, Z" ^/ b

( S) t* q: ]" V) r* |2 c/ D
4cbef603448816a868d571d0a798c62a.png

% U( J# e8 y! f: ^1 Y
9 j1 b9 g7 h0 S  P1.9   Cyclone TCP网络协议栈介绍4 Q  d7 s' F, I& ~
( T+ l8 J% s( V( S/ g! z, u! u" |, m
Cyclone TCP是开源的,功能齐全,整体框架如下:
) I* s3 Q6 z, y- |7 L4 v. K8 l: J& v* U- A8 p! H) d* I3 w2 @( }
51c84059ae786fd560dcf8c369bd63c8.png
" x# J( U& w5 j% j1 I9 ~

9 i! L8 h2 A1 L% B支持的安全连接方式:& y: z2 @2 d! v; @  w0 Z' U* r' o

0 R8 J% k) k; J( d. w
99dc8ec25ed57050f1c7b29ad587d57c.png
: i( v) d9 S. o- G1 Y

! h2 t7 X/ M5 B2 t% t各种加密应有尽有:
  T, s2 z7 t2 T1 l) j  q, e$ w, n, d
bcdf2c3eb7188b71575e4fe50b031294.png

& b) d  c9 q  ?0 }- h4 t% |7 e- V0 W+ B/ ?. R) z6 C
一般我们可以使用开源免费版的GPLv2授权方式:
! ]8 |3 u! D8 j6 }6 H: s+ r* f1 y
e712fdfa2ce1b6671bb4afd5dd6568d6.png

1 v. l/ i) L& O) n- @0 n
; h: d' l9 M. O% U1.10 RL-TCPnet网络协议栈介绍) y$ \3 t' H* ^
RL-TCPnet是KEIL发布的,功能也比较全面,而且抗网络攻击通过 Achilles Level 1认证。2 E3 r3 J+ e% I! C- ]
# l8 J1 e9 ~: m  A& F  b9 d
8cc565587c14b1699a8f0b31c053a45f.png

8 v) e% T# Z. a. Q& i& t! @# f
  q1 y3 |  Y2 a" Z3 K; @1 D. e1.11 ThreadX NetXDUO网络协议栈
& X) g3 O, l9 u# M  @7 m, t# x$ WThreadX的网络协议栈对其它网络协议栈几乎是碾压性优势。一张图,几乎涵盖了我们日常项目大部分应用:
( h3 u3 z4 s* E( ?
/ ^% J# U" V0 a0 ~& J' C! W& A
a201b9229dd0af01394e8f25b3776a96.png

% g( ~: `, z- k- p/ Q# l/ @, n% w% \' ?  ^9 ~  s) m, Y
各个行业的安全认证:
; l# ?: y0 X5 t8 \
. d1 T5 U9 A% A0 Y
42754f51e87a89c2669fba777e76b4bb.png
5 s% S: \8 O- s3 y% ?  {

$ h/ L4 D( f6 C; N+ U0 h物联网协议方向安全认证:
$ W" j% m8 I0 Y* O6 v6 `1 C
6 ~3 m% p6 @! P4 {8 b0 O( a
fe23c0384c0669dea577777c18b16637.png

5 B+ h  j: V# p' P
1 M# W9 U  ^3 V2 F8 E9 @+ l加密库也做了认证:
$ y' W& ~4 F7 n/ P2 Y1 F1 z$ N/ l6 Q- C& @( E4 W
fa9e0ff69ad0b0a77c56e96e8a60d37b.png

% Q( @3 p7 K8 Y. p8 x  u# H* [
) j" I, `7 l5 H4 u, \1.12 总结
+ S* W! U. b$ z& ~( j  V& @本章主要为大家讲解了几款主流的嵌入式网络协议栈,让大家对当前的小型嵌入式网络协议栈有一个整体的了解,关于这几款嵌入式协议栈的更多知识可以上其官网进行了解和学习。
. |  J+ a1 t& `: Q4 B, J7 ^. f- \; H! C$ j5 z& B" ~' i
# \3 ?& z7 p9 Q$ |: E4 [
5 O* c% d. \( `4 e4 q- D) c6 B
赞 收藏 评论0 发布时间:2022-1-1 20:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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