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

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

[复制链接]
STMCU-管管 发布时间:2019-4-16 09:50
使用 LwIP TCP/IP 栈,在 STM32Cube 上开发应用
8 Z( ?- w- ?- p
, d- T) Y1 f& l5 G% [" s# L
前言
+ R& L- z3 l1 v/ [' C

% y8 D8 g+ N9 `  xSTM32F4x7/9xx 和 STM32F2x7xx 微控制器配有高质量 10/100 Mbit/s 以太网外设,支持媒体独立接口 (MII)和缩减的媒体独立接口 (RMII),以便与物理层 (PHY)接口。
, a) [/ D9 z8 L5 r
+ \9 r) t1 [, r( R
当使用以太网通信接口时,会使用 TCP/IP 软件协议栈以实现局域网或者广域网中的通信。
( C; H# y4 |0 U3 b8 A& H7 N/ `' w( f

/ }' f/ o* S) L- h本用户手册说明了怎样使用 STM32CubeF2 和 STM32CubeF4 HAL 驱动程序,将一个免费中间件 TCP/IP 栈分别集成到基于 STM32F2x7xx 和 STM32F4x7/9xx 微控制器的嵌入式应用(请参考第 1 章节以获得 STM32Cube 的详细信息)。该中间件 TCP/IP 栈为 LwIP (轻量级IP),专为嵌入式应用开发的开源协议栈。
  O' Z% ^) r2 T, u# n- z; I; ~
6 s1 _; ~4 C: ^2 Z2 W& y
对于每款评估 板,此包都包含了九个运行于 LwIP 栈之上的应用:
' q2 V, B- `: l) c$ D: I2 b6 R• 基于 Raw API,运行于独立模式 (没有 RTOS)的应用:! `$ d1 n. q1 E' {* t& L3 i) _
– Web 服务器; Z0 v1 q; w& g/ d9 y. I: s% [
– TFTP 服务器8 ?% T: b, d+ @) L' V( x$ t- W$ e6 P0 `
– TCP 回响客户端应用
' v# R( a+ n. ~: e – TCP 回响服务器应用- E$ q3 f+ ~* e3 j
– UDP 回响客户端应用' i4 q+ }. U! q" j: r' x
– UDP 回响服务器应用 1 ?% a, T) \- i
7 a( c: {: Q( e0 A7 }# @1 M
• 运行于 FreeRTOS 操作系统的应用:
6 x0 ?7 g$ Q0 Y* q  o  j" `: C – 基于 netconn API 的 Web 服务器
$ d' j1 j; R- b – 基于 socket API 的 Web 服务器
7 Y' s  j) p" k& r  R6 E1 j – 基于 netconn API 的 TCP/UDP 回响服务器应用。 * d; g- t  E! U

& C  ?: z5 T/ T( _+ K, f2 {注 : 在本文中, STM32Cube™ 指的是 STM32CubeF2 和 STM32CubeF4, STM32F4xx 指的是STM32F4x7xx 和 STM32F4x9xx 微控制器, STM322xx-EVAL 和 STM324xx-EVAL 指的是STM3221x-EVAL、 STM324xG-EVAL 和 STM324x9I-EVAL 评估板。 & P1 T- X3 b7 L; s! F

( z- f4 c: N/ `+ g% E& p" _本文提供的截屏和文件名对应的是运行于 STM32F4 微控制器上的应用样例。然而,它们也适用于 STM32F2x7xx。
5 v# N0 j4 x7 l) q8 z! a# M0 N  j+ m
+ R( H! f; m, b; B% O. d- h
1 STM32Cube™ 概述
+ I( S" W5 X! D- [& B3 d/ N7 ]8 z
- k+ Z- D8 e5 W
STM32Cube™ 计划源自意法半导体,旨在通过减少开发的工作量、时间与成本,使开发者受益。 STM32Cube 涵盖 STM32 产品组合。 " m" K* P% \  U7 M) {1 f$ A

! n( B1 {( s* iSTM32Cube 1.x 版包括:- x, x/ W  D. @9 _
• 图形软件配置工具 STM32CubeMX,可通过图形向导生成初始化 C 代码。
1 i! _4 f3 B3 w- i3 |9 O( r( H& k • 针对每个系列提供综合的嵌入式软件平台 (例如 STM32CubeF2 用于 STM32F2 系列,STM32CubeF4 用于 STM32F4 系列)3 v  k- {( G4 E9 D- e: f9 i2 a
– STM32 抽象层嵌入式软件 STM32Cube HAL,确保在 STM32 各个产品之间实现最大限度的可移植性
6 r- V) J1 J; v# Z2 I2 h% x% U7 z – 一套一致的中间件,比如 RTOS、 USB、 TCP/IP、图形  F+ h9 r! `( _5 Y6 S
– 所有嵌入式软件实用工具均配备一套完整的示例。9 ?! N$ c9 y  B- q
1.png
2 LwIP TCP/IP 栈描述
0 p4 s4 n' }$ Y$ A! K
# C: Q' ]1 }5 s5 V2 Z0 F, @% X! u
2.1 栈特性
1 K# a9 S% V( ~7 f1 o6 _' e6 a

, j# K- v2 @1 Y2 F6 ?% E) ELwIP 为免费 TCP/IP 栈,由 Adam Dunkels 在瑞典计算机科学院 (SICS)开发,由修正的BSD 许可授权。 7 {+ F; E& {/ A

/ u3 W% s* r8 L( _8 L5 w+ Z& x8 LLwIP TCP/IP 实现的侧重点为在全面保持 TCP/IP 栈的同时,尽可能的减少 RAM 的使用。这使得 LwIP 特别适合在嵌入式系统中使用。 ! p: W7 Z' D, I/ K7 b" R. ^# ?
& B! ?' D& p; K
LwIP 具有下列协议: $ c$ w/ o: h* ?% D# ~
• IPv4 和 IPv6 (网际协议 v4 和 v6)( Q* s, r" `% Z. ]: R6 s) S# I6 e* @
• ICMP (互联网控制消息协议),用于网络维护和调试
: v% _8 [/ B) e+ M • IGMP (互联网组管理协议),用于多播流量的管理( ^0 H  z6 q1 k" ^( F9 h+ y
• UDP (用户数据报协议)
. W/ m6 o+ u- k3 D' t( N, X • TCP (传输控制协议)
% @6 n# T% d* l, I  O% q/ A • DNS (域名服务器)1 n9 }( n9 e, P  r. x* w
• SNMP (简单网络管理协议)9 z0 r1 o7 c; u3 p; o4 U
• DHCP (动态主机配置协议)3 B: b* c" t; N, e
• PPP (点到点协议)
7 C; [) J- ?* p) ^ • ARP (地址解析协议)+ D! J6 T; y. ^: Z, P7 @
) n& y# O! q% `% x( @# P# i9 ^
LwIP 具有三种应用编程接口 (API):
( j: v) y, @0 N9 J/ [ • Raw API 为原始的 LwIP API。它通过事件回调机制进行应用开发。该 API 提供了最好的性能和优化的代码长度,但增加了应用开发的复杂性。7 ?- v5 Q8 U" q* f  W
• Netconn API 为高层有序 API,需要实时操作系统 (RTOS)的支持 (提供进程间通讯的方法)。 Netconn API 支持多线程工作。 " y2 l& \4 T6 C
• BSD Socket API:类似 Berkeley 的套接字 API (开发于 Netconn API 之上)LwIP 栈的源代码可从 http://savannah.nongnu.org 下载。- c+ v5 t9 P8 y* b2 E, k, j
2 m5 L0 X2 ?+ @! Q1 c
..........

4 K3 N; @6 R9 v+ ?. @
想了解更多,请下载原文阅读
& C( G0 y1 b1 |8 w9 z
收藏 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 手机版