ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

深山渗压计数据回传:北斗短报文与4G双模通信方案实战

深山渗压计数据回传:北斗短报文与4G双模通信方案实战

深山里的渗压计,数据怎么传出来这件事,我前前后后折腾了快两年。最早用纯4G方案,设备装在峡谷底部,离最近基站直线距离不到三公里,但中间隔了两道山梁,信号强度常年徘徊在-105dBm以下,能连上但发不出数据,偶尔运气好传回来一包,时间戳还是乱的。后来换成纯北斗短报文,单包容量小、频次受限,渗压计这种需要连续观测的场景根本喂不饱。最后落地的是北斗短报文加4G双模通信方案,核心思路很简单:有4G走4G,没4G走北斗,两条腿走路,数据不丢。这套方案我前后在三个不同地形做了实测,从设备选型、天线布设、协议适配到功耗控制,踩过的坑不少,今天把完整思路和实操细节整理出来,给做野外安全监测、地质灾害预警、水库大坝渗流观测的同行参考。

1. 为什么单模方案在深山旷野里必然翻车

1.1 4G覆盖的物理极限与渗压计部署场景的错位

很多人选型时看运营商的覆盖地图,觉得标了"4G覆盖"就能用。实际到了现场你会发现,覆盖地图是按面统计的,而渗压计是点部署。一个测点可能正好在山体背坡、峡谷底部、或者茂密林冠下,这些位置的信号衰减和地图上那个绿色色块完全是两回事。

我做过一组实测数据,同一座山,山顶信号强度-65dBm,山腰-85dBm,谷底-108dBm。渗压计因为要测地下水位,通常埋设在坝体下游、边坡底部、河谷阶地这些低洼位置,恰恰是信号最差的地方。更麻烦的是,渗压计安装后基本不可移动,你没法像手持设备那样"找个信号好的地方站一站"。

从射频原理上讲,4G常用频段在800MHz到2600MHz之间,频率越高绕射能力越弱。深山环境里,信号传播主要靠绕射和散射,没有直射径。当第一菲涅尔区被山体遮挡超过60%时,链路损耗会急剧上升。我遇到过最极端的情况,直线距离基站1.8公里,但中间山体遮挡角超过15度,实测RSRP只有-112dBm,SINR为负值,模块能注册上网络但TCP连接根本建不起来。

1.2 北斗短报文的容量约束与渗压数据特征的不匹配

北斗短报文的问题不在覆盖,在容量和频次。民用北斗短报文的单包长度有限,早期是78个字节左右,后来部分型号支持更长报文,但相比4G动辄几百KB的传输能力,差距是数量级的。

渗压计的输出是什么?通常是振弦式或压阻式传感器,每次采集得到频率值或电压值,换算成渗压水头。单次数据量不大,但监测规范要求高频次采集,比如每小时一次甚至每十分钟一次,还要带时间戳、设备ID、电池电压、温度补偿值。这些字段加起来,一包数据轻松超过100字节。如果按小时频次,一天24包,一个月720包,纯北斗短报文的发送频次和单包容量都撑不住。

还有一个容易被忽略的点:北斗短报文的发送不是"随时想发就发"。它依赖卫星过顶窗口,虽然现在的星座覆盖已经好了很多,但在深山峡谷里,卫星仰角受限,实际可用窗口比开阔地少得多。我实测过一个谷底点位,全天有效发送窗口加起来不到4小时,而且分散在几个时段。如果渗压数据要按小时上报,纯北斗方案必然丢数据。

1.3 双模不是简单叠加,而是链路层的智能切换

很多人理解的双模就是"装两个模块,哪个有信号用哪个"。真做起来远没这么简单。核心难点在于:切换判据怎么定?切换时机怎么选?切换过程中数据怎么保证不丢?

我见过一些方案用信号强度做判据,RSSI高于某个阈值就走4G,低于就走北斗。实际跑下来问题很大:信号强度是瞬时值,山区信号波动剧烈,可能这一秒-85dBm,下一秒就掉到-100dBm。如果频繁切换,两个模块都处于反复唤醒状态,功耗飙升,而且每次切换都要重新建链,数据发送成功率反而下降。

