蓝牙之无线电与通信距离

前言

戴着蓝牙耳机在房间里走动,音乐一直正常;把手机放进口袋,转个身,声音却断了一下。手机和耳机明明更近了,为什么反而不稳定?

隔墙和别人说话时,也会遇到类似的事:距离并不远,却听不清;换个位置,声音又清楚了。能否交流,除了看相距多远,还要看声音经过了什么、周围是否嘈杂,以及对方能不能听清。

蓝牙传递的是无线电信号,也要面对信号变弱、受到干扰、接收困难这些问题。理解它们,才能明白为什么"蓝牙能传多少米"没有一个适合所有设备的答案,也才能知道改善连接时该从哪里入手。

一、信息怎样从一台设备到另一台设备

无线电通信,是把信息变成电磁波的变化发送出去,再由接收设备从这些变化中恢复信息。蓝牙使用的就是这种方式。

设备里的温度、文字、音乐最终都可以表示为数字。数字本身不会从手机"飞"到耳机,发送端需要把它变成适合无线传输的信号:

  1. 发送端把需要传递的信息组织成数据包,也就是按约定格式装在一起的一段数据。
  2. 无线电电路按照数据改变信号,天线把它向外辐射出去。
  3. 接收端的天线接收到信号,无线电电路再恢复出数据。
  4. 恢复出的数据交给后续的协议和应用处理,才能成为音乐或温度读数。

把信息放到无线电信号变化中的过程叫调制;从变化中恢复信息的过程叫解调。例如,Bluetooth LE 使用一种叫 GFSK 的调制方式,通过受控的频率变化表达信息。接收端按照相应规则识别这些变化,而不是在空气里直接寻找数字"0"和"1"。

这里的无线电是电磁波,隔墙交谈用的是声波。两者可以帮助我们理解"发出---传播---接收"的关系,但传播性质并不相同,不能用听声音的经验直接计算蓝牙距离。

二、2.4 GHz 和信道分别表示什么

2.1 2.4 GHz 说的是频率,不是传输速度

频率表示信号每秒振荡的次数。GHz 是频率单位,1 GHz 等于每秒十亿次。蓝牙常说的"工作在 2.4 GHz 频段",表示它使用的是这一带的无线电频率。

这里有两个要分开的量:

  • 无线电频率:信号在什么频率附近振荡,单位可以是 MHz、GHz。
  • 数据速率:每秒传递多少比特,单位可以是 kb/s、Mb/s。

比特(bit)是数据的基本单位,可以表示为 0 或 1;1 Mb/s 表示每秒一百万比特。8 比特组成 1 字节,因此 Mb/s 和按字节计算的 MB/s 也不能直接画等号。

因此,2.4 GHz 不表示每秒能传 2.4 GB 文件,也不表示数据速率是 2.4 Gb/s。信号振荡和编码信息有联系,但不是"每振荡一次就一定传一个比特"这样的对应关系。

蓝牙使用的 2.4 GHz ISM 频段范围是 2400~2483.5 MHz。ISM 是工业、科学、医疗的英文缩写;这一频段也被多种无线技术共同使用。通常不需要像运营商那样取得专用频谱使用许可,但设备仍须遵守当地对发射功率等方面的规定。

2.2 信道是在频段内划分的通信位置

无线电信道,是在一定频率范围内划分出的、供收发信号使用的通信通道。蓝牙把可用频率划分成多个位置,而不是把整个 2.4 GHz 频段当作一个不可区分的整体。

对于经典蓝牙和 LE 的常规通信,可以先看这组区别:

技术 无线电信道数 相邻信道中心频率间隔
经典蓝牙 BR/EDR 79 个 1 MHz
Bluetooth LE 40 个 2 MHz

这些信道的中心频率从 2402 MHz 分布到 2480 MHz。中心频率是信道的中心位置,真实无线信号会占用一定的频率宽度,不是只有一个无限细的频率点。蓝牙技术概览

LE 的这 40 个信道中,3 个是主广播信道,用于设备发现等过程;其余 37 个可用于连接中的数据通信等用途。扩展广播也会用到这 37 个信道,所以不能把它们简单理解成"只有连接后才能使用"。

信道数也不是设备数量。40 个信道不表示附近最多只能有 40 台 LE 设备,更不表示一台设备要同时占住所有信道。不同设备可以在不同时间使用同一信道,如何安排收发还由具体通信规则决定。

三、同在 2.4 GHz,为什么有时会互相影响

3.1 干扰让接收端更难分清目标信号

干扰,是其他信号对接收目标信号造成的影响。蓝牙与使用 2.4 GHz 的 Wi-Fi 等技术共享这片频谱。如果附近设备在重叠的频率范围和时间内发送信号,接收端可能无法正确恢复蓝牙数据,出现数据包损坏或丢失。

