132 lines
19 KiB
Markdown
132 lines
19 KiB
Markdown
# XiUOS矽璓工业物联操作系统简介
|
||
|
||
## 背景
|
||
|
||
XiUOS (X Industry Ubiquitous Operating System) 矽璓工业物联操作系统是一款面向工业物联场景的泛在操作系统,来自[泛在操作系统研究计划](/about/xuos)。所谓泛在操作系统(UOS: Ubiquitous Operating Systems),是支持互联网时代人机物融合泛在计算应用模式的新型操作系统,是传统操作系统概念的泛化与延伸。在泛在操作系统技术体系中,不同的泛在计算设备和泛在应用场景需要符合各自特性的不同UOS,XiUOS即是面向工业物联场景的一种UOS,主要由一个极简的微型实时操作系统(RTOS)内核和其上的智能工业物联框架构成,支持工业物联网(IIoT: Industrial Internet of Things)应用。
|
||
|
||
XiUOS诞生于浙江省北京大学信息技术高等研究院,其研发获得了杭州市萧山区政府的大力支持。萧山是浙江乃至中国的制造业重镇,工业基础雄厚,正在谋求传统制造业数字化转型升级、实现新旧动能转换,寻求工业互联网和物联网等信息技术的助力。XiUOS矽璓工业物联操作系统正是在这样的背景下应运而生,希望通过研发的工业物联网软硬件系统为助力,促进先进计算技术和工业场景的深度融合,助推工业企业的数字化转型,是产业应用需求和学术研究计划结合的产物。
|
||
|
||
关于"矽璓","矽"即硅,"璓"类玉,寓意从沙子到美石的演进升华之路。在开源社区的帮助下,未来矽璓去瑕,玉成其事。
|
||
|
||
## 定位
|
||
|
||
XiUOS是一种工业物联网操作系统,目标是通过工业物联网的部署和应用,促进工业领域人、机、物的深度互联,促进工厂的数字化转型升级,使能智能化工业生产新体系。要实现该目标,工业物联网操作系统需要解决“感、联、知、控“四方面的问题:
|
||
|
||
- 感: 复杂多样的工业生产实体智能地识别、感知和采集生产相关数据;
|
||
- 联: 工业数据在互联互通的网络上进行传输和汇聚;
|
||
- 知: 对这些网络化的工业大数据形成快速处理和实效分析;
|
||
- 控: 将数据分析所得到的信息反馈到工业生产中,对生产活动进行改善。
|
||
|
||
其中,**感** 和 **联** 主要在物联网节点级设备、传感器等设备上实现,**知**
|
||
和 **控** 的核心主要在边缘计算设备和数据中心设备上实现。面向物联网节点级设备的
|
||
矽璓工业物联操作系统,主要定位于**感**、**联**和**控**的层次,支持接入市面上各种传感器,将感知获得的数据传递给边缘设备和数据中心设备,具有对PLC等的控制能力,能对**知**提供支持,如下图所示。
|
||
|
||

