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

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

[复制链接]
STMCU小助手 发布时间:2022-1-1 20:00
1.1   当前主流的嵌入式网络协议栈
9 G, p# `9 C& `, r# V" G7 H/ Q7 K. x: g当前主流的小型嵌入式网络协议栈主要有:uIP,LwIP,embOS/IP,uC/TCP-IP,FreeRTOS-TCP,Cyclone TCP,RL-TCPnet和ThreadX NetXDUO。当然,还有其它的网络协议栈,只是不被我们所知,这里把前面说到的其中几款协议栈进行简单的介绍。另外,物联网系统Contiki和Mbed OS也进行了介绍。% ^4 b7 C$ i/ v% ~# R
6 |& d8 r1 o2 t# z# O
1.2   uIP网络协议栈介绍
) |) b0 i4 c2 {uIP主要用于8位和16位微控制器的小型嵌入式网络协议栈。最初,uIP 网络协议栈由瑞典计算机科学院的Adam Dunkels 开发,其源代码由C 语言编写,并完全开源。% N8 q# G& f+ L  G0 S
% v0 w+ \8 _6 o0 g
uIP协议栈最大的优势就是短小精悍,Flash和RAM需求小,去掉了完整的 TCP/IP 中不常用的功能,简化了通讯流程,但保留了网络通信必须使用的协议,重点放在了 IP/TCP/ICMP/UDP/ARP 这些网络层和传输层协议上,保证了其代码的通用性和结构的稳定性。9 R- l' A, ^% W) J8 k# n
$ G6 a: q( T  u* K: @

3 v5 n; v, y6 S% s- m8 U1.3   LwIP网协议栈介绍
- U5 z1 R( R1 ^& @& FLwIP也是瑞典计算机科学院的Adam Dunkels 开发的开源TCP/IP协议栈。* z/ W& K* v+ f! J, n

5 q- [! v+ v. k& o  TLwIP属于小型嵌入式网络协议栈,有无操作系统的支持都可以运行。LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40KB左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。LwIP协议栈主要关注的是怎样减少内存的使用和代码的大小,这样就可以让LwIP适用于资源有限的小型平台。9 L) L( j8 I" J' w; ^/ E* J
! Y" H8 s* `7 J6 a" r
LwIP的特点如下:) }0 j. {$ e! \& i) d

  a$ f& g& E: Q  支持的协议
  K  n7 w  N: l  aIP, ICMP, UDP, TCP, IGMP, ARP, PPPoS, PPPoE, DHCP client, DNS client, AutoIP/APIPA (Zeroconf), SNMP agent。4 ~0 X4 Y- V# K% X
. W' u0 l- O# L1 J- R7 R  m
  API接口函数
7 H! z# a% ]3 |# l( r4 K. n% Y8 T/ x; Q4 v  b2 a# k" Z, @# V) s
提供专门的内部回调接口(Raw API),用于提高应用程序性能以及可选择的BSD Socket API (在多线程情况下使用) 。) ^6 P% N: N  U1 t; M4 Z

6 c, \, N& @, V2 O* X, m  扩展功能
/ R! S( v1 f+ ~1 `( t' Z' c
; }7 F& {0 @1 L. L$ h- i2 n通过多个网络接口进行IP转发,TCP拥塞控制,RTT估算和快速恢复/快速重传机制。2 m8 D4 F/ V5 G; b7 B4 P+ ]
: K$ W  L) c( t( A8 i8 f( [! D6 c
  应用层的支持) u( e1 p. G  S4 r" K3 h: U4 o" S

+ [9 S- {0 C1 F' p% mHTTP server, SNTP client, SMTP client, ping, NetBIOS nameserver。
# h2 O& l7 b4 e6 p# X! F+ x' k! N
9 e- L& _' x7 h" b- I9 q/ w/ k0 Z1.4   Contiki物联网系统介绍" [! x) }& h# a: }
Contiki的内核以及大部分的核心功能也是由瑞典计算机科学院的Adam Dunkels开发。9 a, N$ s& r* X0 {0 X" _" \) M
5 X" d( H9 Z1 r0 W/ Q; w
Contiki是一个小型的,开源的,易移植的多任务系统。可用于内存受限的网络系统,支持在各种平台上运行。Contiki最强大的还是它的网络功能,提供了强大的低功耗互联网通信,Contiki支持完整标准的IPv6和IPv4以及近几年新出的低功耗无线标准:6lowpan,RPL,CoAP。 如果使用Contik 的ContikiMAC和可休眠的路由器功能,即使是无线路由器也可以使用电池供电。( p# E  f+ f8 b, V& f/ L* m, D

, a5 P' u% s, g根据Contiki官方的说明,当前的定位就是:开源的物联网系统,将低成本、低功耗的设备连接到网络,通过强劲的网络功能来构建复杂的无线网络。# @4 Z! I/ }1 C2 G

; C" k8 g# N) h2 D) `, e  作者Adam Dunkels" f+ Z' _! d+ R  @6 Q6 \
由前面的介绍,我们了解到uIP,LwIP和Contiki的作者都是他,所以我们有必要了解下。$ W- R8 S$ G# B) q. O3 m1 E
$ c* ~% S/ ?# `/ I
1.5   embOS/IP网络协议栈介绍
2 V( j( m1 @, VembOS/IP是SEGGER出品的高性能小型网络协议栈,已经针对速度、功能和占用空间进行优化,纯C编写,几乎可以用于任何CPU上。它是作为embOS实时操作系统中间件存在的。
% w* o& s0 U  b# ]' r- r( k
$ W$ D# o5 `- ]9 `7 e4 jembOS/IP的功能特性如下:4 {- J& Y1 H6 q& b, \4 K9 w
1 ]4 }& ^4 S, L$ h
  含有类似ANSI C 中socket.h的头文件,如果一个应用程序是用标准C Socket编写的,那么使用embOS/IP将极其方便移植。
* o1 x2 w% O5 M/ L; y  高性能。
, S1 l9 |/ p0 x3 W  代码容量小。* G9 w( v! F  L/ S6 o7 Q% @8 M
  简单易用。: o& @+ M6 r; T: k
  无需配置。
( x8 k. R. K" D* |1 C+ ]  用于多任务环境的话,可以跟任何RTOS一起使用。
' ~) M- g9 N1 j) B$ [$ C  支持超快性能的零数据复制。
& a* @7 I! C% \" w* d) V! z* V8 S  标准的Socket接口。
6 f! g2 M5 f! v, \% p' m9 I3 \  支持原始Socket。
) Y% ?4 x: j- L* ?, P0 H  所有函数都有非阻塞版本。
  ?  p* S% b& ~6 |- w" P  连接数量仅受内存容量限制。
2 t2 Q7 @9 T! @, z! H2 j0 D- ?  数据包重组。
. e% G* t% \, h2 x5 P  驱动代码支持大部分常见的设备。1 m( }6 W* ^9 R/ p$ ^
  运行时可配置。4 i$ k# ]2 E+ Y1 x) R
  支持PPP/PPPOE。" c- {9 e- `6 ~4 U* r2 }! q$ e
  支持各种上层协议。
9 e8 ?) R- v/ m: s/ c8 E3 P1 e  支持大部分常用MCU自带MAC和外置MAC。. a/ o8 q. p8 ^
2 x1 D5 O9 W8 Z/ e: a' V. l% n& q
( ?! H$ B" W2 Y
具体支持协议和功能如下:- ]3 [  r9 ~$ d% C. d( E$ h

9 X2 O$ X  V+ {2 r
0ac07a9bf9596c5d0342454f1268e33a.png
) l8 c" o; W2 f2 [3 p2 B$ [' D

  ]7 e6 ]/ O# K+ I* d1 _0 e5 A/ m6 g, g/ |: F
1.6   uC/TCP-IP网络协议栈介绍5 u+ T0 V) z$ u* e1 R
uC/TCP-IP是Micrium发布的小型协议栈,这个协议栈不像uCOS那么多人去使用,因为源码是不开源的,所以相比uCOS来说,研究uC/TCP-IP的人非常少。
; P4 c3 ]- f: |6 n3 q  l7 S, E. V- t/ q- y3 c5 R8 s' c
不过从2017年开始,Micrium推出了傻瓜式图形开发平台Platform Builder,打算全面推广uCOS及其所有中间件,以后应该会有不少人去用。5 L3 J, Y0 O2 q* R! d9 y: b