这和嘈杂房间里的交谈相似:对方的声音没有消失,但混在其他声音中,就可能听错或听不清。同样,收到较强的蓝牙信号,也不能保证数据一定正确;还要看干扰有多强,以及接收设备能否把目标信号识别出来。

不过,蓝牙和 Wi-Fi 同在附近,也不意味着一定互相干扰。是否重叠、相距多远、发送多频繁、设备如何协调,都会影响结果。也不是所有 Wi-Fi 都工作在 2.4 GHz。蓝牙通信可靠性

3.2 跳频减少一直撞在同一处的机会

跳频,是按照通信规则,在不同信道之间切换。以 LE 连接为例,双方不会永远停留在一个频率位置,而是根据约定的时间和信道选择规则,到相应信道上交换数据。

如果只是各自随便换信道,发送端到了一个信道,接收端却去了另一个信道,当然无法通信。因此,关键不只是"换",还包括双方知道何时到哪个信道收发。

在此基础上,自适应跳频会结合信道质量等信息,调整哪些信道参与通信。LE 连接中的信道映射表记录了哪些信道使用、哪些暂不使用;更新也需要按协议通知对方,双方才能继续配合。

可以把它理解为:交谈的位置受到噪声影响时,双方商量好换到其他位置。真实蓝牙设备调整的是无线电信道,不是在房间里移动,也不是发现一次出错就由应用随意改一个频率。

跳频能够减少持续受同一处干扰影响的机会,但不能保证每个数据包都成功。干扰覆盖很多信道、设备过于密集,或者信号已经很弱时,仍可能发生丢包。

3.3 检查出错和恢复数据是不同的事

蓝牙还会在数据包中加入检查信息。例如,CRC 是一种差错检查方法,用于帮助接收端判断收到的数据是否发生错误。它检查出了问题,不等于已经把错误改好了。

在普通的 LE 连接数据传输中,确认与重传机制可以让没有成功收到的数据再次发送。但不能据此认为所有蓝牙通信都有这样的保障:普通的非连接广播没有逐个接收者的确认,广播发出了,发送端通常不知道附近每台手机是否收到。

重新发送也会占用时间和电量。因此,干扰较大时,设备即使最终拿到了数据,传输也可能更慢、更耗电。跳频、差错检查和重传分别在减少冲突、识别错误、补发数据这些环节发挥作用,不能互相替代。LE 链路层规范

四、通信距离取决于信号到达后还能不能被读懂

4.1 发得出去,还要收得清

影响距离的两个关键概念是:

  • 发射功率:发送端发出无线电信号的功率。
  • 接收灵敏度:接收端在规定的差错指标等条件下,能够正确接收的最低信号功率。

发射功率可以联系到说话的音量;接收灵敏度可以联系到对方能听清多轻的声音。一个决定发出多强的信号,另一个决定信号弱到什么程度仍有机会被正确接收。

功率常用 dBm 表示。它以 1 mW 为基准:0 dBm 等于 1 mW。负数不表示没有信号,而是功率低于 1 mW。例如,−60 dBm 的信号比 −90 dBm 强。

dBm 和 dB 表达的意思不同:dBm 表示功率大小,dB 表示功率之间的比值。比较两个 dBm 数值时,差值用 dB 表示。例如,从 −90 dBm 增加到 −70 dBm,是增加了 20 dB;每增加约 3 dB,功率约翻倍。所以,"收到 −70 dBm 的信号"和"信号减弱了 20 dB"分别是在说信号有多强、功率变化了多少。

比较灵敏度时,方向又要想清楚:在相同测试条件下,能接收 −100 dBm 信号的接收机,比只能接收 −90 dBm 信号的接收机更能处理弱信号。不能因为 −100 数值更小,就说它的接收能力更差。

假设某种通信方式下,接收机的灵敏度是 −90 dBm,目前到达它的目标信号是 −70 dBm,两者相差 20 dB。这表示在这个简化比较中还有一定余量;如果环境继续使信号减弱,余量就会缩小。真实通信还受干扰、设备性能和信号波动影响,不能把"刚好达到灵敏度"当作稳定运行的保证。

这也说明,增加发射功率通常有助于改善弱信号接收,但并不能单独决定距离。对方接收能力有限、干扰很强,或者另一方向传不回来时,单纯增大发射功率未必能解决问题。蓝牙通信距离

4.2 信号在途中会变弱,摆放也会改变结果

路径损耗,是无线电信号经过传播后,接收处的信号功率相对减小的现象。即使没有墙,距离增加通常也会使接收信号减弱;有障碍时,情况会更复杂。

