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

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

[复制链接]
STMCU小助手 发布时间:2022-7-18 13:22
1简介
8 ^' t$ G3 Z1 l( v本应用笔记专为使用 STM32F407/STM32F417 微控制器的开发人员编写。它提供了如何使用 STM32F407/STM32F417 以太网通信接口实现在应用中编程 (IAP) 的解决方案。
  |4 e9 S* X! {; P1 g- r有两种基于 LwIP TCP/IP 协议栈的解决方案:5 P1 D8 R* n% H
使用 TFTP (简单文件传输协议)的 IAP4 _, t( V0 z. @9 K+ ^/ @. n3 o
使用 HTTP (超文本传输协议)的 IAP5 c" b. ]) j" c" B
8 m' f$ _& l$ Z
! T" T9 y# ?1 L* l: ^" D
2 IAP 概述
8 J8 a* Z/ r- p& M8 o8 Z8 f2.1 工作原理
" F. H% x8 v$ y& {: u+ c0 l在应用中编程 (IAP) 是一种在现场通过 MCU 通信接口(例如 UART、USB、CAN 和以太网)进行固件升级的方式。
9 `8 ~& |7 B, U1 p. P) o6 }8 H启动微控制器时,可以选择让其在以下任一模式运行:
" X8 q% p0 U& U$ A4 Q- w+ e" i( d4 [IAP 模式,用于执行 IAP 代码,
5 W) U- l* W2 m正常模式,用于执行应用程序代码。
9 r3 B) Y, Q6 f- ]" J+ L无论是 IAP 代码还是应用程序代码都位于微控制器的内置 Flash 中。IAP 代码通常存储在 MCU Flash 的第一页,而用户应用程序代码则占据剩余的 Flash 区域。4 {: a, P/ w! Y# \4 D& l0 o( ]
1 介绍了 IAP 操作流程:! N9 t% [8 Q3 x6 F

0 n9 f& l  e9 R- g( W. }6 s [3O[CS8J1%GL``BV%}KP600.png
. V1 F8 O! l  N. m* ^5 v+ n. x7 j- I- K( l; z- W

1 T8 _7 P: f# X2.2 使用 MCU 以太网接口实现 IAP' @- ?9 h, A/ O' K& B. G
如果有以太网可用,则它通常是在嵌入式系统中实现 IAP 功能的首选接口。其优势包括:# l4 a4 j$ |1 d; w2 T3 {
高速通信接口 (10/100 Mb/s)6 c* \; R, o! h' t7 K- D: u
通过网络 (LAN 或 WAN) 进行远程编程; E) g0 z" T: p$ ]/ D8 J
可以使用 FTP、TFTP、HTTP 等基于 TCP/IP 栈的标准应用协议实现 IAP
: C* r) ]# W( }" f- ~+ E
" A$ q. f3 q$ B2.3 通过以太网在 STM32F407/STM32F417 上实现 IAP
8 d9 u+ d# L" ?6 c本应用笔记将介绍两种使用以太网通信外设在 STM32F407/STM32F417 上实现 IAP 的解决方案:# M1 @7 h4 Z' U" F" l" g
使用 TFTP(简单文件传输协议)的 IAP$ g3 _' E) p4 G; G
使用 HTTP(超文本传输协议)的 IAP
' q& d2 ]9 I: m( m1 T7 R这两种解决方案均基于 LwIP 栈 (v1.3.2),它是轻量级的 TCP/IP 协议栈。
) b! O3 k# T! r) R6 e8 T' v7 H5 n8 H+ g4 t: p+ r+ J
2.3.1 使用 TFTP 实现 IAP 方法; P1 ^$ M6 ~$ o4 N3 U' @7 J* r# x
使用 TFTP 实现 IAP 的方法广泛应用于需要具有固件升级功能的嵌入式应用中(例如,嵌入式 Linux bootloader 中)。' z3 ^! ^2 Y7 k1 o. l& t, @
TFTP 是一种在 UDP 传输层上执行的简单文件传输协议。此协议非常适合在局域网环境中使用。它基于客户端/服务器架构,在这种架构中,客户端会向服务器发出文件传输请求(读取或写入操作)。
- k3 Y. j# ^3 W9 w+ k0 n- T4 }为实现 IAP,需要在 LwIP 协议栈上实现一个简单的 TFTP 服务器,服务器只需处理来自 PC的 TFTP 客户端的写入请求即可。
' A: M& g& f3 Q: c% k1 N
% ^7 K+ E/ m4 e; ?6 F
2.3.2 使用 HTTP 实现 IAP 方法
. g4 ]/ [7 ~+ c: [# o4 P) [使用 HTTP 协议进行固件升级没有使用 TFTP 常见,但是在需要通过 Internet 进行远程编程时,这种解决方案就显得极为有用。这时,需要使用 TCP 传输协议来实现 http 服务。
6 U/ R, ]  [; h: ^" s1 jHTTP 基于 TCP 协议运行,它提供了一种以 HTML 表单形式从 Web 客户端(Mozilla Firefox或 Microsoft Internet Explorer)发送二进制文件的方式。这称为 HTTP 文件上传 (RFC 1867)。
$ K* W5 F( U- e) k2 S: z: p本文档中的后续章节将详细介绍这两种 IAP 方法的实现,并会对如何使用软件进行说明。文档 ID 022107 第 1版 7 H, q' x! o; l! q

6 P/ I1 u; C$ |+ |9 K5 v$ Q3 使用 TFTP 实现 IAP
7 i4 ?9 h' F5 t( n3.1 TFTP 概述  ~9 g7 c2 l8 d% D
TFTP 是一种基于 UDP 的简单文件传输协议。文件传输由 TFTP 客户端发起,会向 TFTP 服务器发送读取或写入请求。服务器确认请求后,即开始进行文件数据传输。数据将以固定大小的块进行发送(例如每块含 512 个字节)。  U$ D* g% B/ C, W/ ~* T2 ?
必须在每个发出的数据块都得到接收方确认后,才可以发送下一个数据块。这种确认机制通过随各个数据块一同发送的块编号来实现。数据块小于固定块大小表示文件传输的结束。7 V1 T% u$ K8 f
2 描述了各种 TFTP 数据包的格式:+ R. O9 g9 }7 |! y

  s; G( g0 l  y' h5 i/ Z
( h4 h$ r! X4 g- I+ h& m. |3 h
(87VQ92)$T3IW[2ICU]7%~3.png 2 v1 {0 _$ H! p, E3 I5 n5 _: T
* T9 F4 f+ j4 z) k5 i/ n, D8 c; Q
) H' u" G- v5 g2 ^% h( X
完整版请查看:附件! _6 p) Q3 H) c$ Q
: [$ F3 t( j) P) @4 j

( n* y' t2 l0 x' T

DM00036062_ZHV1.pdf

下载

1.13 MB, 下载次数: 38

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

举报

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

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

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版