AliOS Things 技术分享|学习笔记(一)

简介: 快速学习 AliOS Things 技术分享

开发者学堂课程【阿里云 AIoT 物联网开发实战AliOS Things 技术分享学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/754/detail/13233


AliOS Things 技术分享

 

一、目录

二、嵌入式操作系统的发展历史

三、嵌入式操作系统带来了什么?

四、AliOS Things 发展历史

五、AliOS Things 系统架构图

六、AliOS Things 面向的设备

七、统一硬件抽象

八、完善的网络支持

九、统一网络适配层

十、完整的云平台连接适配

十一、文件系统支持

十二、POSIX 标准支持

十三、端云一体 OTA 升级支持

十四、AI 框架

十五、AliOS Things 组件

十六、远程运维工具

十七、开发维测工具

十八、ALiOS Things 适配的芯片

十九、AliOS Things 的工具

十九、如何使用 AliOS Things 帮助设备快速上云

二十、开发者社区

 

一、目录

01为什么需要嵌入式操作系统

02物联网操作系统 liOS Things 介绍

03使用 AliOs Things 帮助设备快速上云

04 Alios Things 开发者社区

 

二、嵌入式操作系统的发展历史

1.以功能简单的专用计算机或单片机为核心的可编程控制器

主要是在上世纪七八十年代,主要是一些8位机或者16位机,那时候还没有操作系统的概念,无操作系统的嵌入算法阶段,通过汇编语言编程对系统进行直接控制(主要是流程上的控制),运行结束后清除内存

2.以嵌入式CPU和嵌入式操作系统为标志;高可靠、低功耗的嵌入式 CPU

随着应用场景的复杂,以及嵌入式 CPU 的发展,产生了高可靠,低功耗的嵌入式CPU,这时候的操作系统相对比较简单,首先,功能上面比较简单,其次以嵌入式CPU 为基础、简单操作系统为核心的嵌入式系统,具有一定的兼容性和扩展性,用户界面不够友好﹔系统主要用来控制系统负载以及监控应用程序运行

3.芯片技术和物联网技术相结合为标志的嵌入式系统

到了二十一世纪随着物联网的发展,互联网技术蓬勃兴起,还有芯片技术的不断发展,芯片技术和物联网技术相结合,推向了新时期物联网操作系统。有了一些特别的标准,内核精小、效率高,具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口 API;嵌入式应用软件丰富。

 

三、嵌入式操作系统带来了什么?

1.硬件资源管理

多核 CPU 已被广泛应用,需要操作系统协调调度

应用越来越复杂,硬件抢占调度需要 OS 协调

2.提升开发效率

降低开发难度,直接使用系统 API,即可完成系统资源的申请、多任务的配合,以及任务间的通信等

提供丰富组件资源,拿之即用

3.易维护和管理

更清断的代码结构,功能块按任务组织,逻辑更清晰代码更易读,更易于后期的维护和管理

交互更便捷,不同任务之间通过操作系统进行同步和数据交互

4.可移植性高

更高的可移植性,对接不同芯片的工作由操作系统完成,应用开发者只需要关注 OS 层接口

标准的 HAL 接口和 API 接口兼容业界生态

操作系统其实是对硬件资源的管理,如果不用操作系统的话,比如多任务的应用,很难想象一个单任务的应用,能把 CPU 的资源完全利用起来,只有多任务的操作系统基于这种实时调度,才能最大限度利用一些资源,把硬件资源充分发挥。目前,这种多核 CPU 也被广泛应用,更需要操作系统去协调调度。

第二就是提升开发效率,降低开发难度。嵌入式操作系统使用适用于多任务情况,在每个任务上面,只要各个任务执行自己的能力就可以了,不需要多个任务挤在同一个线程上面,所以降低了整个任务的开发难度,操作系统提供了丰富的 api

