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

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

[复制链接]
STMCU小助手 发布时间:2022-1-1 20:00
1.1   当前主流的嵌入式网络协议栈
  M9 ?9 \5 _6 r" O  x当前主流的小型嵌入式网络协议栈主要有:uIP,LwIP,embOS/IP,uC/TCP-IP,FreeRTOS-TCP,Cyclone TCP,RL-TCPnet和ThreadX NetXDUO。当然,还有其它的网络协议栈,只是不被我们所知,这里把前面说到的其中几款协议栈进行简单的介绍。另外,物联网系统Contiki和Mbed OS也进行了介绍。
- ?* J+ n9 U  W7 ?& @" ^7 l. q& A. Y7 m$ V5 \5 o6 [1 b' o  H4 ?* S. O
1.2   uIP网络协议栈介绍* O" J6 D0 }/ e5 k
uIP主要用于8位和16位微控制器的小型嵌入式网络协议栈。最初,uIP 网络协议栈由瑞典计算机科学院的Adam Dunkels 开发,其源代码由C 语言编写,并完全开源。
3 _. v% Q$ `& U# g  y6 h" `" {/ a7 C+ `% R1 i# E" A( ^
uIP协议栈最大的优势就是短小精悍,Flash和RAM需求小,去掉了完整的 TCP/IP 中不常用的功能,简化了通讯流程,但保留了网络通信必须使用的协议,重点放在了 IP/TCP/ICMP/UDP/ARP 这些网络层和传输层协议上,保证了其代码的通用性和结构的稳定性。
5 l: a8 c! V; q8 Z' M( @& @
: ^+ v2 [, @9 a; S5 `
5 Y" y  q7 @$ q7 G( L) A1 ~( M1.3   LwIP网协议栈介绍/ y3 k6 F; C0 H% E7 @9 @0 K6 `
LwIP也是瑞典计算机科学院的Adam Dunkels 开发的开源TCP/IP协议栈。
9 K+ S  a2 V. a" {) K' H/ w& U. w/ t. a# q* _0 H9 `6 z4 l# f( r7 f
LwIP属于小型嵌入式网络协议栈,有无操作系统的支持都可以运行。LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40KB左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。LwIP协议栈主要关注的是怎样减少内存的使用和代码的大小,这样就可以让LwIP适用于资源有限的小型平台。/ p3 S4 H, b/ a
" \8 Q- _) o. ]7 l) K4 g
LwIP的特点如下:
9 }& B2 p* N8 ~( P# X7 i
6 k( s  S8 a8 r2 h  w% M- O( d  支持的协议, j* ]( w) q+ X) J  w# t
IP, ICMP, UDP, TCP, IGMP, ARP, PPPoS, PPPoE, DHCP client, DNS client, AutoIP/APIPA (Zeroconf), SNMP agent。
5 p( e0 F% W. o, I* Q- h) g9 A$ x: Z* d/ O1 m3 C! x
  API接口函数
! p7 I8 Y  \+ m3 _% y8 ?, l* L2 S2 {2 u4 U( k/ [
提供专门的内部回调接口(Raw API),用于提高应用程序性能以及可选择的BSD Socket API (在多线程情况下使用) 。
, b% S9 d6 V( i1 o7 s5 w" N8 S) k" o6 S) {! [
  扩展功能' [1 ^4 [9 }( Z
/ U; _/ h3 x9 u( t- J3 t9 r* J2 i
通过多个网络接口进行IP转发,TCP拥塞控制,RTT估算和快速恢复/快速重传机制。4 E1 A0 ~8 q- j  h. Q
) d  y2 ]9 q# b' C$ r
  应用层的支持
! u) ]$ r. U) k$ B# ]( _( X# a) R* E# Z) W* c& w6 I/ v
HTTP server, SNTP client, SMTP client, ping, NetBIOS nameserver。
+ G% c/ a5 f$ m! r
# G9 t8 \/ {* m% }( r0 E3 P1.4   Contiki物联网系统介绍' T" u8 p" y0 j. t
Contiki的内核以及大部分的核心功能也是由瑞典计算机科学院的Adam Dunkels开发。
; V- o5 u* |; c' p- V5 i+ X
: j+ u: ~" v! N" uContiki是一个小型的,开源的,易移植的多任务系统。可用于内存受限的网络系统,支持在各种平台上运行。Contiki最强大的还是它的网络功能,提供了强大的低功耗互联网通信,Contiki支持完整标准的IPv6和IPv4以及近几年新出的低功耗无线标准:6lowpan,RPL,CoAP。 如果使用Contik 的ContikiMAC和可休眠的路由器功能,即使是无线路由器也可以使用电池供电。. T5 E& C  _  U9 q
, k) f, R! D3 J$ g
根据Contiki官方的说明,当前的定位就是:开源的物联网系统,将低成本、低功耗的设备连接到网络,通过强劲的网络功能来构建复杂的无线网络。
* {. K0 }/ o) D, v4 }$ K% e" |; Q- L9 u" q- U& N& Y& G
  作者Adam Dunkels/ L( @* V5 a- l4 d3 U; P* v/ ?
由前面的介绍,我们了解到uIP,LwIP和Contiki的作者都是他,所以我们有必要了解下。
9 J' Z  O. M2 ?7 u# `( r) V
8 }* A0 }7 n  v1 g( J1.5   embOS/IP网络协议栈介绍, O! F0 f4 }1 O, y" V5 R' t
embOS/IP是SEGGER出品的高性能小型网络协议栈,已经针对速度、功能和占用空间进行优化,纯C编写,几乎可以用于任何CPU上。它是作为embOS实时操作系统中间件存在的。* s% R! z" i9 n- ^( i
3 `, S! ?# I, S% K
embOS/IP的功能特性如下:" B/ a  L- A2 n9 Y
& }' {- k* N' G: z  H
  含有类似ANSI C 中socket.h的头文件,如果一个应用程序是用标准C Socket编写的,那么使用embOS/IP将极其方便移植。
0 _. V, r6 m8 N4 X/ F+ v; e  高性能。! I$ R: ~/ b& V  j' }: ]2 B
  代码容量小。7 x7 e5 F5 h$ B* s3 {4 Y' [1 w
  简单易用。
$ r# v7 C7 D1 o$ }: X9 R3 V4 t  无需配置。
; I/ j; F# G) ?  用于多任务环境的话,可以跟任何RTOS一起使用。
6 W0 k" N5 K4 x, J% p  s6 f  支持超快性能的零数据复制。6 W5 U7 I* [, i; k2 Y
  标准的Socket接口。7 l' H0 \( s# l3 v( s  W
  支持原始Socket。0 S& u4 W$ B3 Z
  所有函数都有非阻塞版本。2 l  _# N0 a" F
  连接数量仅受内存容量限制。" c) j+ _) P. P  I+ v% L2 c
  数据包重组。6 B% D& p6 T  O" t1 q8 }5 y: o8 Q
  驱动代码支持大部分常见的设备。* g4 L1 E) F. _( x2 n- K+ Z
  运行时可配置。; ~" [, f3 n3 B) T. r
  支持PPP/PPPOE。
7 z0 V5 T2 ]; W  支持各种上层协议。# B7 f7 r1 W  v, H
  支持大部分常用MCU自带MAC和外置MAC。
7 A6 X* Z5 @  }: D. d+ w# U: I, w0 ]% q' Y! z3 ~5 Z3 u
2 N7 b2 W  ]" y1 r+ P
具体支持协议和功能如下:' k3 n" q3 o" D) O" s- d- T
4 g5 ~2 E8 U* X5 d/ C3 U
0ac07a9bf9596c5d0342454f1268e33a.png
" o! @( x: j& s2 f! y

$ D  ]- W4 l6 X2 Y! r- u1 s4 _0 H2 c5 o- u0 R; K+ f
1.6   uC/TCP-IP网络协议栈介绍1 E. M* I& J7 c! K& y) l0 c
uC/TCP-IP是Micrium发布的小型协议栈,这个协议栈不像uCOS那么多人去使用,因为源码是不开源的,所以相比uCOS来说,研究uC/TCP-IP的人非常少。% d$ N: R% e  q
8 K' W( p* m& @' I* [% {
不过从2017年开始,Micrium推出了傻瓜式图形开发平台Platform Builder,打算全面推广uCOS及其所有中间件,以后应该会有不少人去用。
" Z/ P% |0 \- s: q* h
3 D$ Z$ J0 i! }# @$ H" ouC/TCP-IP支持的功能如下:" L; C- E! H  F. G6 M

  I! M  }- x4 D: d+ v* i2 w# K
073cf046bfc25f3afcb3d62c44176604.png
% K7 m3 p% g. j; L3 y7 g

  h5 `  d1 @( b5 T2 U更多uC/TCP-IP相关的知识可以上其官网。另外,uCTCP/TCP-IP也是收费的。- H  L' j3 l' u0 }
