|
本项目是联合实验室在 STC32 系列单片机在线升级方向上的阶段性成果, 主要面向基于STC32G12K128 的嵌入式应用开发, 提供一套完整的 UART 串口 OTA 在线升级解决方案。 该方案包括 Bootloader 程序、示例 APP 程序以及 PC 端升级工具, 可用于单片机程序的远程现场升级、教学实验、项目调试和后续二次开发。 一、项目背景 在单片机项目开发和现场应用中,程序更新通常需要重新连接下载器,操作不够方便。尤其是在设备已经安装到现场、外壳封装完成或调试环境受限的情况下,传统烧录方式会增加维护成本。 本项目基于 STC32G12K128 单片机,通过 UART 串口实现 APP 程序在线升级。首次只需使用 STC 官方工具下载 Bootloader,后续即可通过 PC 上位机完成 APP 程序升级,不需要反复使用下载器。 二、Bootloader 功能 Bootloader 是整个 OTA 升级方案的核心,主要负责单片机上电后的启动判断、串口通信、APP 程序接收、Flash 写入和程序跳转。 本项目中的 Bootloader 具备以下功能:
- 支持 UART 串口接收 PC 上位机发送的 APP 程序数据;
- 支持对接收到的数据进行分包处理和写入;
- 支持将 APP 程序写入指定 Flash 区域;
- 支持升级完成后自动跳转到 APP 程序运行;
- 支持与 STC 官方下载工具配合完成首次 Bootloader 烧录;
- 为后续不同 APP 程序的在线升级提供统一入口。
Bootloader 只需要首次烧录一次。只要 Bootloader 正常运行,后续即可通过 PC 端工具更新不同的 APP 程序。 三、呼吸灯 APP 示例 为了验证 OTA 升级流程,本项目提供了一个 P5.2 引脚呼吸灯 APP 示例程序。 该程序主要用于测试:
- APP 程序是否能够正确通过 OTA 下载;
- Bootloader 是否能够正确跳转到 APP;
- APP 程序在独立运行时是否正常;
- 单片机 I/O 控制、定时器延时和程序结构是否正确。
呼吸灯示例程序体积小、现象直观,非常适合用于首次验证 OTA 升级流程。升级完成后,如果 P5.2 所连接的 LED 能够呈现亮度渐变效果,说明 Bootloader、PC 上位机、串口通信和 APP 跳转流程基本正常。 四、PC 端上位机功能 PC 端工具是本项目的重要组成部分,主要用于在 Windows 系统下完成 APP 程序选择、串口连接、Keil 工程适配和 OTA 下载。 PC 端主要功能包括:
- 串口选择和连接;
- APP HEX/IHX 文件选择;
- OTA 程序下载;
- 下载进度显示;
- 升级结果提示;
- 通用 Keil APP 工程配置;
- HEX 文件结构检查;
- 工程配置检查报告生成;
- OTA 下载过程日志显示。
其中,通用 Keil APP 工程配置功能是本项目的重要改进内容。用户可以选择自己的 Keil 工程文件,由上位机辅助配置 OTA 所需参数。配置完成后,在 Keil 中重新 Rebuild 工程,即可生成适用于 OTA 下载的 APP 文件。 五、软件特点 本软件不是单一的演示程序,而是一套相对完整的 STC32 UART OTA 在线升级框架。其主要特点包括:
- Bootloader 与 APP 分离,便于后期维护;
- 支持通过串口完成 APP 在线升级;
- 提供呼吸灯示例,方便快速验证功能;
- 提供 PC 端图形化操作工具,降低使用门槛;
- 支持普通 Keil APP 工程进行 OTA 适配;
- 工程结构清晰,便于二次开发;
- 源码加入中文注释,便于学习和移植。
六、基本使用流程 首次使用时,需要先通过 STC 官方工具将 Bootloader 下载到单片机中。Bootloader 下载完成后,后续 APP 程序升级即可使用本项目提供的 PC 端工具完成。 基本流程如下:
- 使用 STC 官方工具按下图配置首次烧录 Bootloader;
- 打开 PC 端 OTA 上位机;
- 选择对应串口;
- 选择需要下载的 APP 程序文件;
- 点击下载,等待升级完成;
- 单片机自动跳转并运行新的 APP 程序。
如果使用自己的 Keil APP 工程,需要先通过 PC 端工具进行 APP 工程配置,然后在 Keil 中重新编译生成新的 HEX/IHX 文件,再使用 PC 端工具进行 OTA 下载。 七、适用场景 本项目可用于以下场景:
- STC32 单片机教学实验;
- 嵌入式课程设计;
- 单片机项目远程升级;
- 串口 Bootloader 学习;
- 工程样机现场维护;
- 二次开发和功能扩展。
八、后续计划 后续将继续完善以下内容:
- 增强不同 STC32 芯片型号的适配能力;
- 优化 APP 工程自动配置功能;
- 增加升级失败保护机制;
- 增加版本号校验和程序完整性校验;
- 完善更多示例 APP 程序;
- 进一步优化 PC 端操作体验。
九、说明 本项目为联合实验室阶段性研发成果,主要用于学习、教学、实验和项目开发参考。欢迎大家交流STC32 单片机、UART OTA、Bootloader、Keil 工程配置和嵌入式在线升级相关问题。
|