3. FiRa联盟与UWB生态:架构、角色与蓝牙协同
聊UWB,绕不开FiRa联盟。很多人以为UWB就是测距,其实真正让UWB走进消费电子、走向标准化的,是FiRa这帮人。我2019年第一次接触FiRa规范时,第一反应是——终于有人把UWB的“玩法”定清楚了。
FiRa全称是Fine Ranging,它定义了UWB设备怎么发现对方、怎么建立连接、怎么交换数据。说白了,它让不同厂家的UWB芯片能互相“听懂”。
3.1 FiRa架构:三层模型
FiRa把UWB系统分成三层,我习惯叫它“三层蛋糕”:
- 应用层:跑在手机或设备上的APP,比如“数字车钥匙”、“室内导航”。它不关心底层UWB怎么收发信号,只关心“距离是多少”、“方位在哪”。
- FiRa协议层:这是核心。它负责设备发现、会话管理、安全配对。我遇到过不少团队,自己写UWB驱动时忽略了这层,结果设备之间连不上——其实就是FiRa的握手没做好。
- UWB物理层:IEEE 802.15.4z定义的底层,负责发脉冲、测距、算角度。FiRa不重新发明轮子,它直接复用物理层的能力。
关键点:FiRa不是替代IEEE 802.15.4z,而是在它上面搭了一层“应用框架”。你想想看,没有FiRa,每个厂家都得自己定义设备发现和会话管理,那生态就碎了。
下面这张图是我自己画的FiRa三层架构,方便你理解数据怎么流动:
3.2 UWB设备角色:谁说了算?
FiRa定义了四种角色。嗯,这里要注意,角色不是固定的,同一个设备在不同场景下可以切换身份。
| 角色 | 英文 | 职责 | 典型设备 |
|---|---|---|---|
| 控制器 | Controller | 发起并管理整个UWB会话,决定测距参数 | 手机、车机 |
| 受控端 | Controlee | 响应控制器的指令,执行测距或数据传输 | 智能门锁、标签 |
| 发起者 | Initiator | 主动发出测距请求,启动一次测距交换 | 手机(测距时) |
| 响应者 | Respondent | 被动响应测距请求,返回测距帧 | 锚点、基站 |
我的经验:Controller和Initiator容易搞混。简单记——Controller管“会话”,Initiator管“测距”。一个会话里可以有很多次测距,每次测距都有一个Initiator和一个Respondent。
举个例子。你的手机是Controller,它跟车上的UWB模块(Controlee)建立会话。当你要开门时,手机变成Initiator,发一个测距请求;车上的模块作为Respondent,返回响应。手机算出距离,发现小于1米,自动解锁。
我曾经在一个项目中踩过坑:把Controller和Initiator写死在同一个设备上,结果换了个场景(比如车机主动测距找手机),角色切换逻辑就乱了。后来我改成动态角色分配,代码反而更简洁。
3.3 UWB与蓝牙协同:为什么非要蓝牙?
很多人问:UWB精度这么高,为什么还要蓝牙?
答案很简单——UWB功耗高、建立连接慢。你想想看,如果手机一直开着UWB接收机,电池半天就没了。蓝牙低功耗(BLE)正好补这个短板。
FiRa规范里,蓝牙负责两件事:
- 设备发现:BLE广播告诉周围设备“我支持UWB,来连我”。UWB本身没有广播机制,全靠蓝牙牵线。
- 参数协商:通过BLE交换UWB的配置参数,比如信道、数据速率、PRF(脉冲重复频率)。
我习惯把蓝牙比作“红娘”,UWB是“正主”。红娘先介绍双方认识,交换(参数),然后正主开始干正事(测距)。
实际流程:BLE发现 → BLE交换UWB参数 → 建立UWB会话 → UWB测距 → 测距完成,UWB休眠 → BLE保持低功耗监听
下面这张图展示了蓝牙和UWB的协同流程:
3.4 避坑指南:蓝牙与UWB的时序配合
我曾经在一个智能门锁项目里,遇到一个诡异的问题:手机靠近门锁,UWB测距结果有时准有时不准。排查了两天,最后发现是蓝牙和UWB的时序没对齐。
具体来说,BLE交换完参数后,UWB会话建立需要几十毫秒。如果手机在这期间移动了,测距结果就偏了。解决方案是:在BLE参数交换完成后,加一个“准备就绪”的确认帧,双方确认后再启动UWB测距。
注意:BLE和UWB共用天线时,一定要做好时分切换。我见过一个方案,BLE和UWB同时发数据,结果天线打架,测距帧全丢了。解决办法是加一个天线开关,或者用软件调度,保证同一时刻只有一个射频在工作。
另外,FiRa规范里建议BLE的MTU(最大传输单元)至少设到512字节,因为UWB参数配置包比较大。我习惯把MTU设到1024,留点余量。
3.5 小结
FiRa联盟把UWB从“能测距”变成了“好用”。它定义了清晰的角色分工——Controller管会话,Initiator管测距,BLE负责发现和协商。这三者配合好了,UWB才能真正落地。
嗯,这一章的内容就到这里。记住一句话:没有FiRa,UWB只是实验室里的玩具;有了FiRa,UWB才是能进千家万户的产品。