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

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

[复制链接]
STMCU小助手 发布时间:2022-1-1 20:00
1.1   当前主流的嵌入式网络协议栈
& O. V6 n4 j; N- s% _* d当前主流的小型嵌入式网络协议栈主要有:uIP,LwIP,embOS/IP,uC/TCP-IP,FreeRTOS-TCP,Cyclone TCP,RL-TCPnet和ThreadX NetXDUO。当然,还有其它的网络协议栈,只是不被我们所知,这里把前面说到的其中几款协议栈进行简单的介绍。另外,物联网系统Contiki和Mbed OS也进行了介绍。
5 z3 {4 `5 C7 X" ~, D. F9 C( Z6 ~# \& m
1.2   uIP网络协议栈介绍
  f7 Y  }) V$ M" S: vuIP主要用于8位和16位微控制器的小型嵌入式网络协议栈。最初,uIP 网络协议栈由瑞典计算机科学院的Adam Dunkels 开发,其源代码由C 语言编写,并完全开源。: F, c) P& @" n) B  h0 U
- y' H, E2 ?9 y# i8 w! Q' C1 |7 j6 k+ u+ V
uIP协议栈最大的优势就是短小精悍,Flash和RAM需求小,去掉了完整的 TCP/IP 中不常用的功能,简化了通讯流程,但保留了网络通信必须使用的协议,重点放在了 IP/TCP/ICMP/UDP/ARP 这些网络层和传输层协议上,保证了其代码的通用性和结构的稳定性。6 c# u: x0 \3 C, b# x

. h1 U# f9 `  w# Q5 [- Q& c& d: m" n: v3 \( Y0 {" y
1.3   LwIP网协议栈介绍& ~. k/ L3 M& v  U
LwIP也是瑞典计算机科学院的Adam Dunkels 开发的开源TCP/IP协议栈。
3 l6 A4 I, W. j5 ~& t6 V9 P
, y% B2 l3 T8 J, VLwIP属于小型嵌入式网络协议栈,有无操作系统的支持都可以运行。LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40KB左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。LwIP协议栈主要关注的是怎样减少内存的使用和代码的大小,这样就可以让LwIP适用于资源有限的小型平台。8 U- q$ \7 a5 W- f" V

- X5 T2 Q( G( U6 n- rLwIP的特点如下:/ ~% W% G5 X# d4 f) r! a2 D
2 X4 l7 H* @# e7 c8 K0 ~( {
  支持的协议7 ]. ?% o$ e2 [% z
IP, ICMP, UDP, TCP, IGMP, ARP, PPPoS, PPPoE, DHCP client, DNS client, AutoIP/APIPA (Zeroconf), SNMP agent。5 Q5 c: O$ R8 Z" Y) r

! m1 c6 O! Y: M" L+ _0 J7 T  API接口函数
# u# n$ ]# q6 b) a" r
0 Y1 |( u7 [6 S! R7 l. s6 k6 I提供专门的内部回调接口(Raw API),用于提高应用程序性能以及可选择的BSD Socket API (在多线程情况下使用) 。
/ u3 H6 ^% Q* l. d+ c
1 D- h# y$ [. y4 H/ P  扩展功能
2 B! {) x* p4 k5 n, a% y9 \$ b
% X& R" u2 j3 V1 l2 Y' H* F通过多个网络接口进行IP转发,TCP拥塞控制,RTT估算和快速恢复/快速重传机制。" X9 {, ^# C" k4 P* L- ^& l$ {

& t/ u6 O# i, M7 T9 Q  应用层的支持6 T5 X2 m0 i6 j' T4 O* w

& {# t: y: G' f) E# K6 bHTTP server, SNTP client, SMTP client, ping, NetBIOS nameserver。
: B- @& |: G% m2 F6 ^* X
6 H% ^* L; z. U1.4   Contiki物联网系统介绍3 d4 K$ ?; ]- V0 n1 b1 G; i# Y
Contiki的内核以及大部分的核心功能也是由瑞典计算机科学院的Adam Dunkels开发。0 N( J- \' _4 S6 Y) W/ o
) J, c" ?, w- Z9 X! d7 \
Contiki是一个小型的,开源的,易移植的多任务系统。可用于内存受限的网络系统,支持在各种平台上运行。Contiki最强大的还是它的网络功能,提供了强大的低功耗互联网通信,Contiki支持完整标准的IPv6和IPv4以及近几年新出的低功耗无线标准:6lowpan,RPL,CoAP。 如果使用Contik 的ContikiMAC和可休眠的路由器功能,即使是无线路由器也可以使用电池供电。
& B' E  q. V: y% o! o% j! z: C$ O7 t
根据Contiki官方的说明,当前的定位就是:开源的物联网系统,将低成本、低功耗的设备连接到网络,通过强劲的网络功能来构建复杂的无线网络。0 C# p  k# A/ G7 \& `, ?' {
7 m( E, P1 n4 `7 g2 ^
  作者Adam Dunkels
' F& o8 q$ \: I* Q, ~& ~3 n由前面的介绍,我们了解到uIP,LwIP和Contiki的作者都是他,所以我们有必要了解下。
, ~# Y+ [5 t( q1 x; _* `% e
6 v$ t% l9 i# X0 [( o1.5   embOS/IP网络协议栈介绍! c) d1 q- o  ^( l4 c
embOS/IP是SEGGER出品的高性能小型网络协议栈,已经针对速度、功能和占用空间进行优化,纯C编写,几乎可以用于任何CPU上。它是作为embOS实时操作系统中间件存在的。. m7 b/ C- @' [5 g

  h8 b' D. p: A1 a% dembOS/IP的功能特性如下:/ y: n3 O* I8 i, ~% c% {) q# S( i* }* G6 I
4 |' z, v3 \* _: E
  含有类似ANSI C 中socket.h的头文件,如果一个应用程序是用标准C Socket编写的,那么使用embOS/IP将极其方便移植。0 [  n/ g9 K9 |, E
  高性能。1 P; [$ L+ n5 y5 O; F
  代码容量小。
, V0 u" z/ J! Q* B- d! @; C  简单易用。0 W! _9 t6 t: a7 M) {4 t1 w
  无需配置。4 Z, ]- d7 X# T+ T1 x
  用于多任务环境的话,可以跟任何RTOS一起使用。- k8 l  i* |. k0 ^) y" e+ [: ~
  支持超快性能的零数据复制。  |: l- I/ Q- V% D" R  p
  标准的Socket接口。5 \$ Q4 G. c* ^
  支持原始Socket。1 f4 \& }5 \% w+ x; i& X
  所有函数都有非阻塞版本。
  G( G2 _# c7 B* {2 U4 R! ?1 T  连接数量仅受内存容量限制。
" C, T) h( [; ?8 Y& c: r5 i  数据包重组。
, b  ?) Y8 _$ Q7 a6 r/ S  驱动代码支持大部分常见的设备。, U: Y, n* [7 @: m) n6 `' _* {
  运行时可配置。$ r9 I9 D8 j$ i+ B+ R+ O8 g3 i
  支持PPP/PPPOE。
2 `( v) u- M5 U' a" s  支持各种上层协议。7 ^$ m5 K( A) C$ F1 T
  支持大部分常用MCU自带MAC和外置MAC。* p% v$ Q2 M. R! R" k" p* D
* J3 }& |  {0 l) z
* g5 N$ n6 @; l* D
具体支持协议和功能如下:
3 h; X" U6 Q+ b4 q" M2 V8 ^3 Q% A: d: a6 b" n7 V* T* r" I: A. W7 M
0ac07a9bf9596c5d0342454f1268e33a.png
4 H8 z# x2 d1 u! d- ^2 q
, g7 j; h  m+ W5 U& s

# J, R2 {! ~* V( }# l3 f; e- K1.6   uC/TCP-IP网络协议栈介绍$ i! @3 z9 Q9 M( P7 B9 {
uC/TCP-IP是Micrium发布的小型协议栈,这个协议栈不像uCOS那么多人去使用,因为源码是不开源的,所以相比uCOS来说,研究uC/TCP-IP的人非常少。
- R7 J% K; t6 V5 I6 v$ x: z6 J) o! C2 x  B+ K, ?. x8 b
不过从2017年开始,Micrium推出了傻瓜式图形开发平台Platform Builder,打算全面推广uCOS及其所有中间件,以后应该会有不少人去用。, ]( Q9 I: Y7 G4 T2 u; b/ z
+ }/ c1 y1 f4 D' @$ x
uC/TCP-IP支持的功能如下:
9 o( a2 W; A( t% D+ f
/ O# A- ~; Y" n  y& Q
073cf046bfc25f3afcb3d62c44176604.png

* T4 T& n* o7 S  L9 A8 ?9 W) [0 `. B* r
更多uC/TCP-IP相关的知识可以上其官网。另外,uCTCP/TCP-IP也是收费的。
5 m" j0 z1 W) P$ t. t
9 g  @# u' f6 A6 r1 ~# L3 F1.7   Mbed OS物联网系统介绍0 [  r) m6 S) ?8 M! r& Z
Mbed OS是ARM官方这两年新推出的,发展迅猛,是一种专为物联网 (IoT) 中的设备而设计的开源嵌入式操作系统。该操作系统非常适合涉及智能城市、智能家庭和穿戴式设备等领域的应用程序。
. I6 g: d, F1 [* \
- s( M: V( E$ s; ?  B: O" H5 oMbed操作系统在微控制器上属于Mbed IoT设备的客户端部分,专为Mbed设备连接器、Mbed设备服务器和 Mbed客户端配合使用而设计。总的来说,这一平台提供了全面的 IoT 解决方案,从驱动、开发环境、软件、开发工具到物联网云端的一条龙服务,以便能够大规模创建和部署IoT 设备。' H% L9 W/ D1 C$ u
' ^% O7 _) q" u. w3 g
Mbed支持以太网,WiFi,IPv6,6LoWPAN和Bluetooth Low Energy (BLE)。0 s7 s+ I+ y3 n/ Q  A

+ t, {2 j+ h; }1.8   FreeRTOS-TCP网络协议栈介绍/ _  j) Z! w; `& h4 }  I/ k+ Y
FreeRTOS-TCP网络协议栈是FreeRTOS官方在2016年年初发布的,也是开源免费的,有兴趣可以研究下/ b+ j- V; f3 ]/ H5 K: {, [6 q
# F9 S. }5 K3 a
当前支持的功能如下:
3 N% j% r" W9 P
  h# s& d& Q: y  z/ n9 \
f7b990e6a2d6681ebe87315637d09995.png
+ W5 I) q4 w8 G+ w

+ z) h. ^+ i: m( x. m$ V" {/ iFreeRTOS-TCP的手册在网站的左侧列表上,比LwIP的文档好很多。
2 ?7 j- x9 }* M- d% A
$ k6 V& K4 ^8 z2 i  N
4cbef603448816a868d571d0a798c62a.png
- w( z! W- C; ^: O3 E
% W4 j3 s1 Q, l& `4 y
1.9   Cyclone TCP网络协议栈介绍1 v) _& m) `5 n, h9 I

. c# ~. \! q4 u# Y0 R" tCyclone TCP是开源的,功能齐全,整体框架如下:5 K( m5 G: k* n' Q
/ U! i' e6 y0 j9 F' D6 e9 T7 i
51c84059ae786fd560dcf8c369bd63c8.png
8 m8 N  L7 H$ ~2 t

0 ]8 g5 K$ A1 }. |支持的安全连接方式:
3 M- l) U0 e8 i6 T# a0 l
- i7 V& H6 e5 L9 D
99dc8ec25ed57050f1c7b29ad587d57c.png
% c$ {. i  P/ V2 x

/ j. i& _3 i# ]( {  \各种加密应有尽有:! {" M5 I. J0 M4 ]
  ?. R4 ^- k5 L2 o' o7 R
bcdf2c3eb7188b71575e4fe50b031294.png

/ i6 i7 H7 J: i& u9 F$ w* L& o- |7 u) f- Z# B/ p% J
一般我们可以使用开源免费版的GPLv2授权方式:
1 T: M  Z9 n1 |  f, y6 x" D
( _' O# a- @  g6 K& d% ]7 {9 c% V) i
e712fdfa2ce1b6671bb4afd5dd6568d6.png
5 Q& I3 p3 q+ @+ {+ ]- |
# m% g) E# S% k2 e. z! _
1.10 RL-TCPnet网络协议栈介绍; }2 V3 p* e7 x% r1 _$ F6 h
RL-TCPnet是KEIL发布的,功能也比较全面,而且抗网络攻击通过 Achilles Level 1认证。
7 a4 {; \5 Z" c! S) r: i0 Z8 N& Z; U7 N; E) @
8cc565587c14b1699a8f0b31c053a45f.png
( K5 ]1 l5 b6 p
# s% G8 ]& P: A# r& H- N
1.11 ThreadX NetXDUO网络协议栈
( [/ T& j- B5 fThreadX的网络协议栈对其它网络协议栈几乎是碾压性优势。一张图,几乎涵盖了我们日常项目大部分应用:
( e. t  d6 x( [; \6 z7 E
! U" c* \2 |. z* z5 q, @- O
a201b9229dd0af01394e8f25b3776a96.png
/ C* `7 [% O2 k- S/ f
4 v5 p" ^) ^+ ~
各个行业的安全认证:( ^" ]: N& g* o' k# q( Z& x

) v. w: _$ N1 m3 F! O
42754f51e87a89c2669fba777e76b4bb.png
) [9 [# q& ~& X3 b1 n' i

/ Q) g, z# T# g" S2 X: e" B+ b物联网协议方向安全认证:& I9 c" K% p+ H: m2 x
# {! b4 g3 G3 F
fe23c0384c0669dea577777c18b16637.png

+ T/ v' W0 o& c5 y1 f5 m) [' N/ O9 S0 s. D6 z2 f
加密库也做了认证:
: B: C- H$ L) [: X
6 q2 |. ~8 I& a, _5 J9 }# t
fa9e0ff69ad0b0a77c56e96e8a60d37b.png
0 {5 q# g2 z. `, g* [0 ^2 I

6 A$ H8 C. O- N, u1.12 总结, C' U! Z# h( Q4 L+ m7 E/ n1 V. `
本章主要为大家讲解了几款主流的嵌入式网络协议栈,让大家对当前的小型嵌入式网络协议栈有一个整体的了解,关于这几款嵌入式协议栈的更多知识可以上其官网进行了解和学习。2 t0 D! ^. {  S4 A* Z' l
. e! f0 N4 w; ~- B4 X. r6 }) g
% A$ a9 G1 ~6 C# G  S+ \8 V$ O
$ E* l$ X& ]6 U1 k
收藏 评论0 发布时间:2022-1-1 20:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版