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

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

[复制链接]
STMCU-管管 发布时间:2019-4-16 09:50
使用 LwIP TCP/IP 栈,在 STM32Cube 上开发应用7 ?' |! U: n# m3 c! h: ]

" m% ?# R4 c, f* `5 X前言
2 k# J: X% Y4 _5 w: ~
+ l9 d. `$ W1 ~3 v. W$ B3 F
STM32F4x7/9xx 和 STM32F2x7xx 微控制器配有高质量 10/100 Mbit/s 以太网外设,支持媒体独立接口 (MII)和缩减的媒体独立接口 (RMII),以便与物理层 (PHY)接口。 ) v, U! o+ F3 c7 R. c, H

, Y# G4 F4 M3 b  s' g当使用以太网通信接口时,会使用 TCP/IP 软件协议栈以实现局域网或者广域网中的通信。 ( G, A" H3 w0 k9 {4 H8 Q
5 _! [; C0 U6 Z# ~+ n! ~. o5 h
本用户手册说明了怎样使用 STM32CubeF2 和 STM32CubeF4 HAL 驱动程序,将一个免费中间件 TCP/IP 栈分别集成到基于 STM32F2x7xx 和 STM32F4x7/9xx 微控制器的嵌入式应用(请参考第 1 章节以获得 STM32Cube 的详细信息)。该中间件 TCP/IP 栈为 LwIP (轻量级IP),专为嵌入式应用开发的开源协议栈。 7 ]- \' y' {! M

1 j( O! {5 K  S3 v* K2 u* P, `对于每款评估 板,此包都包含了九个运行于 LwIP 栈之上的应用:
  U; S+ n1 [0 `3 R! z) R• 基于 Raw API,运行于独立模式 (没有 RTOS)的应用:
# r% S: K) i7 J/ v* }( p! D – Web 服务器% q6 e, {9 z2 |0 _
– TFTP 服务器3 [! y6 e: m8 Q& j; `$ P1 _- e
– TCP 回响客户端应用# `2 A& }% p: t5 Y7 j
– TCP 回响服务器应用0 `( [' _% {5 D; K, c9 }3 l& C* W
– UDP 回响客户端应用
6 v/ I$ V6 W' ? – UDP 回响服务器应用 , O& d4 u0 H) ^
3 V0 I6 S) j4 k
• 运行于 FreeRTOS 操作系统的应用:
5 l& m! c% n5 D- S6 |- |6 q – 基于 netconn API 的 Web 服务器; e- n! \& L/ t# C$ `: R% E- o
– 基于 socket API 的 Web 服务器) O+ b9 K5 d/ N6 J
– 基于 netconn API 的 TCP/UDP 回响服务器应用。 + I' v$ H0 M3 ~) ?
# a' D; O* z7 S0 S. {6 y! l
注 : 在本文中, STM32Cube™ 指的是 STM32CubeF2 和 STM32CubeF4, STM32F4xx 指的是STM32F4x7xx 和 STM32F4x9xx 微控制器, STM322xx-EVAL 和 STM324xx-EVAL 指的是STM3221x-EVAL、 STM324xG-EVAL 和 STM324x9I-EVAL 评估板。
2 H; O5 e) N. d; d6 p5 y

5 j; Z: f5 f; s4 y- a' @本文提供的截屏和文件名对应的是运行于 STM32F4 微控制器上的应用样例。然而,它们也适用于 STM32F2x7xx。
. N3 ?  T3 j6 u% D
5 h# s# r! ~3 \6 S
1 STM32Cube™ 概述 ! p" s, m0 S0 D+ U5 ^8 F

