0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AliOS Things的基本架构和如何在MCU上应用AliOS Things的介绍

5RJg_mcuworld 来源:未知 作者:易水寒 2018-11-11 11:29 次阅读

随着物联网设备的普及,物联网操作系统也成了广大开发者热烈讨论的话题之一,很多的组织和厂商都推出了在物联网节点上的基础软件——物联网操作系统,如服务器巨头Alibaba推出的AliOS Things,Amazon公司的Amazon FreeRTOS,再如开源社区领袖Linux基金会推出的Zephyr,以及在国内知名度很高的RT-Thread等等。

这些物联网操作系统各具优势,小编参与过AliOS Things的开发,今天就讲讲AliOS Things的基本架构。

在恩智浦MCU上使用AliOS Things

讨论AliOS Things之前,先来看看恩智浦在这上面做了哪些工作,有哪些产品可以支持这一物联网操作系统。

恩智浦的工程师和广大开发者,在AliOS Things上已经完成了大量的平台移植工作。在AliOS Things的GITHUB上,已经有数十款MCU通过了AliOS Things的认证测试,并获得了设备认证。

下面是已经获得认证的部分恩智浦MCU的列表:

MCU系列 产品型号 (RAM/Flash容量 KB)
LPC LPC54102(104 / 512)
LPC54101(104 / 512或 104 / 256)
LPC54113(192 /256或96 /128)
LPC54114(192 /256)
LPC54605(136 /256 或 200 / 512)
LPC54606(136 /256 或 200 / 512)
LPC54607(136 /256 或 200 / 512)
LPC54616(136 /256 或 200 / 512)
LPC54618(200 /512)
LPC54628(200 /512)
LPC54005(360 / 无片上闪存)
LPC54016(360 / 无片上闪存)
LPC54018(360 / 无片上闪存)
Kinetis MKL17Z32 (8 / 32)
MKL17Z64 (16 / 64)
MKL17Z128(32 / 128)
MKL17Z256(32 / 256)
MKL27Z32 (8 / 32)
MKL27Z64(16 / 64)
MKL27Z128(32 / 128)
MKL27Z256(32 / 256)
MKL33Z128(16 / 128)
MKL33Z256(32 / 256)
MKL43Z128(16 / 128)
MKL43Z256(32 / 256)
i.MX RT MIMXRT1052(512 / 无片上闪存)
MIMXRT1051(512 /无片上闪存)
MIMXRT1021(256 /无片上闪存)

从这个表里可以看出,很多恩智浦主流的MCU产品都已经支持了AliOS Things。另一个要点是,表中可以看到这些MCU的存储容量跨度很大,最小只有8KB RAM和32KB Flash,这说明AliOS Things可以适应非常广泛的MCU配置,适应性很强。

下面就详细看看AliOS Things的内部模块和功能配置。

AliOS Things是什么?

AliOS Things是阿里巴巴推出的物联网设备端软件框架,物联网设备可以通过AliOS Things设备框架接入阿里云,使用云服务器提供的相关物联网设备服务。

AliOS Things软件框架是基于APACHE2.0协议的开源软件,项目地址为

https://github.com/alibaba/AliOS-Things

AliOS Things软件架构可以从下到上分为四层,硬件和硬件抽象层、AOS操作系统层、应用框架层和应用层,下层组件为上层业务逻辑的实现提供支撑机制。

下图是AliOS Things的整体框图:

1. 硬件和硬件抽象层

物联网节点应用的多样性,导致物联网硬件的巨大差异。

物联网节点设备上的传感器通信模块、微控制器的内核架构,外设组件等都不相同,物联网操作系统在不同硬件平台的可移植性,是其成功与否的一大挑战。

为了增加物联网操作系统在不同硬件平台的可移植性,AliOS Things对物联网硬件提供了3组不同层级的硬件接口,包括微控制器内核架构模块(图中的CPU模块),片上系统片上外设模块(图中的HAL模块),和基于电路板的模块(图中的BSP模块)。

在Github的项目中,CPU相关源码位于/AliOS-Things/platform/arch目录,HAL相关源码位于/AliOS-Things/platform/mcu目录,API定义文件为/kernel/hal/include/hal/hal.h,BSP相关源码位于/AliOS-Things/board目录。

2. AOS操作系统层

AOS操作系统层主要由核心组件(Kernel)、网络协议栈(Protocol Stack)和安全组件构成。

核心组件

Rhino是一个实时操作系统内核。和其他操作系统内核类似,Rhino提供了操作系统的基本功能,如多任务管理、任务间通信、内存管理等。内核也支持软件定时器及功耗管理。如果读者希望对Rhino内核有更多的了解,可以参考AliOS Things百科