第三,就是易于开发和维护,所有的功能模块,是按照任务来组织的,每个任务相对逻辑比较清晰,代码也比较简单,更易于后期的开发和维护,任务之间的交互比较便捷,不同任务直接通过操作系统进行同步和数据交互

第四点就是可移植性高,因为嵌入式操作系统,情况比较多,发展迭代速度比较快,应用可能过几年就要在新的系统上面,去进行移植,所以对移植性要求特别高,操作系统对底层的 hal 起到一个封装,Api 接口也是相对比较标准,可以兼容业界生态,屏蔽不同硬件带来的影响,所以可移植性就相对比较高。以上是嵌入式操作系统带来的一些优势。

 

四、AliOS Things 发展历史

1.V1.1.02017/11

rhino 内核

loT 协议(SDS,MQTT,CoAP)

KV 存储系统

uMesh 协议栈

TEE 安全组件

2.V1.3.32018/8

●支持 yaffs2文件 系统

BLE,LoRaWAN 协议栈

●更多 IoT 芯片支持

Keil,IAR 支持

3.V2.2.02019/2

● 增加 uData,ul ocation 组件

OTA 差分升级

●电源管理功能

RISC-V 支持

4.V3.0.02019/9

JS 引擎支持,增加 GUI 模块

●增加uAI框架,支持 DNN,CNN 等模型 BT mesh 协议栈支持

LwM2M 支持

RISC-V 支持

5.V3.1.02020/4

APP 开发框架

●增加组件安装、卸载、查询

●增加 RTP/HTTPDNS 支持

●增加 IoT 本地通信能力

6.V4.0.02020/9

201711月发布了1.1版本,在 data HUB 上面去开源,全部用了,全模式自主可控的,知识产权,整个内核也是重新编写的,加了很多组件,包括群组的,包括网络的,还有一些安全组件。
最近一个版本是2020年四月份发布的3.12020年九月份发布4.0版本。

 

五、AliOS Things 系统架构图

image.png

以上是  ALIOS 系统架构图,最下面是硬件,包括主流物联网芯片,ALIos 支持一些主流的 CPU 架构,主流的物联网芯片包括了80多款,在上面就是自研实时操作系统内核 Rhino,在上面是统一稳定的系统和硬件抽象层,兼容了API接口,上面是一些 AOS 通用组件,包括网络组件比如 twipblelorauMeshNB-IoT,还有轻量级图形用户界面 GUI,以及文件系统、VFS TEE,最上面是一些应用组件,包括和阿里云平台连接的 linkit sdk,以及和 LV 平台连接的 link vision,还有一些一方增值中间件,比如 ota 升级、智能语音 uVoice、定位框架 uLocation、传感器管理框架 UDATE 和日志存储 uLog。除此之外,还有一个轻量级计算引擎,包括实时流计算,轻量级的 AI SDK,始于经典,面向 IoT

 

六、AliOS Things 面向的设备

image.png

比如家庭用的 camera、家庭冰箱、洗衣机、智能插座,工业上面的机械手臂或者一些面板,这些设备都有共同的特点

功能需求相对明确

硬件资源有限

运行稳定性要求高

启动时间及实时性要求较高

ALIOS 面向家庭、工业、智能园区,农业各种场景。

 

七、统一硬件抽象

image.png

AliOS 提供了统一硬件抽象,有12大类常用的硬件抽象,包括经常用的 gpioUARTSPII2C以及 FLASH 等等。通用硬件抽象层下面的板卡是不一样的,但是硬件抽象层是一样,硬件的函数都是一样的,这样就很方便应用开发各种板卡上面,不用修改代码直接拿去就用,极大方便了可移植性。

 

八、完善的网络支持

●支持局域网连接: WiFi、 蓝牙、以太网、ZigBee

●支持广域网连接: NB-IoT LoRa 2G/3G/4G

●支持网络协议栈: HTTP/s MQTTCoAP LwM2M 等常用物联网协议

●兼容 IPv4/IPv6

