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

【中文文档】UM1713_如何应用stm32cube的中间件LwIP_TCP、IP协议栈

[复制链接]
STMCU-管管 发布时间:2019-4-16 09:50
使用 LwIP TCP/IP 栈,在 STM32Cube 上开发应用
: n& B9 `: A) q) n+ h
6 c1 G, Z7 v. T
前言
4 z, H, s1 U5 q2 i% G" q5 C
( t, e( C! G3 Z4 Q& R2 ^
STM32F4x7/9xx 和 STM32F2x7xx 微控制器配有高质量 10/100 Mbit/s 以太网外设,支持媒体独立接口 (MII)和缩减的媒体独立接口 (RMII),以便与物理层 (PHY)接口。
3 D8 s& q/ `$ W
9 J0 X! u4 W# _
当使用以太网通信接口时,会使用 TCP/IP 软件协议栈以实现局域网或者广域网中的通信。
. `! ^& i; c) N, C6 ^

& ?; j7 k3 I6 i) |本用户手册说明了怎样使用 STM32CubeF2 和 STM32CubeF4 HAL 驱动程序,将一个免费中间件 TCP/IP 栈分别集成到基于 STM32F2x7xx 和 STM32F4x7/9xx 微控制器的嵌入式应用(请参考第 1 章节以获得 STM32Cube 的详细信息)。该中间件 TCP/IP 栈为 LwIP (轻量级IP),专为嵌入式应用开发的开源协议栈。 - T- s: |& n5 V( f/ }! N
  o6 ~3 q6 e( Y: c5 c2 B. ~( y/ ~3 ^' Q" M
对于每款评估 板,此包都包含了九个运行于 LwIP 栈之上的应用:
8 b, Q9 R7 |4 |# w" d  W( i• 基于 Raw API,运行于独立模式 (没有 RTOS)的应用:2 B# E8 ?; m; `. v* u2 J8 ^3 R
– Web 服务器# J8 ]6 `% U% s
– TFTP 服务器
0 u6 e# }4 h) G. |) G0 h – TCP 回响客户端应用
$ d/ Y  }$ ^+ S% h' W – TCP 回响服务器应用, l+ K! Y- u/ k' n* ^! [
– UDP 回响客户端应用: c+ s' ~$ w4 p9 f8 o3 a* q% j* {2 F
– UDP 回响服务器应用 - _. y) Q% z; ~* ]! b

/ V  \" ^( c% n* m& Q• 运行于 FreeRTOS 操作系统的应用:: J' h1 n( R: ^) ?
– 基于 netconn API 的 Web 服务器$ D0 P; k% S. b: C* U4 J8 E
– 基于 socket API 的 Web 服务器
) o6 |7 u) L6 W2 X% d – 基于 netconn API 的 TCP/UDP 回响服务器应用。
$ y$ j+ H) K' p$ ]
7 K, V9 X1 s8 k1 w+ ?) q注 : 在本文中, STM32Cube™ 指的是 STM32CubeF2 和 STM32CubeF4, STM32F4xx 指的是STM32F4x7xx 和 STM32F4x9xx 微控制器, STM322xx-EVAL 和 STM324xx-EVAL 指的是STM3221x-EVAL、 STM324xG-EVAL 和 STM324x9I-EVAL 评估板。
& [' t! w" U* ?
6 h, J) b) ~# v  H- r
本文提供的截屏和文件名对应的是运行于 STM32F4 微控制器上的应用样例。然而,它们也适用于 STM32F2x7xx。
$ e. J! \* y" E$ h3 V
# r- c% m' Z, l
1 STM32Cube™ 概述
! N" I9 r5 l9 I4 g6 W

