一、基础定义与全称

SUAPI = Subsystem User API(子系统用户接口协议栈)

高通 Hexagon DSP(QuRT 实时操作系统)原生跨子系统用户态 IPC 通信协议,专门用于AP 侧 Linux/Android 用户空间与远端协处理器(Modem、aDSP、SLPI、CDSP、WCNSS)之间标准化服务调用,是上层业务访问基带、音频、传感器、无线子系统的标准 API 封装层,底层承载依赖 QRTR、GLINK、RPMSG 硬件传输通道。

核心定位

  1. 用户态入口:屏蔽底层硬件 IPC(GLINK/BAM/SMEM)、内核 QRTR 路由细节,提供统一同步/异步调用 API;
  2. 跨子系统统一抽象:一套接口兼容 Modem 5G 协议栈、音频 DSP、传感器低功耗子系统;
  3. 业务协议承载层:封装 QMI、APR、QSH、DIAG 等子系统私有消息,做序列化、路由、超时、重传管理;
  4. 与 VRTXmc/QuRT 强关联:SUAPI 运行在 QuRT 实时内核之上,是 Hexagon RTOS 对外标准用户交互协议。

二、整体分层协议栈架构(自上而下)

1)应用层(Client 客户端)

Android/Linux 用户态 App、Framework、HAL、诊断工具(QXDM/QPST)调用 SDK:libsuapi.so、SUAPI C 标准库,同步阻塞/异步回调两种模式。

2)SUAPI 协议核心层(四层核心)

① 服务注册/发现层(Service Manager)
  • 子系统上电后向 SUAPI 注册自身服务 ID、版本、消息接口;
  • AP 侧通过 SUAPI 查询远端服务可用性,支持多实例、多版本兼容;
  • 自动处理子系统重启、掉线重连、服务重注册。
② 消息封装/序列化层
  • 标准帧头:魔术字、子系统 ID、服务 ID、消息 ID、事务号、长度、校验和;
  • 负载支持:原始二进制、nanopb protobuf(高通传感器 QSH 标准)、TLV 参数(QMI/AT 指令封装);
  • 自动分片重组:超大日志/音频数据流分段传输,避免单包溢出共享内存 SMEM。
③ 会话与流控层
  • 单请求单响应(同步命令:查询信号、读取传感器);
  • 订阅推送流(异步事件:基站信令、传感器采样、语音数据流);
  • 流量窗口、超时重传、错误码统一规范(通用/Modem/音频专用错误码);
  • 多会话隔离:多 App 同时访问同一子系统互不干扰。
④ 路由分发层

对接底层传输驱动,自动选择最优链路:

  • USB DIAG 通道(PC 调试日志、产线校准);
  • QRTR(AF_QIPCRTR,主流跨子系统 IPC,μs 级实时);
  • GLINK/RPMSG(Linux remoteproc 标准 DSP 通信);
  • MHI(高速 Modem 主机接口,5G 大流量数据)。

3)底层传输承载层(硬件 IPC)

  1. GLINK:高通私有共享内存通道,SMEM/BAM DMA,无 CPU 拷贝,硬实时;
  2. QRTR:高通路由协议,Linux 内核 AF_QIPCRTR 套接字,标准化跨核网络;
  3. RPMSG:Linux 开源远程处理器消息框架,兼容通用 remoteproc;
  4. DIAG:诊断专用通道,SUAPI 封装 DIAG 日志包对外输出 QXDM/QCAT;
  5. MHI:Modem 高速主机接口,用于 5G 数据、大体积协议日志。

4)远端子系统底层(QuRT RTOS)

Modem/mDSP、aDSP、SLPI、CDSP、WCNSS 全部运行QuRT 实时操作系统,内置 SUAPI 服务端:

  • QuRT 任务队列接收 SUAPI 消息;
  • 调度对应业务线程处理(LTE RRC、音频算法、传感器融合);
  • 通过 SUAPI 回传响应/事件流给 AP 主机。

三、SUAPI 核心能力特性

1. 跨子系统统一抽象

无需区分 Modem、音频、传感器 DSP,使用同一套 SUAPI 函数:

  • Modem 业务:5G NR 信令、呼叫、SMS、射频校准;
  • aDSP 音频:VoLTE 语音、降噪、蓝牙音频、语音唤醒;
  • SLPI 传感器:加速度、陀螺仪、姿态融合(QSH 传感框架);
  • WCNSS 无线:Wi-Fi/BT 状态、射频参数读取;
  • CDSP 计算:AI 图像、实时视觉数据流。

2. 双工作模式

(1)同步 RPC 模式(阻塞调用)

