4G模块非必要,不关机!关机建议先进飞行模式
给4G模组VBAT断电关机,模组关机前未能及时退出当前基站,会有什么影响呢?
基站会误以为设备还在线,下次开机仍会拿着上次驻网信息去连基站。基站一看,上次链接还在——认为你是非法设备,拒绝链接!
时常有客户朋友反馈:
4G模组,模组重启完成,注册不上网。
在这里详细记录下复现问题的过程、问题产生的原因以及规避方法,并提供一些比关机重启更好的办法,希望能帮到类似情况的朋友们。
以下是常见的四种关机重启情况:
1. 功耗原因关机重启
客户反馈:
自己对功耗特别看重,需要极低的功耗,所以关机。在需要启动的时候,再给模组上电。
对4G模组来说:
主要的耗电大头在于刚开机驻网那一下,以及发送数据时候。
所以,如果你的应用不会出现频繁发数据(低于一小时一次)给服务器,那么是可以通过关机来降低功耗的。
但是这种降低功耗的手段,还不是最优解。
如果你一天发送数据多于4次,那么还有一种更好的方法来降低功耗——那就是用合宙的低功耗解决方案。
2.网络原因关机重启
客户反馈:
我们的设备处于网络状态不太好的地方,在遇到网络不好的时候,我就重启自己设备,重新让模组驻网。
重新驻网的逻辑其实模组内部也是有的,大多数情况下,不需要应用层做断网处理。如果用户对消息的及时性和准确性有要求,可以将模组与服务器的心跳间隔设置短一点。
3.续费原因关机重启
客户反馈:
有时候会因为自己续费不及时,导致SIM卡到期未续费,被停机,所以自己代码中做了处理,连不上网XX秒就断电再上电。
如果你很频繁地断电再上电,电源部分PCB设计如果有不完善的地方,很有可能出现超过VBAT最大电压的脉冲,进而导致模组损坏。
而且,模组内部SDK其实针对SIM卡未及时续费这种情况也做了一些处理。即使你什么都不做,到期两三天内续费成功,模组也会在10-30分钟内注册上网络,不用担心模组连不上网的问题。
4.服务器原因关机重启
客户反馈:
我们连的是客户服务器,客户服务器不稳定,时而能连时而不能连,所以在服务器连不上后,我们会断电重启模组,尝试看看能不能连上。
模组驻网(连接4G基站)没什么问题,只是连接服务器失败,可以做一些重连处理,而不是频繁的去断电再上电。
如果以一个很频繁的速度(一分钟10次这种速度)去驻网,很有可能被基站认为是非法用户,导致基站内部防护策略生效,让模组再也连不上基站。
在这里可以推荐一种重连策略:
如果驻网正常,只是连接服务器异常,可以按照2^(n-1)S 的时间间隔去重连服务器。
例如:1S 2S 4S 16S 32S 64S…
当然,需要一个最大上限时间,例如10分钟。没有最大上限的话,可能导致服务器已经好了,而模组重连时间过长,导致数据不能及时送达。
如果超出最大上限时间,服务器依旧连不上,再进出飞行模组几次(进出飞行模式的速度也不应过快,过快也有可能被基站认为是非法用户)。
如果依旧注册不上网络,再考虑给模组断电,然后重启模组。
综上所述:
——其实大多数情况,没必要给模组进行关机措施。频繁开关机,还有可能导致模组功耗异常或者注册基站都注册不上等问题。
如果需要进行关机:
——建议还是关机前先进飞行模式,主动和当前基站进行一个注销的操作。