跳转至

软件架构

图例说明:🟢 绿色 = 已实现 | 🟡 黄色 = 部分实现/开发中 | 🔴 红色 = 计划中/未实现

总体架构

graph TB
    subgraph L1["应用案例层 (apps)"]
        direction LR
        A1["🟢 Samples<br/>(单点功能案例)"] ~~~ A2["🟢 References<br/>(整机参考方案)"] ~~~ A3["🔴 Solutions<br/>(产品方案)"]
    end

    subgraph L2["应用框架层 (framework)"]
        direction LR

        F1["🟢 api_media<br/>(媒体/音视频/显示)"] ~~~ F2["🟢 api_aidetect<br/>(AI 目标检测)"] ~~~ F3["🟢 api_fr<br/>(人脸识别)"] ~~~ F4["🟢 api_human_track<br/>(人体跟踪)"]

        F5["🟢 api_liveserver<br/>(直播服务)"] ~~~ F6["🟢 api_record<br/>(录像/存储)"] ~~~ F7["🟢 api_webrtc<br/>(WebRTC 对讲)"] ~~~ H2[" "]

        classDef hidden fill:none,stroke:none,color:white;
        class H1,H2 hidden;
    end

    subgraph L3["组件层 (components)"]
        direction LR
        B1["🟢 media<br/>(音视频)"] ~~~ B2["🟢 hiai<br/>(AI 能力)"] ~~~ B4["🟢 network<br/>(直播/缓冲/速率)"] ~~~ B5["🟢 adapter<br/>(驱动适配)"]
    end

    subgraph L4["第三方软件层"]
        direction TB
        C1["🟢 LVGL / DRM<br/>(图形)"]
        C2["🟢 OpenSSL / curl / mqtt<br/>(安全与网络)"]
        C3["🟢 wpa_supplicant<br/>(WiFi 管理)"]
        C4["🟢 iotc / libsle_host<br/>(IoT 连接)"]
        C1 ~~~ C3
        C2 ~~~ C4
    end

    subgraph L5["HiSilicon SDK"]
        direction TB
        D1["🟢 MPP<br/>(多媒体)"]
        D2["🟢 BSP<br/>(U-Boot + Linux)"]
        D3["🟢 AIComponent<br/>(NPU 推理)"]
        D4["🟢 Middleware<br/>(中间件)"]

        D1 ~~~ D3
        D2 ~~~ D4
    end

    subgraph L6["硬件层"]
        direction LR
        E1["🟢 ARM 处理器"] ~~~ E2["🟢 NPU"] ~~~ E3["🟢 ISP"] ~~~ E4["🟢 VPSS / VGS"]
    end

    L1 -.-> L3
    L1 ---> L2
    L2 ---> L3
    L3 ---> L4
    L3 ---> L5 --> L6

各层说明

应用案例层

应用案例位于开发板仓库目录(apps/<board>/)下,按成熟度分为三类:

分类 说明 状态
samples/ 组件能力的单点功能验证案例 🟢 已有
references/ 可烧录运行的整机参考方案 🟢 已有
solutions/ 完整产品解决方案 🔴 暂无

当前 references/ 包含以下方案:

  • AI 台灯
  • 云端 AI Agent
  • 开箱即用案例显示
  • 离线语音空调控制

应用框架层

面向应用案例功能的高级聚合框架,提供同进程调用和跨进程调用两种模式的统一形式高级封装接口。 应用案例既可以直接调用组件,也可以通过该框架层统一调用组件;应用框架层以虚线连接,表示这是一条可选的间接调用路径。

对外功能模块 说明 状态
api_media 媒体系统、音视频采集/编解码/显示、抓拍与 OSD 🟢
api_aidetect AI 目标检测(人脸、人体、车辆、宠物等) 🟢
api_fr 人脸识别与人脸库管理 🟢
api_human_track 人体/目标跟踪与结果叠加 🟢
api_liveserver 点播服务,视频/音频推流 🟢
api_record MP4 录像与 SD 卡存储 🟢
api_webrtc WebRTC 点对点音视频对讲 🟢

组件层

组件层是项目开发的核心组件复用部分,

media

媒体与显示组件,提供音视频管线与媒体框架:

模块 说明 状态
pipeline 音视频处理管线 🟢
framework 媒体框架,统一接口与进程间调用 🟢
eventhub 媒体事件订阅与分发 🟢
python_api MicroPython 媒体模块 🟡

hiai

AI 能力组件,提供云端 Agent 接入、离线语音等端侧 AI 能力:

模块 说明 状态
adapt 厂商适配层,含 KWS、音频前端、云端接入 🟢
cloud_agent 云端 AI Agent 接入,支持阿里 qwen 🟢
offline_voice 离线语音识别 🟢
postprocess 推理结果后处理 🟢
xclaws 端侧 AI Agent,zeroclaw 封装,支持知识库检索 🟡

network

网络组件,提供直播推流、缓冲与速率控制:

模块 说明 状态
livestream RTSP 直播推流 🟢
mbuffer 媒体内存缓冲管理 🟢
ot_autorate 码率自适应控制 🟢

adapter

硬件抽象与驱动适配组件:

分类 说明 状态
hal 硬件抽象接口 🟢
wifi WS73 与 WS53 模组驱动 🟢
lcd ST7789V、GC9B72、JD9853 等 6 款驱动 🟢
touch goodix、ft5x06、hynitron 驱动 🟢
sensor gc4023、os04d10、sc450ai 等 7 款驱动 🟢
flash 存储器件驱动 🟢
adc ADC 驱动 🟢
board_io_cfg 管脚复用配置驱动 🟢

第三方软件层

第三方开源软件与海思连接库,位于 open_source/vendor/ 目录:

分类 软件 说明
图形 lvgl、drm GUI 渲染
安全 openssl、mbedtls、dropbear TLS 与 SSH
网络 curl、mqtt、wpa_supplicant、libnl HTTP 与 MQTT 客户端、WiFi 管理
媒体 mediakit、openh264、tinyh264、libsrtp、cjson 流媒体与编解码
其他 micropython、gdb、mtd-utils、zeroclaw Python 脚本、调试与存储工具
vendor iotc IoT 连接库

HiSilicon SDK

海思芯片 SDK,提供多媒体、板级支持与 AI 推理能力:

组件 说明 状态
MPP 多媒体处理平台,经 hi_mapi 接口封装调用 🟢
BSP U-Boot、Linux 内核与根文件系统 🟢
AIComponent AI 组件 SDK,提供 NPU 推理 🟢
Middleware 中间件,默认开启 🟢

MPP 提供 VI、VPSS、VENC、VDEC、VO、AI、AO 等模块; AIComponent 支持目标检测与人脸识别功能。 Middleware 提供录像、事件路由等功能接口。

硬件层

硬件能力由具体芯片提供,本项目面向多芯片组合:

模块 说明 状态
处理器 ARM 处理器核 🟢
NPU 神经网络推理加速单元 🟢
ISP 图像信号处理 🟢
VPSS / VGS 视频与图形处理加速 🟢

技术选型说明

  • 构建系统:CMake + Kconfig,类 Linux kernel 的菜单式配置体系
  • UI 框架:LVGL v9.5,轻量级嵌入式 GUI,通过 DRM 渲染
  • 加密:OpenSSL 1.1.1w,提供 TLS 支持
  • 代码管理:repo + git,多仓统一管理
  • AI 开发辅助:skill + Rules,.agents/ 下提供项目相关的 AI 技能

相关文档