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

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

[复制链接]
STMCU小助手 发布时间:2022-7-18 13:22
1简介& V" s/ q9 g5 I/ ?) }( E* o
本应用笔记专为使用 STM32F407/STM32F417 微控制器的开发人员编写。它提供了如何使用 STM32F407/STM32F417 以太网通信接口实现在应用中编程 (IAP) 的解决方案。
9 J6 ~5 O. W$ K( D1 ]" W有两种基于 LwIP TCP/IP 协议栈的解决方案:
3 l" ]  c% f' @1 ~% h使用 TFTP (简单文件传输协议)的 IAP7 {! R8 g' D* w8 a
使用 HTTP (超文本传输协议)的 IAP
/ m- k- i2 p! {" `/ J# ?! V/ b+ T8 [% {: @/ F# W

/ g! ~8 H# L! K- R% y2 IAP 概述
! H1 P8 ]. H% N$ ?2.1 工作原理
6 }( c* o1 p  C! \在应用中编程 (IAP) 是一种在现场通过 MCU 通信接口(例如 UART、USB、CAN 和以太网)进行固件升级的方式。, l# ^* g. @  A5 n, k1 G
启动微控制器时,可以选择让其在以下任一模式运行:
5 B( {" h: `1 [6 v3 o1 Y' ?IAP 模式,用于执行 IAP 代码,+ M4 b7 n3 X- \
正常模式,用于执行应用程序代码。7 h& B8 n5 t( Z9 x1 b9 z* s
无论是 IAP 代码还是应用程序代码都位于微控制器的内置 Flash 中。IAP 代码通常存储在 MCU Flash 的第一页,而用户应用程序代码则占据剩余的 Flash 区域。
4 _, d: H- {0 l; L3 Q' P+ j 1 介绍了 IAP 操作流程:, \+ ~% k$ w3 F$ z2 r

# J3 g! Q% ], _ [3O[CS8J1%GL``BV%}KP600.png
, v/ Y" c. B1 o* O9 s
0 ]8 @- [  W# l" A6 n+ Z
3 h1 R, B8 f0 F5 J; K+ j
2.2 使用 MCU 以太网接口实现 IAP
* D* H6 I  D9 X, D6 |8 g! s如果有以太网可用,则它通常是在嵌入式系统中实现 IAP 功能的首选接口。其优势包括:
0 E2 ~. g, v1 D( }. s4 [; @  p6 F高速通信接口 (10/100 Mb/s)
1 q" U1 v  y! v通过网络 (LAN 或 WAN) 进行远程编程
' _: ~, n: k% O) s/ v可以使用 FTP、TFTP、HTTP 等基于 TCP/IP 栈的标准应用协议实现 IAP( S& I1 {$ T5 `

: _" j: J2 {4 @# u2.3 通过以太网在 STM32F407/STM32F417 上实现 IAP
% {3 N5 D9 ~, Z* K& I本应用笔记将介绍两种使用以太网通信外设在 STM32F407/STM32F417 上实现 IAP 的解决方案:- d3 v; y2 ^# f' Y$ g
使用 TFTP(简单文件传输协议)的 IAP
# j4 y& r5 D6 k, T: e4 Q0 a, q使用 HTTP(超文本传输协议)的 IAP; p/ \; Q3 r! A; @0 G
这两种解决方案均基于 LwIP 栈 (v1.3.2),它是轻量级的 TCP/IP 协议栈。1 P* {& d' ?9 f: ]9 R5 |" O) a

4 x" C! G% v/ o/ A
2.3.1 使用 TFTP 实现 IAP 方法
7 d; v4 J4 k$ c! v5 |使用 TFTP 实现 IAP 的方法广泛应用于需要具有固件升级功能的嵌入式应用中(例如,嵌入式 Linux bootloader 中)。
& `- K: s* g: X0 ]TFTP 是一种在 UDP 传输层上执行的简单文件传输协议。此协议非常适合在局域网环境中使用。它基于客户端/服务器架构,在这种架构中,客户端会向服务器发出文件传输请求(读取或写入操作)。
. |. I% q- R0 m# n' x/ x* z' \为实现 IAP,需要在 LwIP 协议栈上实现一个简单的 TFTP 服务器,服务器只需处理来自 PC的 TFTP 客户端的写入请求即可。
' M$ @( ^: N( j1 L, R; R$ a% X, L) X
2.3.2 使用 HTTP 实现 IAP 方法( k3 N/ W: F+ j5 v2 k6 ^. W
使用 HTTP 协议进行固件升级没有使用 TFTP 常见,但是在需要通过 Internet 进行远程编程时,这种解决方案就显得极为有用。这时,需要使用 TCP 传输协议来实现 http 服务。
( k/ D. k% j* W4 e8 b5 C& |HTTP 基于 TCP 协议运行,它提供了一种以 HTML 表单形式从 Web 客户端(Mozilla Firefox或 Microsoft Internet Explorer)发送二进制文件的方式。这称为 HTTP 文件上传 (RFC 1867)。
" Z) g6 o& r/ V6 u- J8 A" O, j# e本文档中的后续章节将详细介绍这两种 IAP 方法的实现,并会对如何使用软件进行说明。文档 ID 022107 第 1版
1 Z& L; q8 _8 {+ ?
; N, Z* h0 i1 F- K# t0 B3 使用 TFTP 实现 IAP
! U' y! m& i/ E1 |+ t4 s3 r3.1 TFTP 概述
- o, W" g: S# y; eTFTP 是一种基于 UDP 的简单文件传输协议。文件传输由 TFTP 客户端发起,会向 TFTP 服务器发送读取或写入请求。服务器确认请求后,即开始进行文件数据传输。数据将以固定大小的块进行发送(例如每块含 512 个字节)。4 F' t% d4 A2 r0 d% g
必须在每个发出的数据块都得到接收方确认后,才可以发送下一个数据块。这种确认机制通过随各个数据块一同发送的块编号来实现。数据块小于固定块大小表示文件传输的结束。: L0 w, K) h7 o: x& J2 B" z
2 描述了各种 TFTP 数据包的格式:5 p; E" R' ?' z9 X3 L8 N) W

, ^2 f2 W2 P) g) n2 v
6 z, r) t: S- ?8 z- E4 [# k& S" E
(87VQ92)$T3IW[2ICU]7%~3.png ) ?) ]! ^% H- d8 {
6 T8 V; l5 E, m3 `. E; P! m

7 X3 a6 ?4 C+ J4 ?+ L# h1 z完整版请查看:附件
# |1 W4 H* W2 B- _1 }1 z; E/ N% b
- l; b' ]7 h9 l: P' S% a1 s
5 F# b" C. w: Y9 I0 i- L! J: R

DM00036062_ZHV1.pdf

下载

1.13 MB, 下载次数: 47

收藏 评论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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版