- D) `' @- F3 {" O& Z; ?uC/TCP-IP支持的功能如下:6 K  g1 F4 M' D( p. j
% V  z$ ~+ v: H, N
073cf046bfc25f3afcb3d62c44176604.png
, E/ R0 r- U9 R: {0 `

( @# P& v) l# X$ B" j3 H; C更多uC/TCP-IP相关的知识可以上其官网。另外,uCTCP/TCP-IP也是收费的。' K& I* f$ i) \2 |

! k, g/ z4 R' ]! Q& Z+ s1.7   Mbed OS物联网系统介绍1 J/ m0 J- O& {
Mbed OS是ARM官方这两年新推出的,发展迅猛,是一种专为物联网 (IoT) 中的设备而设计的开源嵌入式操作系统。该操作系统非常适合涉及智能城市、智能家庭和穿戴式设备等领域的应用程序。
! U' x6 F" y: U8 X3 t2 C9 V# ^. A- v& {9 o
Mbed操作系统在微控制器上属于Mbed IoT设备的客户端部分,专为Mbed设备连接器、Mbed设备服务器和 Mbed客户端配合使用而设计。总的来说,这一平台提供了全面的 IoT 解决方案,从驱动、开发环境、软件、开发工具到物联网云端的一条龙服务,以便能够大规模创建和部署IoT 设备。3 B3 i# E9 T  d$ o  O
* Y6 r' M6 Y+ F5 u) X4 B) ~
Mbed支持以太网,WiFi,IPv6,6LoWPAN和Bluetooth Low Energy (BLE)。6 s8 N5 _- W$ {1 m9 `5 B; |2 o

9 S7 W& s: q8 z2 W  @1.8   FreeRTOS-TCP网络协议栈介绍/ ]3 n- [, @$ Q+ u7 }  ~
FreeRTOS-TCP网络协议栈是FreeRTOS官方在2016年年初发布的,也是开源免费的,有兴趣可以研究下
# W2 {9 ?  [2 I% ^* F6 P% B
0 V+ Z" r0 x3 N. ]% ^3 X当前支持的功能如下:1 F# l% E9 ~$ f+ L0 d7 n; o. H

! ]. T8 q: D: G  X- j# p3 V
f7b990e6a2d6681ebe87315637d09995.png
' |9 a6 S/ a6 K2 H) C

; i# p2 e6 {- u3 E, |; m+ SFreeRTOS-TCP的手册在网站的左侧列表上,比LwIP的文档好很多。
1 u9 }/ ?" w, J5 D8 B3 O! r1 }0 g% M7 e$ `7 N, F) `
4cbef603448816a868d571d0a798c62a.png

8 s& |3 [' X# B' }$ T! k, k6 ]/ R1 c5 F
1.9   Cyclone TCP网络协议栈介绍) D/ V- B. a+ `) t4 S% e3 \