; o( |7 j9 ~# Q8 Z/ R/ rSTM32Cube™ 计划源自意法半导体,旨在通过减少开发的工作量、时间与成本,使开发者受益。 STM32Cube 涵盖 STM32 产品组合。 ' U: Z4 a. X2 Q; }0 J
) @" P% z  t6 v$ _2 x& F
STM32Cube 1.x 版包括:& D, t2 R( N( q5 n9 C0 r( S$ R* }
• 图形软件配置工具 STM32CubeMX,可通过图形向导生成初始化 C 代码。
. U# Q% [4 q5 A7 W  v • 针对每个系列提供综合的嵌入式软件平台 (例如 STM32CubeF2 用于 STM32F2 系列,STM32CubeF4 用于 STM32F4 系列)
$ W) O8 m" H# W6 t+ e – STM32 抽象层嵌入式软件 STM32Cube HAL,确保在 STM32 各个产品之间实现最大限度的可移植性
$ }7 K" F! h" i# w# r! u – 一套一致的中间件,比如 RTOS、 USB、 TCP/IP、图形
- Q+ \4 d# Q! n" V2 ^- J – 所有嵌入式软件实用工具均配备一套完整的示例。6 D- s- n) l6 x0 t' i. T6 g0 j9 o
1.png
2 LwIP TCP/IP 栈描述

, D* T% w0 T) {5 U0 v
: ~/ ~8 B: _5 n) Q; f/ ?' k3 i
2.1 栈特性 * T& }& c: p% g0 r0 ^3 [
, r4 m  e9 M( ?1 o4 e5 C
LwIP 为免费 TCP/IP 栈,由 Adam Dunkels 在瑞典计算机科学院 (SICS)开发,由修正的BSD 许可授权。
5 L2 \; M. [; [6 r, ]: V
4 L: {( Y+ b+ _: k/ T! b5 jLwIP TCP/IP 实现的侧重点为在全面保持 TCP/IP 栈的同时,尽可能的减少 RAM 的使用。这使得 LwIP 特别适合在嵌入式系统中使用。
$ ~: Y2 y- Z' v; ^
- U0 |5 [+ i/ ?& t: ]
LwIP 具有下列协议: ! S4 D5 ?) h& W& v8 D' R
• IPv4 和 IPv6 (网际协议 v4 和 v6)) i4 z, ?" d1 m1 K/ I. z
• ICMP (互联网控制消息协议),用于网络维护和调试2 U, f0 |! i1 D9 w
• IGMP (互联网组管理协议),用于多播流量的管理! W: u. {* I- D2 `) M' ~+ K% R
• UDP (用户数据报协议)
" C$ b9 \: z$ W! @6 w3 `, ^* S • TCP (传输控制协议)
. w1 h+ D" J" u3 p* E9 V • DNS (域名服务器)* W7 k' a' s. Y) c9 V8 P
• SNMP (简单网络管理协议)
- x8 \7 X2 w$ } • DHCP (动态主机配置协议)
- O+ q- ?% Y' u& G7 v. ^ • PPP (点到点协议)! x- }% Z# N$ C4 @) J. j
• ARP (地址解析协议)! E! N0 ?+ a8 Y1 I1 s3 N: G! f
; Z3 x) U: N7 y. d4 `
LwIP 具有三种应用编程接口 (API):4 q# X4 c% |- i+ K
• Raw API 为原始的 LwIP API。它通过事件回调机制进行应用开发。该 API 提供了最好的性能和优化的代码长度,但增加了应用开发的复杂性。
2 g4 [* X0 a! _/ a5 S • Netconn API 为高层有序 API,需要实时操作系统 (RTOS)的支持 (提供进程间通讯的方法)。 Netconn API 支持多线程工作。 % I8 H* g  {' e
• BSD Socket API:类似 Berkeley 的套接字 API (开发于 Netconn API 之上)LwIP 栈的源代码可从 http://savannah.nongnu.org 下载。
/ d" L5 p2 @  i$ O' O" i% R* A; r* Y; ~5 G
..........

) ?! E3 m/ m; Z, ]0 J% V: d
想了解更多,请下载原文阅读

) V2 m% K2 a; D# m4 ^
收藏 2 评论3 发布时间:2019-4-16 09:50

举报

3个回答
我夏了夏天 回答时间:2019-4-16 11:45:54
Kevin_G 回答时间:2019-4-16 15:44:11
收藏
aaronhu-172089 回答时间:2019-7-13 15:18:49
STUDY...
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版