https://github.com/alibaba/AliOS-Things/wiki/AliOS-Things-FreeRTOS-Porting-Guide.zh,文章介绍了更多关于Rhino内核的移植、性能、代码尺寸等信息

VFS是一个虚拟文件系统,提供了设备文件接口。类似于Linux系统,除了存储在存储器上的文件外,硬件设备(如传感器、麦克风等)也可以通过VFS设备接口访问。

YLoop是一个用于进程间通信的异步事件框架,提供了在任务中接收/处理/发布系统消息、定时器消息、用户消息、IO消息(传感器、WiFi)的机制。Yloop机制广泛的用于AliOS Things的设备框架层和应用程序中。

Key-Value Pair(KV)键值对,提供了键值对在Flash或EEPROM上的增加、删除、修改、查询等接口。上层业务可以通过键值对接口,完成对硬件设备数据(Sensor校准参数)或用户数据(WiFi SSID)的管理。

除此以外,核心组件还提供了POSIX兼容接口和低功耗的支持。

核心组件的相关源码位于/AliOS-Things/kernel目录。

网络协议栈(Protocol Stack)

AliOS Things网络协议栈包括IP和非IP设备的网络协议。对于IP网络,协议栈既提供基于LWIP的支持,也提供了MCU + Wi-Fi模块或Wi-Fi片上系统的支持。对于非IP网络,协议栈包括蓝牙LoRa WAN、zigbee等。

在物联网节点中使用的Wi-Fi模块并非统一规格。在总线连接方式上,Wi-Fi模块的接口可能支持UART/SPI/SDIO的一种或几种;在访问方式上,有的Wi-Fi模块使用基于AT命令的控制方式,有的Wi-Fi模块使用裸Socket形式的API。

套接字适配层SAL(Socket Adapter Layer)旨在抽象Wi-Fi模块的差别,以提供应用层网络服务或者网络应用程序的可移植性,向上层提供BSD Socket接口。

对于设备组网,AliOS Things网络协议栈还提供基于不同平台的uMesh库。

网络协议栈相关源码在/AliOS-Things/network目录。

安全组件

AliOS Things对于安全的支持要有以下方面:

基于mbed tls提供TLS支持,用于建立服务器和IoT节点的安全可信通信连接。

提供软件密码学引擎

提供安全存储的接口

提供基于ID2的预置可信根和相关认证机制

提供可信执行环境TEE的例子

安全相关源码位于/AliOS-Things/security目录。

3. 应用框架(中间件)

应用框架包括固件升级框架、传感器采集框架、物联网通信协议、语音服务、Java Script解释器和工具。

Linkkit中间件支持各种适用于物联网的应用层协议,包括MQTT、CoAP、ALink、HTTP、HTTP2等。

uData提供了传感器采集框架,在uData框架中,传感器数据表示成为传感器类型,传感器数据和时间戳的实例。

Tiny Engine是一个Java Script脚本解释器,为实现最终应用的跨硬件平台的运行能力。

固件升级FOTA,基于网络的固件升级在物联网终端节点非常普及。物联网设备固件存放在AliCloud中,AliCloud管理入网设备和对应的固件版本。在物联网设备和AliCloud建立可信安全连接后,物联网设备通过MQTT升级主题订阅,或者Alink相关协议实现待升级固件的下载。在物联网应用中,由于网络的不稳定,实现固件升级通常需要实现“双备份”升级方式,物联网设备的Flash一般会划分有独立的存储升级文件的区域,这也要求物联网节点设备比传统设备需要更多的存储空间。

此外,AliOS Things还提供了语音云服务接口LinkVoice,物联网终端节点可以上传语音数据,使用阿里云的诸如语音识别等的云服务。

AliOSThings应用框架及中间件相关源码位于/AliOS-Things/middleware目录。

4. 应用实例

AliOS Things提供了各种应用实例,指导开发者如何使用AliOS Things提供的各种机制,以完成物联网设备和AliCloud之间的互联通信。

通过BUILD系统和交叉编译工具链,这些应用可以在支持AliOS Things的硬件平台上运行。

AliOS Things应用实例的源码位于/AliOS-Things/app目录。

结束语

恩智浦长期致力于物联网,以及在AliOS Things平台下的开发和移植工作。如果您心意的MCU不在列表中,请让我们知道,我们有足够的经验和知识,可以帮助您进行平台的移植和设备认证。

1.2018年第11期《单片机嵌入式系统应用》电子刊新鲜出炉!

2.翻脸如翻书!联电宣布暂停与晋华合作

3.对于边缘计算,其实嵌入式系统一点儿都不陌生!

4.边缘计算对嵌入式系统实现物联网应用的影响,究竟有多大?

