去年年中我接手了一个远程水库水位监测项目,现场离最近的城镇有三十多公里,没有公网,也没有市电,只有太阳能板和一块电池。终端只有二十几个点,但分布在山沟两侧,直线距离超过十公里。第一次去现场踏勘的时候,我心里就清楚:这种场景只能用LoRaWAN级别的技术来扛。项目里最终用了RFM6601射频模组做终端,配合自建的LoRaWAN网关,把“远距离、低功耗、大容量”这三个看起来互相矛盾的指标,硬是凑到了一起。
所谓“远、低、大”,在无线通信里向来是跷跷板:距离远,功耗和带宽就要让步;容量大,覆盖就会缩水。LoRaWAN能打破这个三角,靠的不是玄学,而是LoRa扩频调制本身的那点数学功底,以及射频前端模组在灵敏度、功耗和稳定发射上扎扎实实的性能。这篇文章我就从RFM6601这个模组出发,把整套网络从链路预算、容量规划到实测调优的过程完整捋一遍,希望能给准备做LoRaWAN落地的朋友省掉几个月的弯路。
1. 远距离、低功耗、大容量为什么经常互相打架
1.1 一个无线系统的三个硬约束
在聊LoRaWAN之前,先看传统无线方案为什么难搞。比如用4G模块做远程上报,信号好、速率快,但模块工作电流动辄几百毫安,待机也要吃电,一年下来流量费还得持续支出;用Zigbee做自组网,功耗是低了,但点对点通信距离通常只有几十米,在野外或者园区里想覆盖几公里,得布一堆路由节点,维护起来非常头疼。
这背后其实是通信系统里一个绕不开的规律:覆盖距离取决于接收灵敏度、发射功率和信道损耗,而容量取决于频谱效率。4G把频谱效率做得很高,但灵敏度和功耗就压不住;Zigbee把功耗控制住了,但灵敏度没有明显优势,距离自然上不去。
LoRaWAN走的是另一条路:它不追求每秒多少兆的吞吐,而是把注意力放在“在极低信噪比下把一帧数据解出来”。这里面最关键的技术是LoRa调制里的扩频增益。
1.2 LoRa扩频调制如何破局
常规FSK调制,要解调出信号,接收端的信噪比通常需要8dB以上。LoRa调制通过把信号在时间和频率两个维度上展开,让接收端可以在负信噪比环境下也能完成解调。比如SF12/125kHz配置下,理论最低解调信噪比大约是-20dB,这意味着信号完全淹没在噪声里,也能被解出来。
这就是扩频增益的威力。所谓扩频增益,通俗理解就是发送端把同样一份能量“摊”到更长的时间和更宽的频谱上,接收端再用相同的码片序列“收拢”回来,于是原本泡在噪声里的信号被重新堆积凸出来。
当然,这种增益不是白拿的。扩频因子越大,单个符号占用的时间越长,空中时延越长,单位时间能发出去的数据帧就越少。所以LoRaWAN里SF7到SF12不是随便选的,它本质上是拿时间和吞吐换灵敏度,这也直接引出了后面要聊的容量规划问题。
1.3 RFM6601在链路中的角色
链路要成立,光有协议层的扩频增益不够,物理层的射频前端必须给力。RFM6601在我的项目里承担的就是这个角色:它是一颗集成LoRa收发功能的射频模组,内部基于SX126x内核方案,对外提供SPI接口,MCU通过标准命令就能完成频率配置、发射接收切换、数据包收发。
模组本身不负责LoRaWAN的MAC协议,协议栈在MCU或者外挂的代码里跑,但它决定了整条无线链路的“底子”:接收灵敏度、发射功率、发射电流、睡眠电流、晶振稳定度,全部由这一小块电路扛下来。换句话说,LoRaWAN软件写得再好,射频前端不给力,覆盖距离照样拉胯。
RFM6601最值得关注的几个实测参数,我这里列一下:
- 接收灵敏度:-137dBm @ SF12/125kHz,-111dBm @ SF7/125kHz;
- 最大发射功率:+22dBm,且支持从-9dBm到+22dBm的连续功率配置;
- 发射电流:约118mA @ 20dBm,接收电流约5.5mA,睡眠电流低于1uA;
- 支持频率范围:150MHz到960MHz,覆盖Sub-GHz各主要频段。
这几个数字看起来不复杂,但整套网络的覆盖半径、电池寿命、终端数量和它直接相关。下面我会逐个展开。
2. RFM6601不是随便选的:射频前端的关键参数与选型逻辑
2.1 接收灵敏度:-137dBm意味着什么
很多朋友选LoRa模组时只看发射功率,觉得功率大距离就远,这是误区。链路预算两端,发射功率只占一半,另外一半是接收灵敏度。RFM6601在SF12/125kHz下做到-137dBm,配合+20dBm发射功率,理想条件下链路预算有157dB。
这个157dB是什么概念?自由空间损耗公式是:
FSPL = 20log10(距离) + 20log10(频率) + 32.44
以868MHz频段计算:
- 1公里:FSPL = 20log10(1) + 20log10(868) + 32.44 ≈ 91.2dB;
- 5公里:FSPL ≈ 105.2dB;
- 10公里:FSPL ≈ 111.2dB;
- 20公里:FSPL ≈ 117.2dB。
也就是说,在完全空旷环境下,157dB的链路预算够打几十公里。实际现场当然不会有教科书级传播条件,树木、山体、建筑物、雨衰都会吃掉余量,但这至少说明一点:灵敏度每高1dB,覆盖半径可能增加百分之十几,这是纯发射功率砸不出来的优势。
如果换一颗灵敏度只有-125dBm的FSK模组,链路预算直接掉12dB,在同样的10公里场景下,余量几乎归零。这也是为什么LoRaWAN组网除非万不得已,不要用FSK模式跑野外中继,LoRa模式的负信噪比解调能力才是远距离的真正来源。
2.2 发射功率与功耗的平衡点
RFM6601支持22dBm峰值发射,但项目里我通常把节点配在20dBm左右,而不是顶格。原因有三:第一,不少Sub-GHz频段有法规限值,比如某些认证场景下最大有效全向辐射功率(EIRP)卡在16dBm或20dBm,顶格发射容易违规;第二,发射电流和功率不是线性关系,从20dBm提升到22dBm,电流增加十几毫安,距离提升却只有一点点;第三,功放满负荷工作对热稳定性和长期可靠性不友好。
功耗方面,我实测过RFM6601几种状态的整体链路电流:
- 连续发射(20dBm)时整机电流约120mA;
- 连续接收时整机电流约10mA(模组+MCU合计);
- 带RTC唤醒的睡眠状态下,整机低于10uA。
一个用2节18650电池供电的节点,如果配置成每10分钟上报一次、每次发射0.2秒,接收窗口0.5秒,整体日均电流可以控制在0.5mAh以内,两节电池跑两三年没什么问题。这里的核心逻辑是:通信功耗占比极小,系统寿命的瓶颈往往在传感器本身的待机电流上。
2.3 为什么用模组而不是裸芯片
RFM6601这类集成模组和直接用SX126x裸芯片比,最大的优势在射频匹配和天线切换电路。裸芯片方案要求开发者自己做巴伦匹配、滤波器选型、PCB走线阻抗控制,任何一个环节没做好,灵敏度就会损失3到5个dB,这比换任何软件配置都致命。
模组把匹配网络、晶振、滤波都封装好了,开发者只需要按参考设计画个天线座,就能复现手册参数。这在量产项目里非常关键:射频一致性不再依赖个别工程师的layout功力,换产线、换批次也能保持稳定。
当然,模组的代价是成本和体积略高。但对大多数应用来说,一次返工浪费的时间精力远超模组多出来的那几块钱,我自己的原则是:能上模组就不碰裸芯片,除非产品量大到可以摊销射频调测成本。
2.4 手册里不会强调、但实际踩过的细节
选型时除了看灵敏度、功率、电流,还有几个容易忽略的点。
第一是晶振稳定性。LoRaWAN的接收窗口对频偏很敏感,RFM6601这类模组如果用的是普通晶振,在零下二十度和六十度环境下频偏差异会比较大,直接表现为冷天丢包增多。项目里如果要上低温环境,务必确认模组用的是TCXO(温补晶振)版本。
第二是射频开关的切换时间。Class A节点在发射结束后要立刻切换到接收状态去听网关的RX1/RX2下行窗口,如果模组收发切换时间太长,下行命令容易漏听,导致入网后无法远程改参数。
第三是地平面和天线净空。模组底部的铺地、天线附近的金属件、外壳的喷漆,都会影响实际辐射效率。模组灵敏度标称-137dBm,但如果你把它塞进全金属外壳里,实测能到-125dBm就不错了。PCB布局的时候一定要留出天线净空区,并在结构设计阶段就参与天线的选型和摆放评估。
3. 一份链路预算表看懂覆盖规划(以300亩园区为例)
3.1 完整链路预算怎么算
先给一个通用的链路预算公式:
接收电平(dBm)= 发射功率(dBm) - 馈线损耗(dB) + 发射天线增益(dBi) - 路径损耗(dB) + 接收天线增益(dBi) - 接收馈线损耗(dB)
链路的“设计余量”就是接收电平减去接收灵敏度。工业界一般建议余量至少10到15dB,因为环境会随时间变化(树叶、降雨、临时停放的大型车辆都会影响)。
我做过一个典型的智慧园区项目,300亩场地里要覆盖几十个水质监测、井盖状态、垃圾桶满溢终端。网关部署在办公楼顶,高度约20米,终端分布半径从100米到800米不等。计算时我用的是SF10/125kHz配置,RFM6601灵敏度-134dBm(SF10时),发射功率20dBm,天线增益0dBi,网关天线增益5dBi,馈线损耗取2dB。
最远端800米,以868MHz计算:
- 路径损耗 ≈ 20log10(0.8km) + 20log10(868MHz) + 32.44 ≈ 109.2dB;
- 接收电平 = 20 - 2 + 5 - 109.2 + 0 ≈ -86.2dBm;
- 设计余量 = -86.2 - (-134) ≈ 47.8dB。
余量接近48dB,非常充裕。这个数字意味着即使下雨、树叶遮挡、有人从旁边走过,链路也不会断。于是我在配置里反而可以把SF调到SF7或SF8,减小空中时延,给更多终端腾出容量空间。
3.2 场强测试:地图拉直线和现实之间差了多远
图纸计算只能做预判,真正可靠的覆盖规划必须靠实测。我的实测步骤是:
- 用RFM6601节点灌一个连续发送程序,每两秒发一个固定payload,发射功率设成和最终产品一致;
- 拿手机连接网关后台,或直接用频谱仪/接收机记录RSSI和SNR;
- 开着车或骑着电动车,沿园区道路逐点测试,在每个目标点位停留30秒以上;
- 把每个点的RSSI、SNR和是否解调成功记录到表格,落到地图上看热区分布。
园区场景测试下来,RSSI普遍比链路预算预测值好10到20dB,因为空地、草地、柏油路对Sub-GHz信号的反射和散射形成了丰富的多径,信号实际到达网关的路径不止一条。但这里有个坑:多径带来的“好信号”有时候是假象,节点稍微换个位置,RSSI可能掉15dB,这是多径干涉造成的快衰落。
所以实测时不能只看单点几次接收就下结论,要在一个点位上测试多次、间隔时间长一点,甚至分早晚不同时段测。稳定的链路要在不同时间都能维持正SNR,才算真正覆盖住。
3.3 天线与馈线:最容易偷偷吃掉余量的环节
项目里网关天线选了8dBi的玻璃钢全向天线,理论上增益很高,但配套的馈线是10米长、规格一般的跳线,一米损耗可能到0.5dB以上,10米就是5dB。5dB是什么概念?相当于发射功率从20dBm掉到15dBm,覆盖半径直接缩水三四成。
后来我把网关卡座附近的馈线换成低损耗LMR400,并把网关放在离天线尽量近的位置,用1米短线连接,损耗降到0.3dB左右。终端侧的改动更干脆:直接用PCB天线或者弹簧天线,省去所有连接器和馈线,代价是效率比外置胶棒天线低1到2dB,但换来的是成本、体积和可靠性的综合平衡。
这里给一个选型建议表格:
| 位置 | 推荐天线 | 增益范围 | 备注 |
|---|---|---|---|
| 网关 | 玻璃钢全向天线/定向平板天线 | 5-8dBi | 优先高位置安装,馈线尽量短 |
| 野外节点 | 玻璃钢或玻纤全向天线 | 2-4dBi | 兼顾全向覆盖与防护 |
| 城市/园区节点 | PCB内置天线或弹簧天线 | 0-2dBi | 成本低、一致性好,但净空要留够 |
| 超远距离重点目标 | 定向八木天线 | 8-12dBi | 只适合固定朝向场景 |
天线本身没有绝对好坏,适合场景才是关键。园区里盲区通常是设计阶段没留天线净空造成的,而不是缺那2dB增益。
4. 终端一多就丢包?容量规划与参数分配的真正逻辑
4.1 LoRaWAN的ALOHA本质
LoRaWAN的MAC层访问机制本质上还是ALOHA协议:终端想发就发,不检测信道是否空闲(除非开了LBT),网关负责接收。这意味着当两个终端同时发同一个频点,就可能碰撞导致丢包。
很多人一开始觉得LoRaWAN“大容量”是夸口,觉得ALOHA效率太低。实际上LoRaWAN的容量建立在三点上:多个频点并发、多个扩频因子正交、每条消息很短。网关侧有8个信道,8个信道可以同时接收8个不同频点的数据;同一个频点上,不同SF之间也能并行解调(SX130x系列网关支持8路LoRa解调+一路FSK,所以同一信道里不同SF可以同时收)。
容量规划的难点不在于“能收多少”,而在于“在随机碰撞和占用率约束下,还能保证多高的可靠性”。
4.2 空中耗时Airtime:为什么SF10是吞时器
容量规划的入口是单条消息的空中耗时(airtime)。Airtime越长,单位时间能发送的终端就越少。我按LoRaWAN常见配置整理了一个约值表:
| 扩频因子 | 带宽 | Payload 12字节 | Payload 20字节 |
|---|---|---|---|
| SF7 | 125kHz | 约62ms | 约76ms |
| SF8 | 125kHz | 约113ms | 约134ms |
| SF9 | 125kHz | 约206ms | 约240ms |
| SF10 | 125kHz | 约371ms | 约420ms |
| SF11 | 125kHz | 约743ms | 约826ms |
| SF12 | 125kHz | 约1328ms | 约1483ms |
可以看到SF12的airtime是SF7的二十倍以上。如果一个终端长期在SF12上,它占用的信道时间足够让二三十个SF7终端完成上报。所以容量规划里最核心的一件事,就是尽量让终端驻留在低SF上。
我常用的一个经验法则是:日常业务上报优先用SF7到SF9,SF10及以上只允许给那些确实链路余量不足的远端点;如果远端点数量太多,与其让它们全都在SF12上抢信道,不如增加一个网关专门收这些远端点。
4.3 用一张简表算清网关能带多少终端
以8信道网关为例做个粗略估算。假设50个终端,每5分钟上报一次,一天288次,每个终端每次airtime压缩到SF7/20字节约76ms,那么单个终端每日总airtime是:
288 * 0.076s ≈ 21.9s
8信道网关一天的“可调度资源”在理想时分复用下是:
8 * 86400s = 691200s
理论上能容纳约31500个这样的终端。但这只是理想上限,ALOHA随机接入下,碰撞概率和信道占用率直接相关。当信道占用率超过10%时,碰撞就开始明显影响可靠性,所以实际规划要留出充足余量。
如果改成SF10/20字节,单终端每日airtime变成288 * 0.42s ≈ 121s,可容纳终端数就降到大约5700个(以10%占用率计算约570个)。所以同样是50个终端,全部用SF10也能带得动,但已经被“吃掉了大量容量”,一旦后续扩容就会非常被动。
4.4 ADR与占空比:把容量约束变成可用资源
ADR(自适应速率)是LoRaWAN里自动帮你把SF压下来的机制。网络服务器根据终端上报的RSSI/SNR,把建议的SF、功率、频点通过下行MAC命令发给终端。链路好的终端被自动切到SF7/SF8,链路差的维持SF10/SF11,整体信道占用率就能压下来。
但ADR不是万能的,我遇到过两个问题:
第一,静止节点好用,移动节点易踩坑。终端如果装在车上或者随人移动,RSSI波动剧烈,ADR可能刚刚把SF调低,下一秒节点移动到弱信号区,反而导致丢包。移动终端建议关掉ADR,用固定SF并根据最差场景配置。
第二,ADR提速后,终端的duty cycle可能被触发。在ETSI 868MHz频段,单频点占空比限制通常是1%。如果节点原本用SF12,airtime约1.3秒,每隔5分钟上报一次,每小时12次,总airtime约15.6秒,一小时总时间是3600秒,占用率约0.43%,没超。如果ADR把SF降到SF7,airtime变成0.076秒,占用率大幅下降,反而更安全。反过来,如果传感器自身就每分钟上报一次,airtime大就很难受,需要改频点或者降低上报频率。
4.5 多网关与信道规划
容量不够时,多网关是最直接的手段。但要注意,LoRaWAN支持同一帧被多个网关接收,网络服务器会做去重,这在覆盖重叠区还能提供分集增益,避免单网关盲区。
多网关的频点规划要根据当地法规来。如果只有868MHz频段的几个合法信道,所有网关共用同样的频点即可,网络服务器按device address去重;如果用的是10年免授权或受限频段,还需要检查信道间隔是否符合规定。
项目里我在园区东、西两侧各放了一个8信道网关,两个网关覆盖重叠区里的终端上报到服务器后会被双重接收,再去重,可靠性明显提升。代价是网关的部署成本翻倍,所以实际规划时先做单网关实测,确认哪些区域RSSI低于阈值后再针对性补点,比较划算。
5. 从网关到服务器:把网络调到“可靠”状态的实操配方
5.1 网关端硬件与部署要点
网关的稳定是整个网络的地基。我选用的网关基于SX130x系列芯片,支持8信道、10路解调。部署时我总结了几条硬性要求:
- 供电必须稳定。网关如果频繁断电重启,终端会在几分钟内不断尝试Join,重新入网会产生大量不必要的上行流量。建议配一台UPS或带电池的电源模块。
- GPS天线不能省。LoRaWAN网关需要GPS做时间同步,因为Class B下行窗口依赖精确时间槽分配。如果GPS搜不到星,网关时间漂移会导致下行窗口错位。
- 回传链路要留带宽。网关到网络服务器一般走4G或有线网络,按50个终端、每5分钟上报一次、每次100字节计算,日流量大约几十兆,4G完全够用,但要注意SIM卡套餐不能只给几十兆。
5.2 频点、SF与功率的组网配置建议
这里给一套我经过多轮测试后比较稳妥的LoRaWAN节点参数配方:
| 参数项 | 推荐配置 | 说明 |
|---|---|---|
| 频段 | 按当地法规选择 868MHz(欧标)或915MHz(美标)等 | 必须先查法规,别用错频点 |
| 初始SF | SF10 | 入网阶段用较高SF保证接通率 |
| 工作SF | 优先SF7-SF9,远点用SF10 | 本地越好越往低SF压 |
| 确认帧 | 关键事件开Confirmed,周期上报开Unconfirmed | 避免乱发ACK占用下行资源 |
| 发射功率 | 20dBm(若法规允许) | 顶格与20dBm差异不大,优先选择法规允许的最大值 |
| 接收窗口 | RX1 >0.5s,RX2 1s | 默认配置即可 |
| Duty Cycle | 单频点不超过1% | 欧洲868MHz常见限制 |
入网阶段用SF10是很多工程容易忽略的细节:如果开局就用SF7,边缘节点可能连Join请求都收不到,直接导致入网失败。我用RFM6601的默认配置把OTAA Join的SF固定在SF10,节点入网后再由ADR切换到工作SF,实测入网成功率明显提升。
5.3 服务器选型:ChirpStack还是TTN
自建网络我首选ChirpStack开源套件。ChirpStack分为Gateway Bridge、Network Server、Application Server三个组件,可以部署在同一台云主机上,也可以拆开部署。网关通过Semtech UDP Packet Forwarder协议或ChirpStack Gateway Bridge把上行数据转发到服务器。
如果项目规模不大、节点数量在几百以内,ChirpStack + PostgreSQL + Mosquitto的组合足够稳定。TTN(The Things Network)的公共服务器适合学习和小规模原型验证,但正式项目里我对时延、链路安全、数据可控性都有要求,所以自建更踏实。
部署时注意几个基础配置:
- 设置好频段计划(Band),例如EU868地区要正确配置上行与下行频率;
- 注册好网关的Gateway ID,开启Gateway Meta Data上报;
- 用多租户隔离不同客户的数据,避免一套服务器里数据串台。
5.4 一个可参考的节点侧配置片段
RFM6601这类模组在MCU侧一般通过SPI操作,我留一个简化但结构完整的配置思路:
/* RFM6601 射频初始化配置参考 */ typedef struct { uint32_t frequency_hz; /* 例如868100000 */ uint8_t spreading_factor; /* 10 初始入网用 */ uint8_t bandwidth_khz; /* 125 */ uint8_t coding_rate; /* 1代表4/5 */ int8_t tx_power_dbm; /* 20 */ bool rx_single_mask; /* 是否只开单个接收窗口 */ } rfm6601_cfg_t; void water_monitor_init(void) { rfm6601_cfg_t cfg = { .frequency_hz = 868100000, .spreading_factor = 10, .bandwidth_khz = 125, .coding_rate = 1, .tx_power_dbm = 20, .rx_single_mask = true }; rfm6601_init(&cfg); /* OTAA入网 */ loraWan_join(OTAA, JOIN_ACCEPT_DELAY_MS); }这里有一个容易被忽略的点:RX1窗口的延时和接收窗口长度要跟网关、服务器的配置对齐,否则节点在监听下行时对不上时间,MAC命令收不到,ADR就跑不起来。
5.5 稳定性验证怎么做
网络调完以后,我建议做一次48小时连续运行测试。测试期间记录三类指标:
- 上行包接收率(网关收包数 / 终端发包数);
- 网关到服务器的回传时延与丢失率;
- 终端睡眠电流与实际供电电压波动。
这个测试要放在真实环境跑,不能只在办公室测。现场的温度波动、湿度、周围其他无线设备干扰,都不是实验室能复现的。之前有个项目在办公室测48小时几乎零丢包,上塔安装后两个小时就开始掉线,查了一圈才发现是网关的PoE供电在低温下电压不稳,后台不断重启。这种问题只有靠长时间真实环境运行才能暴露。
6. 几个月实测下来最容易翻车的几个坑
6.1 天线馈线被“省”掉的5dB
前面说过馈线损耗,这里再单独点名一次。很多网关原装配套的馈线是细软线,一米损耗0.5到1dB,从机房拉到楼顶天线可能要15米,算下来7到15dB就没了。我见过一个项目,网关实际发射功率不算低,但覆盖距离只有设计的一半,最后发现就是馈线太长太细。
处理办法很简单:要么把网关尽量靠近天线,把馈线控制在3米以内;要么换低损馈线。千万别在一根线上省钱,这是整个链路里单价最低、影响最直接的“性能炸弹”。
6.2 近处终端霸占SF7导致远处终端互相踩踏
ADR跑起来之后,会出现一个隐性不平衡:离网关近的终端被切到SF7,速度快、占空小;离网关远的终端不得不留在SF12,把大量信道时间吃掉。如果容量规划只算平均值,很容易忽略那少量SF12终端的“容量黑洞”。
实际案例里,园区某个角落有3个终端因为安装位置被金属围挡遮挡,始终无法降SF,它们轮询式上报时,周围SF7终端就频繁丢包。后来处理办法是给这3个终端单独配了一个网关,物理上分流,问题立刻消失。
所以容量规划时不要只看终端总数,必须统计SF分布。如果SF10及以上的终端占比超过10%,建议考虑优化天线位置、加装网关或降低上报频率。
6.3 网关GPS天线没装好,时间频率全部漂移
有一次网络运行一段时间后,Class A上行正常,但下行控制命令经常不生效。排查后发现网关的GPS天线接头松动,网关实际已经跑在“无GPS同步”的降级模式。LoRaWAN里时间同步不光影响Class B,也影响下行接收窗口的起始时间校准。GPS天线位置尽量放在能全天看到天空的地方,安装在屋檐下或者用磁吸底吸在金属管道上,效果都会打折扣。
6.4 占空比限制在认证环境里被忽略
开发阶段电脑直接接USB供电,终端想发就发,不会触发限制。但批量部署后,按照欧盟868MHz的1%占空比规则,如果一个终端上报频率过高、airtime又大,超出占空比,可能直接违反法规,而且在实际网络中可能被网关端丢弃。
所以在量产里,上报频率和payload长度必须从设计阶段就要“砍”:周期上报能压到最低频度就压,能合并的多条数据合并成一条上行,能省的双向通信全部转成单向上报。RFM6601的payload可以做到很小,只要不做无谓的字段冗余。
6.5 丢包排查顺序清单
最后留一个排查模板。系统丢包时,我按这个顺序一条条过,比乱改参数高效得多:
- 看网关在线状态,是否频繁重启、GPS是否锁定;
- 看终端到网关的RSSI/SNR,是不是整体在临界值上下波动;
- 看SF分布,是不是大量终端挤在高SF;
- 看网关信道是否过载,8信道解调资源有没有被打满;
- 看服务器日志,确认是不是上行到了网关但网络服务器没入库;
- 看下行命令是否触发了占空比或时间漂移问题。
这个项目从去年年底跑到现在,我对RFM6601这套方案最大的感触是:远距离、低功耗、大容量从来都不是一个模组单独给的,它靠的是射频底子加上对的规划思路。RFM6601把链路预算和功耗这块底盘做扎实了,剩下的事情其实是耐心和细节:把链路算清楚、把SF分合理、把网关调稳定、把天线和供电的每个隐患排除掉。如果你正准备搭一张LoRaWAN网络,我建议你在动手部署前,先拿着这篇文章里的链路预算表算一遍,再去现场实测,大概率能少走很多弯路。