+ O% O8 F# q& w1 M
1.7   Mbed OS物联网系统介绍
/ k: j: \: A# P1 S  ~- HMbed OS是ARM官方这两年新推出的,发展迅猛,是一种专为物联网 (IoT) 中的设备而设计的开源嵌入式操作系统。该操作系统非常适合涉及智能城市、智能家庭和穿戴式设备等领域的应用程序。% U! O" @- A3 I
$ v2 R. w. t( l2 M8 i% D4 O
Mbed操作系统在微控制器上属于Mbed IoT设备的客户端部分,专为Mbed设备连接器、Mbed设备服务器和 Mbed客户端配合使用而设计。总的来说,这一平台提供了全面的 IoT 解决方案,从驱动、开发环境、软件、开发工具到物联网云端的一条龙服务,以便能够大规模创建和部署IoT 设备。
- k2 l( U* u) U8 V) d- o
1 s/ R/ Y% Y5 f) U( b) RMbed支持以太网,WiFi,IPv6,6LoWPAN和Bluetooth Low Energy (BLE)。$ r- l! W5 D! j+ l3 h$ d

- U; N4 M/ ]1 k/ g0 {1.8   FreeRTOS-TCP网络协议栈介绍
" P# ]# b; M8 {3 ]# I' }FreeRTOS-TCP网络协议栈是FreeRTOS官方在2016年年初发布的,也是开源免费的,有兴趣可以研究下, @: z9 O, g, M( l+ {3 `
# J' f. e# D6 H0 w$ m5 y9 v
当前支持的功能如下:
9 C. H5 X7 I8 Y. O  y- a  r; r; c0 i% |4 d  k! y1 Y' v
f7b990e6a2d6681ebe87315637d09995.png

# {. ?; {" J0 O: W9 q: s4 Z
, K0 c6 O; k$ @. g. DFreeRTOS-TCP的手册在网站的左侧列表上,比LwIP的文档好很多。
. Q& w- s0 _. W4 ^& h
# j7 B0 e& n  o/ R7 Q6 q# |/ x
4cbef603448816a868d571d0a798c62a.png

- D1 @7 |1 m2 f) Q0 C1 B
( m6 v! P* _* ], E, b4 U1.9   Cyclone TCP网络协议栈介绍$ \7 Z  ?' l0 _4 S
9 U3 H: d. U- f4 I2 V6 J& D
Cyclone TCP是开源的,功能齐全,整体框架如下:. t( x# F% y6 M' J& y

# f8 \( v- o4 n7 t6 w) P
51c84059ae786fd560dcf8c369bd63c8.png

! K2 w7 N5 ]2 `$ @  e
2 K6 v  K( p. @/ `: d支持的安全连接方式:
4 n% Y3 A" f. D4 e! y+ d+ ^
. B- ?, M8 u/ N7 p
99dc8ec25ed57050f1c7b29ad587d57c.png

