关于900C服务器向模块发数据问题、
我做的DTU,用的AT%IOMODE=1,1,1模式。服务器向模块发送数据,当发送七八组数据时,然后模块就接收不到了。返回错误4 内存申请失败或者BUFFER已经使用完,这是怎么回事啊?谁知道? 这种情况一般出现在网络较为复杂情况。TCP数据包发不出去,TCP数据缓冲满了。
最好把你的AT命令流程贴出来或者直接联系我! AT+CGDCONT=1,"IP","CMNET"
at%etcpip
AT%IPOPEN="UDP","117.89.57.15",12345
就这样,其他都是默认的,没动。
模块向服务器发送数据正常。但是服务器向模块发送几个数据后,然后模块就收不到了。
这时候,模块也不能向服务器发送数据。有时候需要等待一段时间,然后又正常,有时候就一直死掉。
我没用打开缓存,模块是直接把接收到的数据通过串口发送给单片机。 UDP最好将对端和本端端口号都指定。
UDP在接收服务器数据时,也要每隔几十秒向服务器发送数据,GGSN对端口的动态映射超时机制有可能仅仅在GPRS发送时才清计数器,接收未必会清,当该计数器溢出时,GGSN收回分配给GPRS的临时端口映射。此时没有了映射,服务器的数据到达不了模块,尽管模块的协议栈还在正常运行。同样,这时模块再发送数据,由于没有映射,GGSN要重新分配,在重新分配生效前数据是不会发送成功的,这样用户数据滞留在模块内部缓冲区中,如果用户还在不断申请发送数据,就会出现ERROR 4错误,这个错误是内部协议栈缓冲区满的标志。
这个错误和TCP发送窗口满错误没有关系。 苹果猫,你讲的跟我的现象一摸一样。为什么我用别人的DTU,他们用UDP的时候,服务器一直发数据,GPRS模块不向上发数据,就不会出现我这种问题呢,他们是怎么解决的呢? 还有,会不会是因为我没用AT%IOMODE 去开缓存,读数据造成的呢,我是直接让模块接收到数据,就传给单片机,没用缓存储存数据。 原来你是UDP状态下接收数据啊!
模块端需要不停的发送心跳包。
例如n秒发一个UDP数据包。服务器端收到数据后n秒内可以对相应终端的IP地址端口号发送数据,超过n秒对应的终端IP和端口号作废。
n建议取值30s。 回:QQ1013182577 y
不是心跳包的问题,我刚上线的时候,服务器给模块发一组数据,能收到,有时候发第二组的时候,就收不到了。 回:Appcat 苹果猫
你的意思,主要是说明心跳包的问题,我的这个问题不是出现在心跳包上。
而是在线的时候,服务器下发多个数据,感觉模块就接收不了了。 1.你的服务器如何设置?
2.当你感觉终端接收不对时。你的终端再发数据,能否发送到服务器? 回:QQ1013182577 yu
终端再发数据,不能再发送到服务器。
问题搞定了,原来是我的破电脑有问题,放在别人电脑上测试是好的。
不是问题的问题,搞的我崩溃了。我说我怎么这么倒霉呢。 如果说这个是电脑有问题,那就是说UDP服务端在发送了几组数据后就出问题了,UDP SOCKET无效了。那这么解释也是有可能的。但是我觉得这个更像是软件的问题,而不是电脑的硬件问题。
建议楼主多加测试。 老大已经选用了EM310.让我来负责做DTU。先顶起来。各为大侠多关照一下小弟 回:Appcat 苹果猫
今天我又在我电脑上测试了几遍,发现没什么问题,该不会是我的模块不稳定造成的吧。 模块不稳定的情况极少见,对于华为这种新模块出货要经过半年的全国测试的产品来说,更加是小概率事件。确认一下模块的版本号,是否是最新的。由于测试面广,也不排除测试中的版本流到市场中。
还有就是UDP协议在GGSN处理中没有TCP稳定,如果没有特别要求,一般都会用TCP进行传输。 回:Appcat 苹果猫
我的版本号是
HW REVISION: B
SW REVISION: 01.101
是否最新的呢?
虽然我的问题现在没有了,但我总心里不踏实,怕它哪天又出问题。
我用的是5V,2.5W的开关电源,然后通过LM1084转成4.2V的,也加了1000uF大电容,不知道是不是
我的开关电源2.5W有点小了?你们一般用多大的开关电源呢?
听QQ1013182577 yu 讲,模块瞬间电流要2A,会不会我0.5A达不到造成的?
我们的服务器写死了,只能用UDP,不能用TCP,没办法。 现在最新版本是SW REVISION 01.102
5V的开关电源电压有点低了,2.5W的功率也小了,GSM模块在发射时瞬间输入功率能有8W。我们一般采用12V1A的开关电源。
开关电源容量小,不一定出问题,但是不一定不出问题,在供电电源不稳定,或者元器件参数发生变化或者劣化时,就可能出问题,所以我们设计的时候特地留了余量。这种电源临界造成的设备不稳定的毛病最难查,特别是到了用户现场。还没挣几个钱,全部投入售后维护维修中都不够了,所以设计时就考虑好。 回Appcat 苹果猫
你们用的是12V1A,也就是12W的开关电源,你说我的5V有点小了,那我要是用5V,2.4A的开关电源,先不考虑寿命问题。
同样是12W,效果跟你的12V1A效果会不一样? 你在15楼说的是5V 2.5W的电源啊。
12V1A的电源经过DCDC转换,和你的5V2.4A的电源经过DCDC,瞬态哪个更好?GSM在发射时隙,发射电流达到2A,时间只有几十毫秒。 我明白了,谢谢苹果猫。 还能介绍个12V转4.2V的 DC/DC芯片哈 LM2596S-ADJ 太经典的选择了
MP1593,效率,体积都优于上述,但是成本高电路复杂
还有一些开关频率上M的芯片,效率更加高的惊人,但是成本一样惊人,而且输入电压范围比较小 我的也有这问题 mark mark
页:
[1]