2020年,特斯拉发布过一次OTA更新,车主可以通过这次系统更新获得座椅加热功能。当时,这则新闻震惊了车圈和所有车主,彼时的大家还没有把汽车当作可以“升级”的智能设备。 如今3年过去了,车主对各家车企的OTA升级早已见怪不怪。 在智能设备早已普及的今天,大家对“软件升级”这个概念已经非常熟悉: 软件可以升级、个人电脑可以升级、手机系统可以升级…… 但对于物联网(IoT)设备的升级,大家也许还会感到陌生和好奇。为什么原本不具备加热功能的座椅或方向盘,仅通过一次软件升级,就能获得新功能呢? 这就要引出我们今天的主角——OTA。
什么是OTA?
OTA(Over-The-Air,空中下载技术)是一种无线传输技术,用于在物联网设备之间进行远程更新和配置。OTA指的是通过无线通信网络来远程更新或升级嵌入式系统中的软件或固件。OTA 更新是一种方便的方法,用于将新功能、改进后的性能、安全补丁或其他更改推送到嵌入式设备,而无须物理接触设备或用户手动干预。
·OTA简化了设备的更新和维护过程。传统的软件更新方法通常需要用户将设备带到服务中心或使用有线连接进行更新,这既耗时又麻烦。而OTA技术则允许设备自动接收并安装更新,大大节省了时间和精力。 ·OTA技术提高了设备的可靠性和安全性。通过定期更新设备软件,可以修复潜在的安全漏洞和性能问题,从而降低设备被攻击和损坏的风险。
·OTA技术可以实现远程诊断和故障排除,帮助用户更快地解决问题。
在物联网领域,OTA技术被广泛应用于各种设备,如智能家居、智能城市、工业自动化等。
OTA方案的特点
面对远程更新所面临的挑战,物联网平台远程更新方案需要具有如下特点。
时间短、效率高
物联网平台应尽可能减少远程升级的时间,提高升级效率。 ·通过控制升级包的大小,采用差分分组来降低升级包的大小,减少远程网络传输时间。 ·通过模块内升级提高升级的灵活度。
·增加断点续传功能,避免终端故障或通信中断造成的数据重传,减少数据传输时间。
合理使用无线资源,提升终端更新的服务效率
为了提升无线资源的使用效率,终端远程更新服务应该实现多任务的并发,一个任务对应一次远程更新计划,其中包含一组待更新的远程终端。同时,为了保障同一无线区域中其他终端业务的正常使用,物联网平台应对进行更新操作的终端数量进行限制。
高可靠性
高可靠性是为了保障终端更新的效率。 ·远程更新的管理和控制要精细、准确、智能化。物联网平台应能根据具体终端的状态进行有效性检查(如版本、文件类型、升级包大小等),然后再触发终端远程更新流程。 ·通过引入状态机的机制、对远程更新过程实施控制并实现异常处理,能够保障端云间控制的协同,降低远程更新操作的风险。
·在远程升级过程中,为了避免升级包数据可能出错或丢失,要考虑使用升级包的校验机制来确保升级包的完整性,使用可靠的传输协议保证数据传输的可靠性,并使用物联网平台的重试策略保证传输和升级过程的稳定性。
通用性
通用性是指物联网平台接入的不同领域、不同种类的异构终端应该使用相同的终端更新流程。这样可以最大限度地降低终端远程更新的维护成本,实现用户的自服务、自管理,以及对异构终端的规模化更新。 ·终端远程更新方案需要做到控制流和业务流的分离,控制流不受终端所处环境的影响。 ·控制流采用标准、开放的国际标准协议承载,保证技术方案的可实施性。
·兼容升级包,并支持业务流的个性化升级,而且支持第三方差分服务商提供的差分包升级服务。
OTA系统的参考架构和服务流程
物联网云平台远程更新系统的结构由服务端和终端两部分组成。
物联网云平台远程更新系统的结构
远程更新服务端是物联网平台的一个功能模块,主要实现用户自服务和远程更新的管理控制功能。用户自服务是指用户通过门户方式进行远程更新任务的制定和远程更新状态的查询。任务制定内容包括更新版本、升级包、待升级终端组和更新策略等;远程更新管理包括更新的触发、升级包下载和安装控制,以及下载和安装失败时的策略执行控制。
升级包的生成和下载在服务端完成,并支持两种方式:
一种是物联网平台为待升级的终端提供下载服务,这种方式是用户通过门户上传升级包,物联网平台负责升级包的管理;
另一种是第三方差分服务器提供差分分组的生成和下载,在这种方式下,用户在制定任务时需要选择第三方差分服务器的访问地址。
无论是哪种方式,服务端和终端都要支持断点续传功能。
远程更新时,终端需要根据服务端的指示来下载、安装升级包并上报安装结果。终端下载应支持断点续传功能和升级包的校验功能。终端安装应支持安装和容错功能,容错是指终端在安装阶段对故障进行隔离和处理,以确保安装失败时不影响终端的正常运行。
远程更新服务流程包括更新任务制定、更新触发、升级包下载和安装4个阶段。
OTA服务流程示意图
结语
在物联网领域,OTA技术被广泛应用于各种设备,如智能家居、智能城市、工业自动化等。 然而,OTA技术也面临一些挑战: 第一,由于设备种类繁多,不同设备可能需要不同的OTA技术和协议。这需要开发者针对不同的设备和应用场景进行定制化开发,增加了开发和维护成本。
第二,OTA技术的安全性和可靠性也需要考虑。如果OTA更新过程中出现错误或中断,可能会导致设备无法正常工作或数据丢失。
总的来说,OTA技术为物联网设备提供了更高效、更安全的更新和维护方式。虽然它面临一些挑战,但随着技术的不断发展和改进,我们相信OTA将在未来发挥更大的作用。