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

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

[复制链接]
STMCU小助手 发布时间:2022-7-18 13:22
1简介
! ]- @- h+ Y9 j( a本应用笔记专为使用 STM32F407/STM32F417 微控制器的开发人员编写。它提供了如何使用 STM32F407/STM32F417 以太网通信接口实现在应用中编程 (IAP) 的解决方案。2 T" n  `1 C1 f
有两种基于 LwIP TCP/IP 协议栈的解决方案:
* Y3 Z' ?: l; n& `使用 TFTP (简单文件传输协议)的 IAP
& d& {8 W/ O/ d: B9 v/ v使用 HTTP (超文本传输协议)的 IAP2 X  b/ a/ D1 M0 c
+ J+ I8 T! {! _  I

4 `6 K, t7 J! \6 [5 K" b2 IAP 概述
! m9 u+ ]8 c" L+ V$ b2.1 工作原理. d3 j: X" J- H- E" ~4 J! ^
在应用中编程 (IAP) 是一种在现场通过 MCU 通信接口(例如 UART、USB、CAN 和以太网)进行固件升级的方式。
4 U' K; l6 s* o7 y) O启动微控制器时,可以选择让其在以下任一模式运行:
+ k9 J! z7 V$ v+ {1 b8 V! mIAP 模式,用于执行 IAP 代码,6 u2 w1 T0 L" ^) z( H- x' f
正常模式,用于执行应用程序代码。
" }* K0 b6 E' J3 k( C8 z9 P' ~1 c无论是 IAP 代码还是应用程序代码都位于微控制器的内置 Flash 中。IAP 代码通常存储在 MCU Flash 的第一页,而用户应用程序代码则占据剩余的 Flash 区域。
0 ~- v1 h2 W7 C, }6 a+ @1 F" o 1 介绍了 IAP 操作流程:" C1 C, y; R& R. h3 A

+ a7 s8 e; Z, ]' `( W, ? [3O[CS8J1%GL``BV%}KP600.png
, w( Q; w2 T; J2 `" L: ], l& x
' n2 |* L# _. l0 }% V- H0 R

9 E) {  ]$ t( }4 w, W0 s2.2 使用 MCU 以太网接口实现 IAP
. {% j" r+ s3 }2 w! S4 z1 C+ @如果有以太网可用,则它通常是在嵌入式系统中实现 IAP 功能的首选接口。其优势包括:
% J3 ~/ s0 S) s) m7 ?0 g高速通信接口 (10/100 Mb/s). l2 s4 c) l) a$ c) p
通过网络 (LAN 或 WAN) 进行远程编程8 L& w+ |4 y" s/ Z
可以使用 FTP、TFTP、HTTP 等基于 TCP/IP 栈的标准应用协议实现 IAP* q- K9 W8 g; H9 Q* l

& e2 ~# B& X( y8 N$ [, \2.3 通过以太网在 STM32F407/STM32F417 上实现 IAP) G+ \4 ~, K6 }7 S3 B/ L
本应用笔记将介绍两种使用以太网通信外设在 STM32F407/STM32F417 上实现 IAP 的解决方案:0 P0 k  g" q% D: `1 K. b
使用 TFTP(简单文件传输协议)的 IAP
' u. N; A! i! l5 r& r使用 HTTP(超文本传输协议)的 IAP
0 v; d' H/ X3 s) e/ V+ R) T; [这两种解决方案均基于 LwIP 栈 (v1.3.2),它是轻量级的 TCP/IP 协议栈。
% U; o! o+ y7 M' C& G
5 \9 i( w$ R3 z% D
2.3.1 使用 TFTP 实现 IAP 方法+ T/ X/ Z/ f4 N& W( @# B8 L
使用 TFTP 实现 IAP 的方法广泛应用于需要具有固件升级功能的嵌入式应用中(例如,嵌入式 Linux bootloader 中)。
8 z7 W# x. q5 u& k( dTFTP 是一种在 UDP 传输层上执行的简单文件传输协议。此协议非常适合在局域网环境中使用。它基于客户端/服务器架构,在这种架构中,客户端会向服务器发出文件传输请求(读取或写入操作)。/ W' Y7 E1 P/ n6 t& b! B' {
为实现 IAP,需要在 LwIP 协议栈上实现一个简单的 TFTP 服务器,服务器只需处理来自 PC的 TFTP 客户端的写入请求即可。# `8 ]; {+ v" `1 S

8 z0 _; y: ?5 A3 v2 T
2.3.2 使用 HTTP 实现 IAP 方法
7 [0 N. z; a" ]+ C: O8 L使用 HTTP 协议进行固件升级没有使用 TFTP 常见,但是在需要通过 Internet 进行远程编程时,这种解决方案就显得极为有用。这时,需要使用 TCP 传输协议来实现 http 服务。
- D6 |  L& l+ V1 V7 \/ o# D) _6 U0 _! IHTTP 基于 TCP 协议运行,它提供了一种以 HTML 表单形式从 Web 客户端(Mozilla Firefox或 Microsoft Internet Explorer)发送二进制文件的方式。这称为 HTTP 文件上传 (RFC 1867)。
' {" s2 Q& f' m本文档中的后续章节将详细介绍这两种 IAP 方法的实现,并会对如何使用软件进行说明。文档 ID 022107 第 1版
5 j4 U$ [  f6 q7 O8 Q$ J0 i& p2 R4 }$ ^+ S; Z7 [' v. J! a
3 使用 TFTP 实现 IAP
. h, v6 H2 q* h4 T6 |% ?3.1 TFTP 概述
7 A" `/ G! s" h5 V* wTFTP 是一种基于 UDP 的简单文件传输协议。文件传输由 TFTP 客户端发起,会向 TFTP 服务器发送读取或写入请求。服务器确认请求后,即开始进行文件数据传输。数据将以固定大小的块进行发送(例如每块含 512 个字节)。
# A* G# x! C0 a1 o3 a- n. J8 v( P必须在每个发出的数据块都得到接收方确认后,才可以发送下一个数据块。这种确认机制通过随各个数据块一同发送的块编号来实现。数据块小于固定块大小表示文件传输的结束。
2 g) m; ~1 x- g3 m- }+ m 2 描述了各种 TFTP 数据包的格式:8 H  O  P4 N+ I  }5 D

$ X% a) ^& Y2 V4 L4 v4 f4 I' N# O

# o" O1 h7 R$ p" @ (87VQ92)$T3IW[2ICU]7%~3.png # V/ s0 W; V- `' x( ?8 J
/ {8 S0 t; T3 l/ ]! X; o
3 H; r! X# G; @. V" ]
完整版请查看:附件
( X; e2 j: t3 b, j4 s; A
8 Q. [+ v7 d  h( R3 ~
" d) {- ^: c1 ~

DM00036062_ZHV1.pdf

下载

1.13 MB, 下载次数: 53

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