浅谈智能硬件 OTA

写在前面

OTA 全称 Over-the-Air,空中升级;硬件 OTA 广义有两层含义:

1)固件 OTA(最常用):给 MCU、SOC、单片机、模组刷写固件(底层程序),大家日常说的硬件 OTA 基本都是这个;

2)硬件参数 OTA:不换固件,只远程下发配置参数(阈值、通信地址、校准系数),很多项目里也归到硬件 OTA 体系。

区分:APP 升级叫软件 OTA;单片机 / 设备固件升级 叫 硬件 OTA。

名词区分:

FOTA升级:Firmware Over The Air,中文:固件空中升级 ,是针对直连云设备。

FUOTA升级:LoRaWAN Firmware Update Over The Air ,中文 LoRaWAN固件空中升级,针对携带LoRa 通信模组的子设备。

硬件OTA分类

1. 无线 OTA

  1. WiFi OTA: 设备连路由器,HTTP/HTTPS 从服务器拉取固件包。常见于智能家居, 优点:带宽大、包传输快;缺点:依赖局域网 WiFi,无 WiFi 不能升级。

  2. 4G/5G 蜂窝 OTA :设备内置 4G/5G 模组,公网下载固件,工业设备、车载、野外传感器。 优点:不受局域网限制;缺点:流量成本高,一般固件做差分包减小体积。

  3. NB-IoT / Cat.1 OTA :低功耗物联网设备(水表、气表、烟感),带宽很小,只适合小固件或者分片差分升级,大固件基本不直接全量升级。

  4. 蓝牙 BLE OTA :手机蓝牙直连设备,手机作为中转,把固件传给硬件。典型:手环、蓝牙耳机、传感器模块。 特点是不需要网络,手机本地传包;缺点传输慢,适合小包。

  5. LoRa OTA :远距离低功耗物联网,带宽极低,只能极小固件,一般只做参数 OTA,很少完整固件升级。

2. 有线 OTA

也属于硬件 OTA,很多场景叫本地 OTA。

  • USB OTA:USB 连接电脑,上位机下发固件(如 STM32 DFU)

  • UART/RS485 OTA:串口有线升级,工厂产线、现场调试

  • CAN 总线 OTA:车载 ECU,CAN FD 传输固件包,汽车行业标准

  • Ethernet 有线网口 OTA:工业交换机、PLC

说明:通道只是传输介质,OTA 升级逻辑是独立的,不管蓝牙、4G、串口,底层升级框架原理一致。

硬件OTA流程

1、如何判断设备是否携带 IP协议栈?

这是TCP/IP 第一层 网络接口层的知识,也就是在第一层就能区分出对应设备是自己拉包完成升级,还是依靠网关给自己发包完成升级。

设备是否携带 IP协议栈,也就是有没有完整TCP/IP 协议栈。这主要取决于设备本身的通信模组,其可以查阅模组规格书/模组SDK获取。通用的设备都有哪些通信协议?它们哪些有完整TCP/IP 协议栈?请看下表:

通信模组类型 是否内置 TCP/IP 栈 是否有 IP OTA 方式 覆盖范围 适合场景
WiFi 模组 (ESP32) ✅完整 ✅内网 IP 设备主动拉包 FOTA 覆盖 50~100 米室内 智能家居、工业采集器、WiFi 网关
Cat.1 4G 模组(广域覆盖、插SIM卡) ✅完整 ✅运营商 IP 设备主动拉包 FOTA 全国只要有 4G 信号就能联网 野外设备直接上云,上报数据、图片、日志,远程下发指令
NB-IoT 模组 (带宽极低、强穿透、插SIM卡) ✅精简 IP 栈 ✅IP 设备可 FOTA,只适合小固件 密集地0.3~1.5km;郊区1~5km;开阔10~15m.城市几百米~几公里 智能水表、燃气表、地下井盖、烟雾探测器、低频小数据野外传感器
LoRa 子设备模组(休眠功耗极低) ❌无 ❌无 IP 网关代理 FUOTA 分片下发 通信距离 2~15km 野外农业传感器、水库监测、远程抄表、园区大量低功耗传感器
BLE 蓝牙子模组(超低功耗) ❌无 ❌无 IP 网关 / 手机本地推送固件 距离 10~30 米 手环、温感标签、蓝牙门锁、近距离配置调试
ZigBee 子模组(低功耗、可穿墙、Mesh 组网) ❌无 ❌无 IP 网关推送固件分片 室内10~30 米;室外开阔50~100 米 全屋智能家居传感器、厂房大量采集节点
5G 工业模组(超高带宽、低时延) ✅完整 ✅公网 IP 设备主动拉包 FOTA 全国只要有 5G 信号就能联网 工业网关、高清视频监控、边缘计算终端

备注:一个设备可以携带多种通信模组,如LoRa网关,既有LoRa 射频模组与LoRa子设备通信,又带4G模组,把设备的数据上云。

  1. 单协议设备:升级流程只需考虑这一种链路的特性(比如NB-IoT必须用LwM2M做分片传输)。

  2. 多协议设备/网关 :OTA策略会更复杂,但也是优势。比如,网关可以用4G/以太网这种高带宽链路下载自己的固件 ,同时通过LoRa/Zigbee把子设备的固件分包转发下去。这样,网关就变成了子设备OTA的"代理下载器"。

升级时长

