AliOS Things 技术架构

AliOS Things 架构可以适用于分层架构和组件化架构。一般来说,从底部到顶部,AliOS Things 包括:

  1. 板级支持包(BSP):主要是由SoC供应商开发和维护

  2. 硬件抽象层(HAL):比如WiFi 和 UART

  3. 内核: 包括Rhino实时操作系统内核、Yloop、VFS、KV存储

  4. 协议栈: 包括TCP/IP协议栈(LwIP),uMesh网络协议栈

  5. 安全 : 安全传输层协议(TLS),可信服务框架(TFS) 可信运行环境(TEE)

  6. AOS API: 提供可供应用软件和中间件使用的API

  7. 中间件: 包括常见的物联网组件和阿里巴巴增值服务中间件

  8. 示例应用: 各种示例代码

AliOS Things内核:Rhino实时操作系统内核

特点:

  1. 体积小。为大多数的内核对象提供静态和动态分配。为小内存块设计的内存分配器。大部分的内核特性都是可以裁剪的。通过h文件进行配置和裁剪。K_config.h文件一般位于开发板目录结构下。

  2. 功耗低。提供了CPU 的 tickless idle模式来帮助系统节约电能和延长时间。类似于FREERTOS的tickless idle模式。

  3. 实时性。Rhino提供了两个调度策略。一个是基于优先级的抢占式调度和round-robin循环调度策略。对于这两个调度策略而言,具有最高优先级的任务都是被优先处理的。

  4. 调试方便。Rhino可以支持stack溢出、内存泄漏、内存损坏的检测。

Yloop事件框架

Yloop事件框架是AliOS Things的异步事件框架。提供了一套机制来统一调度管理IO(主要是socket)、定时器、执行函数和事件。在降低了内存的使用的同时,还避免了多线程编程的复杂性。

每个Yloop实例(aos_loop_t)与特定的任务上下文绑定。主任务以外的任务也可以创建自己的Yloop实例。多Yloop实例也可以被创建,其中每个instance都被绑定到一个单一的任务,让强大的硬件获得更好的性能。

键值对存储(KV)

KV组件时AliOS Things中一个以key-value方式进行持久化存储的轻量级组件,主要为基于Nor Flash的小型MCU设备提供通用的key-value持久化存储接口。

其优势和特征包括:

  1. 更少的擦写次数来延长flash的使用寿命

  2. 电源安全,没有中间状态存在

  3. 方便使用,关键码值支持二进制格式数据

  4. 最低支持的flash是8kb

协议栈介绍

AliOS Things通过灵活的方式提供协议栈,其主要目的是为了帮助设备更容易的连接到云端。

  1. 面向IP设备

    • 为直接连接的SoC提供了测试良好的LwIP协议栈,包括WiFi SoC,MCU+SDIO/SPI WIFI模块等

    • 为连接了通信模块(如WiFi   NB   GPRS)的MCU提供了SAL

    • 提供uMesh 去构建更复杂的网状网络拓扑

  2. 面向非IP设备

    • LoRaWAN协议栈已经集成到系统当中

    • 提供的BLE标准的API和BLE协议栈

TCP/IP协议栈(LwIP)

AliOS Things 拥有一个基于LwIP V2.0.0的TCP/IP协议栈,支持IPv4,IPv6,IPv4与IPv6共存。IPv4和IPv6已经在持续集成(CI)系统中经过良好测试,IPv6也已经在uMesh中被广泛使用和测试

套接字适配层(SAL)

SAL为WiFi/GPRS/NO-IoT系列模组提供了标准的Socket功能。对于AT命令在这个场景中的广泛使用,提供了AT Parser来帮助处理。

有了SAL,开发人员可以使用标准的Socket API访问网络,从而减少现有软件组件的集成工作。

自组织网络协议(uMesh)

uMesh是一个具有如下特征的mesh:

  • 无缝支持IPv4 和IPv6

  • RF标准独立,支持WiFi,BLE, 802.11和802.15.4等通信媒介

  • 支持不同通信媒介间的异构组网

  • 支持树状拓扑,网状拓扑和分层树状网格拓扑

  • 支持低功耗特性

  • 使用ID2对设备进行认证,AES-128对数据进行加密

安全性介绍

安全传输层协议(TLS)

继承于mbedtls,对footprint进行了高度优化

信任框架服务(TFS)

可以对接大部分的安全服务(比如ID2–一种安全策略,以后的文章中会涉及)的框架。

网络设备ID(ID2)

可信的IoT设备身份属性

秘钥管理(KM)

通过使用硬件的安全功能提供可信的runtime Root

Ali-Crypto

提供经典的算法实现

可信执行环境(TEE)

提供完整的可信执行环境

中间组件

空中固件升级(FOTA)

FOTA 使设备固件更新容易。AliOS Things可根据硬件配置给出FOTA解决方案,提供端到端的解决方案。

特征:

  • 支持丰富的物联网协议 (Alink,MQTT ,COAP)

  • 支持HTTP / HTTPS / COAP固件下载

  • 支持多bin、delta和A/B更新

  • 提供OTA HAL方便进入端口

uData

uData框架是基于传统Sensor Hub概念,结合IoT的业务场景和AliOS Things物联网操作系统的特点设计而成的一个面对IoT的感知设备处理框架。

uData框架主要分kernel和framework两层,kernel层主要是负责传感器驱动,硬件端口配置和相关的静态校准,包括轴向校准等;framework层主要是负责应用服务管理、动态校准管理和对外模块接口等。

