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

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

[复制链接]
STMCU小助手 发布时间:2022-7-18 13:22
1简介
5 C" _/ Y4 C+ y# u6 i: o: z本应用笔记专为使用 STM32F407/STM32F417 微控制器的开发人员编写。它提供了如何使用 STM32F407/STM32F417 以太网通信接口实现在应用中编程 (IAP) 的解决方案。* o" [7 c0 C$ S0 x7 J) K
有两种基于 LwIP TCP/IP 协议栈的解决方案:
3 x/ t* `' {8 Q- c, y- v● 使用 TFTP (简单文件传输协议)的 IAP
! {# ?/ l4 s; I● 使用 HTTP (超文本传输协议)的 IAP0 x! L# V. D9 Z. _. U
# E/ Z- Q7 @! J& S
6 y( w6 e& |* _% B$ p) v; U
2 IAP 概述8 @, C# R( }' G. F1 x
2.1 工作原理: g5 M6 h# U) i
在应用中编程 (IAP) 是一种在现场通过 MCU 通信接口(例如 UART、USB、CAN 和以太网)进行固件升级的方式。) @. _/ }" w$ j/ Y# m% G5 |2 E
启动微控制器时,可以选择让其在以下任一模式运行:
6 T6 i, I$ j0 l' D( ~9 l● IAP 模式,用于执行 IAP 代码,
% l. ?1 y; C+ G$ g● 正常模式,用于执行应用程序代码。6 z) D0 @4 f6 P3 X( |% G; ]+ m- U
无论是 IAP 代码还是应用程序代码都位于微控制器的内置 Flash 中。IAP 代码通常存储在 MCU Flash 的第一页,而用户应用程序代码则占据剩余的 Flash 区域。, u; H+ V: R! g
图 1 介绍了 IAP 操作流程:
! w8 V& x  B# Q: `% Y
+ W/ Y3 d  I' Q8 B7 p) w) A
[3O[CS8J1%GL``BV%}KP600.png
( Y. q! [& K3 u3 O, O* l9 G8 ]. x

$ q# @+ `. Q4 P2 R2 v* |2.2 使用 MCU 以太网接口实现 IAP. S' R( Z( x% D9 Y9 d0 |
如果有以太网可用,则它通常是在嵌入式系统中实现 IAP 功能的首选接口。其优势包括:
" x2 s+ u# T" S* v+ K● 高速通信接口 (10/100 Mb/s)
8 o8 ~$ }: ]4 R+ R● 通过网络 (LAN 或 WAN) 进行远程编程
6 e+ i' S5 V$ Z* a/ p( P; Y● 可以使用 FTP、TFTP、HTTP 等基于 TCP/IP 栈的标准应用协议实现 IAP. [6 ?( z6 G( J

' U. b( L6 x. O. ^- a  h2.3 通过以太网在 STM32F407/STM32F417 上实现 IAP$ ]8 _+ L& N2 r3 {9 ]
本应用笔记将介绍两种使用以太网通信外设在 STM32F407/STM32F417 上实现 IAP 的解决方案:* Y& G9 }' t2 y; ]" E4 _3 ~2 o" Y) U
● 使用 TFTP(简单文件传输协议)的 IAP3 p( r! J, D5 t! l0 j) a
● 使用 HTTP(超文本传输协议)的 IAP  C) v0 Y2 L/ l0 j+ f1 A* A( Q$ E8 A
这两种解决方案均基于 LwIP 栈 (v1.3.2),它是轻量级的 TCP/IP 协议栈。$ c* W* X. V) U# T

, r2 h& r# D$ R; }& ~6 a8 J: E
2.3.1 使用 TFTP 实现 IAP 方法
; X" i+ Z3 `- D使用 TFTP 实现 IAP 的方法广泛应用于需要具有固件升级功能的嵌入式应用中(例如,嵌入式 Linux bootloader 中)。
& m8 V; s. ]0 m; v# `3 \: Y& V; wTFTP 是一种在 UDP 传输层上执行的简单文件传输协议。此协议非常适合在局域网环境中使用。它基于客户端/服务器架构,在这种架构中,客户端会向服务器发出文件传输请求(读取或写入操作)。3 o2 L" P1 ~/ y! Z( P8 E6 G$ Y
为实现 IAP,需要在 LwIP 协议栈上实现一个简单的 TFTP 服务器,服务器只需处理来自 PC的 TFTP 客户端的写入请求即可。
$ x4 [* B5 \/ f9 r5 F
+ A- R% y8 Q: i3 F3 a
2.3.2 使用 HTTP 实现 IAP 方法9 _* v1 n1 I$ w6 l* ~
使用 HTTP 协议进行固件升级没有使用 TFTP 常见,但是在需要通过 Internet 进行远程编程时,这种解决方案就显得极为有用。这时,需要使用 TCP 传输协议来实现 http 服务。
' w/ ^; E' f8 A% q1 tHTTP 基于 TCP 协议运行,它提供了一种以 HTML 表单形式从 Web 客户端(Mozilla Firefox或 Microsoft Internet Explorer)发送二进制文件的方式。这称为 HTTP 文件上传 (RFC 1867)。
6 n' L7 k5 g5 _1 B4 b3 R9 G7 m) k本文档中的后续章节将详细介绍这两种 IAP 方法的实现,并会对如何使用软件进行说明。文档 ID 022107 第 1版 - x' [1 `/ e6 `; y* f7 u4 c
/ H8 _4 Z. f7 k% s! N$ ^( D
3 使用 TFTP 实现 IAP
" w6 y# j' j/ _7 E7 @; {3 i# d3.1 TFTP 概述
2 u/ k6 Z+ j' X  X/ [- z; @+ c, w8 ~3 u3 zTFTP 是一种基于 UDP 的简单文件传输协议。文件传输由 TFTP 客户端发起,会向 TFTP 服务器发送读取或写入请求。服务器确认请求后,即开始进行文件数据传输。数据将以固定大小的块进行发送(例如每块含 512 个字节)。
: W# r# Y" g: ?+ S0 A( ~必须在每个发出的数据块都得到接收方确认后,才可以发送下一个数据块。这种确认机制通过随各个数据块一同发送的块编号来实现。数据块小于固定块大小表示文件传输的结束。
0 P8 E( Y3 U( r图 2 描述了各种 TFTP 数据包的格式:  ]/ T0 e# t8 w
0 E; \" @1 c+ J! c0 ^; b6 N
. z, V, h3 W1 c" S" M+ ]
(87VQ92)$T3IW[2ICU]7%~3.png 5 @6 n1 n, _5 M% h/ u  r5 K

1 v" r' q3 f: P/ @; E  g
8 U8 O/ M8 `2 N( K5 M# q
完整版请查看:附件% v2 g8 }8 N+ `; s9 T
# `4 H9 n; }7 w6 E2 }, N9 s6 p5 C

) q4 E0 U/ X  e1 g2 h; g

DM00036062_ZHV1.pdf

下载

1.13 MB, 下载次数: 65

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

举报

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

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

marstang 回答时间:2024-10-15 22:51:00
http页面源码怎么获取?
sunny_19931 回答时间:2025-8-10 14:23:07

目前测试只能在IE浏览器下使用,需要调整为兼容谷歌或edge浏览器使用。

所属标签

相似技术帖

官网相关资源

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