●支持各种网络 Debug 工具,ping/iperf/ifconfig/pktprint

●提供网络管理框架,可以对 wifi,广域,有线等网络进行管理,实现高效共存

● 支持 Mesh 组网支持,针对蓝牙和 WiFi 均适用

 

九、统一网络适配层

●将 AT 或其他外扩通信模组快速抽象为 socket mqtt 操作,便于复用其他网络组件.

●提供模组驱动框架生成工具,不再从”0"开始。

●配置化选择驱动使用。驱动调用仅需传入对应串口或 SPI 口。

image.png

市面上有很多通信模组,上面是 APP,下面是 socket adapter layer,这是一个 sal框架,对于 APP 来讲,他看到的就是标准的 socket 接口,Sal 层把下面的硬件,比如外面带的是2g 的模块,或者是一个 WIFI 模块,都可以把硬件就屏蔽掉了,因为总看到的就是标准的 socket 接口,这样方便用户进行开发。
有一些通信模组不仅仅提供 socket 功能,他可能还提供一些高级的 mqtt 功能,同样做了一个 m QT t 的适配层,APP 正面主要是直接调用 mqtt 接口,通过 mal 层,把 mqtt 以及通信协议的细节,都给屏蔽掉了,这非常方便开发。
之前有客户原来用 WIFI,使用阿里云开发的设备,后面因为要移到户外,所以使用了 2g 模块,只使用了一天的时间就对上了,换了一个二级模块,整个产品就完成了,就是基于这功能。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
7月前
|
传感器 消息中间件 物联网
AliOS Things 系统架构介绍(二)
AliOS Things 系统架构介绍(二)
213 0
|
安全 网络协议 物联网
AliOS Things开发前准备 |《AliOS Things快速开发指南》
在运行AliOS Things系统之前,您需要做好一系列准备工作,包括搭建环境、安装驱动设备、下载AliOS Things系统源码、安装开发工具AliOS Studio等。本文详细介绍如何完成这些准备工作。
AliOS Things开发前准备 |《AliOS Things快速开发指南》
|
7月前
|
存储 传感器 人工智能
AliOS Things 系统架构介绍(一)
AliOS Things 系统架构介绍(一)
192 0
|
安全 物联网
《AliOS Things快速开发指南》电子版地址
《AliOS Things快速开发指南》帮助您认识AliOS Things系统,并实现从零开始的一个入门操作。更有两大典型实践场景教你物联网开发从入门到精通。手把手教你从环境准备到线上、线下开发调试,更有两大典型场景实践等你参与。你的物联网开发从这里开始!快来get新技能吧~
92 0
《AliOS Things快速开发指南》电子版地址
|
IDE 物联网 AliOS-Things
AliOS Things 技术分享|学习笔记(三)
快速学习 AliOS Things 技术分享
354 0
AliOS Things 技术分享|学习笔记(三)
|
存储 传感器 运维
AliOS Things 技术分享|学习笔记(二)
快速学习AliOS Things 技术分享
211 0
AliOS Things 技术分享|学习笔记(二)
|
存储 人工智能 运维
AliOS Things 技术分享(一)|学习笔记
开始学习 AliOS Things 技术分享(一)
417 0
AliOS Things 技术分享(一)|学习笔记
|
物联网 AliOS-Things 开发工具
AliOS Things 技术分享(二)|学习笔记
快速学习 AliOS Things 技术分享(二)
185 0
AliOS Things 技术分享(二)|学习笔记
|
JSON 小程序 IDE
AliOS Things 物联网开发上手|学习笔记
快速学习 AliOS Things 物联网开发上手
147 0
AliOS Things 物联网开发上手|学习笔记
|
AliOS-Things 物联网 编译器
使用HaaS Studio开发AliOS Things C/C++应用
本文章将介绍使用HaaS Studio 进行AliOS-Things C/C++应用开发。
使用HaaS Studio开发AliOS Things C/C++应用