把收发过程连起来看:发射端以一定功率发出信号,信号经过传播产生损耗,再由接收端的天线接收。两端天线的收发效果也会影响最终收到的功率,因此,发射功率相同,不代表接收功率相同。接收机是否能读懂数据,要看最终到达的信号能否满足接收要求,而不是只看发送端的功率设置。

墙体、金属、人体等会对信号产生不同程度的吸收、反射或阻挡。房间里的信号还可能经过多条反射路径到达接收端,这叫多径传播。这些信号叠加后,有的位置接收较好,有的位置反而较差,所以移动一点、转个方向,也可能改变连接表现。

天线同样重要。天线负责电信号与电磁波之间的转换,它的设计、朝向、安装位置和设备外壳都会影响收发。设备放进金属盒、被手掌包住,或贴着人体使用,表现可能和桌面测试不同。

因此,"空旷环境能用几十米"与"家里隔墙后不稳定"可以同时成立。两次测试的传播环境不同,不能只比较尺子量出的距离。

4.3 双向通信,要分别考虑两个方向

手机收到设备的信号,只能说明设备到手机这一方向在当时有数据成功到达。要建立并维持连接,还需要手机发出的信息也能被设备接收。

图中,设备的广播能被手机收到,但手机向设备发送信息时,设备端可能因为接收条件较差而收不清。两个方向的发射功率、天线和接收能力未必相同。

所以,搜得到设备,不能据此保证连接一定成功。双向无线链路只是成功连接的必要条件之一,设备是否接受连接、协议状态是否正确,也要分别确认。

手机或调试工具显示的 RSSI,是接收信号强度的指示值。在同一设备、相近条件下,它可以帮助观察信号变强还是变弱,但它不是距离尺。同一个 RSSI 可能对应不同的发射功率、障碍和天线条件;只看一次读数,无法准确推出相距多少米,也无法单独判断链路质量。

五、传得远、传得快和省电,怎样相互影响

5.1 PHY 决定无线电怎样表达和接收数据

物理层,简称 PHY,规定无线电如何发送和接收信号。它涉及调制、编码等规则,不是某一款芯片的名字。

LE 常规数据通信中,常见的选择有:

PHY 数据部分的标称比特率 主要特点
LE 1M 1 Mb/s LE 必须支持的基本 PHY
LE 2M 2 Mb/s 可用更短时间传送一定量的数据,需设备支持
LE Coded,S=2 500 kb/s 加入编码,提高正确接收的机会,需设备支持
LE Coded,S=8 125 kb/s 使用更多传输符号表达信息,以更低数据速率换取更强的弱信号接收能力,需设备支持

表中的 S=2、S=8 表示:在数据部分,每个信息比特经过编码和映射后,分别用 2 个、8 个传输符号来表达。符号是无线电按调制规则传送的基本信号单位,不能直接等同于原始数据中的一个比特。LE Coded 每秒传送一百万个符号,分别用 2 个或 8 个符号表达一个信息比特,就对应每秒五十万或十二万五千个信息比特,也就是 500 kb/s 和 125 kb/s。

表中的速率不是应用实际拿到的文件传输速度。包头、包间时间、确认和重传等都要占用通信时间;LE Coded 的不同字段也不全按同一种速率传送。

LE Coded 使用前向纠错:发送端按规则加入冗余,让接收端在一定条件下能够纠正接收错误。就像一句重要的话附带更多可核对的线索,即使漏听了部分内容,也还有机会恢复原意。

真实的纠错由编码和解码算法完成,并不是把每个字多念几次。它也不能恢复任意严重的错误;信号过弱或干扰过强,仍会接收失败。

这类编码提高接收能力,并不要求同时把发射功率调大,但发送同样的信息通常会占用更多无线电时间。LE Coded 的距离优势,来自传输方式带来的接收能力改善,不能简单理解为"发射得更猛"。

LE 2M 和 LE Coded 都不是每台 LE 设备必备的能力。双方需要支持并在相应通信中实际采用它们,才能获得对应效果;只看"蓝牙 5.x"或更高版本号,不能断定已经使用远距离模式。也不能据此承诺"距离固定增加几倍"。LE 物理层规范

5.2 耗电还取决于无线电工作了多久

设备发射和接收时都要耗电;为了等待数据而持续开启接收机,也不是免费。对一段时间的耗电量,可以从两个方面理解:工作时有多耗电,以及这些状态持续了多久。

比如,一个传感器每分钟只需要发送一次读数,就有机会把大量时间留给低功耗状态;另一个设备需要不断发送数据,无线电活跃的时间就可能长得多。即使两者都使用 LE,续航也未必相近。

提高发射功率通常会增加发射时的耗电,但如果同时减少了大量重传,总耗电又可能得到改善。反过来,把功率降得很低,导致反复重传甚至重新连接,也不一定省电。

