STM32F2x7 通过以太网实现在应用中编程 (IAP)
前言
本应用笔记的目标读者为使用 STM32F2x7 微控制器的开发者。它提供了如何使用STM32F2x7 以太网接口实现在应用中编程 (IAP)的解决方案。
在 LwIP TCP/IP 协议栈上提供了两种可行的解决方案:
● 使用 TFTP (简单文件传输协议)的 IAP
● 使用 HTTP (超文本传输协议)的 IAP
1 IAP 概述
1.1 工作原理
在应用中编程(IAP)是一种在现场通过 MCU 的通信接口(例如 UART,USB,CAN 和以太网等)进行固件升级的方式。
当启动微控制器时,您可以选择让它进入 IAP 模式以执行 IAP 代码,或者进入正常模式来开始执行应用代码。 IAP 代码和应用程序代码都在微控制器的嵌入式 Flash 中。通常 IAP 代码被存储在 MCU Flash 的前几页,用户应用代码占据剩余的 Flash 区域。
图 1 显示了 IAP 操作流程:
1.2 使用 MCU 以太网接口实现 IAP
当以太网可用时,它通常是在嵌入式应用中实现 IAP 功能的更好的接口。其优点是:
● 高速通信接口 (10/100 Mbit/s)
● 通过网络 (LAN 或者 WAN)进行远程编程
● TCP/IP 协议栈上的标准应用协议 (例如 FTP、 TFTP、 HTTP)可用于实现 IAP
1.3 在 STM32F2x7 上通过以太网实现 IAP
本应用笔记说明了两种使用以太网通信外设在 STM32F2x7 上实现 IAP 的解决方案:
● 使用 TFTP (简单文件传输协议)的 IAP
● 使用 HTTP (超文本传输协议)的 IAP
两种解决方案都运行在 LwIP 协议栈 (v1.3.2) 上,它是 TCP/IP 协议套件的一种轻量级实现。
1.3.1 使用 TFTP 实现 IAP 的方法
使用 TFTP 实现 IAP 的方法广泛应用于需要固件升级能力的嵌入式应用(比如在嵌入式 Linuxbootloader 中)。
TFTP 是工作在 UDP 传输层上的简单文件传输协议。它主要应用在 LAN 环境中。它基于客户端 / 服务器体系结构,其中客户端向文件服务器请求文件传输 (读或写操作)。
在这个例子中,服务器只处理来自 PC TFTP 客户端的写请求,所以在 LwIP 栈上实现了一个简单的 TFTP 服务器。
1.3.2 使用 HTTP 实现 IAP 的方法
使用 HTTP 协议进行固件升级没有使用 TFTP 常见,但是当需要通过互联网进行远程编程时,它是一种有用的解决方案。在这种情况下,需要 TCP 传输协议来确保最优操作。
工作在TCP上的HTTP,提供了一种用HTML形式从web客户端(Mozilla Firefox或MicrosoftInternet Explorer)发送二进制文件的方法,称作 HTTP 文件上传 (RFC 1867)。
本文档的下一部分给出了关于这两种 IAP 方法实现的详细信息并解释了如何使用这个软件。
|