#01
空气Air就是无线,介质是电磁波
本地升级 VS 无线升级
只要是通过无线通信方式实现升级的,都可以叫OTA升级,比如WIFI/蓝牙。通过有线方式进行升级,叫本地升级,比如通过UART,USB或者SPI通信接口来升级设备固件。
车主都很熟悉到4S店升级爱车。但OTA升级的好处是不限地点、不需要专门跑到特定位置。
OTA的便利性体现如下:
#02
升级什么?软件和固件

图 1 FOTA和SOTA
软件和固件其实都是二进制形式表达的软件。
二者都要从非易失存储(硬盘或者ROM、闪存等等)读入内存RAM,再由处理器(软件一般是CPU,固件一般是MCU)从RAM中读取执行。
二者的主要区别在于功能层级不同,固件用于控制硬件的底层操作和基本操作,软件用于控制高级操作(比如用word写作),OS操作系统负责把软件要求的高级操作分派和分解成硬件的低级操作执行。
为了进一步清晰,本文列出固件控制和软件控制的区别。特别需要说明,同一操作的软件控制实际通过底层的固件控制来实现。
1. GPIO控制:
- 固件控制:在固件中直接操作引脚寄存器,控制GPIO的状态、方向和中断等。
- 软件控制:通过软件编程接口(如Python的RPi.GPIO库)操作GPIO,使用高级函数来设置和读取引脚状态、方向和中断。
2. PWM控制:
- 固件控制:通过定时器和PWM寄存器,直接控制硬件PWM输出的频率和占空比。
- 软件控制:通过软件编程接口(如Arduino的analogWrite函数)模拟PWM信号,使用软件算法和延时来控制输出的频率和占空比。
3. 电机控制:
- 固件控制:使用固件编程语言(如C)直接操作电机驱动器的引脚和寄存器,控制电机的速度和方向等。
- 软件控制:通过软件编程接口(如Python的GPIOZero库)使用高级函数来控制电机驱动器,提供简化的接口和功能。
4. 通信协议:
- 固件控制:使用硬件级别的通信协议(如SPI、I2C)进行数据传输和通信。
- 软件控制:通过软件库(如Python的smbus库)使用高级函数来实现通信协议,将数据发送到外部设备或接收数据。
5. 实时任务调度:
- 固件控制:使用固件编程语言和硬件定时器/中断来实现实时任务的调度和执行。
- 软件控制:通过操作系统提供的实时任务调度器(如RTOS)来管理和调度任务,使用软件定时器等机制来实现实时性。
由于固件则运行在特定的硬件设备中,直接与硬件交互,本身就是执行硬件的底层操作,通常不需要操作系统支持来把复杂计算分解分派为硬件底层操作。
如果需要执行的计算很简单不复杂,可以直接用数量不多的硬件的低级操作来完成,那么就根本不需要操作系统作为大管家来分派和分解,直接用固件即可执行计算。这也是为什么很多车载MCU和无人机飞控不需要操作系统。
这正是为何在众多简易无人机系统里,像路径规划这类较为复杂的计算通常是由地面站(GCS)来完成的,而非无人机自身的飞控FCS来承担这一任务。原因在于,经济型的FCS飞控实质上是仅仅依赖于固件的MCU(成本考虑,MCU可以便宜到几块钱甚至几十块钱,而CPU要贵几十倍以上)。这类MCU在处理能力方面存在一定的局限性,难以应对诸如路径规划这样需要高度复杂运算的任务。相比之下,地面站(GCS)配备了更为强大的计算资源和专业的软件系统,能够高效、精准地进行这类复杂计算,从而确保无人机在飞行过程中的安全性、稳定性和精准性。

图 2 FOTA执行框架图
#03
MCU OTA升级的过程概述
现代MCU虽然相比于同时代的CPU更加经济,但是其功能和计算力其实不亚于小型CPU。
比如,1985 年英特尔推出的 80386 处理器。386 集成了 27 万 5 千只晶体管。
而现在一款常见的STM32F103系列微控制器芯片,其晶体管数量大约在100万到200万之间。更高端的STM32H7系列芯片,晶体管数量可能会超过1000万。硬件能力远强于早期的CPU,而386处理器是可以运行Windows 2.x系列(包括2.03、2.1和2.11)视窗操作系统的。

