随着物联网设备的普及,物联网操作系统成为开发者讨论的热点之一。很多机构和厂商都在物联网节点上推出了基础软件——物联网操作系统,比如服务器巨头阿里巴巴的AliOS Things,亚马逊的Amazon FreeRTOS,开源社区领袖Linux基金会的泽法,以及国内知名的RT-Thread。
这些物联网操作系统各有优势。边肖参与了阿廖沙事物的发展。今天,我将谈论AliOS事物的基本架构。
在恩智浦MCU上使用AliOS产品
在讨论阿廖沙的事情之前,让让我们看看恩智浦在这方面做了什么,以及哪些产品可以支持这种物联网操作系统。
恩智浦美国的工程师和开发人员已经在AliOS上做了大量的平台迁移工作。在AliOS Things的GITHUB上,已经有数十款MCU通过了AliOS Things的认证测试,获得了设备认证。
以下是一些已经通过认证的恩智浦MCU列表:
MCU串行产品型号(RAM/Flash容量kb)LPC 54102(104/512)LPC 54101(104/512或104/256)LPC54113(192 /256或96/128)LPC 54114(192/256)LPC 54600 12)512)LPC 54606(136/256或200/512)LPC 54614
从这个表可以看出,恩智浦的很多主流MCU产品都已经支持AliOS Things了。还有一点很重要,从表中可以看出,这些MCU的存储容量跨度很大,最低只有8KB RAM和32KB Flash。这说明AliOS Things可以适应非常广泛的MCU配置,具有很强的适应性。
让下面我们来详细看看AliOS Things的内部模块和功能配置。
阿廖斯的东西是什么?
AliOS Things是阿里巴巴推出的物联网设备软件框架。物联网设备可以通过AliOS Things device框架接入阿里云,使用云服务器提供的相关物联网设备服务。
AliOS Things软件框架是基于APACHE2.0协议的开源软件,项目地址为
https://github.com/alibaba/AliOS-Things
AliOS Things的软件架构自下而上可分为四层:软硬件抽象层、AOS操作系统层、应用框架层、应用层。下层组件为上层业务逻辑的实现提供支持机制。
下图是AliOS Things的整体框图:
1.硬件和硬件抽象层
物联网节点应用的多样性导致物联网硬件差异很大。
物联网节点设备上的传感器、通信模块、微控制器核心架构、外围器件都不一样。物联网操作系统在不同硬件平台上的可移植性是其成功的一大挑战。
为了增加物联网操作系统在不同硬件平台上的可移植性,AliOS Things为物联网硬件提供了三组不同层次的硬件接口,包括微控制器核心架构模块(图中的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操作系统层主要由内核、网络协议栈和安全组件组成。
核心组件
Rhino是一个实时操作系统内核。与其他操作系统内核类似,Rhino提供了基本的操作系统功能,如多任务管理、任务间通信、内存管理等。内核还支持软件定时器和电源管理。如果读者想了解更多关于犀牛内核的知识,可以参考AliOS东西百科。
3359 github . com/Alibaba/a lios-things/wiki/a lios-things-freer tos-porting-guide . zh,文章介绍了更多关于Rhino内核的移植、性能和代码大小的信息。
VFS是一个虚拟文件系统,它提供了一个设备文件接口。类似于Linux系统,除了存储在内存中的文件,硬件设备(如传感器、麦克风等。)也可以通过VFS设备接口访问。
YLoop是一个用于进程间通信的异步事件框架,它提供了在任务中接收/处理/发布系统消息、定时器消息、用户消息和IO消息(传感器、WiFi)的机制。Yloop机制广泛应用于设备框架层和AliOS Things的应用中。
键值对(KV)键值对,它提供了在Flash或EEPROM上添加、删除、修改和查询键值对的接口。上层服务可以通过键-值对接口管理硬件设备数据(传感器校准参数)或用户数据(WiFi SSID)。
此外,核心组件还提供POSIX兼容接口和低功耗支持。
核心组件的相关源代码位于/AliOS-Things/kernel目录下。
网络协议栈
AliOS物联网协议栈包括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套接字接口。
对于设备联网,AliOS物联网协议栈也提供了基于不同平台的uMesh库。
网络协议栈相关源代码在/AliOS-Things/network目录下。
安全组件
AliOS对安全的支持应该有以下几个方面:
Mbed tls提供tls支持,用于在服务器和物联网节点之间建立安全可信的通信连接。
提供软件加密引擎
用于提供安全存储的接口
提供预设的可信根和基于ID2的相关认证机制。
提供可信执行环境的例子
相关的安全源代码位于/AliOS-Things/security目录中。
3.应用框架(中间件)
应用框架包括固件升级框架、传感器采集框架、物联网通信协议、语音服务、Java脚本解释器和工具。
Linkkit中间件支持适用于物联网的各种应用层协议,包括MQTT、CoAP、ALink、HTTP、HTTP2等。
UData提供了一个传感器采集框架,其中传感器数据被表示为传感器类型、传感器数据和时间戳的示例。
Tiny Engine是一个Java脚本解释器,可以跨硬件平台运行最终应用。
升级固件FOTA,基于网络的固件升级在物联网终端节点非常流行。物联网设备的固件存储在阿里云中,阿里云管理接入网络的设备以及对应的固件版本。物联网设备与阿里云建立可信安全连接后,物联网设备通过MQTT升级主题订阅或Alink相关协议下载需要升级的固件。在物联网的应用中,由于网络的不稳定性,固件升级通常需要双重备份。物联网设备的Flash一般被划分成独立的区域来存储升级文件,这也要求物联网的节点设备比传统设备需要更多的存储空间。
此外,AliOS Things还提供了语音云服务接口LinkVoice。物联网终端节点可以上传语音数据,使用阿里云语音识别等云服务。
AliOSThings应用框架和中间件相关源代码位于/AliOS-Things/middleware目录下。
4.应用示例
AliOS Things提供了各种应用实例,指导开发者如何使用AliOS Things提供的各种机制来完成物联网设备与阿里云的互联通信。
通过构建系统和交叉编译工具链,这些应用可以运行在支持AliOS的硬件平台上。
AliOS Things应用实例的源代码位于/AliOS-Things/app目录下。
结束语
恩智浦长期以来一直致力于物联网,以及其在AliOS物联网平台下的开发和迁移。如果你喜欢的MCU不在列表中,请告诉我们。我们有足够的经验和知识帮助你进行平台移植和设备认证。
1.2018年第11期电子期刊《单片机与嵌入式系统应用》新鲜出炉!
2.像翻书一样翻脸!联电宣布中止与金华的合作
3.对于边缘计算,其实嵌入式系统并不陌生!
4.边缘计算对嵌入式系统实现物联网应用的影响有多大?
5.哪个Linux版本适合你的应用?这里这就是答案。
6.作为一个北京的Python程序员,能买得起房子吗?
声明:本文为网络转载,版权归原作者所有。如涉及作品版权,请联系我们,我们将根据您提供的版权证明材料确认版权并支付稿酬或删除内容。
标签:物联网设备AliOS