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

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

[复制链接]
STMCU小助手 发布时间:2022-7-18 13:22
1简介
% W* X/ e% C, a# b; w: D, }本应用笔记专为使用 STM32F407/STM32F417 微控制器的开发人员编写。它提供了如何使用 STM32F407/STM32F417 以太网通信接口实现在应用中编程 (IAP) 的解决方案。
& I! i" f5 }, i4 X5 l0 a有两种基于 LwIP TCP/IP 协议栈的解决方案:! ?5 u2 n( H' k, u( Q/ f$ ~7 x: ~
使用 TFTP (简单文件传输协议)的 IAP
9 w% L# H6 l* K4 D( o  Y使用 HTTP (超文本传输协议)的 IAP
4 F, z9 T$ V7 W
1 C+ l0 S# r# M

; y0 m3 E. z0 \' A# {2 IAP 概述" U7 `7 R: G' H+ ]9 o: ~
2.1 工作原理! d/ @6 D+ p% q' [8 Y
在应用中编程 (IAP) 是一种在现场通过 MCU 通信接口(例如 UART、USB、CAN 和以太网)进行固件升级的方式。( ], b/ c* V& l3 C$ m
启动微控制器时,可以选择让其在以下任一模式运行:
- |6 |5 \) F1 d/ `: A- ?& a  O" QIAP 模式,用于执行 IAP 代码,
: A9 G. {% y3 U& C$ j7 m7 g正常模式,用于执行应用程序代码。8 M; s2 z( e* X2 \$ f+ _1 O
无论是 IAP 代码还是应用程序代码都位于微控制器的内置 Flash 中。IAP 代码通常存储在 MCU Flash 的第一页,而用户应用程序代码则占据剩余的 Flash 区域。
+ G* L3 [$ {& \1 Z/ ~ 1 介绍了 IAP 操作流程:& Q; g) ?1 H2 I/ K; C! ~% [
( |. w7 |) T2 b7 @
[3O[CS8J1%GL``BV%}KP600.png 5 v4 k; |  m/ e

$ E$ h9 F/ Y$ m# c
. z) r" c, ^/ N0 J* J
2.2 使用 MCU 以太网接口实现 IAP
% s0 K) H) J& s如果有以太网可用,则它通常是在嵌入式系统中实现 IAP 功能的首选接口。其优势包括:- I0 Y6 i- Q- F6 |+ D. a% y
高速通信接口 (10/100 Mb/s)
( b+ P- p: P0 o, {/ c( i通过网络 (LAN 或 WAN) 进行远程编程
0 _$ [2 {$ r# [) J9 T: B/ ?, R可以使用 FTP、TFTP、HTTP 等基于 TCP/IP 栈的标准应用协议实现 IAP
( X5 P' F: g0 o
& \* M1 r. Q: U! V; `2.3 通过以太网在 STM32F407/STM32F417 上实现 IAP
$ i+ F" C. o) L. H9 ]! o2 g本应用笔记将介绍两种使用以太网通信外设在 STM32F407/STM32F417 上实现 IAP 的解决方案:
5 x. j7 Y6 a7 y( I( P使用 TFTP(简单文件传输协议)的 IAP1 J, a3 `& D+ `
使用 HTTP(超文本传输协议)的 IAP
6 G2 l; i3 R/ O% C  X. B这两种解决方案均基于 LwIP 栈 (v1.3.2),它是轻量级的 TCP/IP 协议栈。$ \7 M: q" w  }0 V  I2 n1 `

/ x. ^, m& c9 t$ f! T- A! {
2.3.1 使用 TFTP 实现 IAP 方法/ X8 `0 T! z/ d4 a. F' g
使用 TFTP 实现 IAP 的方法广泛应用于需要具有固件升级功能的嵌入式应用中(例如,嵌入式 Linux bootloader 中)。
" I8 A) F" Q  W1 T2 ]2 RTFTP 是一种在 UDP 传输层上执行的简单文件传输协议。此协议非常适合在局域网环境中使用。它基于客户端/服务器架构,在这种架构中,客户端会向服务器发出文件传输请求(读取或写入操作)。
3 T. ]/ K3 W1 b# g9 G' Y为实现 IAP,需要在 LwIP 协议栈上实现一个简单的 TFTP 服务器,服务器只需处理来自 PC的 TFTP 客户端的写入请求即可。
: f- _+ u0 H2 W6 m- h( x- h3 D1 e! ?5 u! V2 f! K$ s
2.3.2 使用 HTTP 实现 IAP 方法
+ [4 W4 d- D4 M. K4 e) s使用 HTTP 协议进行固件升级没有使用 TFTP 常见,但是在需要通过 Internet 进行远程编程时,这种解决方案就显得极为有用。这时,需要使用 TCP 传输协议来实现 http 服务。+ r: J( I' A+ ]% ?4 J
HTTP 基于 TCP 协议运行,它提供了一种以 HTML 表单形式从 Web 客户端(Mozilla Firefox或 Microsoft Internet Explorer)发送二进制文件的方式。这称为 HTTP 文件上传 (RFC 1867)。
& ~  I- Q6 m* C4 u3 Q本文档中的后续章节将详细介绍这两种 IAP 方法的实现,并会对如何使用软件进行说明。文档 ID 022107 第 1版 # H$ O* A5 T6 ?

& _' z) i, p4 h  P5 h3 使用 TFTP 实现 IAP
: f; v% d, o3 A% b1 `4 G( a3.1 TFTP 概述
4 I( O3 G( P! F1 D+ e8 k3 zTFTP 是一种基于 UDP 的简单文件传输协议。文件传输由 TFTP 客户端发起,会向 TFTP 服务器发送读取或写入请求。服务器确认请求后,即开始进行文件数据传输。数据将以固定大小的块进行发送(例如每块含 512 个字节)。
  N% e* s" B2 H# [: z) Y! T5 @; v; Q# }  u必须在每个发出的数据块都得到接收方确认后,才可以发送下一个数据块。这种确认机制通过随各个数据块一同发送的块编号来实现。数据块小于固定块大小表示文件传输的结束。- _" O% z/ [- P6 M5 T
2 描述了各种 TFTP 数据包的格式:; ^2 P, E* i& y2 q
1 J) T  ?% F/ H" b
- m* M- I$ [1 l9 |% _( X, l
(87VQ92)$T3IW[2ICU]7%~3.png
& G& |/ F7 K. {) S
3 p0 Q, }( h* C) ~8 U% s

. p& n8 z2 s1 q( l完整版请查看:附件7 }. ~, r2 y8 x& G7 m1 s

0 H7 H$ f: h6 m9 E6 C+ W4 H$ w, T0 {

DM00036062_ZHV1.pdf

下载

1.13 MB, 下载次数: 55

收藏 评论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 手机版