探索如何实现蓝牙通道感应
我对蓝牙6.0通道感应最感兴趣的是它在实际产品中可能带来的功能,而非协议本身。
例如,智能门锁不再需要仅知道你的手机“在附近”,而是可以判断你是否真的站在门前。智能入口系统可以估算某人离你有多近,机器人也可以根据距离接近目标,而无需额外的测距传感器。
在通道感应出现之前,蓝牙主要依赖RSSI来检测这种接近性。RSSI有助于判断物体是靠近还是远离,但它无法很好地回答一个更有用的问题:
它到底离我多远?
因此,我决定测试一个问题:
如今,我能否真正信任通道感应所提供的距离信息?
我使用了两块XIAO nRF54LM20A开发板,其中一块作为发起方,另一块作为反射器。测试本身设计得非常简单:我用尺子测量实际距离,并直接与Channel Sounding报告的距离进行对比。
我也并未在理想的射频实验室中进行测试。大部分测量是在普通室内环境中完成的,因为如果Channel Sounding最终要应用于智能锁、机器人、追踪器或其他消费设备,它就必须应对桌子、墙壁、玻璃、人影、反射以及现实世界中的各种其他因素。
我首先将两块电路板放置在大约40至50厘米的距离之间。这个距离已经感觉很短了,因此我预期结果会比较接近。但事实并非如此,实际距离与测距结果之间已经存在明显差异。
我没有立即把它们拉得更远,而是朝相反方向移动,想弄清楚设备需要多近时,Channel Sounding才能给出一个可以称之为准确的结果。
大约在8厘米处,我终于得到了一个非常可靠的结果。
调整好电路板间距后,实际距离约为8厘米,而IFFT估计值为约7.66厘米。读数也十分稳定。
那一刻,很容易相信通道测距(Channel Sounding)已经可以正常工作了。
但照片中还有一个重要的细节:天线的对准非常精确。
后来我发现,这并非微不足道的小问题。在这样短距离、经过校准且对准良好的条件下,通道测距能够表现出极佳的性能。然而一旦设备的朝向发生变化,测量结果就会变得不稳定得多。
因此,8厘米的结果并不能说明“通道测距已经准确”。
它所揭示的更窄范围的信息是:
在短距离范围内,经过校准,并且天线朝向合适时,通道测距可以非常准确。
这一点至关重要。
为了检验该结果是否能在最佳设置之外依然有效,我再次将电路板之间的距离加大。我测试了大约40–50厘米、1米、1.1米、1.5米、1.6米、2米,最终接近3米的距离。
我认为在这里列出每一个具体数值并无必要。图表能更清晰地呈现数据。
例如,在约1米的距离下,实际距离为1米时,IFFT结果却约为4米。在另一次测量中,我将板子的间距从1.0米调整为1.1米,同时保持天线相互对齐,但测得的距离却相差了几米。
这一点很重要,因为这些远距离测试并未随机旋转板子,天线始终相对朝向彼此。
换句话说,我无法仅凭天线方向错误来解释1米、1.5米或1.6米处的较差结果。即使在相对有利的朝向条件下,随着距离增加,测距结果本身也逐渐变得不可靠。
正是在这一过程中,我对“信道探测”(Channel Sounding)的理解开始发生变化。
它不再像“短距离几厘米误差,长距离稍大一些”的简单情况。而是呈现出更清晰的操作边界:在极短距离时,我能够获得非常准确的结果;一旦超过这个范围,即便努力保持测试条件一致,所报告的距离就不再能可靠地反映真实距离。
直到亲眼看到这一点后,我才开始将天线方向作为独立变量进行测试。
我将两个设备之间的距离调小,并调整了天线的角度。这一次,问题变得更加明显:设备之间的间距并未增加——我只是改变了它们的朝向——但测量误差显著增大。
这一点在考虑实际产品时尤为重要。
用户通常不会去在意天线的位置。手机会旋转,钥匙扣上的追踪器会转动,机器人会改变方向,任何被人体握持的物体都处于持续变化的朝向状态。
如果一个智能锁只有当用户的手机以特定角度被握住时,才能达到“厘米级”的最佳精度,那么这种精度对用户来说就毫无用处。
我还尝试通过在两台设备之间放置玻璃来改变环境,结果测量值再次发生变化。
我不愿断言“玻璃增加了确切的X厘米误差”,因为我无法控制玻璃的厚度、涂层、角度或房间内的所有反射。但结果足以表明,周围环境是影响最终测距结果的另一个变量。
当距离接近约3米时,我又开始发现另一种问题。问题不再仅仅是距离测量不准确,某些测距方法甚至无法生成完整数据。我曾见过同行和本地测距计数器结果不一致的情况,以及子事件被中断的现象。
此时,问题已不再是:
“测距误差有多大?”
而是:
“这次测距尝试是否成功完成?”
对于真正的产品而言,这是一个更为严重的问题。
演示设备只需几次高质量的测量就能显得令人印象深刻。而产品必须在用户旋转设备、行走、靠近玻璃或家具,以及从50厘米到2米的距离移动时,无需考虑任何因素,依然能够正常工作。
因此,从本次测试中我的结论相当明确:蓝牙信道探测可以测量距离,在理想的短距离条件下,确实能产生令人印象深刻的成果。但根据我的实际测量结果,我认为它尚未准备好作为智能锁、机器人或追踪器等产品的可靠测距解决方案。
用户并不需要一次完美的7.66厘米测量值。用户需要在设备旋转、距离变化、设备之间出现物体或周围射频环境不再理想时,仍能保持信号的可信度。
至少在我的测试中,它并未达到这一水平。
那么,信道探测(Channel Sounding)是否只是个噱头?
就目前来看,我认为它的实际应用价值仍然有限。我尚未看到一种解决方案足够成熟,可以直接投入产品部署。
但我并不认为其底层技术本身毫无意义。
此前我花了一些时间研究信道探测的工作原理,其基本的测距机制是合理的。但系统仍有诸多改进空间:天线设计、校准、距离估计算法、多径处理、姿态补偿以及故障恢复等。
我已将这项调查的技术细节单独记录下来,若有人希望深入了解,可在此处查看链接。
此外也值得注意的是,这个故事可能远未结束。
Nordic 正在持续更新其通道测距(Channel Sounding)样本和开发支持,而蓝牙 SIG 也在继续推进测距配置文件(Ranging Profile)的开发。此外,蓝牙 6.0 本身并未定义统一的测距算法,这意味着目前我们所看到的 IFFT、相位斜率及其他测距结果,仍然高度依赖于芯片厂商提供的实现方案以及软件栈。
因此,我当前的测试结果尚不理想,并不代表通道测距技术永远无法奏效。
更准确的说法是:
底层的测距能力已经具备,但相关算法和产品体验仍在不断成熟中。
这也是为什么我希望在未来的 SDK 和测距算法更新之后,重新运行完全相同的测试。
本文编译自hackster.io