uData的目标范围服务是物联网商业服务,像无人机玩具、智能路灯、扫地机器人等。传感器驱动程序不仅能提供传感器SDK,还能提供传感器驱动像ALS,气压计,温度,加速度计,陀螺仪,磁力计等。

物联网协议

AliOS Things支持丰富的云端连接协议:

  • Alink:阿里云平台,适用于智能生活; 也包括WiFi配置组件YWSS。

  • MQTT:标准MQTT协议;已和阿里云物联网套件良好结合。

  • COAP:基于UDP的轻量级协议。和COAP FOTA结合便可为NB-IoT设备建立一个只有UDP的系统。

AT解析器

AT解析器提供了处理AT命令连接通信模块的框架。AT解析器可处理串行流解析;回调OOB可以处理模块的特殊AT命令。与SAL一起使用,应用程序甚至可以在AT模块中使用BSD socket。

总结

AliOS Things是为了电量和资源有限的MCU、连接套接字SoC设计的,非常适合于物联网的设备。使用AliOS Things并借助阿里云的强大平台,可以实现物联网设备的快速简洁开发。

AliOS Things 技术架构相关推荐

  1. alios thing 信号量_AliOS Things 技术架构-阿里云开发者社区

    技术架构总览 AliOS Things 是一款由阿里巴巴开发的轻量级物联网操作系统. 它在2017年杭州云栖大会中问世,并在同年10月20号于github:https://github.com/ali ...

  2. 一文看懂docker容器技术架构及其中的各个模块

    概述 今天主要简单介绍下docker的技术架构及其中组成的各个模块. 技术架构 distribution 负责与docker registry交互,上传洗澡镜像以及v2 registry 有关的源数据 ...

  3. 德国SNS交友/视频网站Poppen.de的技术架构分享

    Poppen.de是一个德国的 交友/ 聊天/ 视频 的SNS网站, 部分内容NSFW,网站采用了很多我们熟悉的技术,像Nginx ,MySQL,CouchDB,Erlang,Memcached的,R ...

  4. 余额宝技术架构读后感

    本次阅读文章为:余额宝技术架构及演讲 文章地址:https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653547540&idx ...

  5. flutter ios启动白屏_Flutter技术架构概览

    前言 最近在整理各种技术架构,给自己的列了个TODO list,希望能在几个月的时间内,研究完各种前端技术架构,包括移动端技术架构.今天分享一下自己整理的flutter技术架构.完整的技术架构TODO ...

  6. 干货!3 个重要因素,带你看透 AI 技术架构方案的可行性!

    作者 | 房磊 责编 | Carol 出品 | AI 科技大本营(ID:rgznai100) 人工智能这几年发展的如火如荼,不仅在计算机视觉和自然语言处理领域发生了翻天覆地的变革,在其他领域也掀起了技 ...

  7. 【超赞】技术架构的战略和战术原则

    欢迎关注方志朋的博客,回复"666"获面试宝典 技术架构,是将产品需求转变为技术实现的过程.技术架构解决的问题包括了如何进行纯技术层面的分层.开发框架选择.语言选择(这里以 JAV ...

  8. 大型网站技术架构(3):WEB 前端性能优化

    上次说到了性能优化策略,根据网站的分层架构,可以大致的分为 web 前端性能优化,应用服务器性能优化,存储服务器性能优化三大类 这次来说一下 web 前端性能优化,一般来说,web 前端就是应用服务器 ...

  9. 技术架构的战略和战术原则

    技术架构,是将产品需求转变为技术实现的过程.技术架构解决的问题包括了如何进行纯技术层面的分层.开发框架选择.语言选择(这里以 JAVA 语言为主).涉及到各自非功能性需求的技术点(安全.性能.大数据) ...

最新文章

  1. DCN-2655 同异步端口PPP (chap)认证
  2. vue 移动端签字_Vue 移动端
  3. 空间连接时计算总和_【数据技术】城市功能混合程度计算
  4. java预期_预期. java的
  5. 小程序识别带多个参数二维码进入商品详情
  6. php traits 使用,php中traits的使用
  7. Exchange Connector 访问报错解决方法一
  8. .bash_profile vs .bashrc
  9. stm32 SPI、FLASH
  10. Spark记录-Scala记录(基础程序例子)
  11. Spring解决循环依赖
  12. zookeper安装_ZooKeeper的安装与部署
  13. Struts2中的校验器
  14. system.IO.FileNotFoundException: 未能加载文件或程序集
  15. 单细胞测序分析软件包_seurat使用笔记
  16. python输出随机字符串代码
  17. DMZ network
  18. Mac系统应用已经删除,但是右键还有残留的解决办法
  19. vue 记住密码下次自动登录
  20. 目前国内的智能门锁,主要可以划分为哪几类?

热门文章

  1. 大数据-kafka学习(一)——Kafka简介
  2. Java jdk proxy、cglib、aspectj 三种常用代理示范
  3. 学科投票系统-基于Python-Django实现的前后端分离项目
  4. 目标检测经典论文——Faster R-CNN论文翻译(纯中文版):Faster R-CNN:通过Region Proposal网络实现实时目标检测
  5. js室内地图开发_概述-室内地图 JS API | 高德地图API
  6. html5设备面板 twaver,TWaver可视化编辑器(二)3D编辑器
  7. 外挂,一个因“快感”而崛起的暴利行业
  8. 理发店真是一个暴利行业吗?
  9. typescript是什么_为什么不应该害怕TypeScript
  10. excel 除掉最后一个字