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

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

[复制链接]
STMCU小助手 发布时间:2022-1-1 20:00
1.1   当前主流的嵌入式网络协议栈9 }% ^7 ?1 x$ R( a4 Q
当前主流的小型嵌入式网络协议栈主要有:uIP,LwIP,embOS/IP,uC/TCP-IP,FreeRTOS-TCP,Cyclone TCP,RL-TCPnet和ThreadX NetXDUO。当然,还有其它的网络协议栈,只是不被我们所知,这里把前面说到的其中几款协议栈进行简单的介绍。另外,物联网系统Contiki和Mbed OS也进行了介绍。
. D3 X( X) z, ~' g- A" d# w9 o. M* g+ |" ^1 [/ y: k
1.2   uIP网络协议栈介绍
0 Q7 H3 o7 [* p  A) @/ J5 @uIP主要用于8位和16位微控制器的小型嵌入式网络协议栈。最初,uIP 网络协议栈由瑞典计算机科学院的Adam Dunkels 开发,其源代码由C 语言编写,并完全开源。. ~' f. U2 _: i
' ]& k) x  C& b3 O7 }6 H
uIP协议栈最大的优势就是短小精悍,Flash和RAM需求小,去掉了完整的 TCP/IP 中不常用的功能,简化了通讯流程,但保留了网络通信必须使用的协议,重点放在了 IP/TCP/ICMP/UDP/ARP 这些网络层和传输层协议上,保证了其代码的通用性和结构的稳定性。
4 a$ b6 K$ B6 R% m; t- H
( P# w& E+ j1 [5 a4 p7 k$ V! v
2 b3 F* A* h% @0 A1.3   LwIP网协议栈介绍2 p* g& Y+ T( D% l( c+ d9 C
LwIP也是瑞典计算机科学院的Adam Dunkels 开发的开源TCP/IP协议栈。" u& i1 U' g; |) H& m& l

, J  Z( ]: |9 D+ H0 w' K0 XLwIP属于小型嵌入式网络协议栈,有无操作系统的支持都可以运行。LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40KB左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。LwIP协议栈主要关注的是怎样减少内存的使用和代码的大小,这样就可以让LwIP适用于资源有限的小型平台。/ X* q) f$ L; {# ]7 n

7 C# d) Q0 d1 m* b/ |4 L+ N' yLwIP的特点如下:
, Y; |7 o9 N' h5 [
3 W% X2 d6 ^) L  支持的协议
" [. `6 A+ V, q2 ~$ e" l: ^3 {IP, ICMP, UDP, TCP, IGMP, ARP, PPPoS, PPPoE, DHCP client, DNS client, AutoIP/APIPA (Zeroconf), SNMP agent。( u  c2 \: g# N% t* q& W
3 j3 J( Z6 Q  `3 z" w7 X' ~% l
  API接口函数/ t6 x: K4 d# {9 m3 M

5 x3 i) J, T+ L: h提供专门的内部回调接口(Raw API),用于提高应用程序性能以及可选择的BSD Socket API (在多线程情况下使用) 。/ D8 r' d% E4 u: ~* M1 n, r2 `+ X+ b

, V# T' P) f9 Z7 b; e+ |  扩展功能4 `* |5 J# Q2 y; Z

0 v8 _) I: g# Z3 G: W, r通过多个网络接口进行IP转发,TCP拥塞控制,RTT估算和快速恢复/快速重传机制。- K& _( Y7 a5 b' I. k, w* H9 P

4 P2 o6 I# h; x: k# X2 N& g  应用层的支持! Z- \' Y* K5 U3 j; t2 F1 \; A

& h& ?% ~4 |: E% }7 kHTTP server, SNTP client, SMTP client, ping, NetBIOS nameserver。
% j. }( D+ G" v
! q5 b4 L8 f5 N8 j8 Q* K4 j1.4   Contiki物联网系统介绍
) I3 B# P" z1 }0 `Contiki的内核以及大部分的核心功能也是由瑞典计算机科学院的Adam Dunkels开发。: l; Z+ {2 I" ~1 \6 [+ M/ h8 V

2 K& v3 e, `9 l/ B! U8 {, D& ?Contiki是一个小型的,开源的,易移植的多任务系统。可用于内存受限的网络系统,支持在各种平台上运行。Contiki最强大的还是它的网络功能,提供了强大的低功耗互联网通信,Contiki支持完整标准的IPv6和IPv4以及近几年新出的低功耗无线标准:6lowpan,RPL,CoAP。 如果使用Contik 的ContikiMAC和可休眠的路由器功能,即使是无线路由器也可以使用电池供电。
* D& N" r1 ~4 i! X, J, A
1 L, g  m: }) K+ x" ^根据Contiki官方的说明,当前的定位就是:开源的物联网系统,将低成本、低功耗的设备连接到网络,通过强劲的网络功能来构建复杂的无线网络。; p  B" T. h" J# t  ^
7 W$ p7 P' V4 N; R
  作者Adam Dunkels
# P" J" ^1 j7 o8 q由前面的介绍,我们了解到uIP,LwIP和Contiki的作者都是他,所以我们有必要了解下。
6 t7 S, H6 l$ i0 s8 A
! G, A3 N9 a) q1.5   embOS/IP网络协议栈介绍  x9 r% O  D! ]3 h0 w8 `6 |  z
embOS/IP是SEGGER出品的高性能小型网络协议栈,已经针对速度、功能和占用空间进行优化,纯C编写,几乎可以用于任何CPU上。它是作为embOS实时操作系统中间件存在的。
8 M6 O( ]. K( `& U1 I3 E$ C# H% W1 w: t) {% h$ F& t9 C0 w+ f
embOS/IP的功能特性如下:8 r/ ^7 |+ E" l6 \' ]" ^* |

3 e9 k( y: W; b9 {8 }! }3 r2 M  含有类似ANSI C 中socket.h的头文件,如果一个应用程序是用标准C Socket编写的,那么使用embOS/IP将极其方便移植。9 N* E$ C( _/ S" _, w+ H" Z7 a
  高性能。
( F8 B. V% Q2 d  代码容量小。: g6 x6 v: g5 g# \! u" ?, S& C% u% c
  简单易用。
( f: Y$ ~3 y: B: V0 e  无需配置。
/ p; d3 P$ A  ~$ w4 ^  用于多任务环境的话,可以跟任何RTOS一起使用。" N& e; F) I! T
  支持超快性能的零数据复制。% p  H; k' L) ^9 R1 w4 G9 d  z
  标准的Socket接口。0 d9 e" |2 \0 t( I& p8 Q
  支持原始Socket。
$ R( y" ]6 {: l: @) m% K  所有函数都有非阻塞版本。
) f/ x: ?% p& d# F( x+ E: H  连接数量仅受内存容量限制。
  c- p8 V  z# G6 t4 o1 G0 C! V8 g  数据包重组。
7 C$ O0 v: c: @  驱动代码支持大部分常见的设备。
7 S8 p; r/ Q" N. ]  运行时可配置。0 d9 ~9 \& y9 o# ~1 S. K5 E, t6 y
  支持PPP/PPPOE。
# @4 d" e$ j/ p0 b% T* |. K  支持各种上层协议。
2 [8 X% e$ j. \! N0 W  支持大部分常用MCU自带MAC和外置MAC。
  J, B2 r) }8 m% l
  i. m) ~/ |% ?, E% q/ [6 }% o4 f6 C2 u& z) T6 M3 A& T9 q! h0 I
具体支持协议和功能如下:
3 D* `% L2 m! M3 Z; K/ }& M
2 H- z2 J, F' W% U
0ac07a9bf9596c5d0342454f1268e33a.png
  }7 C! R9 u4 i+ [0 I
3 U3 F4 F3 I& B% r9 n' H& ?
% ~- |- m- K  a7 f
1.6   uC/TCP-IP网络协议栈介绍4 U; A$ Q9 m% C( L8 {
uC/TCP-IP是Micrium发布的小型协议栈,这个协议栈不像uCOS那么多人去使用,因为源码是不开源的,所以相比uCOS来说,研究uC/TCP-IP的人非常少。$ _( ]4 H9 L9 L7 x* _3 R; [9 J
" s4 X% C& a" i) A# Q, X: K
不过从2017年开始,Micrium推出了傻瓜式图形开发平台Platform Builder,打算全面推广uCOS及其所有中间件,以后应该会有不少人去用。
2 a; b2 `$ Y: W
; B# _, E  g* D+ {2 C2 w! `6 G: nuC/TCP-IP支持的功能如下:
, H6 I" v' I% J* Q* @& \, C1 j1 q9 @) C7 d! n
073cf046bfc25f3afcb3d62c44176604.png

# U6 V( O- |! G7 P7 g* [
0 [' F- B3 D2 i/ C更多uC/TCP-IP相关的知识可以上其官网。另外,uCTCP/TCP-IP也是收费的。" \. s; _5 X' A" ^3 J

8 _; g. x: B, N; d* c, e# |1.7   Mbed OS物联网系统介绍
2 v9 D7 B0 l& j) DMbed OS是ARM官方这两年新推出的,发展迅猛,是一种专为物联网 (IoT) 中的设备而设计的开源嵌入式操作系统。该操作系统非常适合涉及智能城市、智能家庭和穿戴式设备等领域的应用程序。/ Z0 z4 p3 c$ c5 a

' m( h# \$ u" A7 |0 CMbed操作系统在微控制器上属于Mbed IoT设备的客户端部分,专为Mbed设备连接器、Mbed设备服务器和 Mbed客户端配合使用而设计。总的来说,这一平台提供了全面的 IoT 解决方案,从驱动、开发环境、软件、开发工具到物联网云端的一条龙服务,以便能够大规模创建和部署IoT 设备。
3 s* X4 L1 m$ a+ K( v; m( @: C7 t; C1 v. t( }1 R9 M7 ?7 d* [6 g  m
Mbed支持以太网,WiFi,IPv6,6LoWPAN和Bluetooth Low Energy (BLE)。
" K7 H& K2 i2 S$ E4 u6 c0 X& X& p9 C6 d9 i
1.8   FreeRTOS-TCP网络协议栈介绍1 w5 l: b4 t4 c; @7 U1 s  q. h
FreeRTOS-TCP网络协议栈是FreeRTOS官方在2016年年初发布的,也是开源免费的,有兴趣可以研究下
: h3 s' F' j3 w- b& A5 r9 k; ~) X4 N5 l$ e5 m, p* I
当前支持的功能如下:! p  ?9 N; E. P8 L% W5 \" j
' W6 e# q8 c/ f0 e/ m
f7b990e6a2d6681ebe87315637d09995.png

: s5 L# d  h- M: J' w- {% C4 i: a) I1 L
FreeRTOS-TCP的手册在网站的左侧列表上,比LwIP的文档好很多。
8 w* E$ @3 r! b( U. m) e' y
& e: {2 j6 Y9 J. L9 g" C
4cbef603448816a868d571d0a798c62a.png

8 T8 X2 `  h6 M' X1 w) g- L. z9 A' h* t- C, [
1.9   Cyclone TCP网络协议栈介绍
# I8 L; a; n* d3 E" A' M
0 q9 I* f& f- q) }$ kCyclone TCP是开源的,功能齐全,整体框架如下:- Y) j+ p$ z( N4 Q' A. o0 K

: q0 n  @) j+ N" [
51c84059ae786fd560dcf8c369bd63c8.png
# a2 D! u3 H' ~$ z. L; M
# ]7 \. d( `/ P* O9 M; @
支持的安全连接方式:
$ N# M( z6 k2 i- H: `/ N
' u8 f" T: R( O) l8 r& d2 N
99dc8ec25ed57050f1c7b29ad587d57c.png
) q3 @. Y! b( K' k7 p: v+ z2 B6 z* A
% w* O4 i, ]. q
各种加密应有尽有:
4 r  u7 H# R' Q$ e2 @/ O* G% Q3 l0 {+ i, p% R
bcdf2c3eb7188b71575e4fe50b031294.png

0 T# W1 h3 I; C5 Y( {' T- C4 v, c) d7 ^( e7 g" h; x
一般我们可以使用开源免费版的GPLv2授权方式:
- o0 K) n, `8 T5 H
, f) ^0 v* V1 F' S# v$ Y* ]
e712fdfa2ce1b6671bb4afd5dd6568d6.png

0 U* ^4 B, g9 t* M0 ?6 m/ M4 {! A$ h2 m
1.10 RL-TCPnet网络协议栈介绍: g7 R! [) ~( W6 E, Y
RL-TCPnet是KEIL发布的,功能也比较全面,而且抗网络攻击通过 Achilles Level 1认证。
) h7 ^# |' F5 s/ ?, P8 j+ E
& I$ G& K* V/ v; R! _
8cc565587c14b1699a8f0b31c053a45f.png
" a% {; E! q( @( t. m
8 j' p1 I  h# Q4 O8 {. a1 X
1.11 ThreadX NetXDUO网络协议栈$ V: v' p/ J4 @& X
ThreadX的网络协议栈对其它网络协议栈几乎是碾压性优势。一张图,几乎涵盖了我们日常项目大部分应用:- _, P+ u. t1 u& E0 u2 D
( F! o( w9 b  r' c8 s, k: s/ t
a201b9229dd0af01394e8f25b3776a96.png

( x8 [( o! A) k8 x6 G2 P* |) e$ f
3 p2 _( R" o& O各个行业的安全认证:+ T9 o2 ?* R0 t% w) e/ `" `

% w# K" b! M: K, ]: Z, H
42754f51e87a89c2669fba777e76b4bb.png
& ~( d9 S& {' F: y

: ]# {% B5 |6 D物联网协议方向安全认证:; _- U! P  f: M  l2 J
4 E3 R# @4 n. x1 q( m  |, r
fe23c0384c0669dea577777c18b16637.png

4 P6 e; P4 C" j" L3 ?5 ~5 v& V+ F2 t/ l7 ?
加密库也做了认证:& i$ T# }2 |9 v: _+ g1 A

8 [4 ^  Q( O1 F7 A
fa9e0ff69ad0b0a77c56e96e8a60d37b.png

4 ]. c7 R' M# z+ N. D) \
* P/ ?3 W. q) C1.12 总结
6 N" p; a- X8 L" R, M- J& E本章主要为大家讲解了几款主流的嵌入式网络协议栈,让大家对当前的小型嵌入式网络协议栈有一个整体的了解,关于这几款嵌入式协议栈的更多知识可以上其官网进行了解和学习。
5 _* R/ [& U- ?3 q7 g3 Q# J* ^
0 @3 y9 {; }- W8 B4 k/ w2 m) n# |- A' I( c  w+ V9 v( N1 k1 R9 P( ?

+ j! Z3 _2 Y' |" _3 L# M: ~
收藏 评论0 发布时间:2022-1-1 20:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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