请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]
STMCU小助手 发布时间:2022-1-1 20:00
1.1   当前主流的嵌入式网络协议栈
$ z* p6 w, g2 ]6 k$ [" \: W8 a8 _当前主流的小型嵌入式网络协议栈主要有:uIP,LwIP,embOS/IP,uC/TCP-IP,FreeRTOS-TCP,Cyclone TCP,RL-TCPnet和ThreadX NetXDUO。当然,还有其它的网络协议栈,只是不被我们所知,这里把前面说到的其中几款协议栈进行简单的介绍。另外,物联网系统Contiki和Mbed OS也进行了介绍。
7 B  q) n3 }1 f3 O" G0 _( ?8 }% j/ I( K) {1 N2 K
1.2   uIP网络协议栈介绍
6 Q3 s' v; r" z! {4 puIP主要用于8位和16位微控制器的小型嵌入式网络协议栈。最初,uIP 网络协议栈由瑞典计算机科学院的Adam Dunkels 开发,其源代码由C 语言编写,并完全开源。& _1 @4 [- Y! ~1 c% m$ F' g
6 E3 N- L- s- q. `7 D
uIP协议栈最大的优势就是短小精悍,Flash和RAM需求小,去掉了完整的 TCP/IP 中不常用的功能,简化了通讯流程,但保留了网络通信必须使用的协议,重点放在了 IP/TCP/ICMP/UDP/ARP 这些网络层和传输层协议上,保证了其代码的通用性和结构的稳定性。8 E. Z2 U9 Z. O
4 P* Q6 N8 o; g! Q
" T9 X5 g2 b! O$ F7 D
1.3   LwIP网协议栈介绍
  o, p$ t) Q* DLwIP也是瑞典计算机科学院的Adam Dunkels 开发的开源TCP/IP协议栈。
" B; V; `4 \/ l6 v" y0 K0 o) r* w6 q# S) n: p6 e# f
LwIP属于小型嵌入式网络协议栈,有无操作系统的支持都可以运行。LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40KB左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。LwIP协议栈主要关注的是怎样减少内存的使用和代码的大小,这样就可以让LwIP适用于资源有限的小型平台。9 s1 T3 y  A8 K- M& k2 t( Q7 K
: L! h. N& e0 W6 g+ l+ ]
LwIP的特点如下:* C4 Z5 c  w4 Q2 a. t$ F7 d
! o: n  V9 ?' X  W  K8 S
  支持的协议
) s" `& }( r" j2 H+ r3 u/ z* r$ q0 g# xIP, ICMP, UDP, TCP, IGMP, ARP, PPPoS, PPPoE, DHCP client, DNS client, AutoIP/APIPA (Zeroconf), SNMP agent。
9 m' Y! U. Y$ B- v, V8 q8 X  ^
4 _; v$ ~8 U) h2 O7 W' B; H# d  API接口函数
9 P, {) r7 K' p$ w7 f0 ^, g3 W' }' P6 `( o% R
提供专门的内部回调接口(Raw API),用于提高应用程序性能以及可选择的BSD Socket API (在多线程情况下使用) 。
' _# r# a; ?+ ~8 G; k: [3 o1 U3 }; ~+ A" O3 D: I5 d* T
  扩展功能4 q6 n; X, W, V& _2 O

- U5 h! t- C: h3 F( N) e: S3 B通过多个网络接口进行IP转发,TCP拥塞控制,RTT估算和快速恢复/快速重传机制。
# p; X7 K+ ^6 a) ^6 U
1 E( E$ D3 r6 c  n  应用层的支持3 \( q$ A0 q) p8 E
6 ]; v' a, Y4 u
HTTP server, SNTP client, SMTP client, ping, NetBIOS nameserver。
2 y1 h  @; [) g, t: Z0 W8 G
" r6 D+ x+ ?) ?- G  g6 b/ J1.4   Contiki物联网系统介绍9 P+ U0 ]3 Y0 _3 ~4 K4 F$ |. {
Contiki的内核以及大部分的核心功能也是由瑞典计算机科学院的Adam Dunkels开发。  y" H$ a1 S- B5 Z+ [& H& A
$ b2 y5 U. J5 r2 y9 @4 N3 D
Contiki是一个小型的,开源的,易移植的多任务系统。可用于内存受限的网络系统,支持在各种平台上运行。Contiki最强大的还是它的网络功能,提供了强大的低功耗互联网通信,Contiki支持完整标准的IPv6和IPv4以及近几年新出的低功耗无线标准:6lowpan,RPL,CoAP。 如果使用Contik 的ContikiMAC和可休眠的路由器功能,即使是无线路由器也可以使用电池供电。
. H. a5 L9 p6 c: c- x$ K1 Y1 e+ ?, t. r* R
根据Contiki官方的说明,当前的定位就是:开源的物联网系统,将低成本、低功耗的设备连接到网络,通过强劲的网络功能来构建复杂的无线网络。' Q1 |$ \. S3 z6 t. Y; B5 l
7 L3 S* L5 K6 {2 B! a% F
  作者Adam Dunkels! g+ h' M. Y% ]# g5 d
由前面的介绍,我们了解到uIP,LwIP和Contiki的作者都是他,所以我们有必要了解下。% H7 F" @8 r+ _* Y; y3 ^( H0 ?

7 J+ S) B, u# {& u: J5 f. p+ l6 W1.5   embOS/IP网络协议栈介绍' |$ x: ^1 D; `6 Q. G8 k5 ~
embOS/IP是SEGGER出品的高性能小型网络协议栈,已经针对速度、功能和占用空间进行优化,纯C编写,几乎可以用于任何CPU上。它是作为embOS实时操作系统中间件存在的。
  p8 c$ ^9 u8 v6 s$ v5 ~* u2 Q- T
