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

STM32F407/STM32F417通过以太网实现在应用中编程 (IAP)

[复制链接]
STMCU小助手 发布时间:2022-7-18 13:22
1简介
) z' l! w  r0 b' k& p$ n- u本应用笔记专为使用 STM32F407/STM32F417 微控制器的开发人员编写。它提供了如何使用 STM32F407/STM32F417 以太网通信接口实现在应用中编程 (IAP) 的解决方案。  q. [, m* v, W
有两种基于 LwIP TCP/IP 协议栈的解决方案:
) g3 l; ^( d9 |' j* _$ {使用 TFTP (简单文件传输协议)的 IAP
7 {9 ~$ Q8 L8 U$ U使用 HTTP (超文本传输协议)的 IAP4 X! P1 C  c) t' e- M- _
4 J* E" \) B7 ^& P  E+ N

' @3 \; p9 h- ~: A5 \2 IAP 概述
8 }4 I( }! k4 ?3 g- z2.1 工作原理
8 O6 w6 o& L/ K在应用中编程 (IAP) 是一种在现场通过 MCU 通信接口(例如 UART、USB、CAN 和以太网)进行固件升级的方式。
6 ]8 ~" b5 O* ~, D5 u1 ^启动微控制器时,可以选择让其在以下任一模式运行:
* z4 J7 k) N3 D; wIAP 模式,用于执行 IAP 代码,0 M; Q+ [( L0 f# @" K2 R
正常模式,用于执行应用程序代码。6 b: _% b7 P% s' U7 ]
无论是 IAP 代码还是应用程序代码都位于微控制器的内置 Flash 中。IAP 代码通常存储在 MCU Flash 的第一页,而用户应用程序代码则占据剩余的 Flash 区域。
$ ?% M# |5 X( ?* ~( Y3 v! ~& \  o 1 介绍了 IAP 操作流程:2 T5 A2 M* g1 z3 D" ^' F) Z

( E+ U4 z# M8 B; T$ E [3O[CS8J1%GL``BV%}KP600.png
  N6 U7 m; e$ |' f: I) i% l. c9 G
. m4 m  M0 O: ]1 o7 L6 s* E
, n/ v- t9 H+ ]
2.2 使用 MCU 以太网接口实现 IAP" i; k# A! B; f8 n; T9 A+ U1 u3 y
如果有以太网可用,则它通常是在嵌入式系统中实现 IAP 功能的首选接口。其优势包括:
  \6 r! P3 n9 x/ a高速通信接口 (10/100 Mb/s); G; s  Q7 y! T/ V; f; a( b0 e: s
通过网络 (LAN 或 WAN) 进行远程编程3 p0 O5 p2 `6 f' T) U) `
可以使用 FTP、TFTP、HTTP 等基于 TCP/IP 栈的标准应用协议实现 IAP
+ d& \- G, c0 N9 z% q- M% S0 o' Y' F
2.3 通过以太网在 STM32F407/STM32F417 上实现 IAP4 I: s& z) d- w
本应用笔记将介绍两种使用以太网通信外设在 STM32F407/STM32F417 上实现 IAP 的解决方案:
2 Y, H( k1 a) V- q使用 TFTP(简单文件传输协议)的 IAP+ i2 J) D* \0 X! ]' ~
使用 HTTP(超文本传输协议)的 IAP
8 T) a' u$ b. r+ b7 o+ `这两种解决方案均基于 LwIP 栈 (v1.3.2),它是轻量级的 TCP/IP 协议栈。
% v& @0 r' w( g0 O# ]( e0 i9 A3 r! p3 a
2.3.1 使用 TFTP 实现 IAP 方法
4 U  b& h* E& E. @8 a3 o+ U使用 TFTP 实现 IAP 的方法广泛应用于需要具有固件升级功能的嵌入式应用中(例如,嵌入式 Linux bootloader 中)。, x* {# i0 N! H
TFTP 是一种在 UDP 传输层上执行的简单文件传输协议。此协议非常适合在局域网环境中使用。它基于客户端/服务器架构,在这种架构中,客户端会向服务器发出文件传输请求(读取或写入操作)。
' a1 k' J  S+ J. C: W7 t9 c为实现 IAP,需要在 LwIP 协议栈上实现一个简单的 TFTP 服务器,服务器只需处理来自 PC的 TFTP 客户端的写入请求即可。
, S8 B( z6 S. u/ j* M( w# k/ i: n, g
2.3.2 使用 HTTP 实现 IAP 方法
" T( M  m/ J: [9 j$ |+ i) \使用 HTTP 协议进行固件升级没有使用 TFTP 常见,但是在需要通过 Internet 进行远程编程时,这种解决方案就显得极为有用。这时,需要使用 TCP 传输协议来实现 http 服务。5 q( M8 [/ o" p& r( q
HTTP 基于 TCP 协议运行,它提供了一种以 HTML 表单形式从 Web 客户端(Mozilla Firefox或 Microsoft Internet Explorer)发送二进制文件的方式。这称为 HTTP 文件上传 (RFC 1867)。2 |4 z7 V9 F( q, H$ ?' s& ^( m6 c' Y
本文档中的后续章节将详细介绍这两种 IAP 方法的实现,并会对如何使用软件进行说明。文档 ID 022107 第 1版 * z3 O3 I, X5 ~8 m0 ^+ _: V
2 g+ U) J" g6 a$ }; ]& j6 Q; a
3 使用 TFTP 实现 IAP/ d, R' s! t4 Z/ D9 [5 N; j% B$ C
3.1 TFTP 概述; U+ Q! G* X0 P5 `
TFTP 是一种基于 UDP 的简单文件传输协议。文件传输由 TFTP 客户端发起,会向 TFTP 服务器发送读取或写入请求。服务器确认请求后,即开始进行文件数据传输。数据将以固定大小的块进行发送(例如每块含 512 个字节)。
# p7 @, a3 a  z8 I" f- O* Y) |- M必须在每个发出的数据块都得到接收方确认后,才可以发送下一个数据块。这种确认机制通过随各个数据块一同发送的块编号来实现。数据块小于固定块大小表示文件传输的结束。! M5 o* s* h) i0 n. r9 b/ R! C
2 描述了各种 TFTP 数据包的格式:  e  g, q( d% D3 T: M

% b: ]8 e/ Q5 g
5 Z0 Y& }- S0 j0 \% }3 d
(87VQ92)$T3IW[2ICU]7%~3.png
: C0 F7 P- d5 P9 A3 O4 b+ y
2 c% \1 u/ y1 a* V) m( t
4 G. }! p- T  U% Y* \1 P
完整版请查看:附件. Q3 n  f* i! K) v. W* B# j$ T1 a
# |5 L, Y( j: s$ {$ l, v

  C8 @  r. N2 Z$ e0 b5 I

DM00036062_ZHV1.pdf

下载

1.13 MB, 下载次数: 54

收藏 评论2 发布时间:2022-7-18 13:22

举报

2个回答
ldl 回答时间:2024-9-5 21:18:45

http页面源码怎么获取?目前测试只能在IE浏览器下使用,需要调整为兼容谷歌或edge浏览器使用。

marstang 回答时间:2024-10-15 22:51:00
http页面源码怎么获取?
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版