通信协议 固件大小 下载/总升级时长 关键条件
蓝牙 (BLE) ~60 KB 约 1 秒 (传输) 优化连接参数、内部对测环境
BLE (低功耗设计) ~180 KB 2.8 秒 (传输) / 5.4 秒 (总计) 含加载,2M PHY,无压缩加密
CoAP (IEEE 802.15.4) 未注明 17.26 秒 (无线) 512 字节块大小,无线 Mesh 环境
MQTT-SN (IEEE 802.15.4) 未注明 30.15 秒 (无线) 512 字节块大小,受超时重传机制拖累
LoRa (自定义方案) 1 KB 约 118 秒 单邻居,极低带宽,时长随固件增大激增
LoRa (自定义方案) 100 KB 约 449 秒 (~7.5分钟) 单邻居,100KB 固件
LoRa (分块方案) 0.641 KB 1.61 分钟 极小差分/分块固件
NB 模组 (BC26) + TCP 透传 110 KB 约 3 分钟多 (下载) 每包 256 字节、间隔 500ms,440 包计算得出
NB-IoT 模组固件升级 未注明 最长 15 分钟 厂商工具升级模组本身的固件,含擦写流程
华为云 LwM2M FOTA 未注明 下载超时 60 分钟 ,上报超时 30 分钟 平台侧的超时阈值,非实际耗时,但反映了工程预期的上限
多设备 LAN 场景 OTA 未注明 全流程 1-2 分钟 含下载、重启、确认,20 台设备并发时增量很小

QA

什么时候升级

根据实际情况来设置,1)上传完单个升级固件包,就开始升级;2)上传完多个升级固件包,再统一时间升级,这种情况一般是跟软件版本迭代放一起,方便一起通知到用户。

什么情况下会升级失败

分三种情况:

1)下载升级固件包阶段

  1. 网络通信问题
    • 4G/NB 信号弱、丢包高、基站波动;NB PSM/eDRX 唤醒超时,分片拉取不到
    • MQTT/CoAP/HTTPS 连接断开、服务器断连、证书过期、DTLS/TLS 握手失败
    • 分片丢失,重传次数耗尽;CoAP Block2 / HTTP Range 请求失败
  2. 固件包本身问题
    • 固件包损坏、包不完整;平台下发错误版本、固件和硬件型号不匹配
    • 固件大小超出 Flash 可用空间,存储空间不足
  3. 设备资源不足 RAM 内存不够,分片缓存溢出;Flash 读写异常(Flash 磨损、坏块)
  4. 权限 / 校验不通过 固件签名校验失败、CRC/SHA 校验不通过,设备直接拒绝写入。

2)激活/重启失败阶段

固件已经写入备用分区,标记准备升级,重启环节出问题。

  1. Bootloader 读取 B 分区固件失败:Flash 坏块、写入时断电,固件损坏
  2. 固件镜像校验失败(签名、哈希不对),Bootloader 放弃启动新固件,触发回滚到老版本(A/B 分区保护)
  3. 新固件启动崩溃:
    • 新固件 Bug:初始化硬件(球阀执行器、阀位采集、4G/NB 模组)直接 HardFault、看门狗复位
    • 硬件兼容性 Bug,例如:新版本驱动和当前 PCB / 外围器件不兼容

A/B 分区作用:启动自检失败,Bootloader 自动回滚旧固件,设备还能正常工作。

3)运行自检阶段

新固件成功启动,但是业务自检不通过,判定升级失败,触发回滚:

  1. 外设自检失败:阀位采集异常、球阀执行器通讯异常、传感器读取失败
  2. 通信自检失败:无法连上 IoT 平台,MQTT 无法建立连接
  3. 看门狗频繁复位,设备反复重启;业务心跳超时

4)硬件本身原因导致升级失败(底层硬件问题)

  1. Flash 芯片老化、坏块,写入固件分片失败;擦写次数耗尽
  2. 电源不稳:升级擦写 Flash 瞬间电压跌落,写 Flash 出错(工业现场很常见)
  3. 硬件电路故障:MCU、射频模组硬件损坏,无法联网或者无法读写 Flash

5)边界场景:单分区升级(无 A/B,高危,新项目不用)

固件直接覆盖运行区。一旦写入中途断电,固件彻底损坏,设备变砖,无法自恢复。

升级后设备是否要重启

设备升级前,一般可以做到保持当前运行状态,比如球阀开着浇水,可以不做不做任何调整做无感升级。但升级后,如果是主程序升级就需要重启(这是系统强制重启)、补丁类升级就不用重启。正在

相关推荐
kiros_wang1 小时前
BLE蓝牙基础通信:扫描、连接、收发数据,IoT简易Demo
物联网
做萤石二次开发的哈哈10 小时前
连锁门店、园区、交通枢纽的视频如何统一汇集?应用模板的接入与分权管理详解
人工智能·物联网·音视频·二次开发·视频监控·蓝海aiot一站式工作台·萤石云开放平台
QYR_1114 小时前
机械制造用固体润滑涂层市场分析:2032年全球市场规模预计达8.78亿元,CAGR为6.2%
大数据·人工智能·物联网
李永奉18 小时前
日常使用的锂电池上,新、旧锂电池的差异分析
单片机·嵌入式硬件·物联网·智能手机·电脑
曹小强wxx1 天前
Flutter 局域网设备发现:UDP 广播 + mDNS 双路合并,以及靠谱的在线判定与断线重连
物联网·网络协议·flutter
虎王物联1 天前
随身WiFi后台随心改:web页面定制实录(改标题、换图标、加按钮)
物联网·随身wifi
速易达网络1 天前
物联网控制系统
物联网·智能家居
虎王物联1 天前
随身WiFi AT指令实战手册:查串号、改串、锁频、拉起ADB一次讲清
物联网·adb