更合理的做法是用"链路可用性"做判据,而不是"信号强度"。具体说,就是定期尝试建立4G的TCP连接,如果能建连并完成一次心跳交互,就认为4G链路可用;如果连续N次建连失败,才切到北斗。这个N不能太小,我一般设3次,避免因瞬时波动误判。同时,北斗链路保持"待命"状态,不主动发送,只在4G确认不可用时才启用。

2. 双模通信终端的硬件选型与天线布设细节

2.1 主控与通信模块的搭配逻辑

这套方案的核心硬件是一台低功耗数据采集终端,内部集成4G模组和北斗短报文模组。主控我选的是STM32L系列,看中的是低功耗模式下电流能压到微安级,因为野外设备靠太阳能加蓄电池供电,功耗直接决定续航。

4G模组选型上,我试过几款。早期用的一款国产Cat.1模组,成本低,但在弱信号下的表现不稳定,-100dBm左右就频繁掉网。后来换成Cat.4模组,灵敏度好一些,但功耗上去了。最终落地用的是支持PSM和eDRX的Cat.1模组,在弱信号下能保持注册,同时通过PSM模式把待机功耗压下来。这里有个经验:不要只看模组的标称灵敏度,要看它在实际网络下的"保持注册"能力。有些模组标称-108dBm能解调,但在这个电平下早就脱网了,根本谈不上保持。

北斗短报文模组选的是支持RDSS短报文功能的型号,重点看两个参数:发射功率和接收灵敏度。发射功率一般标称几瓦,但实际天线效率很关键,后面会讲。接收灵敏度决定了在弱信号下能不能收到下行确认,这个参数比发射功率更容易被忽略。

2.2 天线布设:比选型更容易翻车的环节

天线是这套方案里最容易被低估的部分。我见过太多案例,设备选型没问题,协议调通了,现场一装就是发不出去,最后查出来是天线布设的问题。

4G天线方面,深山环境建议用高增益定向天线,而不是全向天线。全向天线增益一般2-3dBi,定向天线可以做到8-12dBi。别小看这10dB的差距,在弱信号下就是"能连"和"不能连"的区别。定向天线要对准基站方向,这个方向需要现场用测试手机或扫频仪确定,不能凭感觉。我一般会先用一部工程手机装信号测试软件,沿着测点周围走一圈,找到信号最强的方向,再把定向天线固定上去。

北斗天线方面,关键是"看天"。北斗信号来自上空,天线需要尽可能开阔的视野。深山峡谷里,天线要架设在测点上方的制高点,比如立一根杆子把天线举高,避开树冠和岩壁遮挡。我实测过,同样一个点位,天线放在地面时北斗发送成功率不到30%,举高5米后成功率提到85%以上。这个提升幅度远超预期,值得在施工时多花力气。

还有一个细节:4G天线和北斗天线要保持足够间距,一般建议大于1米。太近的话,4G发射时的谐波可能落入北斗接收频段,造成干扰。我遇到过一例,两个天线并排装在一个支架上,北斗接收灵敏度直接下降6dB,分开后就正常了。

2.3 供电与防护:野外设备的生存底线

深山旷野的供电方案基本就是太阳能板加蓄电池。太阳能板功率要根据当地日照条件和设备功耗算。我一般按"最差日照月"来设计,比如冬季日照只有3小时有效,设备日均功耗0.5Wh,那太阳能板至少要选3W以上,再留一倍余量。

蓄电池选磷酸铁锂,循环寿命长,低温性能比铅酸好。容量按连续阴雨天7天供电来算,这是行业里比较稳妥的做法。如果当地连续阴雨超过7天,要么加大电池,要么降低采集频次。

防护方面,机箱至少IP65,接头全部用防水接头,天线接口做防水处理。我踩过一个坑:机箱防水没问题,但天线馈线接头没做防水,一场雨后接头进水,驻波比恶化,4G和北斗同时失效。后来所有室外接头都缠防水胶带加冷缩管,再没出过问题。

3. 双模切换策略与数据补传机制的实现

3.1 链路健康度评估:别用RSSI做唯一判据

前面提过,用RSSI做切换判据不靠谱。我实际用的是一套组合判据,核心是"链路可用性评分"。

具体实现上,终端每隔一段时间(我设的是15分钟)做一次链路探测。探测内容包括:4G模组是否注册成功、PDP激活是否正常、能否与服务器建立TCP连接、心跳包是否在超时时间内返回。这四项全部通过,才认为4G链路健康。任何一项失败,记录一次失败计数。连续3次探测失败,才触发切换到北斗。

