AT常见问题
socket断连
信号不稳定
信号不稳定是导致 socket 频繁断连的常见原因之一。当设备所处环境信号不佳时,会出现频繁断连的情况。
- 排查方法:通过命令AT+CESQ获取信号强度,以此了解设备当前接收到的信号状况。
- 解决办法:测试网络环境,尝试将设备移动到开阔区域,例如室外空旷地带或窗户旁边等信号较强的地方,观察断连情况是否减少。
心跳包配置错误
若未配置心跳包,或心跳间隔过大都会导致socket断连
- 排查方法:当遇到不明原因断连,通过抓包查看交互流程,若为服务器主动断连且正常流程断连,建议检查心跳包配置。
- 解决方法:通过命令:AT^HEARTCONFIG设置心跳包参数
tls连接失败
TLS连接失败通常是由于协议版本、加密套件、等方面的问题引起的。
TLS版本不兼容
由于版本不兼容也会导致的连接失败
- 排查方法:根据抓包可以看到Protocol的错误
解决方法:使用命令
AT+SSLCFG="sslversion",<n>[,<sslversion>]
设置版本,详细参数与取值请参考AT手册AT+SSLCFG
命令 类型 | 语法 | 返回 |
---|---|---|
设置 命令 | AT+SSLCFG="sslversion",<n>[,<sslversion>] |
如果<sslversion> 缺失,则查询<n> 对应的SSL版本: +SSLCFG: "sslversion",<n>,<sslversion> OK 否则,设置<n> 对应的SSL版本: 如果格式和参数正确,返回: OK 如果命令格式或参数错误,返回: ERROR |
加密套件不匹配
加密套件不匹配也可能导致 TLS 连接失败。
- 排查方法:根据抓包可以看到Handshake Failure的错误
- 解决方法:通过命令
AT+SSLCFG="ciphersuite",<n>[,<ciphersuites>]
设置正确的加密套件
命令 类型 | 语法 | 返回 |
---|---|---|
设置 命令 | AT+SSLCFG="ciphersuite",<n>[,<ciphersuites>] |
如果<ciphersuites> 缺失,则查询<n> 对应的加密算法:<br/> +SSLCFG: ciphersuite",<n> ,OK 否则,设置 <n> 对应的加密算法:如果格式和参数正确,返回: OK 如果目录格式或参数错误,返回: ERROR |
无法注册网络
工作频段不兼容
不同的运营商和地区可能使用不同的频段,若模组工作频段与当前网络环境不匹配,会导致无法注册网络。
- 排查方法:使用
AT*BANDIND
函数获取模组当前的工作频段。 - 解决办法:根据所在地区和运营商的要求,通过命令AT+ECBAND调整模组的工作频段,通过命令使其与网络环境相匹配。
确认IMEI号是否合法
有些客户会改写IMEI号导致无法注网,调用yopen_dev_get_imei
函数获取 IMEI 号,并验证其合法性
- 排查方法:使用命令AT+CGSN查询IMEI号
- 解决办法:使用AT+ECCGSN设置IMEI和SN号
其他原因
SIM 卡问题:
- 检查 SIM 卡是否欠费(可拨打运营商客服查询)
- 确认 SIM 卡是否被锁定(PIN 码错误导致)
- 检查 SIM 卡是否损坏(可更换测试卡验证)
网络参数错误:
- 执行 AT+CGDCONT? 查询 APN 配置是否正确
- 确认是否需要特殊拨号号码或认证信息
掉网问题
错误 | 排查 |
---|---|
硬件问题 | 模组射频故障、接口接触不良(如 SIM 卡松动)、天线损坏或未接好; |
网络环境 | 信号弱(覆盖差、遮挡屏蔽)、强电磁干扰、基站 / 运营商网络拥塞或故障; |
软件配置 | 固件 bug、网络参数错误(如 APN配置错误、IP 冲突等)、心跳 / 超时设置不合理; |
电源供电 | 电压不稳、电流不足 |
软件异常
软件异常死机,参考软件异常分析工具Trace32使用指南导出死机现场,并参考死机问题分析
固件下载失败
固件不匹配
- 排查方法:查看日志信息窗口是否存在 Downloading process Runtime config failed, Runtime control para verify error错误
- 解决办法:检查固件版本,更换正确版本
AT口打开失败
- 排查方法:通过AT口烧录时,若烧录失败,查看日志信息窗口是否存在 At com reset process, resetdldboot assist com open fail错误
- 解决办法:端口选择错误,更换AT口重新烧录,端口被占用,检查是否有抓log工具或串口工具占用端口