客户端发送请求,阻塞等待远端响应,适合配置查询、参数下发:

示例:读取小区信号强度、设置音频增益、查询 Modem 注册状态。

(2)异步订阅推送模式(事件流)

客户端订阅远端事件,子系统主动上报数据流,低功耗持续上报:

示例:每秒 200Hz 传感器采样、实时 LTE 信令日志、通话音频流。

3. 诊断与日志一体化

SUAPI 原生封装 DIAG 诊断协议,所有子系统日志统一通过 SUAPI 路由至 USB Diag 端口:

  • QXDM 抓取完整 5G/音频/传感器日志;
  • 产线射频校准、整机功耗测试、基站模拟测试;
  • 故障崩溃日志自动缓存上报。

4. 版本兼容与容错

  • 服务版本协商:高低版本 AP/Modem 自动兼容,丢弃不支持消息;
  • 子系统掉线自愈:Modem 重启、DSP 崩溃后 SUAPI 自动重连、重新订阅;
  • 内存保护:基于 SMEM 共享内存隔离,避免子系统异常污染 AP 内存。

5. 低功耗适配

SUAPI 配合 QuRT 调度器:

  • 无消息时自动休眠底层 IPC 总线;
  • 批量聚合传感器数据,减少中断唤醒 AP 主 CPU;
  • SLPI 低功耗子系统仅在事件触发时通过 SUAPI 上报。

四、SUAPI 与高通同类 IPC 协议对比

协议 层级 运行位置 用途 实时性
SUAPI 用户态上层业务协议 AP Linux 用户态 + QuRT 服务端 统一业务调用、日志、订阅 软实时(ms 级)
QRTR 内核路由传输层 Linux 内核 + QuRT 底层消息路由承载 SUAPI 硬实时(μs 级)
GLINK 硬件共享内存层 内核驱动 无拷贝高速数据传输 最高实时
QMI Modem 专用消息 Modem 内部 仅蜂窝业务,SUAPI 封装 QMI 依赖底层
APR 音频专用协议 aDSP 内部 仅音频业务,SUAPI 封装 APR 依赖底层
DIAG 诊断通道 USB/串口 调试日志,SUAPI 做上层封装 调试专用

五、典型业务数据流示例(5G 小区信号查询)

  1. Android App 调用 suapi_open() 打开 Modem 服务会话;
  2. SUAPI 封装 TLV 请求包(查询小区 ID、RSRP、SINR);
  3. 底层 QRTR 通过 GLINK/SMEM 传递至 Modem mDSP;
  4. QuRT 调度 RRC 协议线程解析请求,读取射频测量数据;
  5. Modem 通过 SUAPI 封装响应帧原路返回 AP;
  6. SUAPI 解析负载,回调用户态 App 返回信号数值;
  7. 会话闲置自动休眠 IPC 通道降低功耗。

六、开发工具与配套组件

  1. libsuapi.so:Android/Linux 用户态标准 SDK,C API;
  2. SUAPI 代码生成工具:基于 .proto 自动生成客户端/服务端序列化代码;
  3. QXDM/QCAT:PC 端 SUAPI-DIAG 日志解析工具,信令可视化;
  4. QPST:通过 SUAPI 下发产线校准、固件配置命令;
  5. QuRT 调试器:DSP 侧 SUAPI 服务断点调试,追踪消息收发。

七、优缺点总结

优势

  1. 统一接口:一套 API 对接所有高通子系统,大幅降低多 DSP 开发成本;
  2. 屏蔽底层差异:不用维护 GLINK/RPMSG/QRTR 多套底层驱动;
  3. 日志一体化:所有子系统诊断日志统一路由,调试效率极高;
  4. QuRT 深度适配:与 Hexagon 实时内核调度、低功耗机制原生协同;
  5. 兼容量产工具链:QXDM/QPST 产线校准全链路基于 SUAPI。

局限

  1. 高通私有协议,无开源标准,跨平台移植难度大;
  2. 用户态封装带来轻微延迟,极致硬实时场景需直接调用 QRTR/GLINK 底层;
  3. 老旧低端 SoC(骁龙 835 及更早)SUAPI 功能裁剪,部分订阅流不支持。

八、应用场景

  1. 智能手机 5G/4G 通信框架、VoLTE/VoNR 音频链路;
  2. 车载骁龙座舱 Modem、车载音频、雷达传感器数据交互;
  3. IoT 物联网高通模组(MDM9206/SDX55)主机控制;
  4. 产线射频校准、整机诊断、故障日志抓取;
  5. 可穿戴设备低功耗传感器融合、蓝牙音频处理。
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