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

STM32Cube 以太网 IAP 示例

[复制链接]
STMCU小助手 发布时间:2022-7-23 22:31
前言& N6 T+ n0 ~* O9 V8 R! H
STMCube™ 计划源自意法半导体,旨在通过减少开发的工作量、时间与成本,使开发者受益。 STM32Cube 涵盖 STM32 产品系列。
8 U& k* p; J$ L, B# XSTM32Cube 1.x 版包括:
9 l0 C- t0 i7 p& P4 W• 图形软件配置工具 STM32CubeMX,可通过图形化的向导生成初始化 C 代码。
/ Y3 g* F0 P" D' q0 M• 针对每个系列提供综合的嵌入式软件平台,(比如用于 STM32F4 系列的3 j/ g+ o# U# @. P
STM32CubeF4)
( g9 U( }. K2 d- n% q- K# q– STM32 抽象层嵌入式软件 STM32Cube HAL,确保在 STM32 各个产品之间实现最大限度的可移植性6 ^+ Z+ e+ H2 |- Y7 H9 n! E
– 一套一致的中间件,比如 RTOS、 USB、 STMTouch、 FatFS 和图形  u2 N* b% F. {( w3 r' F0 f
– 所有嵌入式软件实用程序均配备一套完整的示例。+ m; ?4 X5 F- x7 d; V" X/ k/ J' @& r
在应用中编程 (IAP)是在 flash 中执行代码的同时,对同一 flash 存储器编程的方法。它提供了使用高速通信协议加载应用代码的可能性。
1 Z# u" M$ N. Q& Y& h/ h本用户手册的目标读者为在 STM32 微控制器上使用 STM32Cube 固件的开发者。它提供了如何使用以太网通信,实现在应用中编程 (IAP)的全部说明。
- h7 m- A( w5 s2 A* U" o7 `  L0 A% D在 LwIP TCP/IP 协议栈上提供了两种可行的解决方案:
4 o7 w6 P1 t! Z% B. m9 B• 使用 TFTP (简单文件传输协议)的 IAP
  ]# B# I. h" p4 a4 H) _, H• 使用 HTTP (超文本传输协议)的 IAP + k0 n" `5 ~2 Y$ j
注: 本文适用于具有以太网外设的所有 STM32 系列。然而,为简单起见,使用了 STM32F4xx
7 p2 {8 e9 J9 v2 C微控制器和 STM32CubeF4 作为参考平台。
$ g1 {0 h1 |# N2 d% Q; a, K相同的说明、文件名、屏幕截图也适用于提供以太网连接的其它系列,例如STM32F107xx、 STM32F2x7xx、 STM32F7xx。若需了解更多在 STM32 系列上实现以太网IAP 样例的信息,请参考相关 STM32Cube 固件包中提供的文档。$ I; j+ p+ T& R1 M% @; l
8 ]' N, j, O) x/ ]

- B) q4 M# @- v9 |1 IAP 概述
  B7 ^  @' I" f: G2 O+ ~0 k1.1 工作原理1 y8 @& h1 c2 U8 i8 m
在应用中编程 (IAP)是一种在现场通过 MCU 的通信接口 (例如 UART,USB,CAN 和以太网等)进行固件升级的方式。
7 _( |3 l' W! z: I" X当您启动微控制器时,您可选择以下两种模式之一: , r- k; d$ X% k0 k  p6 N: O! {5 a  K
• IAP 模式,可执行 IAP 代码。
  d# _4 N: v/ G: ?+ f• 正常模式,可执行应用代码。
! o0 X" K4 h+ e' a2 A3 }IAP 代码和应用程序代码都在微控制器的嵌入式 Flash 中。通常 IAP 代码被存储在 MCU Flash 的前几页,用户应用代码占据剩余的 Flash 区域。5 S% {9 k8 q0 X) X5 p
图 1 显示了 IAP 操作流程:+ O6 l6 q& V& u2 H/ r$ r* Q: ]: B
2 l% X7 i1 m* i9 `3 r- h
MM$XB%O1D$VP@S{0K8PK1(P.png ' q' `9 ?& f. K4 a2 o( ]0 i0 d
! h3 b' l' x" F5 w; o# J( G$ J, W
2 T# H- e/ T& T
1.2 使用 MCU 以太网接口实现 IAP, m. g9 Z7 H# X+ u
当以太网可用时,它通常是在嵌入式应用中实现 IAP 功能的更好的接口。其优点是:
/ j3 G$ y2 ^' ^0 ^+ t! E• 高速通信接口 (10/100 Mbit/s) 9 q: P: k+ r( C9 {# t' w$ R& f5 Y9 @
• 通过网络 (LAN 或者 WAN)进行远程编程! v' R( E0 q# O* {# Y( O6 x
• TCP/IP 协议栈上的标准应用协议 (例如 FTP、 TFTP、 HTTP)可用于实现 IAP
' D- O! w# V/ Y8 Q: G* V( I! X* E$ [8 L6 u% t# v& O" G: s6 M' Q

; B( {* o  B  @) f+ U1.3 通过以太网实现 IAP
0 D; u" f7 _* @! q, f1 ~) ~本用户手册说明了两种使用以太网通信外设在 STM32F4xx 上实现 IAP 的解决方案:
+ w7 R- k, w' D• 使用 TFTP (简单文件传输协议)的 IAP
% u# e, E# v4 H5 U• 使用 HTTP (超文本传输协议)的 IAP
; B& O( _% K7 O6 o两种解决方案都运行在 LwIP 协议栈上,它是 TCP/IP 协议套件的一种轻量级实现。
8 [. H' x9 ^5 Z* p# d& i( O9 C- {" b$ A; Z) R! B; u: V
1.3.1 使用 TFTP 实现 IAP 的方法
+ a5 P7 r& g- x使用 TFTP 实现 IAP 的方法广泛应用于需要固件升级能力的嵌入式应用 (比如在嵌入式Linux bootloader 中)。% }% ?! M/ b+ s2 L7 o4 j
TFTP 是工作在 UDP 传输层上的简单文件传输协议。它主要应用在 LAN 环境中。它基于客户端 / 服务器体系结构,其中客户端向文件服务器请求文件传输 (读或写操作)。
( l! Y% R* f3 x$ H" o在这个例子中,服务器只处理来自 PC TFTP 客户端的写请求,所以在 LwIP 栈上实现了一个简单的 TFTP 服务器。8 D& M6 i/ P: t& z+ p. s

% a* R$ @9 t7 K, m4 d/ j
1.3.2 使用 HTTP 实现 IAP 的方法1 b# l5 a$ j0 Z
使用 HTTP 协议进行固件升级没有使用 TFTP 常见,但是当需要通过互联网进行远程编程时,它是一种有用的解决方案。在这种情况下,需要 TCP 传输协议来确保最优操作。
4 C# G1 I& C% u% S. R工作在 TCP 上的 HTTP,提供了一种用 HTML 表单从 web 客户端 (Mozilla Firefox 或Microsoft Internet Explorer)发送二进制文件的方法,称作 HTTP 文件上传 (RFC 1867)。+ }( d9 @1 w! X) q3 S
本文档的下一部分给出了关于这两种 IAP 方法实现的详细信息并解释了如何使用这个软件。# _( @) |) f, r; Z/ F
2 D9 N( k9 p( _: G
+ a+ P6 @8 ?7 q/ `/ b& C: e! R
完整版请查看:附件
3 Z( x+ U2 f- _$ S6 z5 S2 f# C
8 }/ a: |6 ]3 b& r0 E7 b- @$ J, h$ s; h

$ r9 n1 D2 e0 @3 b6 @' O+ t

DM00103145_ZHV3.pdf

下载

712.66 KB, 下载次数: 4

赞 收藏 评论0 发布时间:2022-7-23 22:31

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版