|
使用 LwIP TCP/IP 栈,在 STM32Cube 上开发应用6 V+ U# @- Y6 X5 N : ]8 I/ N3 u: Q8 C! w+ \9 Z% k" I. @ 前言 * T2 m" M5 x4 s ) k! |& v- q+ x, ?. x: X STM32F4x7/9xx 和 STM32F2x7xx 微控制器配有高质量 10/100 Mbit/s 以太网外设,支持媒体独立接口 (MII)和缩减的媒体独立接口 (RMII),以便与物理层 (PHY)接口。 + S1 w) i7 } \8 p 当使用以太网通信接口时,会使用 TCP/IP 软件协议栈以实现局域网或者广域网中的通信。 2 P2 R. q4 _0 d* S- _5 e * Y# f1 l% c+ u# I0 Z 本用户手册说明了怎样使用 STM32CubeF2 和 STM32CubeF4 HAL 驱动程序,将一个免费中间件 TCP/IP 栈分别集成到基于 STM32F2x7xx 和 STM32F4x7/9xx 微控制器的嵌入式应用(请参考第 1 章节以获得 STM32Cube 的详细信息)。该中间件 TCP/IP 栈为 LwIP (轻量级IP),专为嵌入式应用开发的开源协议栈。 2 f; |7 @4 {1 V$ n8 V Z 对于每款评估 板,此包都包含了九个运行于 LwIP 栈之上的应用: " |% l, A; Q' { • 基于 Raw API,运行于独立模式 (没有 RTOS)的应用:$ k4 r7 d6 u. {- P$ t – Web 服务器' ^; F b1 c: P8 n& [/ i; u% h – TFTP 服务器 – TCP 回响客户端应用 – TCP 回响服务器应用 – UDP 回响客户端应用/ u; }; ]+ D# |9 |$ X* N9 R' n – UDP 回响服务器应用 , F5 X3 {" M! I7 z • 运行于 FreeRTOS 操作系统的应用:$ S, ] z& k! M: j – 基于 netconn API 的 Web 服务器 – 基于 socket API 的 Web 服务器! R7 @( Q& p. i& s$ v# ?3 x – 基于 netconn API 的 TCP/UDP 回响服务器应用。 * A) x' r. \6 V0 I0 ?0 |1 A3 v- x: N& i 注 : 在本文中, STM32Cube™ 指的是 STM32CubeF2 和 STM32CubeF4, STM32F4xx 指的是STM32F4x7xx 和 STM32F4x9xx 微控制器, STM322xx-EVAL 和 STM324xx-EVAL 指的是STM3221x-EVAL、 STM324xG-EVAL 和 STM324x9I-EVAL 评估板。 本文提供的截屏和文件名对应的是运行于 STM32F4 微控制器上的应用样例。然而,它们也适用于 STM32F2x7xx。 & U* X* H( U# b' C 1 STM32Cube™ 概述 STM32Cube™ 计划源自意法半导体,旨在通过减少开发的工作量、时间与成本,使开发者受益。 STM32Cube 涵盖 STM32 产品组合。 . E, W+ f' m2 N; ?$ X2 L # u* G7 l4 O) k z! s1 E4 [0 g8 J STM32Cube 1.x 版包括:: m) S0 t8 d l • 图形软件配置工具 STM32CubeMX,可通过图形向导生成初始化 C 代码。3 C" k# r' B2 n& Y* L p% z' q • 针对每个系列提供综合的嵌入式软件平台 (例如 STM32CubeF2 用于 STM32F2 系列,STM32CubeF4 用于 STM32F4 系列) – STM32 抽象层嵌入式软件 STM32Cube HAL,确保在 STM32 各个产品之间实现最大限度的可移植性( V( n% Z1 k5 c( j/ M( m9 d – 一套一致的中间件,比如 RTOS、 USB、 TCP/IP、图形 – 所有嵌入式软件实用工具均配备一套完整的示例。
2.1 栈特性 LwIP 为免费 TCP/IP 栈,由 Adam Dunkels 在瑞典计算机科学院 (SICS)开发,由修正的BSD 许可授权。 7 m: ~& e, G7 y: T. e " n$ U4 c6 b5 Z4 j9 _! [7 b: E* G LwIP TCP/IP 实现的侧重点为在全面保持 TCP/IP 栈的同时,尽可能的减少 RAM 的使用。这使得 LwIP 特别适合在嵌入式系统中使用。 . H% w! Z; e; }5 ]+ b LwIP 具有下列协议: • IPv4 和 IPv6 (网际协议 v4 和 v6)" @+ X+ X+ w( U# ~0 ?7 W9 @2 ? • ICMP (互联网控制消息协议),用于网络维护和调试 • IGMP (互联网组管理协议),用于多播流量的管理 • UDP (用户数据报协议)6 {) J6 d4 M% T • TCP (传输控制协议) • DNS (域名服务器)* T# R% f7 G( k4 [8 y- m • SNMP (简单网络管理协议)5 ?0 \* Z" W, C& ^9 o3 e) q • DHCP (动态主机配置协议)0 P) _1 w" o7 D5 [; H. W • PPP (点到点协议) • ARP (地址解析协议) LwIP 具有三种应用编程接口 (API): • Raw API 为原始的 LwIP API。它通过事件回调机制进行应用开发。该 API 提供了最好的性能和优化的代码长度,但增加了应用开发的复杂性。. A: B& J) h7 ?' J# l i; a • Netconn API 为高层有序 API,需要实时操作系统 (RTOS)的支持 (提供进程间通讯的方法)。 Netconn API 支持多线程工作。 0 A2 I! i& h) P4 }! D7 s • BSD Socket API:类似 Berkeley 的套接字 API (开发于 Netconn API 之上)LwIP 栈的源代码可从 http://savannah.nongnu.org 下载。 .......... 想了解更多,请下载原文阅读 |
顶 |
| 收藏 |
| STUDY... |
无刷直流电机控制应用+基于STM8S系列单片机---电子书
MCSDK FOC应用详解
STM32F10xxx 正交编码器接口应用笔记 及源代码
基于STM32定时器ETR信号的应用示例
《无刷直流电机控制应用 基于STM8S系列单片机》
STM32定时器触发SPI逐字收发之应用示例
【银杏科技ARM+FPGA双核心应用】STM32H7系列10——ADC
【银杏科技ARM+FPGA双核心应用】STM32H7系列57——MDK_FLM
【STM32图书分享之九】—《STM32F 32位ARM微控制器应用设计与实践》
STM32 USB的程序,包含固件、驱动和测试用的应用程序
微信公众号
手机版