|
STM32F107 通过以太网实现在应用中编程 (IAP) / C+ T/ n8 q1 O% t5 k : u; f# ?3 Q* X4 I; N 前言 / I, n- g9 F5 O) N 本应用笔记的目标读者为使用 STM32F107 微控制器的开发者。提供了如何使用 STM32F107以太网接口实现在应用中编程 (IAP)的解决方案。 在 LwIP TCP/IP 协议栈上提供了两种可行的解决方案: ● 使用 TFTP (简单文件传输协议)的 IAP ● 使用 HTTP (超文本传输协议)的 IAP1 L# F* }- Z1 t0 q9 ^1 c: w) |! r / x; z" ]! Y" x8 F 1 IAP 概述 8 A, a u$ w, H' k9 E 2 s+ b( v1 L, D9 s3 r 1.1 工作原理 ! U* ]& c4 z, K6 e 在应用中编程(IAP)是一种在现场通过 MCU 的通信接口(例如 UART,USB,CAN 和以太网等)进行固件升级的方式。 " u$ A0 ? b( g7 \3 [ 8 @1 V8 c3 X0 p. `& w 当启动微控制器时,您可以选择让它进入 IAP 模式以执行 IAP 代码,或者进入正常模式来开始执行应用代码。IAP 代码和应用程序代码都存在于微控制器的嵌入式 Flash 中。通常 IAP 代码被存储在 MCU Flash 的前几页,用户应用代码占据剩余的 Flash 区域。 ; {0 x- h a. ^ & }6 E# x: t/ a/ W" N 下图说明了 IAP 操作流程: ' w& V5 q6 V4 X: x# T
1.2 使用 MCU 以太网接口实现 IAP 当以太网可用时,它通常是在嵌入式应用中实现 IAP 功能的更好的接口。其优点是: # `- b& U, ^3 _9 i● 高速通信接口 (10/100Mbit/s) ● 通过网络 (LAN 或者 WAN)进行远程编程 " S3 D6 B U+ n2 N● TCP/IP 协议栈上的标准应用协议可用于实现 IAP,比如:FTP、 TFTP、 HTTP…… . B) w c! _8 ]1.3 在 STM32F107 上通过以太网实现 IAP 本应用笔记说明了两种使用以太网通信外设在 STM32F107 上实现 IAP 的解决方案: ● 使用 TFTP (简单文件传输协议)的 IAP % ~/ Y- U) ~" U5 d5 {2 x$ M# a8 H● 使用 HTTP (超文本传输协议)的 IAP两种解决方案都运行在 LwIP 协议栈 (v1.3.1) 上,它是 TCP/IP 协议套件的一种轻量级实现。 1.3.1 使用 TFTP 实现 IAP 的方法 8 C0 Z* i& O, k使用 TFTP 实现 IAP 的方法广泛应用于需要固件升级能力的嵌入式应用(比如在嵌入式 Linuxbootloader 中)。 TFTP 是工作在 UDP 传输层上的简单文件传输协议,它主要应用在 LAN 环境中。它基于客户端 / 服务器体系结构,其中客户端向文件服务器请求文件传输 (读或写操作)。 在我们的例子中,在 LwIP 栈上实现了一个简单的 TFTP 服务器,该服务器只处理来自 PCTFTP 客户端的写请求。 1.3.2 使用 HTTP 实现 IAP 的方法 , `4 |# [/ w( _, S& g通过 HTTP 协议进行固件更新没有使用 TFTP 常见,但是当需要通过互联网进行远程编程时,它是一种有用的解决方案。在这种情况下,需要 TCP 传输协议来确保最优操作。 工作在 TCP 上的 HTTP,提供了一种用 HTML 形式从 web 客户端(例如:Mozilla Firefox 或Microsoft Internet Explorer)发送二进制文件的方法,称作 HTTP 文件上传 (RFC 1867)。 - x! b& k6 N9 e: b( J* M' e; @4 O% _: x+ m( K5 C |
| 收藏 |
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
微信公众号
手机版