UWB(超宽带)的协议框架是一个分层协作的体系,其核心思想是将标准化的底层硬件与灵活的上层服务解耦,以同时实现高精度的互操作性多样化的应用创新

📜 标准与联盟:框架的基石

UWB协议框架主要由两大组织构建:

  • IEEE 802.15.4z:负责定义最底层的物理层(PHY) 和媒体访问控制层(MAC)。这是所有UWB通信的硬件基础,确保了不同芯片之间最基本的无线电兼容性。

  • FiRa联盟:在IEEE标准之上,负责制定互操作性规范。FiRa定义了一套完整的协议栈,包括PHY、MAC、链路层(Link Layer)和UWB命令接口(UCI),旨在让不同厂商的UWB设备能够无缝协作,并支持各类应用场景。

🏗️ 核心分层架构

一个典型的UWB协议栈可以自上而下分为以下几层,其架构图大致如下:

1. 物理层(PHY Layer)

这是UWB通信的无线电基础,负责通过发送和接收纳秒级的极短脉冲来传输数据。它定义了信号的调制方式、频段(如3.1-10.6 GHz)和编码方案,是确保高速、低功耗通信的关键。

2. MAC层(Media Access Control Layer)

位于PHY之上,负责管理无线信道的访问。它的核心任务包括设备的寻址、信道接入控制(决定哪个设备何时可以发送)、以及数据帧的组装与解析。FiRa联盟在IEEE标准基础上,为UWB测距场景(如双向测距、TDoA)定义了更具体的MAC层行为规范。

3. 链路层(Link Layer)

FiRa规范中新增的层级,位于MAC层之上。它主要负责在两个UWB设备之间建立可靠的应用数据交换通道,这些数据既可以作为测距过程的一部分传输,也可以作为专门的数据传输任务。

4. UCI接口(UWB Command Interface)

这是协议框架中的关键抽象层,是主机(Host,如手机AP)与UWB子系统(UWBS,通常指UWB芯片) 之间的标准通信协议。主机通过发送UCI命令(如“开始测距”)来控制UWBS,UWBS则通过UCI响应和通知来反馈状态和结果。它的存在,使得上层应用无需关心底层是哪家芯片,实现了软硬件解耦。

5. 应用/框架层(Application / Framework Layer)

位于协议栈的最顶端,是直接面向用户和开发者的部分。它负责解析用户意图,并将其转化为具体的UWB操作。例如,一个“数字车钥匙”应用会通过调用上层框架的API,来触发一系列UCI命令,最终完成与车辆的测距和认证。

📱 典型实现:以Android UWB框架为例

Android的UWB架构是理解UWB协议框架的绝佳实例,它清晰地展示了各层的分工:

  • 应用层:第三方应用使用androidx.core.uwb Jetpack API,系统应用则使用android.uwb.UwbManager系统API来请求UWB服务。

  • 服务与框架层:由UwbService通用服务管理层(CSML) 组成,这些组件严格遵循FiRa联盟的定义,负责处理会话管理、设备配置等逻辑。

  • 原生UCI层:在Android原生栈(Native Stack)中,有一个用Rust实现的UCI协议层。它负责将上层Java服务的请求翻译成标准的UCI命令,并通过HAL接口发送给UWB芯片。

  • HAL接口:Android的UWB硬件抽象层(HAL)直接基于FiRa定义的UCI规范。这意味着,任何符合FiRa UCI标准的UWB芯片,理论上都可以通过这个HAL接口与Android系统通信,极大地降低了芯片厂商的适配成本。

  • 供应商组件:最底层是UWB芯片供应商提供的HAL实现、UWB驱动程序和UWB硬件,它们负责执行具体的UCI命令,控制硬件完成无线电收发。

💎 总结

UWB协议框架是一个从IEEE底层标准FiRa互操作性规范,再到Android等操作系统实现的完整体系。它通过分层设计,将复杂的无线通信技术封装成标准的UCI命令,使得上层应用开发者可以专注于业务逻辑,而无需深陷底层硬件细节

Logo

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

更多推荐