1. 实测前准备与模块解读最近拿到一块型号叫 LoRa2021 的无线模块官方资料上明确写着支持 LoRa、FLRC 和 GFSK 三种调制方式。之前我在 2.4G 频段上做过不少点对点通信对 LoRa 的远距离特性心里有数但 FLRC 这个“高速远距离”卖点一直让我半信半疑。毕竟在无线通信里速度和距离通常是鱼和熊掌能把 1Mbps 级别的速率和 1km 以上的距离同时做到总能勾起人实测的欲望。正好赶上连续晴天我就约上朋友开车到市郊一处封闭的废弃跑道把模块拉到户外做了一整天的对比测试。这篇记录涵盖参数配置、距离点位、RSSI/SNR/丢包数据以及过程中踩过的坑给同样在折腾 2.4GHz 无线通信的朋友做个真实参考。1.1 模块硬件与频段选择LoRa2021 模块是一块基于 2.4GHz 频段设计的射频通信板核心射频部分来自某系列无线收发芯片支持多种调制。2.4GHz 属于全球免授权 ISM 频段不用像 433MHz 那样为了天线长度伤脑筋模块体积也可以做得比 sub-GHz 方案小得多。模块板载电路包含射频开关、PA/LNA、电源管理外接一根可拆卸的 SMA 天线标准版本配送的是 2dBi 的全向胶棒天线。供电范围 3.0~3.6V我全程用 3.3V 锂电池稳压供电。板子上有一个 USB 转串口芯片通过 AT 指令或二进制串口协议配置发射功率、调制参数、数据包格式方便临时写测试脚本。选这个模块做对比核心原因是它在硬件上同时具备了 FLRC 模式和 LoRa 模式不需要换板子就能切换。如果只测一种调制参考价值就打了折扣。而 LoRa2021 这种“双模式”配置正好能直接回答一个问题在同样一块芯片、同样天线、同样发射功率的前提下FLRC 的高速和 LoRa 的远距离差距到底有多大。1.2 FLRC 与 LoRa 的调制差异先说 LoRa。它的全称是 Long Range一种线性调频扩频技术发送端用频率随时间线性变化的 chirp 脉冲来编码接收端通过相关解扩把埋在噪声里的信号捞出来。这种做法的好处是扩频增益高接收灵敏度能做到 -120dBm 甚至更低代价是有效数据速率被大幅压低。LoRa 的速率跟带宽、扩频因子、编码率三者挂钩典型配置下从几百 bps 到几十 kbps 不等适合需要极远距离、低功耗、小数据量的场景。FLRC 全称 Fast Long Range Communication很多人容易把它理解成“快版本的 LoRa”其实它用的不是 chirp 扩频而是带前向纠错的高速调制。从波形结构来看FLRC 更接近一种优化过的 GFSK FEC 方案在同样带宽下能跑出 Mbps 级别的物理层速率。接收灵敏度比 LoRa 弱一些但绝对数值仍然没有差到“基本不可用”的程度。实际效果就是我这次要验证的重点FLRC 到底能做到多快的速率又能在多远距离上保持靠谱的通信质量。1.3 测试场地与设备清单测试场地选在郊区一块长约 2.5km、两端无明显高楼遮挡的废弃水泥场地。虽然周边有些矮树和临时工棚但整体可以视为近似开阔的等效地面环境。当天天气晴气温约 28°C风速不大湿度适中对 2.4GHz 射频信号属于比较理想的传播条件。设备清单如下两块 LoRa2021 模块一块固定在起点位置作为基站另一块安装在车载支架上作为移动端两台笔记本电脑分别连接两块模块的 USB 串口增益 2dBi 的 SMA 胶棒天线一对5m 射频延长线用于测试天线位置影响手持 GPS 定位仪一台用于标记并测量各测试点直线距离移动 12V 蓄电池和低压差稳压板保证模块电源波动小于 20mV常用工具螺丝刀、烙铁、热缩管、万用表、频谱仪用来确认周围没有同频强干扰。出发前我在室内做了连续 30 分钟的通信稳定性检查确保两块模块都能正常收发、串口不丢字。实测中发现如果直接用普通的 USB 转串口线供电模块会在射频发射瞬间电压跌落导致复位或误码所以后来全部改用独立稳压电源。这个问题后面在常见问题章节会细讲。2. 参数配置与测试设计2.1 固定变量与对比项设计为了让对比公平整个测试过程中两块模块始终采用相同的频率、发射功率、天线方向和数据包数。射频中心频率固定在 2.430GHz发射功率统一设置为 13dBm约 20mW天线垂直极化且移动端天线在每次测试时都尽量保持垂直。数据包内容使用固定伪随机序列开启 CRC 校验。每个测试点每组配置发送 200 个数据包统计成功接收、CRC 错误和未收到数量。需要对比的调制状态一共设置了五组LoRa SF7带宽 800kHz编码率 4/5LoRa SF9带宽 800kHz编码率 4/5LoRa SF10带宽 800kHz编码率 4/5FLRC 高速档理论物理速率约 1.2MbpsFLRC 中速档理论物理速率约 500kbps。每组在五个距离点重复测试200m、500m、1000m、1500m、2000m。之所以把 SF7 和 SF10 都带上是因为 LoRa 本身的速率跨度很大只测一种代表“LoRa”会显得欺负人。SF7 是高速 LoRaSF10 是远距离 LoRa两者配合起来才能画出完整的曲线。2.2 LoRa 参数设定和预期速率LoRa 模式的可调参数主要有扩频因子 SF、带宽 BW 和编码率 CR。这次测试统一用 800kHz 带宽因为 2.4GHz 频段可用的频谱比较宽更大的带宽能换回更高的速率。SF7 状态下物理层速率计算出来大约为 87.5kbps这是 LoRa 在相同带宽下的较高速度SF9 约 28kbpsSF10 约 14kbps。编码率统一用 4/5即每四个有效码元加入一个校验码元兼顾可靠性和吞吐。由于 LoRa 是扩频系统相同信噪比下 SF 越大解调越可靠。但 SF 变大意味着每个符号携带的信息比特变少同时单个符号时间更长空气占用时间指数增加。所以在距离延伸上SF10 比 SF7 理论上能多出 4~6dB 的链路余量换算成自由空间距离是 1.5~2 倍。这个关系在后面的实测数据中会非常明显。2.3 FLRC 参数设定和预期速率FLRC 模式不像 LoRa 有 SF 的概念它通过配置带宽、编码率和码率组合来切换速率档位。我选了两个典型档位高速档大约 1.2Mbps中速档大约 500kbps。前者是模块手册标称的最高物理速率后者则是在带宽减半或编码率提高后得到的更保守配置更接近实际产品应用中会选择的参数。FLRC 的高速档接收灵敏度理论值约 -105dBm比 LoRa SF10 的 -120dBm 少了 15dB 左右的增益。在自由空间条件下15dB 差不多是 5~6 倍的距离差距。因此如果 LoRa 能到 2kmFLRC 高速档大概率只有 300~500m这是基于灵敏度和传播模型先算好的理论值。但实际开路环境中地形、多径和多普勒都会改变这个比值所以必须用真实测试数据来验证。3. 距离拉练信号质量与丢包实测3.1 短距离 200~500 米的信号表现200m 点位是所有配置最舒服的区域。LoRa SF7 的 RSSI 在 -55dBm 左右SNR 稳定在 11dB200 包全部无误码。FLRC 高速档的 RSSI 也差不多但 SNR 比 LoRa 低了 3~4dB丢包率是 0收发非常稳定。当时我甚至觉得 FLRC 明显占优因为它速率高太多距离再拉远一点优势会更明显。500m 点位开始出现分化。LoRa SF7 的 RSSI 降到 -68dBmSNR 约 8dB依然无丢包。LoRa SF10 就更不用说余量很足。FLRC 高速档的 RSSI 在 -70dBm 附近但 SNR 已经掉到 2dB 左右200 个包丢了 3 个丢包率 1.5%。FLRC 中速档的丢包率是 0但接收的 RSSI 其实和高速档差不多说明中速档的纠错能力更强能把这部分低信噪比状态救回来。这个阶段暴露出的核心问题是FLRC 高速档在普通全向天线下500m 就已经到了边缘区稍微有树叶晃动或汽车遮挡就会丢包。而 LoRa 看起来仍然“一脸轻松”。3.2 中距离 1000~1500 米的临界区1000m 是这次测试的分水岭。LoRa SF7 的 RSSI 掉到 -82dBmSNR 只有 2dB开始出现约 4% 的丢包率。SF9 无丢包SF10 依然表现优异RSSI 虽然只有 -85dBm但 SNR 还有 6dB200 包全收。FLRC 高速档已经完全无法通信连每隔 5 秒发一次的同步信标都收不到。FLRC 中速档的手表在 1000m 处 RSSI 约 -96dBmSNR 约 -3dB丢包率接近 30%勉强能听到部分包已经不适合实际业务。1500m 点位LoRa SF7 的丢包率飙升到 35%SNR 降到 -2dB基本处于“能解但边解边丢”的状态。LoRa SF9 丢包率 8%SF10 丢包率 0%并且 RSSI 显示还有余量。FLRC 中速档继续恶化200 个包只收到 30 个基本不可用。这个距离彻底揭示了两种调制的定位差异如果想在 1km 以上稳定传数据LoRa SF10 依然是最稳妥的选择而 FLRC 在 1km 这个距离上即使是中速档也扛不住。有人可能好奇为什么 FLRC 的丢包会突然从 30% 跳到完全不通这里有个经验当接收信号接近灵敏度门限时数据包解调不是均匀变差而是会因为突发干扰、多径衰落瞬间被击穿。FLRC 没有 LoRa 那么高的扩频增益衰落余量小所以更容易出现“再走两米就掉线”的悬崖效应。3.3 远距离 2000 米与链路预算验证2000m 是场地尽头也是我预期 LoRa 能展示实力的地方。实测数据如下LoRa SF10 在 2000m 处 RSSI 约 -94dBmSNR 约 4dB丢包率 1.5%200 包只丢 3 包通信质量依然可靠。LoRa SF9 丢包率 25%已经不适合连续传输。LoRa SF7 则是完全不通。FLRC 两种档位在 2000m 全部无信号频谱仪上能看出发送端在发射但是接收端底噪里什么也解不出来。用链路预算验证一下 SF10 数据发射功率 13dBm天线增益 2dBi自由空间损耗约 86.6dB接收端 RSSI 约 -94dBm说明实际路径损耗比自由空间多出约 7dB符合半开阔地面的经验值。SF10 的接收灵敏度约为 -120dBm所以链路余量有 26dB表现很从容。FLRC 高速档灵敏度只有 -105dBm就算路径损耗相同接收端的信噪比也远低于解调门限2000m 不通完全在预料之中。实际测试中我还发现在 2000m 距离上把天线换成 5dBi 定向天线后LoRa SF10 的 RSSI 提升了约 6dB丢包率变为 0。这说明即使在远距离天线性能对链路余量的贡献比发射功率还大。而 FLRC 由于灵敏度极限摆在那里就算换定向天线也只能把通信距离从 500m 推到 800m 左右依然无法覆盖 1.5km 以上。这个结论对我后续做产品选型意义很大。4. 高速传输吞吐测试4.1 32 字节短包的实时性表现远距离测试验证了 LoRa 的统治力但实际应用里数据量并不总是小到几个字节。像传感器采集、控制指令、定位信息这种短包重点看的是端到端实时性和吞吐量。我在 500m 距离下用 32 字节包做了连续 1000 包压力测试统计每包的平均空口时间。LoRa SF7 的物理速率约 87.5kbps32 字节净荷加上前导码、头部和 CRC实际单个数据包占用空口时间约 12ms有效吞吐约 21kbps。听起来好像还行但如果对面发送端时刻有数据LoRa 的空口时间会产生排队实际吞吐会进一步下降。LoRa SF10 就更夸张32 字节包的空口时间约 70ms1000 包测下来有效吞吐只有 3.6kbps几乎只能做周期上报做不了一问一答的交互。FLRC 中速档在 500m 距离下 32 字节包的空口时间约 2.5ms有效吞吐约 100kbps。FLRC 高速档则达到 1.2Mbps 物理速率实际 32 字节包的空口时间不到 1ms有效吞吐约 300kbps。在低延迟场景里这个差距非常明显同样是发一个控制指令LoRa 需要几十毫秒完成期间收发板卡必须来回切换等待而 FLRC 几乎可以在 1ms 内完成一次往返。对于需要快速确认的工业遥控或实时数传场景FLRC 的价值恰恰就在短包低延迟。4.2 230 字节长包的吞吐极限短包测实时性长包则测真实业务吞吐。我用 230 字节数据包在 200m 距离上分别测了 LoRa SF7、FLRC 中速档和 FLRC 高速档。LoRa SF7 因单个包空口占用时间长实测有效吞吐约 40kbps比理论速率下降明显因为长包在扩频系统中意味着更长的占用时间一旦遇到微弱干扰整包 CRC 失败就会重传吞吐雪上加霜。FLRC 中速档能稳定跑到约 180kbpsFLRC 高速档则接近 500kbps且丢包率都小于 0.5%。这组数据说明在距离不远的条件下FLRC 的吞吐优势是数量级的。LoRa 再靠扩频增益加持也改变不了物理层速率低的先天短板。假如你的业务场景是海边航拍图传、工程机械遥测、或者无人机链路备份需要连续传输几十 KB 甚至几百 KB 的数据FLRC 会是更现实的选择。当然前提是距离控制在几百米以内且中途没有强遮挡。4.3 数据重传策略与鲁棒性为了测试两种调制在弱信号区的抗误码能力我在 1000m 距离上给 LoRa SF7 和 FLRC 中速档分别加入了简单的停等 ARQ 重传协议比较可靠交付率。LoRa SF7 在 1000m 的裸丢包率约 4%经 ARQ 重传后稳定在 0%但累计空口时间约占 20%。FLRC 中速档在 1000m 的裸丢包率约 30%需要 2~3 次重传才能把交付率提升到 95% 以上空口时间占用接近 60%且时延抖动严重。这个结果给我的直觉是FLRC 不擅长在临界信噪比下靠重传硬扛。因为每次重传都以整包为单位而弱信号下丢包往往是成簇出现可能连续丢掉同一批包ARQ 会陷入频繁超时的局面。相比之下LoRa 的误码率曲线更平滑丢包更接近随机分布ARQ 效果更好。如果你的应用有频繁重传需求最好不要指望 FLRC 的低灵敏度优势而是应该在链路设计时预留足够的余量让 FLRC 工作在信号较好的区域。另外FLRC 高速模式开启前导码检测后有一个锁定发射端自动增益控制的过程如果发射端频繁切换速率档或者改变包长接收端会因为 AGC 跟踪滞后出现前几个包解不了的情况。测试时我把发送端速率固定后前导码长度加长一倍这个问题才缓解。这一点在后续项目里值得留意。5. 户外实测踩坑与反思5.1 天线与接头影响被低估第一天测试遇到最坑的事是移动端天线根部被车上的杂物压弯导致模块发射时驻波比明显上升距离稍微拉远就会出现间歇性失联。我还一度怀疑是 FLRC 模式有问题后来用频谱仪和对比天线排查才发现问题出在馈线接头氧化导致驻波变大发射功率没有真正辐射出去回波损耗把前级啸叫搅得一塌糊涂。户外实测一定要在出发前检查天线接头拧紧、馈线没有屏蔽层破损。更稳妥的做法是做一个驻波比自检在信号最强处先测试RSSI 若比平时低 5dB 以上就应该怀疑天线或馈线。另外模块的天线接口如果是 IPEX转 SMA 的线缆最好选短而粗的太长的超柔线在 2.4G 频段损耗很大我实测一根 30cm 的 IPEX 转接线就能吃掉 2~3dB 功率这几乎等于把发射功率从 13dBm 干到了 10dBm。5.2 电源纹波与稳压模块对电源纹波很敏感尤其是发射瞬间电流可达上百 mA如果供电线太长或稳压器压差不够电压跌落会造成发射功率抖动、频率偏移甚至重启。室内测试我直接用开发板的 USB 口供电短距离看不出问题一到户外接长线就频繁出现 CRC 错误。后来换成锂电池 低压差稳压器并尽量缩短模块供电线长度所有问题都消失了。在模块的电源输入端并一个大容量的钽电容和一个小容量的 0603 陶瓷电容能够显著改善瞬态响应。此外不要用普通降压模块的 5V 脚直接给模块供电因为很多降压模块的开关噪声落在 2.4GHz 频段附近会直接抬高接收底噪拉低灵敏度。我试过在某个降压模块供电时同一距离下 LoRa SF10 的 RSSI 比电池供电低了 4dB这就是电源噪声带来的灵敏度损失。5.3 调制方式选型建议经过这次全距离实测我的选型建议大致可以归纳成一张表场景推荐调制距离范围理由极低功耗传感器上报LoRa SF101.5km灵敏度高链路余量大中等距离数据采集LoRa SF7500~1000m速率够用可靠性好近距离高吞吐图传/数传FLRC高速档500m物理速率高延迟低中等吞吐且要求抗多径FLRC中速档500~800m比高速档多 3~5dB 余量当然上述距离是在全向天线、13dBm、开阔环境下得到的如果换成更高增益天线或把发射功率提升到 20dBm每个档位的可通信距离都会显著提高。但速率的优先级不会改变在同样的物理层条件下FLRC 的通信距离上限天然比 LoRa 低一个量级。5.4 给新手的快速建议如果你刚接触 LoRa2021 这类双模模块我的经验是不要一上来就追求极限距离或极限速率。先用默认参数在 100m 内把通信打通然后逐步增加距离、修改数据包长度记录 RSSI 和丢包率。即使同一型号的模块每块板子的频率偏移和发射功率都存在微小差异特别是注意拆板后重新焊接过的模块要先用频谱仪校准输出频率。在参数选择上LoRa 的 SF、带宽、编码率三者不要单独调优它们会互相影响。最实用的是先根据数据量定速率范围再选带宽和 SF 组合。FLRC 则需要关注“带宽和编码率”的搭配追求最高速率并不总是利于稳定运行因为更高的调制阶数对频率偏差和相位噪声更敏感在温度变化大的环境里容易劣化。可以的话把 FLRC 中速档作为飞行模式高速档作为近距离大流量模式。我在整个测试完成后个人体会是LoRa 依然是我在“确保能回来”这个前提下最信任的调制方式但 FLRC 并不是噱头它在短距离高速率场景下确实有不可替代的位置。两相结合可以在一个模块上同时覆盖“远距离慢速确认”和“近距离快速传输”两种需求。如果后续再测我会考虑在真实城市遮挡环境和移动场景下再跑一轮因为静止开阔地的数据虽然干净但实际部署环境往往比这个复杂得多。希望这篇实测记录能帮你少走一点弯路。