图 3 早期的30386 CPU
由此可见,现代MCU不仅可以实现简单的固件控制功能,也可以轻松实现复杂的软件控制功能。
既然现代MCU可以实现软件和固件控制。自然可以单独实现软件OTA或固件OTA,更常见的模式则是把FOTA当作SOTA的子过程,通过SOTA带动FOA实现软件固件的一体化空中升级。
SOTA 的关键组成部分:
- 软件更新包:更新的软件包,包括必要的文件、代码更改或二进制文件。
- 更新服务器:管理和分发软件更新的中心服务器。
- 设备管理客户端:安装在目标设备上的客户端软件或模块,用于与更新服务器通信并处理更新过程。
- 网络连接:更新服务器和目标设备通信所通过的无线网络连接(例如,蜂窝网络、Wi-Fi)。
SOTA 工作流程:
FOTA 与 SOTA 有许多相似之处,但它是为固件更新量身定制的,通常涉及更关键和低级的软件组件。
FOTA 工作流程:
FOTA 的工作流程与 SOTA 非常相似,因为它涉及相同的更新准备、分发、设备通知、请求和验证、下载、安装、重启和验证的基本步骤。主要区别在于对固件更新的具体处理,由于固件的关键性质,可能涉及额外的预防措施。
FOTA额外的预防措施的具体举例:
#04
OTA的关键应用场景总结
以vector的方案为例:

图 4 vector对OTA的关键应用场景总结
项目 | 描述 |
数据收集 | 收集车辆数据,如雨量传感器数据用于本地天气报告 |
预测性维护 | 通过数据分析实现预测性维护,降低故障率 |
建立早期反馈循环 | 在新车型发布等方面建立早期反馈循环,优化产品和服务 |
提供新服务 | 基于车辆数据提供新服务,如本地天气报告等 |
实时诊断 | 通过远程路边援助,解决部分电气/电子问题,提高车辆使用体验 |
软件更新 | 快速修复功能和安全性问题,避免昂贵的召回,同时发布新功能,创造新的商业模式 |
1. 数据收集
- 解释:OTA升级使得车辆能够定期接收并安装最新的数据收集软件。这些软件可以优化数据采集过程,例如改进雨量传感器的数据处理算法,从而更准确地反映当前天气状况。很明显,车主不会为了收集雨量数据而专门去服务站升级车辆软件。
- 优势:车辆可以通过OTA下载最新的数据采集软件,而无需用户亲自到店进行硬件更换或软件更新。
2. 预测性维护
- 解释:OTA升级允许车辆获取最新的数据分析算法和模型,以便更好地监控车辆状态。通过分析车辆运行数据(如发动机温度、油液水平、行驶里程等),OTA更新可以提前识别潜在故障,并提醒车主进行预防性维护。
- 优势:减少因突发故障导致的维修成本和时间损失,提升车辆可靠性。
3. 建立早期反馈循环
- 解释:OTA升级使汽车制造商能够在新车型发布后,迅速根据用户反馈和实际使用情况调整软件,优化产品性能。例如,如果用户报告某个功能存在问题,制造商可以通过OTA更新快速修复问题。
- 优势:加快产品迭代速度,提升用户体验,提高品牌满意度。
4. 提供新服务
- 解释:OTA升级使车辆能够接入最新的云服务和应用程序。例如,通过OTA更新,车辆可以集成新的本地天气报告功能,为用户提供实时天气信息。
- 优势:增加车辆的功能性和实用性,提供更多增值服务,增强市场竞争力。
5. 实时诊断
- 解释:OTA升级可以更新车辆的诊断软件,使其具备更强大的远程诊断能力。例如,通过OTA更新,车辆可以支持远程路边援助,帮助解决部分电气/电子问题。
- 优势:提高车辆的自我诊断和自我修复能力,减少车主等待救援的时间,提升车辆的可用性和便利性。
6. 软件更新
- 解释:OTA升级允许车辆快速修复已知的功能和安全漏洞,避免大规模的物理召回。此外,OTA还可以发布新功能,为车辆带来持续的改进和创新。
- 优势:降低召回成本,提高车辆的安全性和功能性,同时通过新功能的发布创造新的商业模式,如订阅服务等。
本文转载自公众号:汽车电子与软件
作者:直观解
原文链接:https://mp.weixin.qq.com/s/L7UDr-kZu3zJITZOEbfuBQ