这个"连续3次"的设计很关键。山区信号波动大,单次失败可能是瞬时遮挡,比如一只鸟落在天线上都能导致一次失败。连续3次失败,时间跨度45分钟,基本可以排除瞬时因素。

北斗链路这边,不主动做健康探测,因为北斗发送本身耗电且占用卫星资源。北斗只在4G确认不可用时启用,启用后按预设频次发送数据,同时继续尝试恢复4G。一旦4G恢复健康,切回4G,北斗回到待命状态。

3.2 数据缓存与补传:确保一包不丢

双模切换过程中,最怕的是数据丢失。比如4G断了,切到北斗,但北斗发送频次低,这期间采集的数据怎么办?答案是本地缓存加补传。

终端内部要有一块非易失存储,我一般用SPI Flash,容量不用太大,几MB就够存几个月的渗压数据。每次采集后,数据先写入缓存,标记为"待发送"。4G健康时,按正常频次发送,发送成功后标记为"已发送"。4G不可用时,数据继续缓存,北斗按自己的节奏发送,优先发送最新的数据,同时逐步补发历史缓存。

这里有个策略选择:北斗补传时,是优先发最新数据还是优先发最老数据?我的做法是优先发最新数据,因为监测场景下最新数据价值最高,历史数据可以慢慢补。但要注意缓存不能无限增长,要设一个上限,比如存满80%后开始覆盖最老的数据,同时产生一条告警记录,提示运维人员关注。

补传的确认机制也要设计好。北斗短报文的下行确认不是百分百可靠,发送后要等待确认回执。如果超时未收到回执,标记为"待重发",下次窗口再发。重发次数要设上限,比如5次,超过后标记为"发送失败",避免无限重试占用资源。

3.3 协议适配:把渗压数据塞进短报文

渗压计的数据要经过编码才能通过北斗短报文发送。原始数据包括传感器频率值、温度值、时间戳、设备ID、电池电压等。如果直接按文本格式发,一包轻松超过100字节,北斗短报文装不下。

我的做法是自定义一套二进制协议,把数据压缩到最短。具体来说:设备ID用2字节,时间戳用4字节Unix时间,频率值用4字节浮点,温度用2字节整数(放大10倍存),电池电压用1字节(放大10倍存),再加1字节校验。总共14字节,加上协议头和尾,一包控制在20字节以内,远低于北斗短报文的容量上限。

这样做的好处是,即使北斗短报文的容量有限,也能一包发完所有关键数据,不需要分包。分包在北斗链路上是很麻烦的事,因为每个包都要等窗口,分包会成倍增加发送时间。

4G链路上则可以发更丰富的数据,比如原始波形、诊断信息等,这些数据量大但不紧急,走4G更合适。所以协议设计上,我做了两套编码:精简版走北斗,完整版走4G。服务器端根据来源标识自动解析。

4. 现场调试与长期运行中的真实问题记录

4.1 调试阶段:怎么确认北斗链路真的通了

北斗短报文的调试比4G麻烦,因为你看不到"信号强度"这种直观指标。我的调试流程是这样的:

第一步,确认北斗模组能正常上电、自检通过。这一步看模组的串口输出,一般会有自检信息。

第二步,确认天线连接正常。用驻波比测试仪测一下,驻波比大于2就要检查天线和馈线。这一步很多人跳过,但天线没接好是北斗发送失败的最常见原因。

第三步,做一次短报文发送测试。发一条测试报文到自己的管理平台,看能否收到。这里要注意,北斗短报文的发送不是即时的,要等卫星窗口。我一般会等5到10分钟,如果还没收到,再检查。

第四步,确认下行确认能收到。发送成功后,北斗系统会返回一个确认回执。如果收不到回执,可能是接收通道有问题,要检查天线接收方向。

我踩过一个坑:调试时在室内做,北斗完全没信号,以为是设备问题,折腾了半天。后来搬到室外开阔地,一切正常。北斗调试必须在室外,而且要在视野开阔的地方,这一点没有捷径。

4.2 长期运行:那些慢慢浮现的问题

设备装上去只是开始,长期运行才是考验。我记录了几个典型问题:

