如果你最近用搜索引擎查过 LoRa 这个词多半会看到前几页里有大半在讲 AI 领域的大模型微调方法剩下那一小撮才是无线通信里的远距离低功耗收发。巧的是LoRa 和 LoRA 刚好撞名前者是 chirp 扩频调制后者是机器学习里的 Low-Rank Adaptation完全两码事。我平时做 LoRa 网关开发这几年最关注的其实是标题里那类产品消息参考设计让 LoRa 网关实现了边发边收的全双工能力。最近我正好在调一块基于 SX1302 加双 SX1250 的全双工网关参考设计板从硬件通路、射频隔离到实测数据的链路都完整走了一遍踩了不少典型的坑。这篇就把整个技术链路拆开讲清楚给正在做 LoRaWAN 网关选型、自研或从半双工平台往上升级的朋友做个参考。1. 先理清两个 LoRA再看全双工网关到底解决什么问题1.1 同一个词完全不同的世界LoRa 和 LoRA 在中文互联网里被混在一起搜是这两年挺常见的事情。AI 那边的 LoRA 是微调大模型时用的一种低秩矩阵分解方法主要作用是降低训练成本射频通信这边的 LoRa 则是 Semtech 推出的远距离低功耗扩频技术工作频率通常在 Sub-GHz 频段。之所以开篇先讲这个是因为我在这篇里提到的所有内容都是射频通信方向的 LoRa如果读者是冲着 AI 微调教程来的现在可以跳转了。说回正题。LoRa 之所以能在物联网领域站住脚靠的是高灵敏度、低功耗和强穿透力。它用 Chirp 扩频调制接收机可以把信号从噪声里捞出来灵敏度能做到 -130 dBm 甚至更低。但也因为这种物理层特性它的带宽很窄典型是 125 kHz。窄带带来的直接问题是一旦接收链路被强干扰顶住解调性能会断崖式下降而不是像宽带系统那样慢慢劣化。所以在 LoRa 网关设计里全双工从来不是单纯加一个射频开关就能实现的功能它牵涉到收发链路的完整重构。参考设计能把它落地本身就是硬件架构的一次升级。1.2 半双工网关的瓶颈到底在哪传统 LoRaWAN 网关以 SX1301 为核心它支持 8 个上行通道和 1 个下行通道但整个射频前端是半双工的。SX1301 通过一颗射频开关在发射和接收之间切换发射时接收链路完全关闭LNA 断电天线切到 PA 路径。也就是说网关发射下行帧的这几百毫秒里任何节点上报的数据包都收不到。这个瓶颈在 LoRaWAN 的实际业务里会造成什么后果来看三类最常见的下行数据Class A 节点上报后的 ACK、Class C 设备的实时下行控制命令、以及多播 FOTA 升级的数据块。当一个网络里有几百个 ABP 节点每几分钟上报一次网络服务器几乎在持续回复 ACK。如果服务器发 ACK 的时机刚好撞上另一个节点上报比如某个瞬时大量节点同时上报网关下行占用的时间片越长上行丢失的概率就越大。设备丢了 ACK 会进入重传重传又增加上行负载进一步加剧冲突。这个恶性循环在传统半双工网关上很难靠软件优化来根治。1.3 哪些业务场景最需要全双工不是所有 LoRaWAN 场景都需要全双工但以下三类是我实际接触下来对全双工需求最迫切的大规模电池供电传感器网络。服务端对每个上报包都回 ACK下行密度高半双工网关上行驶包率会明显上升。定位系统。网关需要同时接收多个节点的信标测量又要在下行方向发送时间同步帧。TDoA 定位对时间戳精度和收发连续性要求极高半双工很难两全。FOTA 升级。多播广播持续占用下行信道一个 100 字节的固件块发完往往要几十毫秒整个升级过程可能持续几小时。普通网关在这期间几乎放弃了上行接收。判断自己的业务是否需要全双工一个简单标准是统计网关上每天的下行发射总时长如果超过 5%就有必要考虑全双工方案了。2. 参考设计拆解SX1302 如何把收发通路拆成两条2.1 双前端架构从根上解决半双工限制SX1302 是 Semtech 在 SX1301 之后的网关基带芯片最大的变化之一就是可以同时连接两颗 SX1250 射频前端。参考设计的核心思路正是把这两颗 SX1250 用起来Radio 0 固定做上行接收Radio 1 固定做下行发射。基带芯片内部有独立的接收和发射流水线两路射频前端各自走各自的链路所以边发边收在硬件层面是可行的。这里说的全双工和 5G 里的同频同时全双工还不是一个概念。LoRa 网关参考设计采用的是频分思路也就是发射和接收分别工作在相隔足够远的频点上靠频率隔离加空间隔离来避免自干扰。这对于 LoRaWAN 的部署场景来说已经够用了。更直白地说参考设计让网关在发射下行帧时接收链路仍然是活的不再因为发射而完全失聪。实际拆解板卡的时候能看到参考设计在射频布局上和 SX1301 的板子有明显区别。SX1301 板通常是一颗前端芯片加一个射频开关天线只有一路SX1302 参考设计板上则是两颗 SX1250 各自接自己的收发链路天线接口有两个一个标 TX一个标 RX。接收链路 LNA 和发射链路 PA 完全独立不再共享。2.2 关键器件与链路安排我把自己整理的器件清单列一下方便对照参考设计原理图模块器件/作用注意事项基带处理器SX1302负责 LoRa 调制解调和信道聚合通过 SPI 与 Host 通信空闲时钟必须稳射频前端2 颗 SX1250一颗 RX、一颗 TX工作频率范围宽但要用对配置频点发射链路PA 低通滤波典型输出功率 20 dBmPA 供电要单独走线接收链路LNA 带通滤波器带外抑制能力决定全双工隔离上限参考时钟TCXO 32 MHz两颗 SX1250 共用温漂直接影响链路质量定位/同步GPS 接收机提供 PPS给收发数据包打高精度时间戳从工程角度看参考设计最值得借鉴的是它对接收链路滤波的处理。在只有接收功能时带通滤波器只要保证本频段通过就行但在全双工场景下这个滤波器还要对发射频点提供足够大的抑制。所以参考设计里的接收滤波器不是随便选一颗窄带 SAW 就能行的要看它对目标发射频率的抑制度指标。2.3 软件配置HAL 里怎么切到全双工硬件只是基础真正把全双工跑起来还要靠软件配置。Semtech 提供的 sx1302_hal 代码包里packet forwarder 的配置文件是 global_conf.json里面每个 radio 都有tx_enable参数。默认情况下 radio 0 开着发射功能适合单天线半双工板。要跑全双工需要把 radio 0 的tx_enable设成 false让它只做接收把 radio 1 的tx_enable设为 true下行报文统一走 radio 1。这个配置改了之后建议重新编译一遍 HAL。我第一次改的时候只改了 json 没重新编译结果 radio 1 的配置没真正生效下行包还是从 radio 0 发出去了接收链路当场被打死。后来 clean 一次再编问题就消失了。如果你也遇到改了配置没反应的情况先检查编译缓存。2.4 为什么不用两片 SX1301 做伪全双工有的人可能会问既然全双工需要一条独立发射链路和一条独立接收链路那我用两片 SX1301一片专门发射、一片专门接收是不是也能实现一样的效果能做但工程代价很高。第一两片基带各自维护自己的频率参数和时基时间同步要靠外部对表误差精度远不如单芯片内部协调。第二Host 软件要跑两套 packet forwarder 实例端口、心跳、状态管理都要额外开发。第三物料成本反而比一颗 SX1302 加两颗 SX1250 更高。SX1302 参考设计的核心价值在于把两条链路放进了同一颗基带和同一套 HAL硬件和软件都是单份收口同步天然统一。这也是标题里用 Reference Design 强调设计本身推动了全双工落地的原因。3. 同步收发第一关隔离度计算与频段规划3.1 发射泄漏会吃掉多少接收余量全双工最大的敌人不是远处的外来干扰而是自己发射的信号。举一个典型链路估算的例子假设网关以 20 dBm 发射功率工作接收灵敏度要做到 -130 dBm两者之间差了 150 dB。如果接收天线和发射天线之间有 30 dB 的隔离接收滤波器对发射频率点再提供 50 dB 抑制泄漏到 LNA 输入端的电平大约是 20 - 30 - 50 -60 dBm。这时候再看接收机本底噪声。SX1250 在 125 kHz 带宽下的底噪大约是 -174 dBm/Hz 3 dB 噪声系数 10log10(125000) ≈ -120 dBm。泄漏比底噪高了整整 60 dBLNA 会被直接压得失去增益带内有用信号全部被淹没。这个计算说明一个残酷的事实靠单一手段很难拿到足够的隔离必须多管齐下。3.2 参考设计规避自干扰的三板斧参考设计实际采取的是组合方案本质上是把隔离需求拆成三份让每一份都变得可行频段规划把下行发射信道固定在与上行接收信道相隔至少 5 到 10 MHz 以上的频点。以国内常用的 470-510 MHz 规划为例可以安排上行集中在 470-490 MHz下行放在 500-510 MHz。频率拉开了滤波器过渡带的抑制效果才会明显。天线空间隔离参考设计默认使用两根独立天线。两根天线在空间上拉开的距离越远、极化方式成 90 度夹角隔离度越好。理想安装条件下可以拿到 30-40 dB好一点的安装能到 45 dB。两级滤波接收链路在 LNA 前放一级带通滤波器LNA 后再插一级滤波把残余的发射泄漏再压一轮。这三板斧缺一不可。如果只靠频率规划不强求天线隔离泄漏电平还是很容易把 LNA 打饱和。如果只靠天线距离不安排频点间隔带外滤波也无从谈起。3.3 为什么 LoRa 全双工没有走同频同时路线学术界和工业界并不是没有尝试过 LoRa 同频同时全双工思路是在接收机里重构自己的发射信号再从混合信号里把干扰扣掉也就是模拟加数字的自干扰消除。但 LoRa 的带宽只有 125 kHz设备成本、功耗和体积预算都非常紧张在网关级别做一套高品质干扰消除电路BOM 成本会明显上升而且对 PCB 布局和器件的非线性要求极高。相比之下利用频谱隔离的工程方案实现简单、可靠性高代价只是多规划一个下行频点。从产品化的角度这是更划算的取舍。4. 实测记录下行压力下全双工网关的上行存活率4.1 测试平台怎么搭我用的是一块基于 SX1302 加双 SX1250 的参考设计板天线端是双 SMA一根接 TX 天线一根接 RX 天线。终端是两个 SX1262 节点节点 1 固定每 10 秒上报一条数据节点 2 用来触发网关下行。网关侧跑的是 sx1302_hal 里的 lora_pkt_fwd连接 ChirpStack 网络服务器。测试开始前先用 HAL 自带的 util_tx_test 和 util_rx_test 分别验证发射和接收链路是否正常。这里有个参考设计板的常见问题默认配置里 radio 0 和 radio 1 的频率是同一个值直接跑全双工会把接收链路直接打崩。要按前文说的 tx_enable 配置把 radio 0 改成纯接收radio 1 改成纯发射并把两个 radio 的频点拉开。4.2 半双工与全双工的上行成功率对比下行压力用服务端对节点 2 连续下发数据的方式制造统计节点 1 的上行成功率。我这边一组典型的实测数据如下下行压力半双工模式上行成功率全双工模式上行成功率0 pps99%99%5 pps92%98%10 pps85%97%30 pps64%96%50 pps47%95%样本量不是特别大但趋势非常清晰。半双工模式下下行压力一旦超过 10 pps上行成功率就开始明显下滑到 50 pps 时基本接近扔硬币。全双工模式下虽然也会因为残余干扰有轻微波动但上行成功率始终维持在 95% 以上。这说明参考设计通过频率隔离和天线隔离确实把自干扰压到了不影响实用的程度。4.3 从 RSSI/SNR 看收发互扰测试时我重点盯了节点 1 上报帧的 SNR。半双工空闲时SNR 大约是 9 dB。全双工模式下网关开始发射下行帧的瞬间SNR 会掉到 7 dB 左右发射结束又回到 9 dB。这个 2 dB 的劣化就是残余泄漏对接收性能的影响属于可以接受的范围。如果在你的参考设计板上测出 SNR 掉到 0 dB 以下那基本可以判断是隔离度不够。排查顺序应该是先看天线安装和极化再看接收滤波器对发射频点的抑制最后看频点间隔是不是太近。不要一上来就怀疑 SX1250 硬件本身全双工系统的性能短板通常都在射频前端。5. 移植量产的四个硬坑时钟、杂散、天线隔离、热5.1 时钟同步两路前端共用参考的指标要求SX1302 的两颗 SX1250 共用一路 32 MHz 参考时钟全双工模式下这个时钟的稳定度会被放大。我在室内测试时用普通晶振都看不出问题后来把板子放到室外抱杆箱里白天太阳一晒温度上升下行发射频谱出现可观察的劣化接收解调的误码率也轻微上升。参考设计板出厂默认的是 TCXO但如果你要自己做兼容设计建议选 ±0.5 ppm 以内的 TCXO并在固件里做必要的温度补偿。5.2 杂散与互调全双工对频谱合规的放大效应全双工板子和半双工板子的一个显著差异是半双工板在发射时接收链路是断电的而全双工板在发射时接收链路必须保持激活。这样一来PA 输出端的非线性产物可能通过空间耦合进入接收天线产生互调干扰。做无线电型号核准的杂散测试时多一根发射天线、多一路 LNA结果都可能跟半双工板完全不同。量产前一定要把 30 MHz 到 1 GHz 频段的杂散情况完整测一遍不要拿半双工的老测试数据直接替代。5.3 天线隔离不足时的补救顺序现场安装条件往往不理想抱杆上空间有限两根天线没办法拉得很远。这时候补救顺序建议这样做调整极化方向让 TX 和 RX 天线呈 90 度垂直极化一般能多拿 10-15 dB 隔离。在两支天线之间加一块金属屏蔽隔板相当于增加一个方向性阻挡。在下行发射链路上串接一颗更窄的带通滤波器把杂散和带外噪声压住。如果还是不够只能重新做下行频点规划把收发间隔拉得更大。我遇到过一种情况天线间距只有 20 厘米垂直极化后隔离度从 22 dB 提高到了 33 dB配合接收端两级滤波整机性能刚好达到全双工可用标准。这种现场调优的经验参考设计的文档里通常不会细讲但实际部署时非常重要。5.4 功耗与散热多一路 PA 的代价全双工对功耗的提升不只是多了一路 PA 发射那么简单接收链路必须在发射时保持供电和全性能。半双工板在发射期间可以关闭 LNA 电源来省电全双工不能这么做所以整板平均功耗会比半双工高出不少。做户外太阳能供电方案时要把这部分增量算进电池容量和太阳能板功率。PA 长时间发射时散热片和外壳开孔设计也要提前考虑否则连续 FOTA 升级几小时后板子表面温度可以轻松超过 70 度。6. 终端侧的连锁反应CAD 模式与下行窗口的省电机会6.1 节点仍是半双工但下行机会变多了LoRa 终端物理层是半双工的这一点不会因为网关全双工而变化。但网关侧的改动会直接传导到终端体验以前因为网关发射而漏掉的 ACK现在大概率能收到终端减少重传意味着整网功耗下降。对于电池供电的节点这是一个隐形的利好。网关全双工还让网络服务器在调度上获得更多自由度。服务器不再需要尽量避免在网关发射期间安排上行调度Class A 的下行窗口命中率会更高。对用户来说最直观的感受是同样的上报间隔和发射功率