5.你的应用适合选择哪个Linux版本?这里有答案。。。

6.在北京当 Python 程序员,能买起房吗?

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16019

    浏览量

    343668
  • 物联网
    +关注

    关注

    2870

    文章

    41639

    浏览量

    358411
  • 操作系统
    +关注

    关注

    37

    文章

    6288

    浏览量

    121895

原文标题:如何在MCU上应用AliOS Things?

文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AliOS Things v1.1.2新特性

    Things Testsuite,LoRaWAN协议栈,网络适配架构SAL,FOTA CoAP支持,及CK802T TEE支持。 更多信息请参考githubRelease Note。重点特性说明
    发表于 12-26 17:45

    AliOS Things网络连接技术概述

    部分除了功能性介绍,还会根据场景给出AliOSThings网络组件的建议使用方法。自组织网络AliOS Things核心组件之一uMesh提供了AliOS
    发表于 01-05 11:59

    AliOS Things蓝牙协议栈及应用开发框架介绍

    摘要: AliOS Things从1.2.0版本开始支持蓝牙协议栈(BLE),及基于蓝牙协议栈的应用层开发框架。本文分为三部分对蓝牙组件进行介绍:蓝牙组件,蓝牙协议栈介绍及接口说明,和
    发表于 01-11 11:36

    AliOS Things lorawanapp应用介绍

    摘要: 文本旨介绍AliOS Things的lorawanapp的示例,完成一个LoRaWAN网络的构建和数据传输,并通过该示例让大家对AliOS
    发表于 01-22 16:43

    AliOS Things 持续集成(CI)系统介绍

    的要求。本文介绍AliOS Things的CI系统的实现方式及思考。点此查看原文:http://click.aliyun.com/m/41052/背景简介AliOS
    发表于 01-26 15:34

    AliOS Things最新资料5篇(Markdown文档)

    1、AliOS Things开发:让你的开发板支持AliOS Studio烧录2、AliOS Things开发:让你的开发板支持
    发表于 10-11 16:24

    AliOS Things 3.0 OTA专辑

    主要介绍基于AliOS Things 3.0和阿里云物联网平台设备OTA:整包升级、压缩升级、差分升级等三种放。
    发表于 10-16 11:21

    看见源码:立刻体验AliOS Things 3.0 !

    自主可控的操作系统,其具备全新的开发模式、在线裁剪工具、应用与内核分离、脚本语言支持、本地 AI 框架等诸多特性,何云飞在现场谈到了 AliOS Things 采用微内核架构,能够将在智能硬件
    发表于 10-16 16:38

    使用AliOS Things 3.0快速构建用户应用 BlinkAPP

    本帖最后由 阿里云AIoT 于 2019-10-16 17:04 编辑 简介: AliOS Things 3.0版本于9月27日在云栖大会正式发布,在新版本中带来了全新的应用开发框架,帮助用户
    发表于 10-16 17:02

    AliOS Things开发:AliOS Studio使用说明

    简介: AliOS Studio 是一套基于vscode的开发环境,支持windows、linux、macOS。 给AliOS Things一颗STAR(前往GitHub关注我们)目录介绍
    发表于 10-16 17:18

    AliOS Things 3.0应用笔记:http client简单应用

    简介: AliOS Things 3.0版本新增加了httpc组件(http 客户端组件),httpc组件支持多种RESTful的API调用,包括GET、POST、PUT、HEAD等,也支持
    发表于 10-17 11:23

    AliOS Things 3.0 应用开发指南

    简介: 应用开发指南 目录应用开发框架介绍使用条件快速开始第一步:下载AliOS Things 3.0源码第二步:添加AOS_SDK_PATH环境变量第三步:AliOS Studio中
    发表于 10-17 13:48

    AliOS Things 3.0 入门与实践:视频教程+学习笔记

    3.0快速构建用户应用 BlinkAPPLinkkit SDK 用户手册aos-cube命令速查表AliOS Things 启动流程其他如何快速git clone github的源码首先git
    发表于 10-21 16:14

    何在WIN10系统下安装AliOS Things的编译环境

    本文档的主要内容详细介绍的是如何在WIN10系统下安装AliOS Things的编译环境。
    发表于 05-15 18:09 1次下载
    如<b class='flag-5'>何在</b>WIN10系统下安装<b class='flag-5'>AliOS</b> <b class='flag-5'>Things</b>的编译环境

    AliOS Things从环境安装到入门的5篇资料合集免费下载

    本文档的主要内容详细介绍的是AliOS Things从环境安装到入门的5篇资料合集免费下载 1、AliOS Things开发:
    发表于 10-12 08:00 2次下载