本专栏前期主要介绍Arduino相关项目,适合新手入门。后期则以本文为分界点,介绍更多关于在硬件实现实现一些机器学习项目
作者:iotsharer
首发:https://zhuanlan.zhihu.com/p/64861157
摘要:本文主要介绍物联网系统产生的背景,以发布时间的先后顺序介绍了国内几个物联网系统的基本状况,总结了物联网系统的特点,并且展示了基于物联网系统生态链的智能酒店应用实例。
0、引言
目前, Android系统和Windows分别占据了手机和PC的绝大多数市场,为了避其锋芒,在争夺操作系统话语权的战场上取得胜利,国内以华为、腾讯、阿里巴巴为代表的开始关注物联网操作系统,整合生态链和云平台的优势,在物联网操作系统赛道上纷纷发力,走上一条“农村包围城市”的道路。
1、背景
近年来,物联网(Internet Of Things,IoT)概念广为普及,物联网市场发展迅猛,嵌入式设备的联网已是大势所趋。终端联网使得软件复杂性大幅增加,传统的 RTOS 内核已经越来越难满足市场的需求,在这种情况下,物联网操作系统(IoT OS)的概念应运而生。
物联网系统中有大量的嵌入式设备,与传统的嵌入式设备相比,物联网感知层的设备更小、功耗更低,而且需要安全可靠和具备组网能力,物联网通信层需要支持各种通信协议和协议之间的转换,应用层则需要具备云计算能力。软件方面,支撑物联网设备的软件比传统的嵌入式设备软件更加复杂,这也对嵌入式操作系统提出了更高的要求。
2、分别介绍几种物联网系统
2.1、RT-Thread
1、简介
RT-Thread发布于2006年是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,由熊谱翔先生带领并集合开源社区力量开发而成,RT-Thread也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的物联网操作系统。RT-Thread具备一个IoT OS平台所需的所有关键组件,例如GUI、网络协议栈、安全传输、低功耗组件等等。
2、系统组成
(1)内核层:RT-Thread 内核,是 RT-Thread 的核心部分,包括了内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件 / 板级支持包)与硬件密切相关,由外设驱动和 CPU 移植构成。
(2)组件与服务层:组件是基于 RT-Thread 内核之上的上层软件,例如虚拟文件系统、FinSH 命令行界面、网络框架、设备框架等。采用模块化设计,做到组件内部高内聚,组件之间低耦合。
(3)RT-Thread 软件包:运行于 RT-Thread 物联网操作系统平台上,面向不同应用领域的通用软件组件,由描述信息、源代码或库文件组成。物联网相关的软件包:Paho MQTT、WebClient、mongoose、WebTerminal 等等。
脚本语言相关的软件包:目前支持 JerryScript、MicroPython。
(4)多媒体相关的软件包:Openmv、mupdf。
(5)工具类软件包:CmBacktrace、EasyFlash、EasyLogger、SystemView。
系统相关的软件包:RTGUI、Persimmon UI、lwext4、partition、SQLite 等等。
(6)外设库与驱动类软件包:RealTek RTL8710BN SDK。
图片1、RT-Thread系统架构
3、开发工具
2019年12月25日RT-Thread正式发布开发工具RT-Thread Studio
2.2、Huawei LiteOS
1、简介
Huawei LiteOS发布于2015年,是华为针对物联网领域推出的轻量级物联网操作系统,是华为物联网战略的重要组成部分,具备轻量级、低功耗、互联互通、组件丰富、快速开发等关键能力,基于物联网领域业务特征打造领域性技术栈,为开发者提供 “一站式” 完整软件平台,有效降低开发门槛、缩短开发周期,可广泛应用于可穿戴设备、智能家居、车联网、LPWA等领域。
2、系统组成
(1)Huawei LiteOS基础内核是最精简的Huawei LiteOS操作系统代码,包括任务管理、内存管理、时间管理、通信机制、中断管理、队列管理、事件管理、定时器等操作系统基础组件,可以单独运行
(2)任务
提供任务的创建、删除、延迟、挂起、恢复等功能,以及锁定和解锁任务调度。支持任务按优先级高低的抢占调度及同优先级时间片轮转调度。
(3)任务同步
信号量:支持信号量的创建、删除、申请和释放等功能。
互斥锁:支持互斥锁的创建、删除、申请和释放等功能。
图片2、Huawei LiteOS系统架构
3、开发工具
2018年9月华为发布LiteOS IDE开发工具LiteOS Studio V1.0
2.3、AliOS Things
1、简介
AliOS Things发布于2017年,是面向IoT领域的轻量级物联网嵌入式操作系统。致力于搭建云端一体化IoT基础设备。具备极致性能,极简开发、云端一体、丰富组件、安全防护等关键能力,并支持终端设备连接到阿里云Link,可广泛应用在智能家居、智慧城市、新出行等领域
2、系统组成
(1)BSP: 板级支持包
(2)HAL: 硬件适配层,包括WiFi,UART,Flash 等
(3)Kernel: 包括Rhino RTOS 内核,VFS,KV Storage,CLI,C++ 等
(4)Network: 包括LwIP 轻量级TCP/IP协议栈,uMesh 自组网协议栈,BLE 低功耗蓝牙协议栈,LoRaWAN 协议栈,AT Commands Module 等
(5)AOS API: AliOS Things 提供给应用软件和中间件的API
(6)Middleware: 阿里巴巴增值和常用的物联网组件,包括Linkkit,OTA(安全差分升级),ulog(日志服务),uData(传感器框架),uLocation(定位框架),WiFi配网等
图片3、AliOS Things系统架构
3、开发工具
AliOS Things使用vscode中AliOS Studio插件作为IDE,支持Windows/MAC/Linux。
2.4、TencentOS tiny
1、简介
TencentOS tiny(2019) 是腾讯面向物联网领域开发的实时操作系统,具有低功耗,低资源占用,模块化,安全可靠等特点,可有效提升物联网终端产品开发效率。TencentOS tiny 提供精简的 RTOS 内核,内核组件可裁剪可配置,可快速移植到多种主流 MCU (如 STM32 全系列)及模组芯片上。而且,基于 RTOS 内核提供了丰富的物联网组件,内部集成主流物联网协议栈(如 CoAP/MQTT/TLS/DTLS/LoRaWAN/NB-IoT 等),可助力物联网终端设备及业务快速接入腾讯云物联网平台。
2、系统组成
(1)CPU 库 :TencentOS tiny 支持的 CPU IP 核架构,当前主要支持 ARM Cortex M0/3/4/7。
(2)驱动管理层 :包括板级支持包(BSP,主要由 MCU 芯片厂家开发与维护)、硬件抽象(HAL,主要由 TencentOS tiny提供,方便不同芯片的适配与移植)、设备驱动(Drivers,例如 Wi-Fi、GPRS、LoRa 等模块的驱动程序)。
(3)内核 :TencentOS tiny 实时内核包括任务管理、实时调度、时间管理、中断管理、内存管理、异常处理、软件定时器、链表、消息队列、信号量、互斥锁、事件标志等模块。
图片4、TencentOS tiny系统架构
3、物联网系统特性
1、管理物的能力:从嵌入式系统视角看,“物”是网络上发送和接收信息的一个个嵌入式计算小设备;
2、可裁减和可扩展的架构:一个完整的物联网系统应该具有内核、GUI、文件系 统、网 络,以及更多其他功能,能够适合小于1MB的内存空间;
3、泛在互联功能:即把从一种协议获取到的数据报文转换成为另外一种协议的报文发送出去,最后还要能够迁移到互联网协议中
4、系统安全性,基于多种安全机制,保证物联网设备传输数据的安全性
5、云计算后台,提供了解云平台的解决方案。
6、与不同厂家合作,构建丰富的生态链
4、生态链应用实例
以AliOS Things的智能酒店的运转流程为例:
- 住户自助办理入住,入住机将信息等规则推送给边缘网关。
- 住户在入楼闸机处刷脸,闸机与边缘网关核对身份信息。
- 信息核对成功后,闸机打开,住户被允许进入大楼。
- 住户来到房间门口,刷脸。房间门与边缘网关核对身份信息。
- 信息核对成功后,房间门打开,住户被允许进入房间。
- 房间门打开的同时,房间水电、空调、照明、电视等根据环境设置自动开启,天猫精灵开始工作。
- 住户入住后有其他需求,可以语音将指令需求告知天猫精灵,实现进一步智能联动。
图片5、智能酒店
参考文献:
[1]何小庆.物联网操作系统的新进展[J].电子产品世界,2015,22(10):27-30.
[2]RT-Thread 4.0物联网操作系统[J].电子
[3]王东超,夏桂林,金志扬.基于物联网操作系统的生态环境及智慧家庭体系构筑[J].物流技术,2015,34(22):175-177+189.
[4]孙宝刚.基于物联网操作系统的物联网生态环境探讨[J].科技展望,2015,25(31):15.产品世界,2018,25(11):37.
[5]何小庆.物联网操作系统浅析[J].单片机与嵌入式系统应用,2015,15(01):5-8.
注:转载需注明出处
相关阅读
定期更新,更多AIoT相关技术知识请关注动手学AIoT专栏。