SIMCOM A7600E模组LTE网络下无法接收UDP数据包问题求助
A7600E模组UDP收包异常排查方案
已确认前置条件
你已经完成的验证排除了ISP网络限制、基础蜂窝注册、IP分配、公网连通性问题,问题大概率出在模组UDP socket配置和数据读取逻辑上。
具体排查点
- UDP socket配置错误问题
A7600系列的AT+CIPOPEN指令配置UDP时,如果你填写的指令为AT+CIPOPEN=0,"UDP",,,15000,即未指定远端IP和端口,属于无固定远端的UDP客户端模式,该模式下部分版本固件会在你首次调用AT+CIPSEND指定远端地址后,自动将该远端地址绑定到当前socket,仅允许接收该地址返回的数据包,若你回包地址与发送地址不一致会直接被丢弃。
可以通过改为固定远端模式验证:AT+CIPOPEN=0,"UDP","77.81.XX.XX",21000,15000,绑定固定远端后再发送数据测试收包。 - 数据包上报/读取配置未开启
A7600默认不会主动将收到的IP数据通过串口打印输出,需要额外配置两个参数:- 开启IP数据头上报:
AT+CIPHEAD=1,配置后收到的数据包会带+IPD前缀输出 - 开启主动URC上报:
AT+CIURC=1,收到数据后会主动触发收到通知
如果你未配置以上参数,也可以通过主动查询命令读取缓存数据:AT+CIPRXGET=2,0,1024,手动读取socket 0的最多1024字节缓存数据。
- 开启IP数据头上报:
- 多socket端口冲突/绑定错误
你当前配置了socket 1绑定本地端口21000,若对端回包端口是21000而非你发包用的本地端口15000,数据包会被转发到socket 1,你需要确认对端回包的目标端口是否与你发包的源端口一致。 - 已知固件BUG规避
你当前使用的A7600M7_V8.18.1版本固件存在UDP不定远端模式下接收丢包的已知问题,你可以通过升级固件到A7600M7_V9.0+版本,或者每次发送数据后调用AT+CIPCLOSE=0重新打开socket的方式临时规避。
最简验证AT指令序列
AT+CGATT=1 AT+CGACT=1,1 AT+NETOPEN AT+CIPHEAD=1 AT+CIURC=1 AT+CIPOPEN=0,"UDP","77.81.XX.XX",21000,15000 AT+CIPSEND=0,10 >ewewwe4343
执行后等待10秒观察是否有+IPD开头的数据包上报。
内容的提问来源于stack exchange,提问作者madonion
相关产品推荐
相关产品推荐

