4. 无线链路稳定性关键指标
在 Nordic 低功耗蓝牙(BLE)工程中,链路稳定性不能靠“感觉”判断,必须落到可测量、可比较、可追溯的指标上。RSSI、LQI、PER、丢包率、重传次数、连接间隔与延迟这七个量,分别从信号强度、链路质量、误包概率、业务可靠性、链路负担和时延特性六个维度描述同一条无线链路。理解它们的定义、测量位置和相互关系,是后续做功耗与稳定性优化的前提。
一、七个指标分别“量”的是什么
RSSI(Received Signal Strength Indicator)表示接收端在解调前测得的信号功率,单位 dBm,典型取值在 -30 dBm(很近)到 -100 dBm(接近灵敏度极限)之间。Nordic 的 nRF52/nRF53 系列可通过 sd_ble_gap_rssi_get() 或连接事件中的 RSSI 报告读取,精度约 ±3 dB。RSSI 只反映“信号有多强”,不反映“信号有多干净”。
LQI(Link Quality Indicator)在 BLE 中通常由接收机根据解调误码情况给出,取值 0~255,越大越好。它比 RSSI 更贴近“能否正确解出这一包”,在干扰环境下往往比 RSSI 更早暴露问题。Nordic SoftDevice 不直接暴露 LQI,但可通过 BLE_GAP_EVT_RSSI_CHANGED 配合厂商私有 HCI 或抓包工具(如 nRF Sniffer)观察。
PER(Packet Error Rate)是误包率,等于错误包数除以总接收包数。BLE 中一个连接事件可能包含多个包,PER 通常按“连接事件级”或“包级”统计。它直接决定有效吞吐和重传压力。
丢包率与 PER 相关但视角不同:PER 关注“收到但解错”,丢包率关注“根本没收到或超时未确认”。在 BLE 中,未收到 ACK 的包会被重传,因此丢包率往往通过重传次数间接体现。
重传次数是链路层对未确认包的重发计数。BLE 每个连接事件内可重传同一包多次,直到收到 ACK 或事件结束。重传越多,链路越不稳定,功耗越高。
连接间隔(Connection Interval)是两个连接事件起点之间的时间,范围 7.5 ms~4 s,步进 1.25 ms。它决定“多久有机会通信一次”,直接影响延迟和功耗。
延迟在 BLE 中通常指从应用层提交数据到对端应用层收到的时间,包含连接间隔等待、重传、协议栈处理等。最小理论延迟约为一个连接间隔,实际会因重传和从机延迟(Slave Latency)而增大。
二、指标之间的因果链
这些指标不是并列的,而是一条有方向的因果链:RSSI 和 LQI 反映物理层质量,物理层质量差会导致 PER 升高,PER 升高会触发更多重传,重传增加会拉高有效延迟并增加功耗;连接间隔则从时间维度放大或缩小这些影响。下图给出这条链路的信号与数据流关系。
三、测量方法与工具
在 Nordic 平台上,最直接的测量手段有三类。第一类是协议栈 API:连接建立后调用 sd_ble_gap_rssi_start() 开启 RSSI 采集,通过 BLE_GAP_EVT_RSSI_CHANGED 事件读取;重传次数可从 BLE_GAP_EVT_CONN_PARAM_UPDATE 或链路层统计寄存器获取。第二类是抓包分析:用 nRF Sniffer + Wireshark 抓取空口包,可直接统计 PER、重传和连接事件内的包分布。第三类是应用层统计:在自定义 GATT 特征中维护发送序号与确认序号,计算端到端丢包率和延迟。
需要特别说明测量位置:RSSI 和 LQI 是接收端本地量,主从两侧读数不同;PER 和重传是链路层量,与连接参数强相关;延迟是应用层量,受协议栈缓冲和调度影响。比较指标时,必须保证测量位置和连接参数一致,否则数据没有可比性。
四、连接间隔与延迟的定量关系
在无重传、无从机延迟的理想情况下,单向延迟的最小值约为一个连接间隔。若从机延迟设为 N,则从机可以跳过 N 个连接事件不响应,有效延迟上限约为 (N+1) × 连接间隔。例如连接间隔 30 ms、从机延迟 4,则从机最长可 150 ms 才必须响应一次。这对低功耗有利,但会显著抬高延迟。
重传会进一步放大延迟。假设某连接事件内平均重传 r 次,则有效延迟近似为 (1+r) × 连接间隔。若连接间隔 30 ms、重传率 20%,则平均延迟约 36 ms;若重传率升到 100%,延迟约 60 ms,同时功耗接近翻倍。因此,降低重传率比单纯缩短连接间隔更能同时改善延迟和功耗。
五、实操:一次链路健康检查的完整过程
下面给出一个可复现的检查流程,对象为 nRF52840 从机 + 手机主机,连接间隔 30 ms,从机延迟 0,场景为办公室环境。
- 采集 RSSI:在从机固件中开启 RSSI 采集,每 100 ms 打印一次。示例读数:近距离 -45 dBm,隔一堵墙 -72 dBm,隔两堵墙 -88 dBm。
- 统计 PER 与重传:用 nRF Sniffer 抓包 60 秒,Wireshark 过滤
btle,统计总包数、CRC 错误包数和重传包数。示例:总包 12000,CRC 错误 48,重传 360,则 PER = 0.4%,重传率 = 3%。 - 测量端到端延迟:主机每 200 ms 发送一个带时间戳的写请求,从机收到后立即回读同一时间戳,主机计算往返时间并除以 2。示例:平均单向延迟 32 ms,最大 58 ms。
- 判读:RSSI -72 dBm 属于中等偏弱,PER 0.4% 和重传率 3% 尚可接受,但延迟最大值 58 ms 接近两个连接间隔,说明偶发重传。建议将连接间隔调整为 15 ms 观察延迟是否下降,或检查 2.4 GHz 频段是否存在 Wi-Fi 干扰。
六、常见误读与排障要点
第一,只看 RSSI 不看 LQI。RSSI 强但 LQI 低,说明存在同频干扰或镜像干扰,此时提高发射功率无效,应换信道或避开干扰源。第二,把 PER 和丢包率混为一谈。PER 高但重传少,可能是 CRC 校验严格;丢包率高但 PER 低,可能是连接事件被从机延迟跳过。第三,忽略连接间隔对延迟的放大。很多“延迟大”的问题,根源是连接间隔设成了 100 ms 以上,而非链路质量差。第四,用单次抓包下结论。无线环境具有时变性,至少采集 60 秒并观察 P95 分位数,而不是只看平均值。
把七个指标放在同一条因果链上理解,就能在排障时快速定位:先看 RSSI/LQI 判断物理层,再看 PER/重传判断链路层,最后结合连接间隔和延迟判断是否满足业务 QoS。这套判读顺序,是后续做连接参数优化和功耗调优的基础。