目录

虚拟电厂物联 · XiUOS-NOVA

定位: IoT 平台 ↔ 现场工业设备之间的桥接层,基于 矽璓 XiUOS 工业物联网操作系统定制适配 核心能力:4G MQTT 主动上云 + 命令驱动动态点表 + Modbus 实时采集上报 AI 底座:依托 XiUOS「感 / 联 / 控 / 知 / 安」五大框架 + 多内核转换层,具备端侧 AI 推理、脚本化编程与国密安全能力


当前效果 / What We Achieved

在 XiUOS 之上,我们将原 webserver 应用从「HTTP 被动式 Web 服务器」升级为「4G MQTT 主动式 XiUOS-NOVA」, 让云端能够远程配置、远程采集、实时收取数据,而无需给每台设备重新烧录/编译固件。

架构速览

┌──────────────────────────────────────────────────────────────────┐
│                          IoT云平台 (C#)                      │
│                 业务逻辑 │ 数据管理 │ 前端展示                   │
└──────────────────────────────┬───────────────────────────────────┘
                                │ 4G MQTT 上行/下行                 
┌──────────────────────────────▼───────────────────────────────────┐
│                   ★ XiUOS-NOVA 物联中间件(本项目) ★              │
│      心跳/命令/采集/上报 四线程 │ 动态点表 │ Modbus TCP/RTU      │
└──────────────────────────────┬───────────────────────────────────┘
                                │ XiUOS 驱动/协议栈                 
┌──────────────────────────────▼───────────────────────────────────┐
│                    现场设备(PLC、电表、传感器)                   │
└──────────────────────────────────────────────────────────────────┘

分层架构详解

一句话定位: IoT 云平台管「业务」,矽璓 XiUOS 管「设备与系统服务」,XiUOS-NOVA 做「桥梁」——三者经 4G MQTT 四主题解耦协作。

┌──────────────────────────────────────────────────────────────────┐
│  IoT 云平台  (C# / 云端 )                                         │
│ 业务逻辑 / 数据管理 / 前端展示 / 配置下发 / MQTT Broker             │
└──────────────────────────────────────────────────────────────────┘

       ▲  MQTT 上行: /gw/state 心跳(30s) / /gw/report 数据上报
       ▼  MQTT 下行: /gw/cmd 动态点表与命令 / /gw/clear 清除配置

┌──────────────────────────────────────────────────────────────────┐
│ XiUOS-NOVA 物联中间件                                             │
│ 运行于 XiUOS 之上的应用层软件, 桥接云平台与现场设备                  │
├──────────────────────────────────────────────────────────────────┤
│ [上行接口] 主动 CONNECT 云 MQTT Broker, PUB 上报                 │
│   - /gw/state  心跳: 序列号 + 在线状态 (30s)                     │
│   - /gw/report 数据: 点位 value/unit/status/name                 │
│ [下行接口] 阻塞 SUB 云端主题, 热更新与响应                       │
│   - /gw/cmd    动态点表下发 + 命令触发即时上报                   │
│   - /gw/clear  清除 Flash 配置, 恢复默认                         │
├──────────────────────────────────────────────────────────────────┤
│ [核心引擎] 四线程命令驱动模型                                    │
│   心跳线程 / 命令线程 / Modbus 采集线程 / 数据上报线程           │
│ [采集与解析]                                                     │
│   Modbus TCP/RTU / 功能码 1/2/3/4 / 11 种数据类型                │
│   小数位缩放 / FLOAT 大端序修复 / 采集队列同步                   │
│ [配置与持久化]                                                   │
│   动态点表热更新(零编译) / cJSON / Flash 持久化                  │
└──────────────────────────────────────────────────────────────────┘

       ▲  调用 XiUOS 能力: 驱动 / 协议栈 / 系统服务
       ▼  Modbus 采集

┌──────────────────────────────────────────────────────────────────┐
│ 矽璓 XiUOS 工业物联网操作系统  (设备侧 / 嵌入式 OS 平台)         │
├──────────────────────────────────────────────────────────────────┤
│ 应用层 Applications: 网关应用 / 业务任务                         │
│ 框架层 Framework:                                                │
│   连接框架 (4G adapter/以太网) / 控制框架 (Modbus TCP/RTU)       │
│   感知框架 / 知悉框架 / 安全框架                                 │
│ 系统服务层 SysArch: 任务线程 / 信号量互斥 / VFS / 时钟           │
│ 驱动层 BSP/HAL: 4G(EC200A) / UART/RS485 / SDIO / 以太网          │
│ 转换层 transform_layer + 内核 (XiZi / NuttX / RT-Thread)         │
│   屏蔽底层差异, 支持 ARM / RISC-V 多架构                         │
└──────────────────────────────────────────────────────────────────┘

       ▲  Modbus TCP (网口:502)      ▼  Modbus RTU (RS485:9600,8N1)

┌──────────────────────────────────────────────────────────────────┐
│ 现场设备层 Physical                                              │
│ PLC / 电表与仪表 / 传感器 / 光伏 / 储能 / 充电桩                 │
│ 接入: Modbus TCP(网口:502) 或 Modbus RTU(RS485:9600,8N1)         │
└──────────────────────────────────────────────────────────────────┘

分层职责

层级 实体 职责 关键实现
云平台层 IoT 云平台 (C#) 业务逻辑 / 数据管理 / 前端展示 / 配置下发 MQTT Broker
中间件层 XiUOS-NOVA 云桥接 / 四线程调度 / 动态点表 / 采集上报 ganwei_adapter.c/.h
操作系统层 矽璓 XiUOS 系统服务 / 连接·控制框架 / 驱动 / 转换层 Framework/arch/sysarch/
设备层 现场工业设备 提供 Modbus 寄存器数据 PLC / 电表 / 传感器 / 光伏 / 储能 / 充电桩

数据流(命令驱动)

① 云端下发点表     平台 ──PUB /gw/cmd/{devid}────► XiUOS-NOVA
② 热更新采集策略   XiUOS-NOVA ──GwAdapterLoadConfig──► 点表生效(零编译)
③ 采集现场数据     XiUOS-NOVA ──Modbus TCP/RTU───────► 现场设备
④ 数据回传上云     XiUOS-NOVA ──PUB /gw/report/{devid}► 平台
⑤ 心跳保活         XiUOS-NOVA ──PUB /gw/state/{devid}─► 平台 (30s)

核心成果

能力 效果
4G MQTT 主动上云 四主题(/gw/state/gw/cmd/gw/report/gw/clear)双向通信,模块内置 MQTT,掉线自动重连并重新订阅
命令驱动动态点表 云端下发 JSON 点表即热更新采集策略,设备零预编译;任意命令触发一次立即上报;点表持久化至内部 Flash,断电可恢复
四线程架构 心跳(30s)/ 命令接收 / Modbus 采集 / 数据上报四线程独立运行,信号量/互斥锁同步
Modbus 双协议采集 支持 Modbus TCP(网口)与 Modbus RTU(RS485),功能码 1/2/3/4,11 种数据类型(含 FLOAT/DOUBLE 大端序修复)、小数位缩放
电力参数采集 电压/电流(A/B/C 相)、有功/无功功率、功率因数、电网频率等虚拟电厂核心指标实时采集上报
平台解耦 平台只管「业务」,XiUOS 只管「设备」,XiUOS-NOVA 做「桥梁」

面向 AI 时代的设计 / AI-Ready by Design

AI 落地到边缘现场,真正的难点往往不在模型本身,而在四个问题上:数据从哪来、模型往哪跑、逻辑怎么改、结果怎么信。XiUOS 以「极简内核 XiZi + 工业物联框架」为骨架,用「感 / 联 / 控 / 知 / 安」五大框架加多内核转换层,恰好对这四个问题给出了工程化的答案 —— 这也是 XiUOS-NOVA 能「不重烧固件、由云端远程重塑」的根本原因。

设计总览:AI 四大诉求 → XiUOS 的设计应答

AI 时代诉求 XiUOS 的设计应答 代码依据
数据从哪来 —— AI 需要多源、实时、可信的现场数据 感知 / 连接 / 控制三大框架,把「采什么、连什么、控什么」标准化为可裁剪组件 Framework/sensorFramework/connectionFramework/control
模型往哪跑 —— 算力分布异构(MCU / DSP / NPU) 知悉(knowing)框架做成「可插拔 AI 推理层」,同时纳管 TFLite Micro / CMSIS-NN+DSP / NNoM / K210 KPU Framework/knowing
逻辑怎么改 —— 模型与业务需在线迭代,不能每次烧固件 「模型 + 脚本」双动态:模型运行期从 SD 卡加载,业务逻辑用 PikaPython / JerryScript 脚本化 knowing_app/k210_detect_entrylib/pikapythonlib/JerryScript
结果怎么信 —— 工业 / 能源场景要求可信合规 安全框架内置国密 SM3 / SM4 / SM9 与 mbedTLS,为数据上行与模型下发提供可信底座 Framework/security/crypto

一、框架化装配:AI 能力「按需裁剪」,零侵入

XiUOS 采用「极简的微型实时操作系统内核 XiZi + 其上的工业物联框架」的分层结构。AI 能力归属「知悉(knowing)」框架,通过 Kconfig 宏按需装配:

  • knowing/Kconfig 提供 SUPPORT_KNOWING_FRAMEWORK 总开关,其下再细分 TFLite、CMSIS-DSP+NN、NNoM、KPU、滤波、图像、OTA 等子模块;
  • framework_init.c表驱动(struct InitDesc[] + #ifdef SUPPORT_*_FRAMEWORK)统一初始化,未启用的框架在编译期即被裁剪,不占用 ROM / RAM。

一台只做采集的网关可以完全不带 AI;一台要跑视觉检测的终端可单独打开 KPU 与图像处理 —— 同一套代码,按算力与场景「拼装」。

二、多内核融合:AI 算力「跨指令集可移植」

AI 芯片生态碎片化,ARM Cortex-M、RISC-V、K210 NPU 各有各家。XiUOS 通过转换层(transform_layer) 屏蔽内核差异,应用与框架代码基本不改:

  • 转换层同时提供 nuttxrtthreadxizi 三套适配,以 CONFIG_ADD_XIZI_FEATURES / CONFIG_ADD_NUTTX_FEATURES / CONFIG_ADD_RTTHREAD_FEATURES 区分;
  • 知悉框架据此做到同一份推理代码在 ARM 与 RISC-V 上都能跑:NNoM 例程明确「可部署于 Arm CPU 与 RISC-V CPU,在 Cortex-M 上可用 CMSIS-NN 加速」;K210 视觉例程则运行在 RISC-V + 自研 KPU 上。
  • 此外,XiUOS 还提供基于微内核架构的分支 XiZi_AIoT(将内核分为硬内核与软内核),面向具备 MMU 的现代处理器(如 RK3568 / RK3588 / VisionFive2 / zynq7000 等),并与宏内核分支共用同一套「感 / 联 / 知 / 控」应用框架 —— 向上承载更重 AI 负载时,应用代码依然可复用。

模型与应用不绑定特定芯片,换硬件不必重写 AI 逻辑。

三、端侧推理「全家桶」:覆盖从经典 ML 到深度网络的全算力谱

知悉框架不做「单一框架绑定」,而是把主流端侧推理与加速方案统一纳管:

推理 / 加速方案 定位 代码依据
TensorFlow Lite for Microcontrollers 通用 MCU 上的浮点 / 整数量化深度网络 Framework/knowing/tensorflow-lite
CMSIS-NN / CMSIS-DSP Arm Cortex-M 上的神经网络与信号处理硬件加速 Framework/knowing/cmsis_5/{NN,DSP}
NNoM 轻量神经网络推理框架,可挂 CMSIS-NN 后端加速 Framework/knowing/nnom
K210 KPU + YOLOv2 后处理 RISC-V NPU 上的实时目标检测 Framework/knowing/kpuknowing_app/k210_detect_entry
经典机器学习(C 代码直出) SVM / 决策树 / 逻辑回归,经 micromlgen 直出 C 代码,零推理依赖 knowing_app/iris_ml_demo
信号处理前置 卡尔曼 / 低通 / 高通 / 均值滤波、FFT、JPEG 解码 Framework/knowing/filterknowing_app/k210_fft_testimage_processing/TJpgDec

已落地的代表性例程(均位于 APP_Framework/Applications/knowing_app):

  • cmsisnn-cifar10cmsisnn_vegetable_classify —— CMSIS-NN 图像分类;
  • mnist —— TensorFlow Lite Micro 手写数字识别;
  • k210_detect_entry —— MobileNet-YOLOv2 人脸 / 安全帽 / 闯入检测;
  • iris_ml_demo —— 三种经典分类器的端侧推理;
  • nnom_demo —— NNoM 手写数字识别(可选 CMSIS-NN 后端)。

算力够就跑深度网络,算力紧就用经典 ML,同一框架无需更换技术栈。

四、「模型 + 脚本」双动态:固件不重烧,AI 与逻辑在线迭代

这是 XiUOS 最贴合 AI 时代的一点 —— 把「变化的」与「不变的」彻底解耦:

  1. 模型动态加载:K210 视觉例程将 *.kmodel*.json(后处理配置)放在 SD 卡上、运行期读取,换模型只需换卡,无需重新编译烧录。
  2. 业务逻辑脚本化:内置 PikaPython(可在 MCU 上运行的 Python 子集)与 JerryScript(JavaScript 引擎)。
    • PikaPython 提供 pika_app_init / pika_app_run / pika_app_load_script("/app/main.py") 完整生命周期,并支持从文件系统加载脚本;main.cpikaPythonInit()FrameworkInit() 并列,作为一等启动项。

云端 / 现场可以像「改配置」一样更新 AI 模型与业务规则 —— 这正是 XiUOS-NOVA「命令驱动动态点表」能够成立的同源设计哲学:策略与固件解耦

五、边缘数据底座:AI 的「粮草」

AI 的上限取决于数据。XiUOS 在边缘侧备齐了数据全链路组件:

  • 数据交换:cJSON(点表 / 命令 / 上报的统一 JSON 语义);
  • 本地持久化:SQLite(含 xizi_port / rtthread_port 双适配)与嵌入式数据库 FlashDB,让边缘具备「结构化存储 + 掉电不丢」的能力;
  • 人机呈现:LVGL 图形库,为边缘 AI 结果提供本地可视化。

边缘不仅能「算」,还能「存」与「看」,为数据回流、断点续传、离线推理留足空间。

六、工业基因:AI 的高质量数据入口

工业 AI 最稀缺的是可信数据,而这正是 XiUOS 的立身之本:

  • 连接框架:4G / 5G / NB-IoT / LoRa / WiFi / BLE / Zigbee / Ethernet,以及工业现场总线(Modbus、CANopen、Profibus、DeviceNet、ControlNet、EtherCAT、PROFINET、Powerlink、SERCOS 等);
  • 控制框架:内置 OPC UA(open62541)、S7、MELSEC、FINS、EtherNet/IP CIP 主流 PLC 协议,并提供 modbus_tcp / modbus_uart 双通路;
  • 感知框架:十余类传感器(温湿度、PM、CO₂、CH₄、IAQ / TVOC / HCHO、风速风向、语音等)以表驱动方式注册。

AI 的输入不是「造」出来的,而是从真实工业现场「采」出来的 —— 这让运行在 XiUOS 上的 AI 天然贴近工业场景。

七、安全合规:工业 AI 的「可信底座」

能源、电力等 AI 落地场景对安全合规要求极高。XiUOS 安全框架内置国密 SM3 / SM4 / SM9mbedTLS(含 ECC 等),为设备身份、数据上行、模型下发的端到端可信提供基础。

工业 AI 要落地,先要「可信」 —— 安全不是补丁,而是框架的一等公民。

八、NOVA 是这套 AI-Ready 架构的实战印证

XiUOS-NOVA 的成果,恰是上述设计的具象化:

XiUOS-NOVA 能力 对应的 XiUOS AI-Ready 设计
命令驱动动态点表(云端 JSON 热更新采集策略) 与「AI 模型运行期加载」同源:变化的东西不进固件
4G MQTT 主动上云 + Modbus 双协议采集 连接 / 控制框架的标准适配能力
电力参数实时采集上报 感知 + 控制框架为 AI 准备的高质量工业数据

一句话:NOVA 证明了 XiUOS 的架构不仅「能连设备」,更能「承载智能」。


第三方开源组件 / Third-Party Open Source

组件 用途 许可证
XiUOS 嵌入式实时操作系统内核与工业物联框架 Mulan PSL v2
FreeModbus Modbus 协议栈参考实现 BSD
cJSON JSON 解析与构建(点表/命令/心跳/上报) MIT
lwIP 嵌入式 TCP/IP 协议栈(Modbus TCP 通路) BSD
MQTT MQTT 3.1.1 协议实现 EPL/EDL
TensorFlow Lite for Microcontrollers 通用 MCU 上的端侧深度网络推理 Apache-2.0
CMSIS-NN / CMSIS-DSP Arm Cortex-M 神经网络与信号处理加速 Apache-2.0
NNoM 轻量神经网络推理框架(可选 CMSIS-NN 后端) Apache-2.0
PikaPython MCU 上的 Python 运行时(业务脚本化) MIT
JerryScript 嵌入式 JavaScript 引擎 Apache-2.0
SQLite 嵌入式关系型数据库 Public Domain
FlashDB 嵌入式键值 / 时序数据库 Apache-2.0
LVGL 嵌入式图形库 MIT
open62541 OPC UA 协议栈 MPL-2.0
mbedTLS TLS / 加密库 Apache-2.0

关于
206.6 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号