( a- Y% ?( w! C9 ^$ S: ~Cyclone TCP是开源的,功能齐全,整体框架如下:
/ Q9 Q2 o4 x1 K# \( Q6 X' h) D2 X; B9 W
51c84059ae786fd560dcf8c369bd63c8.png

# W# b* \! H4 r7 b6 U  A. m' V; [# @
( k1 L0 Y: i, b+ ]8 Y支持的安全连接方式:! @5 b4 y2 ?3 m6 h' m

- r- q( n' ^4 Z" p! t
99dc8ec25ed57050f1c7b29ad587d57c.png
! h. I3 }2 ?: m* x

1 u& \( A7 b+ Y9 a各种加密应有尽有:
% w$ F$ X7 e/ U7 [6 F1 u$ H$ E
/ E) O( z- x! W: d
bcdf2c3eb7188b71575e4fe50b031294.png

/ o6 q5 Q( [$ A2 C) b+ [8 E
3 Y7 l4 c" g" @3 @; V一般我们可以使用开源免费版的GPLv2授权方式:. A3 v. N4 L0 h* u; ]- X
) O* J0 A) g  f  D( l' ?( v
e712fdfa2ce1b6671bb4afd5dd6568d6.png

! r6 l1 `9 v# Q: X! c% p! y) U4 g
1.10 RL-TCPnet网络协议栈介绍
7 `; g5 z( J. k" E4 zRL-TCPnet是KEIL发布的,功能也比较全面,而且抗网络攻击通过 Achilles Level 1认证。
- D7 V. A  O  W# R+ D
& a3 k/ [* \0 J# q
8cc565587c14b1699a8f0b31c053a45f.png

$ R. h: o4 k+ }7 U4 `6 _
& l9 o7 g6 b( j! J% Q1.11 ThreadX NetXDUO网络协议栈+ z6 [/ W- [/ @" m
ThreadX的网络协议栈对其它网络协议栈几乎是碾压性优势。一张图,几乎涵盖了我们日常项目大部分应用:, d# _$ C( }4 j* [  V; e2 Q; o

; P* @) G9 m8 j8 V
a201b9229dd0af01394e8f25b3776a96.png
- ]( Q; D+ w5 i

/ T; l, l+ ~1 Y3 D; O, P2 O% g; p各个行业的安全认证:# r+ Z+ |% J$ D* {, n

$ H# T  }' p9 \! V
42754f51e87a89c2669fba777e76b4bb.png
# }4 F6 }+ Z* N0 X+ F/ J$ J
% o5 q6 f/ y7 p+ S1 s4 e" m
物联网协议方向安全认证:  m: c. [5 E( J
( C% ?9 u1 k1 n  Z5 Z, r. k
fe23c0384c0669dea577777c18b16637.png

! a3 |4 B& z& f, [  ^3 g
0 t8 D' O8 Z3 M9 U- Z. K7 s加密库也做了认证:& E7 k2 H1 c; x5 t

/ Q* e0 ^8 ~6 E; C
fa9e0ff69ad0b0a77c56e96e8a60d37b.png

2 w' B- U, O1 w; W% }8 j* _; o2 o% {
1.12 总结
" Q1 X: b$ Y3 @4 I# c9 ?- _( g+ K  |本章主要为大家讲解了几款主流的嵌入式网络协议栈,让大家对当前的小型嵌入式网络协议栈有一个整体的了解,关于这几款嵌入式协议栈的更多知识可以上其官网进行了解和学习。2 z' {# W% h/ b& X

7 Q* U8 J7 `" m3 A
  s9 W: O! H; P/ z; V0 J) m6 P
收藏 评论0 发布时间:2022-1-1 20:00

举报

0个回答

所属标签

相似分享

官网相关资源

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