|
||
|
||
## 特色
|
||
|
||
目前市面上已有非常多成功的物联网操作系统,如国外的[FreeRTOS](https://freertos.org),[Zephyr](https://www.zephyrproject.org),[RIOT](http://www.riot-os.org),[µC/OS](https://www.micrium.com/rtos),国内的[RT-Thread](https://www.rt-thread.org),[LiteOS](https://www.huawei.com/minisite/liteos),[AliOS Things](http://www.alios.cn/things)等,这些系统多是从实时嵌入式系统(RTOS: Real time OS)发展而来,通常具有非常小巧的实时内核,多运行在资源受限的微控制单元(MCU: Microcontroller Unit)/单片机上,对低功耗有较高要求,常见的处理器为ARM Cortex-M系列。
|
||
|
||
矽璓工业物联操作系统XiUOS和现有大多数的物联网OS关注点并不相同,具有自己的特色:
|
||
|
||
- XiUOS不仅着眼于内核的基础功能,如简单实时的调度,静态内存的预分配与动态内存的碎片合并相结合的机制,任务隔离巧妙耦合硬件体系结构特征的算法;而且更关注基础功能之上的业务驱动的高级功能,如以感知数据本身为中心的传感器驱动方法,以方便用户设备联网的无线网络自动接入功能,在节点端启动图像与声音识别的智能化功能;
|
||
- XiUOS不仅注重于OS本身在多领域的通用性,而且更寻求其在工业物联领域的独特性,将复杂的工业控制流程解耦为多个不可再分的“控制元”,以软件定义的方式对各种“控制元”进行再组合或构造,从而在节点端完成对工业设备的实时控制,满足工业企业的对精准控制的刚需;
|
||
- XiUOS不仅关切单个节点设备本身功能和效用的发挥,而且更聚焦于在大规模工业生产环境中组成的网络化集群,强调对大规模部署和管理运维的支持,强调节点设备群构成的物联体系对工业生产的促进作用;
|
||
- XiUOS吸取现有闭源和开源RTOS在各自细分领域的特征,更加关注生态的开放性,依托并逐步融入现有的主流开源生态体系,形成其在工业领域的重要角色和作用。
|
||
|
||
|
||
此外,XiUOS是软硬件协同的物联网解决方案,提供自研的有特色的硬件系统,支持ARM和RISC-V两种体系结构的处理器,在同一物理终端上同时支持多种通信方式和多种总线接口,可直接部署于工业生产环境,使得工业物联网用户不必关心底层各类硬件的实施细节,从而更加专注于应用逻辑本身的效能。
|
||
|
||
简而言之,现有物联网OS主要关注的是做优秀的单节点OS,XiUOS是在现有单节点OS的基础上构建面向多节点的网络化智能物联软件栈,为工业物联网领域应用开发、系统部署、管理运维提供友好方案,因此现有物联网OS和XiUOS功能是主要是互补的而非竞争的,如Linux之于Android。
|
||
|
||
|
||
## 设计
|
||
|
||
### 部署
|
||
|
||
XiUOS是面向工业领域多节点设备的网络化OS,其部署主要包括节点端的多节点集群和边缘端/云端的计算设施,如下图所示。
|
||
|
||

|
||
|
||
在节点端,支持多种工厂环境传感设备,既包括基础的环境传感器感知温湿度、烟雾气体、噪音等,也包括智能传感器可对人体、物体、声音进行识别,这些传感器支持多种网络通信互联协议,可以按需自组网络,通过网关设备向外交换数据,实现智能物联框架的“感、联”功能。网关设备对同一个集群中的节点设备进行管理,负责和边缘/云端系统交换数据,并可具备有限的“知、控”功能。
|
||
|
||
节点端感知的数据经网关传输给边缘/云端系统之后,边缘/云端的工业互联网平台可对汇聚而来的数据进行分析,将有价值的数据在控制中心的大屏、管理人员的移动设备上进行展示,并根据工业应用的业务规则,通知和调度“设备、排程、人员”,对生产过程进行优化,完成“知、控”。
|
||
|
||
### 结构
|
||
|
||
节点设备层的XiUOS体系结构如下图所示,主要包括硬件层、系统层、框架层和应用层。
|
||
|
||

|
||
|
||
#### 硬件层
|
||
|
||
硬件层主要是XiUOS支持的处理器、感知器件和通信器件,以及工业领域的可编程逻辑控制器PLC。
|
||
|
||
- 处理器: 支持ARM Cortex-M系列和RISC-V架构的处理器,以及FPGA芯片。
|
||
|
||
- 通信器: 支持5G/4G/WIFI/BT/NBIoT/LoRa等的网络通信器件。
|
||
|
||
- 感知器: 支持工业领域的各种环境感知传感器,如烟雾、气体、噪声、电流电压等,还支持对声音和物体进行感知识别的摄像头、麦克风等音视频设备。
|
||
|
||
- 控制器: 主要PLC厂商如西门子、施耐德、欧姆龙、三菱、台达等的PLC系统,XiUOS可从PLC中获取工业生产相关数据。
|
||
|
||
自主研发的硬件系统对处理器、通信器、感知器提供综合支持,具有如下特点:
|
||
|
||
- XiUOS的硬件系统支持RISC-V和ARM两种体系结构,强调RISC-V和ARM在工业应用中的共生共赢,又注重突出各自特点;
|
||
- XiUOS的硬件系统在同一物理实体终端上同时支持 4G、NB-IoT、WiFi、ZigBee、LoRA、BlueTooth、Ethernet,在硬件上天然地使得现有应用能够方便、快捷地“联”结各种网络;
|
||
- XiUOS的硬件系统在同一物理实体终端上同时支持 SPI、IIC、UART、CAN、RS485、RS232、USB、SDIO等总线接口,在硬件上天然地满足工业物联网对外设多样性的需求;
|
||
- XiUOS的硬件系统能够直接部署于工业生产环境中,而非验证性的开发板评估板。
|
||
|
||
XiUOS硬件系统中的处理器、通信器、传感器、控制器采用解耦的模块化设计,利于XiUOS操作系统方便地通过软件定义的方式屏蔽各种硬件外设的差异,使得工业物联网用户不必关心底层硬件的实施细节,从而更加专注于应用逻辑本身的效能。
|
||
|
||
|
||
|
||
#### 系统层
|
||
|
||
系统层主要完成单节点的系统管理功能,包括基本的内存管理、调度管理、设备管理等。在[泛在操作系统研究计划](/about/xuos)中,不同应用场景的UOS系统层能力可以是不同的,主要体现在内核可以根据应用场景的需求进行定制化,甚至可以有不同的内核,这种定制化由泛在操作系统核心XUOS Core提供。矽璓工业物联操作系统XiUOS遵循该设计和理念,其系统层--面向工业物联场景的泛在操作系统核心(XUOS Core for IIoT)--的内核(Kernel)理论上可以有多种选择,如自研的XiUOS微内核,对POSIX规范支持较完善的实时操作系统NuttX,国内非常具有影响力的RT-Thread等。
|
||
|
||
目前XiUOS的应用框架主要在NuttX和RT-Thread这两款相对而言POSIX较友好、发展较成熟的开源RTOS上开展实验和设计,这可以最大化地复用开源社区的优秀成果,特别是各种硬件驱动。
|
||
|
||
自研XiUOS微内核的研发也在进行中,一些新的算法和新的设计将主要在自研内核中进行探索和验证。
|
||
|
||
系统层为上层框架支持尽可能符合POSIX规范的API。
|
||
|
||
#### 框架层
|
||
|
||
框架层是XiUOS矽璓工业物联操作系统的关键部分。
|
||
|
||
框架层是面向工业物联场景进行设计的,也可用于有相似需求的智慧城市、智能农场/仓储等场景,核心是“感、联、控、智”框架。
|
||
|
||
- **感**: 传感框架的主要任务是简化传感器的驱动、控制和数据管理。
|
||
|
||
传感器多种多样,包括简单的温度、湿度、气压、噪音、污染物、电流电压等传感器,还有复杂的摄像头、麦克风等,这些传感器首先要能方便地接入到系统中,XiUOS提供方便的IIC、UART 等接口驱动,方便接入新传感器。
|
||
|
||
每种传感器在底层使用上都有区别,为了简化编程,XiUOS设计了统一的传感器编程模型,提供统一的面向数据的编程抽象,屏蔽底层设备的使用差异,开发者只需要使用 open/write/ioctl/等接口就可以对各种传感器进行操作和开发。
|
||
|
||
传感器种类多样,读取的数据格式也是多种多样,XiUOS对传感器数据进行了抽象,对主流的传感器数据可完成自动的解析及结构化。对于开发者添加的新传感器,提供方便的解析库以及数据结构化规范,方便开发者进行数据解析和管理。
|
||
|
||
- **联**: 互联框架的主要任务是提供网络互联能力,尤其是复杂环境下的无线自组网能力。
|
||
|
||
基本的网络互联支持包括提供各种网络协议栈和消息通信库。协议栈包括 TCP/IP、NB-IoT、LoRa等的软件栈支持,方便开发者开发通信功能。此外,还提供丰富便捷的消息通信组件,包括 MQTT、CoAP 等常用IoT 通信库。
|
||
|
||
XiUOS支持节点自组织网络,不需要手工配置,可极大简化工厂、野外等复杂环境下的部署和管理。
|
||
|
||
|
||
- **控**: 控制框架的主要任务是提供控制能力,包括告警和设备监测与控制。XiUOS提供对 PLC 的数据采集库,支持从PLC采集数据,可对设备进行实时监控和远程控制。
|
||
|
||
- **智**: 智能框架是XiUOS的一个特色,将智能识别和分析能力下沉到物联网节点设备上(通常为带加速器的ARM Cortex-M/A 或 RISC-V处理器),使之在节点端即可实时对声音、物体、人体、缺陷模式等进行识别,大大拓展物联网节点的应用范围,内容包括AI算法加速库、微型AI引擎等。
|
||
|
||
AI算法加速库提供工业物联网方面的常用 AI 模型,比如仪表盘识别模型等。微型AI引擎提供运行系统,如TensorFlow Lite for IoT,方便开发者开发常用AI算法。此外,还根据处理器和加速器的具体情况,提供加速器驱动,来高效利用节点端算力。
|
||
|
||
|
||
|
||
XiUOS框架层还提供一些重要的共性基础设施,包括C/C++基础库、MicroPython脚本引擎、轻量级实时数据库、安全系统、在线更新OTA等。
|
||
|
||
## 路线图
|
||
|
||
XiUOS 将整体[开源发布](../about/license.md),采用[木兰协议](https://license.coscl.org.cn/MulanPSL/)。XiUSO的具体开放路线采取逐步开放的方式,按照研发的成熟度分期分批发布系统的各个部分。
|
||
|
||
|
||
<div class="mxgraph" style="max-width:100%;" data-mxgraph="{"highlight":"#0000ff","lightbox":false,"nav":true,"edit":"_blank","xml":"<mxfile host=\"Electron\" modified=\"2021-04-29T02:44:54.706Z\" agent=\"5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.5.1 Chrome/89.0.4389.82 Electron/12.0.1 Safari/537.36\" etag=\"cPML_P1stU6RarRBvsx9\" version=\"14.5.1\" type=\"device\"><diagram name=\"页-1\" id=\"页-1\">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</diagram></mxfile>"}"></div>
|
||
<script type="text/javascript" src="https://viewer.diagrams.net/js/viewer-static.min.js"></script>
|