专栏算法工具链OTA相关概念的通俗辨析

OTA相关概念的通俗辨析

巴山夜雨2025-03-04
48
0
OTA:Over-the-Air Technology,即空中下载技术。 这项技术如此广泛使用,以至于汗牛充栋的文档对其描述。但是缺乏兼具深度和通俗的描述,大量的术语封锁了通俗理解,本文试图弥补这一缺憾。

          

 

#01

空气Air就是无线,介质是电磁波

 

本地升级 VS 无线升级

 

只要是通过无线通信方式实现升级的,都可以叫OTA升级,比如WIFI/蓝牙。通过有线方式进行升级,叫本地升级,比如通过UART,USB或者SPI通信接口来升级设备固件。

 

车主都很熟悉到4S店升级爱车。但OTA升级的好处是不限地点、不需要专门跑到特定位置。

 

OTA的便利性体现如下:

 

1.便利性和可访问性:空中下载更新消除了物理连接或手动干预的需求,使得向分布在不同位置的大量设备提供更新变得更容易和更方便。

 

2.及时的错误修复和增强:使制造商能够快速解决软件错误、安全漏洞,并添加新功能,无需用户访问服务中心或执行手动更新。

 

3.成本节约:远程更新减少了与手动固件更新、设备召回或维护访问相关的成本。

 

4.提高安全性:允许制造商通过及时向设备提供安全补丁和更新,迅速解决安全漏洞。甚至在用户发觉以前解决漏洞。

          

#02

升级什么?软件和固件

 

升级软件叫做SOTA,s代表software

 

升级固件叫做FOTA,f代表firmware    

 

图片

          

图 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 工作流程:

 

1. 更新准备:软件更新包由软件提供商或制造商创建、测试和签名。

 

2. 更新分发:更新包上传到更新服务器,该服务器管理向目标设备的更新分发。

 

3. 设备通知:更新服务器向目标设备发送通知,指示软件更新的可用性。

 

4. 设备请求和验证:设备连接到更新服务器,请求更新,并验证更新包的真实性和完整性。

 

5. 下载:设备通过无线网络下载更新包。

 

6. 安装:设备安装更新包,可能涉及验证和解压缩包、应用代码更改以及更新设备的软件组件。

 

7. 重启和验证:安装后,设备可能需要重启并进行验证检查,以确保更新成功。

 

8. 报告:设备向更新服务器发送状态报告,指示更新过程的结果。

 

9. FOTA(固件空中下载):FOTA 是专门针对远程更新设备固件的 SOTA 的一个子集。固件是嵌入在设备硬件中的软件,提供低级控制功能。FOTA 常用于智能手机、平板电脑、路由器、物联网设备和嵌入式系统等设备。

          

FOTA 与 SOTA 有许多相似之处,但它是为固件更新量身定制的,通常涉及更关键和低级的软件组件。

 

FOTA 工作流程:  

 

FOTA 的工作流程与 SOTA 非常相似,因为它涉及相同的更新准备、分发、设备通知、请求和验证、下载、安装、重启和验证的基本步骤。主要区别在于对固件更新的具体处理,由于固件的关键性质,可能涉及额外的预防措施。

          

FOTA额外的预防措施的具体举例:

 

1. 完整性校验:在下载固件之前,设备可以使用校验和、哈希值或数字签名等机制来验证固件文件的完整性。这可以确保固件在传输过程中没有被篡改或损坏。

 

2. 认证和授权:设备可以使用认证和授权机制,如密钥或证书,来验证固件更新的来源和合法性。只有经过验证和授权的固件才能被设备接受和安装。

 

3. 双重镜像和回滚机制:在安装固件更新之前,设备可以维护双重镜像,其中一份为当前运行的固件,另一份为新的固件。这样,在安装新固件时,如果出现异常情况或失败,设备可以回滚到之前的稳定固件版本。

 

4. 安全启动和签名验证:设备可以采用安全启动机制,如可信启动(Secure Boot),来验证固件的签名和完整性。只有通过验证的固件才能被设备启动和执行。

 

5. 安全存储和更新:设备可以使用安全存储来保护固件的敏感信息,如密钥和证书。此外,固件更新的过程也需要进行安全处理,防止恶意攻击者利用固件更新通道进行攻击或注入恶意代码。

 

6. 安全通信:在固件更新的过程中,设备和服务器之间的通信应采用安全通信协议,如HTTPS或MQTT over TLS等,以确保数据的机密性和完整性。

          

    

 

#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

算法工具链
技术深度解析前沿技术
评论0
0/1000