AliOS Things全链路优化-CoAP FOTA

摘要: FOTA(Firmware Over-The-Air)即空中固件升级功能;CoAP(Constrained Application Protocol),字面意思为受限的应用协议,基于UDP,专为资源有限的物联网设备量身定制;所以AliOS Things的纯CoAP FOTA就是专为资源有限的物联网设备(如基于NB-IoT,LoRa)提供的远程固件升级功能。

FOTA(Firmware Over-The-Air)即空中固件升级功能;CoAP(Constrained Application Protocol),字面意思为受限的应用协议,基于UDP,专为资源有限的物联网设备量身定制;所以AliOS Things的纯CoAP FOTA就是专为资源有限的物联网设备(如基于NB-IoT,LoRa)提供的远程固件升级功能。

1.AliOS Things1.1.2 FOTA简介
我们先看一下当前版本(AliOS Thing1.1.2)的FOTA结构图:

图片描述

简要介绍:

信息交互通道:指与特定的云平台交互更新信息如版本上报、查询,下载链接获取,进度上报等控制或通知类信息;
下载通道:通过1中获取的下载链接下载指定固件;
FOTA service:fota主服务;
版本管理:维护升级前后的固件版本;
Security:fota安全部分,包括通道安全(mbedtls),固件下载校验,flash写入校验等;
Hal适配层:针对特定硬件的接口适配,主要指flash操作部分;
启动参数设置/固件更新:这里分两种情况,1.乒乓升级,直接将新固件写入与当前程序运行分区对等的另一个分区中,下载完成后设置启动参数让下次程序启动直接从FOTA下载分区启动,每次更新来回切换;2.下载完成后设置启动参数进入bootloader中,将下载好的固件从下载分区中复制到程序运行分区以完成固件升级。

2.CoAP块传输
CoAP协议格式:

图片描述

RFC7959定义了CoAP协议的块输出规范,对于resource representation无法通过一个CoAP数据包承载时,发起块传输过程。块传输使用options字段进行控制。

图片描述

图片描述

CoAP块传输标准新增了4个Option(size1最早在RFC7252中定义,RFC7959扩展了其含义)。 块传输机制采用Block1和Size1完成Request中Resource Presentation的块传输;采用Block2和Size2完成Response中的Resource Presentation的块传输;

FOTA CoAP下载由客户端像服务端请求资源,所以采用BLOCK2请求资源。

Block 格式:

图片描述

Option Value为变长0-3个字节的无符号数。

NUM:具有给定大小的块序列内的块(NUM)的相对数(从0开始编号),即块序号
M:是否有更多块
SZX:块大小,取值0-6,实际每个块的payload为2^ (4+SZX),即块大小为16-1024Byte

Block2出现在Response中,Option value取值含义:

NUM:表示当前Message的Payload在整个body中的编号
M:表示是否还有更多块才能完成整个body的传输
SZX:当M为1时,表示当前Message的Payload的大小(2**(SZX+4));当M为0时,实际Payload为1到2**(SZX+4)Byte;
Block2出现在Request中,属于控制性用法:

NUM:期望Response传输的块号
M:无意义,设置为0
SZX:当NUM为0时,表示希望采用的块大小;当NUM非0时,直接采用上一个接收到的Response中的块大小

3.纯CoAP FOTA
通过上节我们对CoAP块传输有了比较详细的了解,CoAP FOTA正是借助了CoAP块传输功能实现完整固件的下载。如第一节FOTA框架图,当交互通道与下载通道都走CoAP协议时,即为纯CoAP FOTA,仅仅依赖UDP协议,无需资源消耗较大的TCP协议支持,甚至连TCP/IP协议栈都不用实现,从而减少code size,ram等资源占用,更重要的是CoAP对网络带宽/网络稳定性要求要求都很低,说到此,可能很多人都想到了NB-IoT,LoRa环境,没错,我们针对这种低功耗低性能场景有备而来。CoAP FOTA流程如下:

图片描述

4.上板测验:
至此,我们对CoAP FOTA应该有了较深的理解,如果想实战试一把,请移步 AliOS Things github,下载代码搭建环境亲自体验一把,我们配有较丰富并持续丰富中的指导文档,请参考https://github.com/alibaba/AliOS-Things/wiki/AliOS-Things-FOTA-Porting-Guide 功能验证章节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523088.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于IoT网络的一些特征的探讨

摘要: 网络是IoT设备非常关键的部分,本文和大家一起探讨IoT网络的几个重要特征,及AliOS Things尝试提供的一些解决方案。 IoT网络的特征包括IP网络,UDP网络,多种通信手段及拓扑。而AliOS Things也尝试提供包括CoAP,SAL…

字典 学生成绩等级_python-列表及字典进阶

# -*- coding: utf-8 -*-l list(python) print(l) l[2:] zza print(l)numbers [1, 5] print(numbers)numbers[1:1] [2, 3, 4] print(numbers)numbers[1:4] [] print(numbers)d {lilei: 98, hanmeimei: 99} # 写字典的方法 print(d)message [(lilei, 98), (hanmeimei, 9…

highcharts ajax 数据格式,Highcharts ajax获取json对象动态生成报表生成 .