. M1 |' A0 ?; m+ g) f/ C& H1 Y+ |6 j2 h
各种加密应有尽有:* l2 j2 C( g7 m: V# w* ^0 l

  w6 S" L# i, N; p4 v  f: W
bcdf2c3eb7188b71575e4fe50b031294.png

: F& P1 w9 j6 g7 g/ Q( z4 k$ E5 P  _
一般我们可以使用开源免费版的GPLv2授权方式:- n, L' d5 @) j* j0 M- L

1 y, j$ [1 p* q5 `5 e  M
e712fdfa2ce1b6671bb4afd5dd6568d6.png
! N( a# p9 G1 L5 |0 x
* D+ f* {! D& y+ W* V$ m6 B1 [
1.10 RL-TCPnet网络协议栈介绍( S2 n( j& D, r- `2 i
RL-TCPnet是KEIL发布的,功能也比较全面,而且抗网络攻击通过 Achilles Level 1认证。. l5 [+ B0 S. T* w1 G/ C. W2 p
% p. {" s# x% ^4 h  c+ W
8cc565587c14b1699a8f0b31c053a45f.png
- r- b$ {) m5 y9 _% ]" I. M

5 ~6 v! @- G6 D1.11 ThreadX NetXDUO网络协议栈
1 e2 q, i. ?& v# R9 Q$ s# ^) bThreadX的网络协议栈对其它网络协议栈几乎是碾压性优势。一张图,几乎涵盖了我们日常项目大部分应用:/ V' {5 b3 Q" p5 U( o/ C4 F4 L, w
, S# N0 O4 b- w0 q6 W3 C/ E
a201b9229dd0af01394e8f25b3776a96.png

0 |0 [; v; `/ ^  {) I* n  v& y
6 {; ~/ D9 M# L3 v各个行业的安全认证:0 C# k. s  R- _* {2 v/ V

, E5 [. h7 b- f5 r$ ]2 {( J( s
42754f51e87a89c2669fba777e76b4bb.png

( D$ D4 B) [: M) M' v9 a, W3 W4 C  e; Q+ V: e- B: N) P
物联网协议方向安全认证:* F! l7 @: W3 `4 N5 {' z6 B. H

- |! J) f+ d. }4 Y4 J+ I5 R+ A
fe23c0384c0669dea577777c18b16637.png
. c( g8 A" C5 T5 I- Q# I2 J
! @* C5 z( @* }" ~( P
加密库也做了认证:6 G3 r% C! U8 K

1 I/ k+ d! r! r. y6 v
fa9e0ff69ad0b0a77c56e96e8a60d37b.png
/ r; U, ~1 w+ }# f$ d$ R; q+ _
5 k2 f0 T6 N+ h: G: ~. I  _  R9 ]3 l
1.12 总结
% Z. r# X6 a& }% J- p本章主要为大家讲解了几款主流的嵌入式网络协议栈,让大家对当前的小型嵌入式网络协议栈有一个整体的了解,关于这几款嵌入式协议栈的更多知识可以上其官网进行了解和学习。
% p! @, ^9 u: a% [; Q* b# a
9 c% p1 G* e3 j; K3 X6 i. }  H; _+ `2 Z+ ?# d: A
) T; s" a9 u( O# t4 s! G! Z
收藏 评论0 发布时间:2022-1-1 20:00

举报

0个回答

所属标签

相似分享

官网相关资源

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