【OTA专题】11 进一步优化OTA后台无感下载架构

目录

1.硬件架构:

模块介绍:

架构图:

2.软件架构:

App:

APP下载流程:

3.对各个功能进行简单的验证

1.串口设置

2.外部flash地址分配

3.EEprom

Q&A

为什么要单独使用一个EEPROM来存储标志位?为什么不能把标志位存储在Flash里?

Flash和EEPROM的区别


1.硬件架构:

模块介绍:

Stm32F411CEU6:用于存放Bootloader代码和APP的主控芯片

Key:用于实现App和Bootloader切换逻辑模块

Led:用于演示App代码运行成功

Ch340:用于实现MCU与PC之间通信的中间模块

PC:使用相关上位机软件进行控制和下载芯片

Jlink:下载代码和Trace调试

W25Q64:存放下载备份App的代码

HC05:实现远程升级的必备工具,于PC端实现蓝牙通信

AT24C02:用来存放部分标志位信息,版本信息等

架构图:

2.软件架构:

App:

Key_Detect:用于App层是否需要跳转Bootloader命令

Led_Logic:App逻辑执行,从现象中区分APP与Bootloader

Gpio:外设寄存器层

APP下载流程:

3.对各个功能进行简单的验证

1.串口设置

Uart :

波特率:115200

协议:

远程服务器发送给MCU0x11 0x22 0x33: 请求进入下载模式

MCU接收完数据发送给用户 0x44 0x55 0x66: 询问是否立即更新

用户通过上位机发送给Mcu 0x77 0x88 0x99: 允许立即更新

2.外部flash地址分配

W25Q64

外置Flash分配两块区域A,和B,各64K

A区用于升级App更新下载固件

B区用于Bootloader备份更新的App数据,防止异常中断导致产品升级失败变砖情况

A区: Block 0 (0x000000~0x00FFFF)

B区: Block 1(0x010000~0x01FFFF)

3.EEprom

AT24C02

Page 0 用作数据存储

App代码正常: 0x00

数据正在下载: 0x11

数据已经下载完毕,请求更新: 0x22

Q&A

为什么要单独使用一个EEPROM来存储标志位?为什么不能把标志位存储在Flash里?

Flash和EEPROM的区别

FlashEEPROM都是非易失性存储器,意味着它们在断电后仍能保存数据。然而,它们在操作方式、存储结构和应用场景上有显著的区别。

基本定义

EEPROM (Electrically Erasable Programmable Read-Only Memory)是一种电可擦除可编程只读存储器,可以逐字节或逐个位进行擦写,适用于存储需要频繁修改的少量数据。Flash(Flash Memory)是一种快速编程和擦除的存储器,通常用于存储程序和数据。

操作方式

  • EEPROM按字节操作,写入时间短,擦写次数多(一般为100万次以上)。

  • Flash按扇区操作,写入时间长,擦写次数少(一般为1万次到10万次)。

存储结构

  • EEPROM的存储单元结构复杂,成本较高,适合存储掉电保护的数据。

  • Flash的电路结构较简单,成本较低,适合用作程序存储器。

应用场景

  • EEPROM常用于存储设备序列号、校准数据等需要频繁修改的配置信息。

  • Flash常用于存储固件、操作系统等程序代码,容量较大,通常达到几GB甚至更大。

优缺点

  • EEPROM的优点是擦写次数多,适合频繁修改数据;缺点是容量小,成本高。

  • Flash的优点是容量大,成本低;缺点是擦写次数少,操作复杂。

相关推荐
普中科技1 小时前
【普中 51-Ai8051 开发攻略】-- 第 20 章 输入捕获实验
单片机·嵌入式硬件·输入捕获·pca·普中科技·ai8051u·aicube
d111111111d1 小时前
直流电机位置式 PID 控制 和 舵机的区别
笔记·stm32·单片机·嵌入式硬件·学习
ting94520001 小时前
深入解析 Social Fetch 机制:原理、架构、应用场景、实战落地与性能优化全攻略
人工智能·性能优化·架构
ZOOOOOOU1 小时前
云边端协同架构下,门禁权限引擎的离线决策与策略续存实现
大数据·人工智能·架构
heimeiyingwang2 小时前
【架构实战】编排vs协同:微服务通信架构选型
微服务·云原生·架构
ai产品老杨3 小时前
深度解析:基于国产化异构计算的 AI 视频管理平台架构——从 GB28181 接入到 NPU 边缘推流的解耦实践
人工智能·架构·音视频
梦想CAD控件3 小时前
网页CAD协同设计平台-生产级在线实时协同CAD引擎
前端·javascript·架构
SamDeepThinking4 小时前
第1篇-开篇词:几亿用户规模下,我们是怎么做C端高并发商品系统的
java·后端·架构
隔窗听雨眠4 小时前
从ZLibrary入口看数字资源分发架构
架构
d111111111d4 小时前
了解Modbus
网络·笔记·stm32·单片机·嵌入式硬件·学习