0 ^3 E! ^+ K( N2 }$ J* _9 X2 Y) xembOS/IP的功能特性如下:* W5 N! p  P) I* ], B

% n1 ?9 G- e: U- B1 u  含有类似ANSI C 中socket.h的头文件,如果一个应用程序是用标准C Socket编写的,那么使用embOS/IP将极其方便移植。
2 H1 }5 @. g' H: h. ?7 F  高性能。
' i5 S* Y$ |0 b; x( O- e$ N  代码容量小。
3 q* {2 t; l& `: D  o- }0 w) p3 M; a  简单易用。- Q+ C/ D, ?/ [& g* p
  无需配置。* X5 }- L6 D! D9 h2 Y9 i
  用于多任务环境的话,可以跟任何RTOS一起使用。
5 G6 D& @# g  |8 _  支持超快性能的零数据复制。! t% A7 g  d3 ?* r2 P& c$ ]& P. d( @
  标准的Socket接口。+ y- k$ q2 w( [6 G& q! a+ F
  支持原始Socket。
7 x! e* S+ e; I4 ^+ m- Q( f  所有函数都有非阻塞版本。
8 a: M/ p. ~: y" j- G& E9 ~: A+ u  连接数量仅受内存容量限制。7 A; g$ f8 e' h8 P. u$ o" c
  数据包重组。! N$ ~! |- ^7 `) r
  驱动代码支持大部分常见的设备。
4 _, x( e% n! y; y  E* V9 W  运行时可配置。3 G* D$ z9 ]  D3 x% c- R
  支持PPP/PPPOE。& m+ n0 I4 {  @
  支持各种上层协议。
# @6 o) Z" O, h+ B1 ^/ l# w8 {  支持大部分常用MCU自带MAC和外置MAC。
! n  O1 B& r. r$ ^$ h
$ f- R7 z+ v, W5 t# S; X7 S" N
8 e& V! t$ R9 n6 G( m0 }4 I具体支持协议和功能如下:
" J; }- z2 r5 }
! u9 i3 n0 |# i( f& E4 [
0ac07a9bf9596c5d0342454f1268e33a.png

7 D$ H# l' b1 [( i% h; g! R  ]' Z4 s- B# X
  n$ R" `% J0 _2 u9 z! i+ B! |
1.6   uC/TCP-IP网络协议栈介绍. Z% o" l" v8 f! H/ H7 f6 F
uC/TCP-IP是Micrium发布的小型协议栈,这个协议栈不像uCOS那么多人去使用,因为源码是不开源的,所以相比uCOS来说,研究uC/TCP-IP的人非常少。
* y* a3 R' j, J2 ^- `$ e& `2 m( f4 O3 A2 g
不过从2017年开始,Micrium推出了傻瓜式图形开发平台Platform Builder,打算全面推广uCOS及其所有中间件,以后应该会有不少人去用。
; C/ s  _7 T5 s/ H, h0 w
9 b1 u0 E& F9 D/ ^. _: cuC/TCP-IP支持的功能如下:3 S9 E9 s# y0 L+ |8 d

* ~+ w% n7 ~7 u' R9 I& F
073cf046bfc25f3afcb3d62c44176604.png
7 m, g! E) V# S4 e) K

# i9 n$ C, ~, U. `( \5 h! i更多uC/TCP-IP相关的知识可以上其官网。另外,uCTCP/TCP-IP也是收费的。7 s( L  {; ^3 ?) S' y5 v" e* A

