1.1 概念
OTA全称“Over-The-Air”,即空中下载技术,早期被广泛应用在手机行业中,终结了手机软件升级需要连接电脑、下载软件、再安装更新的繁复操作。
近年来,随着汽车网联技术不断发展,汽车OTA也成为了行业热词。
OTA升级:通过OTA方式实现固件或软件的升级。 只要是通过无线通信方式实现升级的,都可以叫OTA升级,比如网络/蓝牙。 通过有线方式进行升级,叫本地升级,比如通过UART,USB或者SPI通信接口来升级设备固件。
1.2 优点
1.通过OTA方式,可以对分布在各地的设备进行软件升级,而不必让运维人员各地奔波。
2.物联网平台支持通过OTA方式进行设备固件升级,是智能设备修复系统漏洞、实现系统升级的手段。
3.在迅速变化和发展的物联网市场,新的产品需求不断涌现,因此对于智能硬件设备的更新需求就变得空前高涨,设备不再像传统设备一样一经出售就不再变更。通过固件升级用户提供更好的服务。
1.3 实现原理
核心流程:
1.制作升级包 2.下载升级包 3.验签升级包 4.更新程序
下载方式:
不管采用OTA方式还是有线通信方式升级,下载升级包的方式包括后台式下载和非后台式下载两种模式。
后台式下载:
在升级的时候,新固件在后台悄悄下载,即新固件下载属于应用程序功能的一部分,在新固件下载过程中,应用可以正常使用,也就是说整个下载过程对用户来说是无感的,下载完成后,系统再跳到BootLoader程序,由BootLoader完成新固件覆盖老固件的操作。比如智能手机升级Android或者iOS系统都是采用后台式方式,新系统下载过程中,手机可以正常使用。
非后台式下载:
在升级的时候,系统需要先从应用程序跳入到BootLoader程序,由BootLoader进行新固件下载工作,下载完成后BootLoader继续完成新固件覆盖老固件的操作,至此升级结束。早先的功能机就是采用非后台来升级操作系统的,即用户需要先长按某些按键进入bootloader模式,然后再进行升级,整个升级过程中手机正常功能都无法使用。
OTA牵扯到的技术内容
1、无线传输数据(WiFi、蓝牙、4G、NB-IOT等等)
2、IAP(In Application Programming,在应用中编程):IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写。
a、 芯片的启动过程、中断向量表
b、C语言编译、链接过程、地址空间
c、sct文件
d、flash的操作(不讲具体的)
stm32芯片启动过程
Boot0、Boot1选择启动方式(boot0/1==0/1)
给PC、SP赋值
进入复位中断(初始化时钟、执行__main函数)
进入main函数