速率也类似。在链路条件良好、其他条件相近时,更快地传完同样的数据,有机会更早关闭无线电;如果为了提高弱信号接收能力改用 LE Coded,通信时间可能增加。最终是否省电,要连同实际数据量、收发安排、重传次数和芯片功耗一起比较。

低功耗设计的目标,是以需要的可靠性完成通信,并减少不必要的活跃时间。不是把功率、速率或发送频率中的某一个数值固定调到最大或最小。

六、怎样判断一次距离测试说明了什么

说一款设备"能传 100 米"之前,至少要弄清:用的是什么设备和 PHY、发射功率是多少、环境是否空旷,以及"能传"指偶尔收到一个广播,还是持续稳定交换数据。测试目标不同,结论也不同。

生活中的简单对比,也可以帮助找到方向:

对比方式 观察重点 能帮助判断什么
同一套设备,在空旷处和隔墙处比较 稳定性、信号强度是否明显变化 传播环境是否明显影响结果
保持距离,改变设备朝向或移开遮挡 接收表现是否随摆放变化 天线方向、遮挡或多径是否值得继续检查
在较安静和较繁忙的无线环境中比较 丢包、延迟是否变化 是否存在干扰或共存问题的线索
用实际业务持续测试 数据是否及时、完整,耗电是否可接受 距离是否满足产品使用要求

一次只改变一个主要条件,多观察一段时间。否则,移动设备的同时又换了手机、改了功率,即使连接改善,也很难知道是哪项起了作用。

这些对比提供的是排查线索。例如,换个朝向后变好,可能涉及天线,也可能涉及反射路径;RSSI 变强,也不等于干扰已经消失。要确认具体原因,仍需结合更多测量与设备信息。

七、总结

蓝牙把数据变成无线电信号的变化,再由接收端恢复数据。2.4 GHz 描述工作的频段,信道划分提供不同的收发位置,跳频与信道调整帮助减少干扰的持续影响;差错检查和重传则处理接收出错后的问题。

通信距离取决于信号到达后能否被正确接收。发射功率、接收灵敏度、天线、障碍、干扰和 PHY 都会影响结果,双向通信还要分别考虑两个方向。RSSI 可以提供线索,却不能直接代替距离和质量判断。

追求更远、更快或更省电时,要看实际需要:传什么、多久传一次、能容忍多少延迟和丢包。以真实使用条件测试,才能知道这套设备能否完成任务。

八、测试题

  1. 蓝牙工作在 2.4 GHz,能否据此判断每秒能传多少文件数据?频率和数据速率分别描述什么?
  2. 一台 LE 设备使用 40 个无线电信道,是否表示它可以同时连接 40 台设备?为什么?
  3. 蓝牙已经支持跳频,为什么在繁忙的无线环境中仍可能丢包?CRC 检查与重传分别做什么?
  4. 同样测试条件下,一台接收机能接收 −100 dBm 的信号,另一台只能接收 −90 dBm 的信号,哪台更能处理弱信号?手机显示 −60 dBm 和 −90 dBm 时,又是哪个信号更强?
  5. 手机可以收到某设备的广播,但连接失败。仅从无线电收发角度,还缺少哪一个方向的确认?为什么不能直接把失败归因于距离?
  6. LE Coded 在不提高发射功率的情况下,为什么可能改善通信距离?它付出了什么代价?
  7. 为了省电,把发射功率降到最低,并把数据速率调到最慢,这样一定有效吗?应一起观察哪些因素?
相关推荐
vilya7 小时前
我把一套完整的 Python Agent 运行时塞进手机 APK:依赖闭包、Rust 轮子和三个真机坑
android
呆呆敲代码的小Y9 小时前
【实战精选面试题】C# 面试题详细解答,按难易程度排序
android·java·游戏·c#·游戏开发·unity面试题·c#面试题
思想觉悟10 小时前
SEAndroid实战
android·linux·c++
思想觉悟11 小时前
Aosp开发磨刀石之ADB速查
android·c++
应用市场13 小时前
用本机跑的开源音乐模型,给安卓小游戏做 20 秒无缝循环背景音乐
android·python·游戏开发·soundpool·音频处理
企业数字化笔记13 小时前
表单发布前怎么验收?版本引用、字段兼容和历史数据回归
android·数据挖掘·回归
生信分析笔记13 小时前
Nature 正刊 GPN-Star 基因组语言模型
android
渣渣盟13 小时前
Flink 状态管理深度剖析:从 KeyedState 到 RocksDB,状态如何存储、恢复与扩缩容
android·大数据·flink
avi911113 小时前
电影开源Jevdo - 源码介绍(vue版)没有android 和 没有wpf
android·wpf·框架·数据爬虫·meego·电影管理