第一个是天线老化。室外天线经过日晒雨淋,馈线接头容易氧化,导致驻波比升高。我现在的做法是每年雨季前巡检一次,测驻波比,超过1.8就处理。

第二个是蓄电池衰减。磷酸铁锂虽然寿命长,但在高温环境下容量衰减会加速。机箱如果暴晒,内部温度能到60度以上,电池寿命直接减半。后来我给机箱加了遮阳板,内部温度降了15度左右,电池状态明显好转。

第三个是4G网络的变化。运营商可能调整基站参数,或者附近新建了建筑物遮挡,导致原本健康的4G链路变差。双模方案的好处在这里体现出来:4G变差后自动切北斗,数据不丢,运维人员有时间去现场排查。

第四个是北斗窗口的季节性变化。卫星轨道和遮挡角的关系会随季节变化,某些点位在冬季窗口特别短。我在设计采集频次时会留余量,比如按冬季最差情况设计,夏季自然没问题。

4.3 一个真实的切换失败案例复盘

去年有个点位,4G和北斗都配了,但连续一周数据没上来。远程排查发现,终端一直在尝试4G,但4G链路始终不健康,按理说应该切北斗,但没切。

后来去现场查,发现是切换逻辑的一个边界条件没处理好:4G模组在弱信号下会反复"注册-脱网-再注册",每次注册成功都会触发一次链路探测,探测失败后失败计数加一,但注册成功又把计数清零了。结果失败计数永远到不了3,切换永远不触发。

修复方法很简单:把失败计数的清零条件改成"链路探测成功",而不是"模组注册成功"。模组注册成功但探测失败,计数继续累加。改完后,切换逻辑正常了。

这个案例说明,双模切换的逻辑不能想当然,要在真实网络环境下反复测试。实验室里信号稳定,很多边界条件暴露不出来。

5. 功耗预算与采集频次的平衡方法

5.1 各模块的功耗账要算清楚

野外设备靠太阳能供电,功耗预算必须精打细算。我把各模块的功耗列了个表,方便大家参考:

模块工作状态电流说明
主控运行8mA采集和运算时
主控休眠5uA待机时
4G模组传输120mA平均,峰值更高
4G模组PSM待机10uA保持注册
北斗模组发射1.5A瞬时,持续几秒
北斗模组待机20uA不发射时
传感器激励15mA采集瞬间

从表里能看出来,北斗发射的瞬时电流很大,但持续时间短。4G传输的电流中等但持续时间长。所以功耗优化的关键是:减少4G传输时间,减少北斗发射次数。

5.2 采集频次与发送频次的解耦设计

很多人把采集频次和发送频次设成一样,比如每小时采集一次就每小时发一次。这样功耗很高,而且没必要。

我的做法是解耦:采集可以高频,比如每15分钟一次,数据存本地;发送可以低频,比如每2小时打包发一次。这样既保证了数据密度,又降低了通信功耗。渗压变化是缓变量,15分钟采集一次已经足够捕捉变化趋势,发送频次低一些不影响监测效果。

如果4G健康,可以适当提高发送频次,因为4G传输功耗相对可控。如果切到北斗,发送频次自动降低,比如每4小时一次,优先保证关键数据上报。

5.3 太阳能板与电池的匹配计算

供电设计不能拍脑袋。我一般按以下步骤算:

第一步,算日均功耗。把各模块的工作电流乘以工作时间,加起来得到日均mAh。比如4G每天传输2小时,120mA乘2等于240mAh;北斗每天发射10次,每次5秒,1.5A乘5秒乘10次除以3600约等于20.8mAh;主控和其他算50mAh。合计约310mAh。

第二步,算太阳能板功率。按最差日照3小时算,需要补回310mAh,加上充电效率0.7,实际需要310除以0.7约443mAh。太阳能板在3小时内要发443mAh,对应功率约443mAh除以3h等于148mA,按3.7V算约0.55W。考虑余量,选3W板子足够。

第三步,算电池容量。按连续7天无日照,需要7乘310等于2170mAh。考虑电池放电深度不超过80%,实际需要2170除以0.8约2712mAh。选3.7V 5000mAh电池,余量充足。

这套算法不复杂,但很多人跳过这一步,导致现场供电不足。我建议在选型阶段就把这笔账算清楚,比现场返工划算得多。

6. 这套方案适合什么场景,不适合什么场景