. D( ]) ]- l. |3 P9 n" \STM32Cube™ 计划源自意法半导体,旨在通过减少开发的工作量、时间与成本,使开发者受益。 STM32Cube 涵盖 STM32 产品组合。
! K* T6 c: l: M5 E0 ^) d$ W6 D
: y3 v1 y' m6 p$ r8 N2 l
STM32Cube 1.x 版包括:
! l* ]- P+ j8 x% J* `. u7 U( G4 v • 图形软件配置工具 STM32CubeMX,可通过图形向导生成初始化 C 代码。
& F, {  n* x7 U$ q4 ]6 B • 针对每个系列提供综合的嵌入式软件平台 (例如 STM32CubeF2 用于 STM32F2 系列,STM32CubeF4 用于 STM32F4 系列)* z( X! b; _4 M; C+ d' A9 t
– STM32 抽象层嵌入式软件 STM32Cube HAL,确保在 STM32 各个产品之间实现最大限度的可移植性
' }0 j3 t, O9 y0 s- I3 O* ` – 一套一致的中间件,比如 RTOS、 USB、 TCP/IP、图形
7 K/ w( k2 g$ K8 _: M" X0 _7 F – 所有嵌入式软件实用工具均配备一套完整的示例。- d* N" I2 m- H/ ]* d4 G3 r
1.png
2 LwIP TCP/IP 栈描述

/ M/ s) q7 K1 l0 U0 z

3 Y. L6 G9 z# J" \: u2.1 栈特性 . W9 X7 K6 j: W& k$ k5 w  [

' a1 \' B2 @5 h/ w; zLwIP 为免费 TCP/IP 栈,由 Adam Dunkels 在瑞典计算机科学院 (SICS)开发,由修正的BSD 许可授权。 1 f! k' ?& |8 d& J% ]9 Y+ e
9 T2 l# d8 E+ Q. R% r9 d" {
LwIP TCP/IP 实现的侧重点为在全面保持 TCP/IP 栈的同时,尽可能的减少 RAM 的使用。这使得 LwIP 特别适合在嵌入式系统中使用。
( `2 f. D5 ~( j" z1 ^
  W3 ^1 _( E9 O* d/ ]& s
LwIP 具有下列协议:
( M7 l9 _9 t9 l( M! v6 a: v • IPv4 和 IPv6 (网际协议 v4 和 v6)
+ O9 B6 E  q5 O- O; K • ICMP (互联网控制消息协议),用于网络维护和调试
! L' N6 D6 D2 z* e: J5 j • IGMP (互联网组管理协议),用于多播流量的管理
0 u6 ]' H; u2 {& Q, j. G • UDP (用户数据报协议)
" J2 i$ D9 C5 z" H2 o: @* X* W • TCP (传输控制协议)
+ Y! q0 m& D( Z# ?% m • DNS (域名服务器)" H# h7 T7 D: k" {4 z8 D# p0 E
• SNMP (简单网络管理协议)
6 O. b8 x: N0 q7 x- a • DHCP (动态主机配置协议)* x3 Q# A! {) V& L
• PPP (点到点协议)! E* U/ `+ A! i8 z( V
• ARP (地址解析协议)7 U! ~$ z  b% m1 o
0 `" y2 _' C. H" a$ ?
LwIP 具有三种应用编程接口 (API):* }' c5 u# v0 ?, @
• Raw API 为原始的 LwIP API。它通过事件回调机制进行应用开发。该 API 提供了最好的性能和优化的代码长度,但增加了应用开发的复杂性。
0 ^5 {+ u5 g- X+ [% I. W • Netconn API 为高层有序 API,需要实时操作系统 (RTOS)的支持 (提供进程间通讯的方法)。 Netconn API 支持多线程工作。
, Z- `7 p6 k. I- w0 f% ` • BSD Socket API:类似 Berkeley 的套接字 API (开发于 Netconn API 之上)LwIP 栈的源代码可从 http://savannah.nongnu.org 下载。
; A" A$ L5 [% @! x6 u( m4 b9 Z4 x, i5 V; }& t
..........
2 L4 D9 \7 L  A" o6 r
想了解更多,请下载原文阅读

, ~7 Q, Z! L, W# q3 `6 H
收藏 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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版