Android系统UWB技术框架

510 阅读2分钟

Android UWB简介

在Android 13中引入的超宽带 (UWB) 模块,在HAL接口之上包含了UWB协议栈,该协议栈采用FiRa规范。

UWB模块对于设备制造商而言带来了以下好处:

  • 提供适用于支持 UWB 的设备的完整 Android 原生UWB协议栈
  • 提高了整个 Android 生态系统中 UWB 的质量和互操作性
  • 针对新的FiRa用例和规范,提供更快、更灵活的支持

关于UWB模块

UWB模块的详细信息如下:

  • Android 13中的AOSP中包含完整的UWB协议栈,该协议栈使用FiRa定义的UCI规范作为HAL接口。
  • 支持系统应用(system app)设置自定义配置文件(custom profiles)。
  • 包含一个系统API Surface,允许系统应用在测距会话中使用自定义配置。
  • 包含用于公开RRO的基础架构,设备制造商可以使用RRO自定义协议栈的特性。

UWB协议栈架构

UWB协议栈框架由UWB设备商提供的协议栈以及AOSP模块,包含UWB Native StackUWB ServiceUWB API Surface以及相关库,具体组成如下图。

fig_uwb_module_arch.png

模块边界

模块代码的组织如下:

  • UWB Mainline Apex:com.android.uwb

    • UWB API surface(Java)

      • 代码位置:packages/modules/Uwb/framework
      • 处理:<bootclasspath>
    • UwbService(Java)

      • 代码位置:packages/modules/Uwb/service
      • 处理:sestem_server
    • Uwb Native Stack(C++/Rust)

      • 代码位置:external/uwb
      • 处理:system_server
  • 硬件抽象层接口和实现(C++)

    • 接口代码位置:hardware/interfaces/uwb
    • 实现代码位置:vendor/<vendor-name>/uwb
    • 处理:<vendor defined>

其中UWB Service通过System server处理,对于UWB Native Stack而言,包括UWB硬件抽象层AIDL接口、UWB UCI协议栈、以及UWB JNI接口。

UWB模块(com.google.android.uwb)使用APEX格式。

依赖

UWB主模块依赖以下内容:

  • UWB芯片供应商的硬件抽象层(HAL)实现;
  • 用于所有OOB交互的蓝牙协议栈;
  • 用于所有安全服务交互的安全单元;
  • 强制执行UWB运行时权限的核心框架。

参考链接

1、Android文档,UWB