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

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

[复制链接]
STMCU小助手 发布时间:2022-12-5 22:00
1 简介0 L7 r5 {/ q8 Q! P  J- F3 ?
本应用笔记专为使用 STM32F407/STM32F417 微控制器的开发人员编写。它提供了如何使用STM32F407/STM32F417 以太网通信接口实现在应用中编程 (IAP) 的解决方案。
# H) E0 I" n# a1 v有两种基于 LwIP TCP/IP 协议栈的解决方案:
6 d" I3 i$ r* {/ a: ]4 s● 使用 TFTP (简单文件传输协议)的 IAP* ~8 s0 I' D5 q9 h: v
● 使用 HTTP (超文本传输协议)的 IAP; |9 a* X6 Z0 {& v2 E+ d  k
. b! p! M; {0 Y$ a; }

* C3 S" n( i/ A/ C2 y2 IAP 概述7 P/ v% T7 m1 y" V5 t; a
2.1 工作原理/ w* t* P' N5 V! [+ s  A3 {; j
在应用中编程 (IAP) 是一种在现场通过 MCU 通信接口(例如 UART、USB、CAN 和以太网)进行固件升级的方式。) q4 _; q  y; G0 C5 j- ^
启动微控制器时,可以选择让其在以下任一模式运行:6 w6 ?3 \; [2 N% P
● IAP 模式,用于执行 IAP 代码,
% a- h* n) s% c, W* h9 c" e● 正常模式,用于执行应用程序代码。/ ^4 l/ }5 z0 L# \& H' D* M3 m. m8 W
无论是 IAP 代码还是应用程序代码都位于微控制器的内置 Flash 中。IAP 代码通常存储在 MCU Flash 的第一页,而用户应用程序代码则占据剩余的 Flash 区域。- x3 n2 z- n4 j# h+ y' _
图 1 介绍了 IAP 操作流程:
7 B( h$ p. e6 e3 k" @( a' ?& G* L

* K, M6 O, M! X. E; K TGA[8ZNN6]OUO3JE[0PR)AJ.png $ e9 E( f# b: e" i' X' b
5 A$ H0 ]1 S1 Z, z( V. e

- \- ]% g# Z* Q! l) A% A) A2.2 使用 MCU 以太网接口实现 IAP
0 Q. E, V8 `0 v, @如果有以太网可用,则它通常是在嵌入式系统中实现 IAP 功能的首选接口。其优势包括:
# p1 D' a% k$ }● 高速通信接口 (10/100 Mb/s)
7 H0 ~- U( ^0 H; B& e4 A● 通过网络 (LAN 或 WAN) 进行远程编程
1 m, Z* D( D9 z' T0 ^3 u$ N: s6 q● 可以使用 FTP、TFTP、HTTP 等基于 TCP/IP 栈的标准应用协议实现 IAP
. Q0 w  \" }* Y, O9 D% `& e  A) k9 ~' F% a
2.3 通过以太网在 STM32F407/STM32F417 上实现 IAP
2 K. x$ ]8 G5 @  m本应用笔记将介绍两种使用以太网通信外设在 STM32F407/STM32F417 上实现 IAP 的解决方案:
7 R% N+ i3 |, K# _, K● 使用 TFTP(简单文件传输协议)的 IAP2 ?, J2 }1 G% M  {
● 使用 HTTP(超文本传输协议)的 IAP
- K; R9 M; t- F0 R! s/ U这两种解决方案均基于 LwIP 栈 (v1.3.2),它是轻量级的 TCP/IP 协议栈。
) m4 ^6 o# Q3 j0 C( A8 H8 J. J" x% u+ J; X: E+ N! A0 H/ N% Y4 l. Q8 h" U

, l8 s4 h$ H0 X5 ?* M$ B2.3.1 使用 TFTP 实现 IAP 方法3 u, }5 x9 s. i: u0 ]8 G
使用 TFTP 实现 IAP 的方法广泛应用于需要具有固件升级功能的嵌入式应用中(例如,嵌入式 Linux bootloader 中)。
5 ?0 |7 Y1 o( F8 |# j8 b- }TFTP 是一种在 UDP 传输层上执行的简单文件传输协议。此协议非常适合在局域网环境中使用。它基于客户端/服务器架构,在这种架构中,客户端会向服务器发出文件传输请求(读取或写入操作)。0 S" I/ W$ G" [8 x) i1 ?. R! a
为实现 IAP,需要在 LwIP 协议栈上实现一个简单的 TFTP 服务器,服务器只需处理来自 PC的 TFTP 客户端的写入请求即可。
9 n8 z6 ]4 s$ p0 T( c4 w8 x; G: ]6 I+ b
2.3.2 使用 HTTP 实现 IAP 方法
6 I8 B0 x! D3 K" v0 d  D9 d0 `使用 HTTP 协议进行固件升级没有使用 TFTP 常见,但是在需要通过 Internet 进行远程编程时,这种解决方案就显得极为有用。这时,需要使用 TCP 传输协议来实现 http 服务。
& [! K+ j9 k! a, j  H; g1 KHTTP 基于 TCP 协议运行,它提供了一种以 HTML 表单形式从 Web 客户端(Mozilla Firefox或 Microsoft Internet Explorer)发送二进制文件的方式。这称为 HTTP 文件上传 (RFC 1867)。
3 W5 {- L; m  [8 D6 J: [. ]" `本文档中的后续章节将详细介绍这两种 IAP 方法的实现,并会对如何使用软件进行说明。% n/ I' h% {% y3 b9 m' m7 c* a' O

* @$ m) m2 d. W# t. p3 使用 TFTP 实现 IAP8 S2 E' |& W( A( X7 X1 J
3.1 TFTP 概述6 l! [9 R+ O2 Y
TFTP 是一种基于 UDP 的简单文件传输协议。文件传输由 TFTP 客户端发起,会向 TFTP 服务器发送读取或写入请求。服务器确认请求后,即开始进行文件数据传输。数据将以固定大小的块进行发送(例如每块含 512 个字节)。' p: Y! ^1 y& _  e( k+ x6 Z
必须在每个发出的数据块都得到接收方确认后,才可以发送下一个数据块。这种确认机制通过随各个数据块一同发送的块编号来实现。数据块小于固定块大小表示文件传输的结束。
1 t' `3 ~# X- l: q图 2 描述了各种 TFTP 数据包的格式:3 |& U  ]4 T2 g

; Y7 w' w8 K6 n0 Z, j3 m; n: \

& g/ M( \# ]5 R 9N]}O@DR6AKMCJSE29V4%~Q.png
/ w; p* H& r/ B9 C6 ^7 y
6 P5 x9 K. q6 x8 U5 T* |1 n( ]完整版请查看:附件/ H% J8 d+ d. `  w8 J( l

) N% n9 \' w; r0 ]+ ~$ M4 b; J% p; w8 U* ^+ |/ D: R
$ s* D; @1 M% n- g

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

下载

623.28 KB, 下载次数: 2

收藏 评论0 发布时间:2022-12-5 22:00

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版