![shequ.stmicroelectronics.cn](./template/st_v1/static/img/logo2.png)
1简介 本应用笔记专为使用 STM32F407/STM32F417 微控制器的开发人员编写。它提供了如何使用 STM32F407/STM32F417 以太网通信接口实现在应用中编程 (IAP) 的解决方案。 有两种基于 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 概述 2.1 工作原理 在应用中编程 (IAP) 是一种在现场通过 MCU 通信接口(例如 UART、USB、CAN 和以太网)进行固件升级的方式。 启动微控制器时,可以选择让其在以下任一模式运行: ● IAP 模式,用于执行 IAP 代码, ● 正常模式,用于执行应用程序代码。 无论是 IAP 代码还是应用程序代码都位于微控制器的内置 Flash 中。IAP 代码通常存储在 MCU Flash 的第一页,而用户应用程序代码则占据剩余的 Flash 区域。4 {: a, P/ w! Y# \4 D& l0 o( ] 图 1 介绍了 IAP 操作流程:! N9 t% [8 Q3 x6 F ![]() + n. x7 j- I- K( l; z- W 2.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 2.3 通过以太网在 STM32F407/STM32F417 上实现 IAP 本应用笔记将介绍两种使用以太网通信外设在 STM32F407/STM32F417 上实现 IAP 的解决方案:# M1 @7 h4 Z' U" F" l" g ● 使用 TFTP(简单文件传输协议)的 IAP$ g3 _' E) p4 G; G ● 使用 HTTP(超文本传输协议)的 IAP 这两种解决方案均基于 LwIP 栈 (v1.3.2),它是轻量级的 TCP/IP 协议栈。 7 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 传输层上执行的简单文件传输协议。此协议非常适合在局域网环境中使用。它基于客户端/服务器架构,在这种架构中,客户端会向服务器发出文件传输请求(读取或写入操作)。 为实现 IAP,需要在 LwIP 协议栈上实现一个简单的 TFTP 服务器,服务器只需处理来自 PC的 TFTP 客户端的写入请求即可。 2.3.2 使用 HTTP 实现 IAP 方法 使用 HTTP 协议进行固件升级没有使用 TFTP 常见,但是在需要通过 Internet 进行远程编程时,这种解决方案就显得极为有用。这时,需要使用 TCP 传输协议来实现 http 服务。 HTTP 基于 TCP 协议运行,它提供了一种以 HTML 表单形式从 Web 客户端(Mozilla Firefox或 Microsoft Internet Explorer)发送二进制文件的方式。这称为 HTTP 文件上传 (RFC 1867)。 本文档中的后续章节将详细介绍这两种 IAP 方法的实现,并会对如何使用软件进行说明。文档 ID 022107 第 1版 7 H, q' x! o; l! q 3 使用 TFTP 实现 IAP 3.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 ( h4 h$ r! X4 g- I+ h& m. |3 h ![]() * 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 |
DM00036062_ZHV1.pdf
下载1.13 MB, 下载次数: 38
STM32固件库分享,超全系列整理
分享STM32F407的学习资料 附学习笔记
STM32F4中文资料--基础篇
基于STM32F407和Cubemx的ADC采集+DMA传输实现简易示波器经验分享
基于STM32F407的DMA采样+FFT时域经验分享
基于STM32F407中的RNG获取随机数经验分享
【中文文档】AN3965_STM32F40x和STM32F41x基于串口的IAP
STM32F4-DISC 实现USB主机(U盘)和USB设备(虚拟串口)自动切换
STM32F4中文用户手册
基于STM32F407的FreeRTOS阶段性的总结(13)
http页面源码怎么获取?目前测试只能在IE浏览器下使用,需要调整为兼容谷歌或edge浏览器使用。