最近做个项目,项目经理想做一个统计报表,在网上查看些资料就选用Highchars 这里和大家分享下使用心得。重点说明此代码是针对一个报表显示多个项对比显示。直接贴代码:web端$(document).ready(function() {var options {chart: {renderTo: c…

5G承载网,到底有哪些关键技术?

戳蓝字“CSDN云计算”关注我们哦!作者 | 小枣君来源 | 鲜枣课堂之前小枣君给大家介绍了5G承载网的基本知识(链接:5G承载网到底有什么不同?)。今天,我们再来看看5G承载网中的常见关键技术。首先&#xff0c…

SpringBoot2整合Activiti6工作流框架 源码

git clone gitgithub.com:gb-heima/Activiti.git 创建分支 cd Activiti git checkout -b study6 activiti-6.0.0编译项目 mvn clean test-compilercd modules/activiti-ui//activiti-appmvn clean tomca7:rundemo开始 流程图绘制 首先创建一个基本的maven工程 初步流程图效果…

一个智能运维算法测试方法

摘要: 质量是企业长远生存的根基,是企业竞争的免死金牌。作为质量控制团队的一员,保障和提高所负责系统的质量,是工作的核心。而完善的测试覆盖,是保证质量的有效手段。 写在前面 质量是企业长远生存的根基&#xff0…

阿里巴巴1682亿背后的“企业级”高效持续交付

摘要: 在2017北京云栖大会上,阿里巴巴高级技术专家陈鑫(花名神秀),给大家带来了《1682亿背后的企业级高效持续交付》,引起强烈共鸣。神秀从技术负责人关心的研发流程混乱、质量无法保障、环境管理低效、资源…

星形和雪花模型_数据仓库多维数据模型设计

建设数据模型既然是整个数据仓库建设中一个非常重要的关键部分,那么,怎么建设我们的数据仓库模型就是我们需要解决的一个问题。这里我们将要详细介绍如何创建适合自己的数据模型。数据仓库建模方法大千世界,表面看五彩缤纷,实质上…

可视化流程设计器 Activiti Designer

插件安装地址:http://activiti.org/designer/update 插件使用手册:http://www.activiti.org/userguide/index.html#activitiDesigner Intellij IDEA版本: http://plugins.jetbrains.com/plugin/7429?pridea (或在插件中心搜索actiBPM)

FreeWheel是一家怎样的公司?| 人物志

戳蓝字“CSDN云计算”关注我们哦!人物志:观云、盘点、对话英雄。以云计算风云人物为核心,聚焦个人成长、技术创新、产业发展,还原真实与鲜活!作者 | 孙浩峰在知乎上有一个帖子,题目就是“FreeWheel是一家怎…

2017双11技术揭秘—千亿级流量来袭,如何用硬件加速技术为CPU减负?

摘要: 在刚过去的2017年双11零点流量高峰的考验下,主站接入层Tengine Gzip硬件加速机器运行平稳、同等条件下相比于未开启QAT加速的机器性能提升21%左右。 作者:王发康(毅松) 主站接入层是阿里2015年全站HTTPS项目诞生…

STS安装 activiti-designer-5.18.0插件

方式一:在有网络的情况下,安装流程设计器步骤如下: 1、点击eclipse上方工具栏的Help,选择Install New Software 2、弹出如下窗口,然后填写插件名称和安装地址 Name: Activiti BPMN 2.0 designer Location: http://a…

2017双11技术揭秘—分布式缓存服务Tair的热点数据散列机制

摘要: Tair是阿里巴巴集团自研的弹性缓存/存储平台,在内部有着大量的部署和使用。Tair的核心组件是一个高性能、可扩展、高可靠的NoSQL存储系统。目前支持MDB、LDB、RDB等存储引擎。本文基于Tair的存储和访问原理,对缓存的读写热点问题进行讨…

5G精华问答 | 5G与LTE有什么关系?

1G时我们用手机打电话,2G时我们能互发短信、看文字信息,3G时上网看图片,而4G时我们看视频和直播,从1G到4G,不仅信号越来越好,安全性越来越高,上网也越来越快了。1Q:5G关键指标A&…

2017双11技术揭秘—双十一海量数据下EagleEye的使命和挑战

摘要: EagleEye作为阿里集团老牌的链路跟踪系统,其自身业务虽不在交易链路上,但却监控着全集团的链路状态,特别是在中间件的远程调用上,覆盖了集团绝大部分的场景,在问题排查和定位上发挥着巨大的作用&…

2017双11技术揭秘—TDDL/DRDS 的类 KV 查询优化实践

摘要: 性能优化是企业级应用永恒的话题,关系型数据库查询优化更是如此。在前台核心业务场景中,类 KeyValue 查询(以下简称类 KV 查询)是非常常见的,并且在应用总 SQL 流量占比很高,如果仅在SQL层面进行进一步优化会非常困难&#…

揭密|淘宝服务端千万级高并发架构的演进之路

戳蓝字“CSDN云计算”关注我们哦!作者 | huashiou来源 | https://segmentfault.com/a/11900000186261631、概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术&#…

VMware安装Centos7超详细过程(图文)

软件版本链接VM14后续补充CentOS7http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso参考链接https://blog.csdn.net/babyxue/article/details/80970526文章目录一、虚拟机准备① 打开VMwear选择新建虚拟机② 典型安装与自定义安装③ 虚拟机兼容…

2017双11技术揭秘—X-DB支撑双11进入分布式数据库时代

摘要: 今年双11是X-DB的第一次大考,本次双11X-DB服务于天猫/淘宝核心交易系统、核心物流系统、核心IM系统,经受了零点业务32.5万笔/秒峰值的性能考验,同时X-DB支撑起了新一代单元化架构. 作者:章颖强(江疑)…