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

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

[复制链接]
STMCU小助手 发布时间:2022-7-18 13:22
1简介
, v5 H5 C' }3 A9 }8 J本应用笔记专为使用 STM32F407/STM32F417 微控制器的开发人员编写。它提供了如何使用 STM32F407/STM32F417 以太网通信接口实现在应用中编程 (IAP) 的解决方案。
+ v* L, D5 [" _7 I0 o5 V有两种基于 LwIP TCP/IP 协议栈的解决方案:
1 S" O9 W2 r' C# `7 f使用 TFTP (简单文件传输协议)的 IAP" u8 y: l2 y7 V
使用 HTTP (超文本传输协议)的 IAP
% X6 {4 |- ^: f" n- h/ r  [( {+ |9 `0 g
6 m. E" r1 m1 Q
2 IAP 概述
1 n, f9 b- |6 X) K7 }' h4 c. ~) D2.1 工作原理2 K' [: `0 ^' U3 }7 v* v
在应用中编程 (IAP) 是一种在现场通过 MCU 通信接口(例如 UART、USB、CAN 和以太网)进行固件升级的方式。
( K  @$ ?% D# u8 i' L7 B启动微控制器时,可以选择让其在以下任一模式运行:
& Q0 |1 h8 F) R+ {! pIAP 模式,用于执行 IAP 代码,7 o% ^# q0 q; W% L5 B
正常模式,用于执行应用程序代码。
  z% v( P9 J9 J7 ~% b无论是 IAP 代码还是应用程序代码都位于微控制器的内置 Flash 中。IAP 代码通常存储在 MCU Flash 的第一页,而用户应用程序代码则占据剩余的 Flash 区域。: X" ~- S/ Z6 E- `
1 介绍了 IAP 操作流程:
0 H- X: _4 Z/ _9 A- {7 z

* X4 ~; I4 M# ^7 Y0 `, K [3O[CS8J1%GL``BV%}KP600.png 9 y3 I8 f6 M( D# D6 Q( y; J
/ j$ x+ j! S2 G( a" H/ a
- M$ [% K4 z8 h
2.2 使用 MCU 以太网接口实现 IAP* M& g4 O- j$ U- \* ~! F1 D
如果有以太网可用,则它通常是在嵌入式系统中实现 IAP 功能的首选接口。其优势包括:
+ v6 ^2 _1 J3 `/ p高速通信接口 (10/100 Mb/s)
1 B2 ^! k1 |- d7 P( ^2 C" l' A* \通过网络 (LAN 或 WAN) 进行远程编程
9 l& j+ o! x6 n2 X# a& C可以使用 FTP、TFTP、HTTP 等基于 TCP/IP 栈的标准应用协议实现 IAP
% w/ W9 N0 m$ [2 `$ z5 i
/ u! h1 A) l: y9 U% B2.3 通过以太网在 STM32F407/STM32F417 上实现 IAP
3 c8 y* c2 Q: N) X8 v本应用笔记将介绍两种使用以太网通信外设在 STM32F407/STM32F417 上实现 IAP 的解决方案:% t4 o- @7 v/ K4 |3 R
使用 TFTP(简单文件传输协议)的 IAP
/ P# A7 w0 v5 c0 k3 A& s! Z5 Z) D; w使用 HTTP(超文本传输协议)的 IAP
! Y* h# b/ D! X8 Y6 ?5 T; X这两种解决方案均基于 LwIP 栈 (v1.3.2),它是轻量级的 TCP/IP 协议栈。
8 m4 j7 v& e3 ^# M3 d; A# Y) a5 P& h! y  s' |7 s; `8 k
2.3.1 使用 TFTP 实现 IAP 方法
3 ]6 Z  `: O6 G( Z1 I0 F: c4 O& {使用 TFTP 实现 IAP 的方法广泛应用于需要具有固件升级功能的嵌入式应用中(例如,嵌入式 Linux bootloader 中)。
: R. f* P" ~1 N4 d7 m# q1 u4 U& pTFTP 是一种在 UDP 传输层上执行的简单文件传输协议。此协议非常适合在局域网环境中使用。它基于客户端/服务器架构,在这种架构中,客户端会向服务器发出文件传输请求(读取或写入操作)。
8 \5 }3 a  n! a6 Z为实现 IAP,需要在 LwIP 协议栈上实现一个简单的 TFTP 服务器,服务器只需处理来自 PC的 TFTP 客户端的写入请求即可。0 }" D* p7 l' H2 k4 s% j4 Y& ~
0 h; ]; T/ ~# Y8 B
2.3.2 使用 HTTP 实现 IAP 方法1 |5 `* |0 v( h; Q" F
使用 HTTP 协议进行固件升级没有使用 TFTP 常见,但是在需要通过 Internet 进行远程编程时,这种解决方案就显得极为有用。这时,需要使用 TCP 传输协议来实现 http 服务。+ d, p. ~9 @: M( s8 P
HTTP 基于 TCP 协议运行,它提供了一种以 HTML 表单形式从 Web 客户端(Mozilla Firefox或 Microsoft Internet Explorer)发送二进制文件的方式。这称为 HTTP 文件上传 (RFC 1867)。0 x- O$ T3 b' O  k- a; v
本文档中的后续章节将详细介绍这两种 IAP 方法的实现,并会对如何使用软件进行说明。文档 ID 022107 第 1版
; r/ S7 I! Z% H& S$ S$ D' ^. ~
3 使用 TFTP 实现 IAP
" m. T; |# B& G. J: p# @' o  r3 k3.1 TFTP 概述
* {9 j+ p" ?$ W2 u) r( nTFTP 是一种基于 UDP 的简单文件传输协议。文件传输由 TFTP 客户端发起,会向 TFTP 服务器发送读取或写入请求。服务器确认请求后,即开始进行文件数据传输。数据将以固定大小的块进行发送(例如每块含 512 个字节)。: k5 u, ?/ Y, G  C
必须在每个发出的数据块都得到接收方确认后,才可以发送下一个数据块。这种确认机制通过随各个数据块一同发送的块编号来实现。数据块小于固定块大小表示文件传输的结束。( z6 a" L" v$ F; d: D" F
2 描述了各种 TFTP 数据包的格式:/ X1 K- [' o# x$ ?; o4 u
7 V' D* p" s8 ?# w5 v. M2 k( ?' y' k  ~
" k1 V$ M* X( L( k5 p' Z8 D$ |
(87VQ92)$T3IW[2ICU]7%~3.png
0 @2 y* G7 A: r- Z" u8 V! @9 n0 f0 C8 b8 A
& Z2 \. u2 E# Q+ Z) D! ?+ v" |
完整版请查看:附件% \+ p) {; R3 o! P

" b( y2 ?7 `/ e9 {7 r5 y: b0 k+ v; C, Y2 R3 U5 i+ w

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 手机版