RK3588 的硬件与软件协同核心是 “软件通过标准化接口调用硬件资源,硬件执行指令后反馈结果”,通过分层架构(驱动、内核、应用)实现指令下发、资源调度、数据处理的闭环,最终落地具体功能(如 AI 推理、视频解码)。
一、协同工作的核心层级框架
硬件与软件的协同依赖 “自上而下的指令调用 + 自下而上的结果反馈”,分为 4 个关键层级,每层承担不同职责,确保数据和指令高效流转。
层级 | 核心角色 | 与硬件的交互方式 |
应用层 | 发起功能需求(如 “运行 YOLO 模型”) | 不直接操作硬件,调用上层框架接口 |
框架 / 中间件层 | 解析需求,封装成标准化任务 | 调用硬件抽象层(HAL)或驱动接口 |
驱动 / 硬件抽象层(HAL) | 连接软件与硬件的 “桥梁” | 向硬件寄存器写入指令、读取状态 |
硬件层 | 执行具体硬件操作(如 NPU 计算、CPU 运算) | 接收驱动指令,完成后返回数据 / 状态 |
二、关键硬件模块的协同实例
RK3588 的核心硬件(CPU、NPU、多媒体、外设)与软件的协同逻辑各有侧重,以下是最典型的 3 类场景:
1. CPU 与软件:系统资源调度
CPU 作为 “中枢”,由操作系统内核直接管理,协同逻辑最基础也最核心。
应用层(如浏览器、工业控制程序)发起 “启动任务” 请求,传递给 Linux/Android 内核。
内核的进程调度器根据任务优先级(如实时控制任务优先级高于普通 APP),给 CPU 核心(A76/A55)分配时间片。
CPU 核心接收内核指令,执行运算(如数据计算、逻辑判断),完成后将结果通过内核反馈给应用层。
例:运行工业数据采集程序时,内核会优先将 A76 核心分配给该程序,确保数据采集的实时性。
2. NPU 与软件:AI 推理任务
NPU 是 RK3588 的 AI 核心,需通过 “模型转换 + 驱动调用” 实现协同,依赖瑞芯微专用工具链。
应用层:开发者通过RKNN Toolkit 2将 TensorFlow/ONNX 模型转换为 NPU 支持的RKNN 格式。
中间件层:调用RKNN API(如rknn_init、rknn_run),向 NPU 驱动发送推理请求。
驱动层:NPU 驱动将推理任务拆解为硬件可执行的指令,写入 NPU 寄存器,触发计算。
硬件层:NPU 完成矩阵运算(如卷积、池化)后,将推理结果(如目标检测框坐标)通过驱动返回给应用层。
例:智能监控场景中,NPU 每帧图像的推理耗时可低至 20ms,软件通过驱动实时获取 “是否有人体” 的结果。
3. 多媒体模块与软件:8K 视频解码
RK3588 的 VPU(视频处理单元)支持 8K 解码,协同需依赖多媒体框架与驱动的配合。
应用层(如 8K 播放器)发起 “解码视频文件” 请求,调用FFmpeg或瑞芯微RKMedia框架。
中间件层:框架解析视频码流(如 H.265),将解码任务分配给 VPU 驱动。
驱动层:VPU 驱动控制硬件解码单元,读取码流数据并执行解码运算,输出 YUV 原始图像。
硬件层:解码后的图像通过HDMI驱动传输到显示器,同时CPU负责同步音频,实现音画对齐。
三、典型任务的完整协同流程(以 “AI 摄像头识别” 为例)
以 “摄像头采集图像→NPU 识别→屏幕显示结果” 为例,可清晰看到全链路协同逻辑:
外设触发:USB 摄像头采集图像,通过USB驱动将图像数据传输到内存。
数据传递:应用层调用OpenCV读取内存中的图像数据,预处理(如 Resize、归一化)。
NPU 推理:通过RKNN API将预处理后的数据发送给 NPU,驱动控制 NPU 完成识别(如 “识别出猫”)。
结果反馈:NPU 将识别结果(类别、置信度)返回给应用层,应用层生成带标注的图像(如框出猫的位置)。
显示输出:应用层调用HDMI驱动,将带标注的图像通过 VPU 处理后,输出到显示器显示。
四、核心协同流程图(文字版拆解)