% X) K( D$ [' Q% x$ m$ X1.7   Mbed OS物联网系统介绍
4 |. B9 i9 v5 l5 f* ]% c- M% \5 {Mbed OS是ARM官方这两年新推出的,发展迅猛,是一种专为物联网 (IoT) 中的设备而设计的开源嵌入式操作系统。该操作系统非常适合涉及智能城市、智能家庭和穿戴式设备等领域的应用程序。+ X* l# _% n+ O
5 v! P" e+ G. m( i# h+ b+ X
Mbed操作系统在微控制器上属于Mbed IoT设备的客户端部分,专为Mbed设备连接器、Mbed设备服务器和 Mbed客户端配合使用而设计。总的来说,这一平台提供了全面的 IoT 解决方案,从驱动、开发环境、软件、开发工具到物联网云端的一条龙服务,以便能够大规模创建和部署IoT 设备。
7 \* o0 n3 l1 v2 }. o% C9 Y
# y( R% G/ E' a( z2 R- u" V; r. h8 bMbed支持以太网,WiFi,IPv6,6LoWPAN和Bluetooth Low Energy (BLE)。& I% J/ h! I, Z5 n/ E  g
" |* @- R3 k8 L3 z8 X7 Q
1.8   FreeRTOS-TCP网络协议栈介绍
% I7 o- s# ]/ o) \9 M& i4 }FreeRTOS-TCP网络协议栈是FreeRTOS官方在2016年年初发布的,也是开源免费的,有兴趣可以研究下) B% O' t& Z9 U. q( I3 W+ |
  Z5 {0 @: l* t8 L1 ?
当前支持的功能如下:
- C( Z; o. i, l: a( l9 h$ V
9 o$ F" {- \' H, _! D6 }2 y
f7b990e6a2d6681ebe87315637d09995.png
. ~+ t* O6 A4 f  N9 V2 C& E  @' z

& D; p4 `1 d; P; o/ K" l+ TFreeRTOS-TCP的手册在网站的左侧列表上,比LwIP的文档好很多。
% I$ V7 B+ L* U4 e. W) \
  A" T. Y8 @: u9 G  M. p
4cbef603448816a868d571d0a798c62a.png

: X$ E$ Y* w2 L. a* \5 W2 ~. ^4 u+ f
1.9   Cyclone TCP网络协议栈介绍. i4 b; m' q4 h( @  U* K
! K6 L' C5 d" [3 x
Cyclone TCP是开源的,功能齐全,整体框架如下:) o5 C) y  @1 u$ l
3 K6 x5 }' U( w0 a- K3 @+ U& a
51c84059ae786fd560dcf8c369bd63c8.png

/ a( p/ V4 R  `, Q
% ?. m0 Z% q; S# L6 `6 p支持的安全连接方式:$ R$ H9 f; g7 |" U- \% x' y# z
& q' s' `5 c- H; @
99dc8ec25ed57050f1c7b29ad587d57c.png

/ r8 V/ d& @0 Z9 Q# f' Q1 q: I. L# L$ J
各种加密应有尽有:
( Z4 r" A8 E% N8 I/ P/ c" D9 K- H
3 e' G( r* o; o* K1 S
bcdf2c3eb7188b71575e4fe50b031294.png

( H" H4 n! n1 H7 J: u9 S# E  t! Y% B. r5 Z) S
一般我们可以使用开源免费版的GPLv2授权方式:6 F9 C; w* J4 h- V4 U

1 C* P+ K) R( ?' g! I" a7 K
e712fdfa2ce1b6671bb4afd5dd6568d6.png
. M& ]- R# V3 j9 H, i/ U0 I2 U
6 G% H( m) n8 ^, s& U
1.10 RL-TCPnet网络协议栈介绍; t* V# W4 t. E
RL-TCPnet是KEIL发布的,功能也比较全面,而且抗网络攻击通过 Achilles Level 1认证。
; s2 l0 j& U$ |& h& Q( D2 r8 L& f! B" O  j! a
8cc565587c14b1699a8f0b31c053a45f.png
- K$ p, j- d/ X9 d& F1 o* V
6 h2 R+ E  G6 g6 t; `
1.11 ThreadX NetXDUO网络协议栈
1 x4 d3 x; }. ?ThreadX的网络协议栈对其它网络协议栈几乎是碾压性优势。一张图,几乎涵盖了我们日常项目大部分应用:
5 p7 f8 E* e1 y% V" f
$ ?% n0 ~" Q6 d* \/ ^
a201b9229dd0af01394e8f25b3776a96.png

" G/ ^1 r: z4 {7 i: ~% E& W/ ^$ T+ ?. Z& @+ H. w' m' a
各个行业的安全认证:
2 F8 {+ H0 L0 ]3 v9 H( t& w) E& B- _8 F  U4 q
42754f51e87a89c2669fba777e76b4bb.png

4 i, G, V4 `' K1 `2 x/ Z4 ?. _2 q7 x
物联网协议方向安全认证:
2 u6 r- [% l0 T+ w; V
- ?0 T, U5 w% u& ~: X; G
fe23c0384c0669dea577777c18b16637.png
5 S: X7 j% `: z
$ ~6 z' U8 z( b. O. X5 U% Z
加密库也做了认证:
. B6 n% ]% K; o6 t% d% b& v' g" o, d4 A- \" _% ?
fa9e0ff69ad0b0a77c56e96e8a60d37b.png

7 F' T& h# m9 a7 _# T& `8 j  _3 L) q
1.12 总结* F& D" f& y3 K
本章主要为大家讲解了几款主流的嵌入式网络协议栈,让大家对当前的小型嵌入式网络协议栈有一个整体的了解,关于这几款嵌入式协议栈的更多知识可以上其官网进行了解和学习。3 M' T7 Z. t) Z4 Z

7 W' L7 v' \6 }; t+ R" `( [
! v' s2 [8 z2 c; g6 O- [. @5 p+ b: E3 B) M
收藏 评论0 发布时间:2022-1-1 20:00

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版