首页 > 解决方案 > GSM Telit GL865-QUAD AT指令,错误:314(SIM卡忙)

问题描述

我正在尝试通过带有 AT 命令的 UART 与 GSM click 模块(Telit GL865-QUAD 模块)进行通信。首先我想阅读所有收到的消息,但由于某种原因我收到错误 314,这意味着 SIM 卡正忙。来自 GSM 的其他答案都可以。

所以这是我的配置(连续发送几个 at 命令):

  1. AT\r\n(检查GSM)
  2. ATE0\r\n(回声禁用)
  3. AT+CMGF=1\r\n(设置短信文本模式)
  4. AT+IPR?\r\n(查询当前波特率)
  5. AT+CMGL=\"ALL\"\r\n(最后阅读所有消息)

OK在 gsm 得到肯定 ( ) 答案后,所有命令都有 1 秒的延迟。例如:发送AT\r\n等待OK,然后等待 1 秒;在该延迟之后发送另一个 AT 命令。

结果:当我发送前 4 个 AT 命令时,我得到了来自 GSM 的良好响应。但在第五个之后,调制解调器返回错误 310(有时),然后是错误 314:

AT+CMGL="ALL"

+CMS ERROR: 310
AT+CMGL="ALL"

+CMS ERROR: 314\r\n

我用 2 个不同的 SIM 卡试了一下,结果是一样的。

欢迎任何想法或评论。

标签: cembeddedgsmat-commandgprs

解决方案


首先,GE865-QUAD是老设备,建议至少更新到最新的FW版本。您可以通过发出AT+CGMRAT 命令查询任何 GSM 调制解调器的当前固件版本。

编辑:因为你有一个非常旧的版本(10.00.144日期为 2009/2010!)我强烈建议更新它,因为从那时起许多错误可能已经修复。您将能够从 Telit 网站获取最新版本,并通过 UART 对其进行刷新。


错误说明

您似乎获得了错误 314,有时是错误 310。

  1. +CMEE Error: 314表示SIM 忙,正如您的问题主题所正确说明的那样
  2. +CMEE Error: 310表示SIM 未插入


可能的解决方案

  1. 首先,确保 SIM 卡已正确插入。它必须一直推入。我想你正确插入它,但必须进行检查。

  1. 那么,既然你说

我尝试使用 2 张 sim 卡并得到相同的结果。

我建议您检查 SIM 卡座的触点(因为您的两个 SIM 卡的电触点都不太可能)。事实上,SIM 忙状态,通常在实际读取 SIM 时达到(例如完整的电话簿)也可能意味着发生了一些不一致的操作(在这些情况下也可以显示SIM 故障消息)。


  1. 确保您等待足够长的时间等待 SIM 准备就绪。事实上,即使 SIM 初始化通常需要不到一秒的时间,在一些旧的 SIM 模型中也可能需要更长的时间。

Telit 提供查询 SIM 状态的命令:AT#QSS。正如AT 指南所描述的,它为任何 SIM 状态更改启用了主动消息。但它也允许通过其读取命令异步查询状态:

AT#QSS?

读取命令报告当前是否启用了主动指示 #QSS 以及 SIM 状态,格式如下:

#QSS:模式,状态

mode#QSS - URC的详细级别,用 . 设置AT#QSS=mode。默认值为 0;2 启用最大详细级别。

status - 当前 SIM 卡状态

0 - SIM 未插入

1 - 插入 SIM 卡

2 - SIM INSERTED 和 PIN UNLOCKED(注意:仅当 mode=2 时可用!)

3 - SIM INSERTED 和 READY(可以访问 SMS 和电话簿)(注意:仅在 mode=2 时可用!)

所以你必须等到状态 3 达到。我建议每 1/2 秒发出一次读取命令,直到达到所需的状态。在达到该状态之前发出涉及 SIM 存储的命令将导致 SIM 忙错误。

非常重要:因为 status=3 将仅在 mode=2 时显示,发出以下串联的 AT 命令以发现是否在未启用 URC 的情况下实际收到SIM INSERTED 和 READY状态:

AT#QSS=2;#QSS?;#QSS=0

这样,mode=2 就设置在 read 命令之前,以便支持完整的状态列表。然后将模式恢复为值 0,避免出现 URC。


  1. 确保 PIN 已插入!

SIM 卡可以用 PIN 码锁定。通过查询来验证它AT+CPIN?。如果+CPIN: SIM Ready你的反应是好的。否则,如果响应是+CPIN: SIM PIN,您必须通过发出来插入 PIN 码

AT+CPIN=<PIN>

推荐阅读