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

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

[复制链接]
STMCU小助手 发布时间:2022-1-1 20:00
1.1   当前主流的嵌入式网络协议栈
) G! {( l$ Z( \  u9 Q当前主流的小型嵌入式网络协议栈主要有:uIP,LwIP,embOS/IP,uC/TCP-IP,FreeRTOS-TCP,Cyclone TCP,RL-TCPnet和ThreadX NetXDUO。当然,还有其它的网络协议栈,只是不被我们所知,这里把前面说到的其中几款协议栈进行简单的介绍。另外,物联网系统Contiki和Mbed OS也进行了介绍。
7 N7 ?# U. z, I) e1 Q7 e* s6 _8 Z! \
1.2   uIP网络协议栈介绍) j* f& [% R' y5 b' [3 @
uIP主要用于8位和16位微控制器的小型嵌入式网络协议栈。最初,uIP 网络协议栈由瑞典计算机科学院的Adam Dunkels 开发,其源代码由C 语言编写,并完全开源。
6 o; z" j# {" i; o; n& H; G
& Z  ^. C+ X0 ?5 Z5 K. f, buIP协议栈最大的优势就是短小精悍,Flash和RAM需求小,去掉了完整的 TCP/IP 中不常用的功能,简化了通讯流程,但保留了网络通信必须使用的协议,重点放在了 IP/TCP/ICMP/UDP/ARP 这些网络层和传输层协议上,保证了其代码的通用性和结构的稳定性。
% N. K; y! c3 h, }; `  L+ F' v" |5 U; b' k
# G+ _0 x! Q& V( _) D1 |
1.3   LwIP网协议栈介绍6 z; @5 T3 ^3 M9 s
LwIP也是瑞典计算机科学院的Adam Dunkels 开发的开源TCP/IP协议栈。4 Z4 G2 g7 _- A

4 C/ c, d% ]+ NLwIP属于小型嵌入式网络协议栈,有无操作系统的支持都可以运行。LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40KB左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。LwIP协议栈主要关注的是怎样减少内存的使用和代码的大小,这样就可以让LwIP适用于资源有限的小型平台。! }3 ?; u7 c% z% Y. o

+ N( t$ {& ^8 a& s0 I, [  k4 VLwIP的特点如下:
1 h1 p. f* i4 a! D+ ^9 \
6 Q1 V: d% ~  o$ f' A& c  支持的协议
/ n+ ~7 `; P$ U, n8 a. Y9 TIP, ICMP, UDP, TCP, IGMP, ARP, PPPoS, PPPoE, DHCP client, DNS client, AutoIP/APIPA (Zeroconf), SNMP agent。
( F+ h$ U' J+ o1 P
9 m. r4 Q% k) [3 E' {  API接口函数
  N1 B9 v  I+ l# C3 q- b/ ]- w
4 W4 v3 j. ~' a5 }2 j" E, {! z. G$ U6 K提供专门的内部回调接口(Raw API),用于提高应用程序性能以及可选择的BSD Socket API (在多线程情况下使用) 。
, ~" a! J& Q4 w2 r3 Z% J* e$ [  n% E0 b; o2 t) }) Z
  扩展功能- y3 ?* E0 ?$ F, V: F3 L* C, Z" f
2 d! i; h0 m! G2 [
通过多个网络接口进行IP转发,TCP拥塞控制,RTT估算和快速恢复/快速重传机制。- c& M" F% k5 @6 o, k0 _

3 t7 I( {- Z3 `2 ]* V; i  应用层的支持2 d* F% V; `$ B/ @1 T: m

& a7 f! v6 M( N0 ~HTTP server, SNTP client, SMTP client, ping, NetBIOS nameserver。
( G/ Z' H, B2 x$ |/ U2 [( A' |) w9 G
6 p  w. t9 O* l7 j1.4   Contiki物联网系统介绍; _/ V2 L+ ^+ l' y
Contiki的内核以及大部分的核心功能也是由瑞典计算机科学院的Adam Dunkels开发。: u0 R2 @9 X6 h  T
8 Y6 q% t4 t2 `4 H: e" u$ H+ o
Contiki是一个小型的,开源的,易移植的多任务系统。可用于内存受限的网络系统,支持在各种平台上运行。Contiki最强大的还是它的网络功能,提供了强大的低功耗互联网通信,Contiki支持完整标准的IPv6和IPv4以及近几年新出的低功耗无线标准:6lowpan,RPL,CoAP。 如果使用Contik 的ContikiMAC和可休眠的路由器功能,即使是无线路由器也可以使用电池供电。: J6 n" N1 [  Z, f2 e+ ?% h

! r5 I. D4 [2 \/ E根据Contiki官方的说明,当前的定位就是:开源的物联网系统,将低成本、低功耗的设备连接到网络,通过强劲的网络功能来构建复杂的无线网络。0 D7 E7 ]: t- r7 ^% e  b

( Y' p# Q! q6 Y% F  作者Adam Dunkels, r% ^7 G/ p3 c, r: u- h9 g0 P
由前面的介绍,我们了解到uIP,LwIP和Contiki的作者都是他,所以我们有必要了解下。. M( K6 r7 e) d; Z

; F/ d' C3 M; R9 u+ @- |: Q1.5   embOS/IP网络协议栈介绍/ U+ Q0 ?5 ]7 l8 V9 j3 F) F
embOS/IP是SEGGER出品的高性能小型网络协议栈,已经针对速度、功能和占用空间进行优化,纯C编写,几乎可以用于任何CPU上。它是作为embOS实时操作系统中间件存在的。4 V: W* c( `/ c

; u! U( c" I9 s6 F' a' R: IembOS/IP的功能特性如下:# H4 j7 M7 d# E. M  N
) [' J9 n6 o3 K1 b+ H- w
  含有类似ANSI C 中socket.h的头文件,如果一个应用程序是用标准C Socket编写的,那么使用embOS/IP将极其方便移植。! E( d2 L0 P9 T) @3 k
  高性能。
# v% @9 U: f" I" Q6 P/ O, g6 x! ]  代码容量小。
6 V7 c4 A, G3 z2 v* |  简单易用。
2 H4 c0 C+ u1 M) W% ^  无需配置。
1 P* I% b* x! {# l2 [4 A% w9 j  用于多任务环境的话,可以跟任何RTOS一起使用。* C+ t1 W/ R: I( z. M7 _
  支持超快性能的零数据复制。: _- I) B& X& Q' Q1 m9 x
  标准的Socket接口。# J7 ^$ @/ U+ [! q6 @2 V
  支持原始Socket。
# ~" n, p) `- ~: u5 v; L  所有函数都有非阻塞版本。
0 m, O: d* C. G: O9 r  连接数量仅受内存容量限制。. g6 W9 {* P* O: [
  数据包重组。
# L3 T- w! s5 Z% ?+ z- T' e  驱动代码支持大部分常见的设备。
+ \1 x8 ]' r  B( p$ q0 Q! Z; q  运行时可配置。
' n; j* Z! v+ C/ E0 i  支持PPP/PPPOE。' [) z* Y6 Y, O0 i
  支持各种上层协议。
% o6 J2 n. w8 E) W  支持大部分常用MCU自带MAC和外置MAC。, n! r# E) O5 z0 N# T$ `& ]/ Y
9 |3 q1 T3 M- o) j8 U

& c' p$ G+ k  C* Q: T5 G  q8 @具体支持协议和功能如下:5 Z; y( g) ^7 x6 O

' S; V3 d5 N$ O: g7 T
0ac07a9bf9596c5d0342454f1268e33a.png
  s9 K& V! n6 T

2 T; R) ]& L6 q/ O, k  `) a! s2 k, E0 G
1.6   uC/TCP-IP网络协议栈介绍. o8 B% T+ G' a
uC/TCP-IP是Micrium发布的小型协议栈,这个协议栈不像uCOS那么多人去使用,因为源码是不开源的,所以相比uCOS来说,研究uC/TCP-IP的人非常少。6 Z" s" }0 X9 {1 @( L
# S% X+ R; Z: t; n5 K# y# O+ u) f
不过从2017年开始,Micrium推出了傻瓜式图形开发平台Platform Builder,打算全面推广uCOS及其所有中间件,以后应该会有不少人去用。9 X2 s0 p! D% u) R% c: z6 Y: r2 \& g

! {0 @4 e$ s0 \* B7 UuC/TCP-IP支持的功能如下:
, {( Y$ {* x1 h+ C! ^' d6 f7 N) w
073cf046bfc25f3afcb3d62c44176604.png
# F" C* W" A- y: O3 r
/ Z! W, O: O& k4 Z# x/ ^% a
更多uC/TCP-IP相关的知识可以上其官网。另外,uCTCP/TCP-IP也是收费的。: N0 Z8 C2 a1 Y& p2 i- y

% n- Q; r- P3 E* j6 g- ^1.7   Mbed OS物联网系统介绍
+ r  t5 ?+ b( ?7 w  n5 DMbed OS是ARM官方这两年新推出的,发展迅猛,是一种专为物联网 (IoT) 中的设备而设计的开源嵌入式操作系统。该操作系统非常适合涉及智能城市、智能家庭和穿戴式设备等领域的应用程序。
- q2 r9 z2 ]9 ?+ W' \! ^& W5 F# Y0 I* p
Mbed操作系统在微控制器上属于Mbed IoT设备的客户端部分,专为Mbed设备连接器、Mbed设备服务器和 Mbed客户端配合使用而设计。总的来说,这一平台提供了全面的 IoT 解决方案,从驱动、开发环境、软件、开发工具到物联网云端的一条龙服务,以便能够大规模创建和部署IoT 设备。" s" |4 Z, H) c6 a0 Z

* c' A- }7 j2 `8 xMbed支持以太网,WiFi,IPv6,6LoWPAN和Bluetooth Low Energy (BLE)。) b+ i1 S$ ]) t* b4 y
5 a  o3 n) S& k; v
1.8   FreeRTOS-TCP网络协议栈介绍
; K6 l; V2 X4 A! W5 Y  xFreeRTOS-TCP网络协议栈是FreeRTOS官方在2016年年初发布的,也是开源免费的,有兴趣可以研究下3 h8 b# A) z, P& a

1 [- v. K3 L; L$ q, a当前支持的功能如下:3 T% g: g* A/ [& h

+ F2 z2 Q! Z2 _7 P. x
f7b990e6a2d6681ebe87315637d09995.png
9 F8 A! O$ y% ^- Y8 h$ I/ }

5 g0 Q- m% h8 q5 L0 g. }FreeRTOS-TCP的手册在网站的左侧列表上,比LwIP的文档好很多。
/ u8 u' ]- J5 Y1 t) ?) f8 `2 d
- ~5 I2 p( l# @& }" z# W: K
4cbef603448816a868d571d0a798c62a.png
, s. ^( B2 H. W1 D% P

7 x; O0 k! [0 H* Q. ?4 u8 w6 _1.9   Cyclone TCP网络协议栈介绍
8 Y) {# _" [. `5 C5 b, g
  `9 V9 R/ |( ~0 a5 VCyclone TCP是开源的,功能齐全,整体框架如下:' ?' S+ p: v, h

, U- ~# S& @6 N2 n/ C# \5 \
51c84059ae786fd560dcf8c369bd63c8.png

4 A7 F* K& q. s7 N" N/ j+ m& H# x+ b0 e
支持的安全连接方式:2 ^, h9 L' a9 m; y6 Q: n) {5 B
$ `+ v: c4 n. |7 |' Y! _. [5 q7 h7 @
99dc8ec25ed57050f1c7b29ad587d57c.png

2 V0 k- N& P* i8 i! I- @4 F' I2 M, P- S6 k
各种加密应有尽有:: C% A, d* r4 L6 A5 V$ \4 K
  g' f. e( E% M, D$ I" Z
bcdf2c3eb7188b71575e4fe50b031294.png
8 e) L9 z2 j1 Z$ W2 s: v
( V& k8 E) `/ f; r# Z" C+ L
一般我们可以使用开源免费版的GPLv2授权方式:' V# v0 i$ Q7 u+ v% u: @6 U/ J
( N  z5 C  D$ z1 _) n
e712fdfa2ce1b6671bb4afd5dd6568d6.png

* X( u: R# _$ ^  c3 p" @& S! q# m) u. ?4 m5 w& N7 a8 a
1.10 RL-TCPnet网络协议栈介绍
1 ^7 l1 B0 G$ NRL-TCPnet是KEIL发布的,功能也比较全面,而且抗网络攻击通过 Achilles Level 1认证。( b0 V% S7 ~+ z: h& ]* [
. v8 q  L! x8 @1 ?  ~5 _
8cc565587c14b1699a8f0b31c053a45f.png

' O. m" U$ _8 E9 Y, A* u/ R
6 G) h+ X: s- m. A/ p; A# \1.11 ThreadX NetXDUO网络协议栈9 X* W0 Q, m1 X
ThreadX的网络协议栈对其它网络协议栈几乎是碾压性优势。一张图,几乎涵盖了我们日常项目大部分应用:
- _* b- A  t* Z6 J  H/ P( Z8 T/ ?
% p" ]1 ]2 s" o& |4 T/ i0 x7 c
a201b9229dd0af01394e8f25b3776a96.png
9 b: T* ]: _, v1 |# [* i7 ]$ V
- @6 C3 B) R4 P8 H! F8 R
各个行业的安全认证:
" k, \7 X( h. y3 m  O2 _% ~" H2 h( {9 N/ H
42754f51e87a89c2669fba777e76b4bb.png
0 w6 `5 b- e# M" }9 ~

. b2 a# m5 a" X: z$ s5 d物联网协议方向安全认证:8 L- S0 q6 I0 P: p$ G( z
+ f7 T5 j! k& k# L+ S8 w5 D
fe23c0384c0669dea577777c18b16637.png
. o* ?1 Z5 r- H# p: N

+ x( L! v8 D0 l; t4 v* @加密库也做了认证:
+ c0 s4 d* N3 m7 Q$ J- Y- m+ c" b# N6 X
fa9e0ff69ad0b0a77c56e96e8a60d37b.png
4 U% u+ v& {+ v8 X

7 F; R4 U. _# Y" X! M* `1.12 总结8 l/ S& Y1 R6 Y, x/ P+ x3 i. b2 I* w* Z
本章主要为大家讲解了几款主流的嵌入式网络协议栈,让大家对当前的小型嵌入式网络协议栈有一个整体的了解,关于这几款嵌入式协议栈的更多知识可以上其官网进行了解和学习。
" @$ w9 U2 ~& T) u- F, J" F+ F6 i+ d0 ~) _! w) S

, Q1 M8 ?# y' {# E4 y1 g
" b% b+ _+ k) e1 U; \3 o
收藏 评论0 发布时间:2022-1-1 20:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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