FOTA(空中升级)作为核心功能被广泛应用于各种产品中,能完美地解决线刷升级的各种麻烦。Air720系列模块一直都带有FOTA功能,但是有一点不方便的地方,就是需要发AT指令触发才能激活FOTA流程,而很多客户确可能忽略这个看似简单,却很重要的AT。有鉴于此:
Air720系列模块自V422版本后推出重大更新,该版本将配合合宙服务器完成自动FOTA(空中升级固件)功能。摆脱了用户自己发AT触发FOTA的流程,下面简单介绍一下自动FOTA的工作流程:
一,自动FOTA的工作流程:
自动FOTA是通过模块定期向后台发送升级请求,来获取新固件进行更新的,大致流程如下:
二,自动FOTA使用
1,将新版本固件上传服务器端
在通过合宙ERP购买模块后,ERP会自动分配一个升级服务器管理账号,登陆地址为:http://iot.openluat.com/ 登录后会呈现如下两款产品,其中Air720X标准模块
用于Air720系列(ASR1802芯片)模块远程升级管理。
点击进入产品
->设备列表
将会看到已购买模块的IMEI列表,自动FOTA可以对这些设备进行固件升级
点击进入产品
->固件升级
->升级配置
->新建项目
->上传待更新的固件bin
。
以AirM2M_720_V9999_LTE_AT
测试固件为例,该升级包解压后会有四个文件,其中三个bin文件需要上传到服务器端。
上传过程中可以根据需要是否对全部设备进行升级,或者指定IMEI进行部分模块升级
2,通过服务器查看模块升级情况
模块成功执行FOTA升级后,会自动向后台上报一个升级完成信息,通过如下界面点击进入产品
->升级统计
,可以看到已经升级完成的设备数量。
3,模块端更新固件过程
模块端在正常联网后,每隔一段时间(默认1天)和服务器通信一次,检查是否有新版本,如果有就会下载固件,并自动重启完成固件更新,大致AT流程如下:
下载固件过程
1 | +UPGRADEIND: 0 |
重启刷机过程(仅在UART2输出,波特率为115200)
1 | +UPGRADEDL: 10 |
版本更新结果上报
模块成功FOTA后,会自动向后台上报一个状态,如下所示:
1 | +UPGRADEVER: "AirM2M_720_V9999_LTE_AT_NAND" |
三,手动FOTA
除了上面介绍的自动FOTA功能,Air720模块也支持手动FOTA功能,下面介绍手动FOTA需要设置的AT指令。
1,AT+UPGRADE命令使用说明
命令 | 语法 | 返回和说明 |
---|---|---|
执行FOTA | AT+UPGRADE | OK |
查询FOTA结果 | AT+UPGRADE? | +UPGRADE: state, [error code, http respone, fota error cause] OK |
state: | ||
0: 未执行FOTA | ||
1: 正在下载固件 | ||
2: 固件下载结果 | ||
error code: | ||
-1000:无效的URL | ||
-1001: 网络错误 | ||
-1002:服务器链接错误 | ||
-1003:无效固件 | ||
-1004:http应答错误 | ||
-1005:存储固件错误 | ||
-1006:其他错误 | ||
http response: | ||
表示http错误码,详细错误码参考 https://baike.baidu.com/item/HTTP%E7%8A%B6%E6%80%81%E7%A0%81/5053660?fr=aladdin | ||
fota error cause: | ||
3 :无效的设备。找不到设备。 | ||
17:无权限。 | ||
25:无效的项目 | ||
26:无效的固件 | ||
27:已经是最新版本。通过了前面的检查,但版本号已是最新,或没打开升级开关、没指定imei等。 | ||
设置FOTA参数 | AT+UPGRADE=tag,value | OK |
tag: | ||
“URL”:通过value参数设置固件url | ||
“AUTO”: 是否允许自动FOTA | ||
0:关闭自动FOTA(模块不再和服务器通讯) | ||
1:打开自动FOTA(模块定期向服务器查询) |
2,FOTA流程主动上报:
- 下载固件自动上报
1
2+UPGRADEIND: <percent>
percent: 0-100 - 重启后刷新固件主动上报
1
2+UPGRADDL: <percent>
percent: 0-100 - 升级成功后主动上报AT+UPGRADE
1
2
3
4
5
6
7
8+UPGRADEVER: <new version>
new version: 新固件版本号,例如: "AirM2M_720_V9999_LTE_AT_NAND"
+UPGRADEVER: <upload state>
upload state:新固件更新状态是否成功上报,1:上报成功,0:上报失败```
### 3,使用合宙后台手动更新
模块端执行AT命令AT+UPGRADE=”URL”,”http://xxxx.bin"1
2
3
### 4,使用自定义后台手动更新
模块端执行AT命令
AT+UPGRADE
注意:模块只支持通过该URL执行http get获取固件bin