6.1 最适合的场景特征

这套双模方案不是万能的,它有明确的适用边界。最适合的场景有几个特征:

一是4G覆盖"时好时坏"而不是"完全没有"。如果完全没有4G,那纯北斗方案更简单,不需要双模。双模的价值在于利用4G的高带宽和低成本,同时用北斗兜底。

二是数据实时性要求中等。如果要求秒级上报,北斗满足不了,得想别的办法。渗压监测一般是分钟级到小时级,双模完全够用。

三是供电受限但有一定日照条件。如果完全无日照,比如深谷底部常年不见太阳,那太阳能方案不成立,得考虑其他供电方式。

四是测点数量不多但分散。双模终端成本比单模高,如果测点密集,可以考虑集中采集再统一回传,降低单点成本。

6.2 需要谨慎评估的场景

有些场景用这套方案要谨慎。比如极寒地区,电池性能下降严重,北斗模组的发射性能也可能受影响,需要选低温型号并加大电池余量。

再比如强电磁干扰环境,比如附近有大功率发射台,4G和北斗都可能受干扰,需要做频谱测试再定方案。

还有一种情况是测点位于国境线附近,北斗短报文的使用有特定管理要求,这个要提前了解清楚,避免合规问题。

6.3 成本与运维的账怎么算

双模终端的硬件成本比单4G终端高不少,主要高在北斗模组和天线。但从全生命周期看,如果单4G方案因为数据丢失导致需要频繁现场运维,那个成本更高。深山里的运维出一趟车,人工加车辆成本可能就超过终端差价了。

我的经验是,如果测点位于4G覆盖边缘区域,且现场运维困难,双模方案的性价比很高。如果测点就在基站附近,4G稳定,那单4G方案更经济。

运维方面,双模方案的一个好处是远程可诊断。通过4G链路可以远程查看终端状态、北斗链路状态、电池电压等。即使4G断了,北斗也能回传关键告警。这种"双通道可观测性"对降低运维成本很有帮助。

7. 几个容易被忽略的实操细节

7.1 北斗短报文的发送确认不是百分百可靠

很多人以为北斗短报文发出去就完事了,其实下行确认可能丢失。如果终端依赖确认来决定是否重发,那确认丢失会导致重复发送。我的做法是给每条数据加唯一序列号,服务器端做去重。这样即使重复发送,也不会导致数据重复入库。

7.2 4G模组的PSM模式要配合服务器心跳

PSM模式下,模组大部分时间在休眠,服务器无法主动下发指令。如果服务器有心跳超时机制,可能会误判设备离线。解决办法是让服务器端适配PSM设备的特性,把心跳超时时间设长一些,或者由终端在PSM唤醒时主动上报状态。

7.3 天线馈线长度要控制

馈线越长,损耗越大。400MHz频段每米损耗约0.1dB,1.5GHz频段每米损耗约0.2dB。如果馈线超过10米,损耗就很可观了。我的做法是尽量把终端靠近天线安装,馈线控制在5米以内。如果必须长距离,就用低损耗馈线,或者把终端装在天线附近,用数据线延长到机箱。

7.4 防雷不能省

深山里的雷击风险比城市高得多。天线在制高点,最容易引雷。我一般会在天线馈线入口加装避雷器,机箱做接地。接地电阻要小于10欧姆,这个在岩石地面不好做,需要打接地棒加降阻剂。别省这个钱,一次雷击可能损坏所有设备。

7.5 数据时间戳要统一

双模切换时,4G和北斗的数据可能来自不同时间。如果时间戳不统一,服务器端拼出来的数据序列就是乱的。我的做法是终端统一用RTC时间戳,每次采集时打时间戳,不管走哪条链路,时间戳都是采集时刻的时间。RTC要定期对时,4G健康时通过NTP对时,北斗也可以提供授时,双保险。

这套方案我在三个项目上跑了两年多,最长的点位连续运行超过18个月,数据完整率在99%以上。中间出过几次问题,基本都是天线和供电相关的,通信逻辑本身很稳定。如果你也在做类似场景,建议先把链路健康度评估和数据缓存补传这两块做扎实,这两块是双模方案的核心,做不好,双模就是摆设。天线和供电是现场最容易翻车的地方,选型阶段多花时间,现场少跑几趟。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进