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 Stack、UWB Service、UWB API Surface以及相关库,具体组成如下图。
模块边界
模块代码的组织如下:
-
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。