应该向调制解调器发送什么 AT 命令来获取时间?

电器工程 GSM 命令
2022-01-12 09:32:53

我正在使用SIM800E我想知道应该向调制解调器发送什么 AT 命令来获取时间?此调制解调器具有 RTC。但我需要通过手机信号塔自动设置它。当使用 AT 命令请求时,塔可以将时间发送到调制解调器。我在许多手机中看到时间在切换期间会更新。

手册没有此信息。

4个回答

我使用了以下命令:

AT+CCLK?

它返回日期和时间,例如:

+CCLK: "00/01/12,05:44:53+00" 

在使用三种不同电池模块的产品中取得了成功:Enfora、Telit 和 Sierra。它在 AT 之后使用 + 字符的事实意味着它是一个常见的(与专有相反)命令,并且应该在大多数(如果不是所有)单元模块上都可用。(专有命令在 AT 之后使用供应商特定字符,如 AT$、AT%、AT! 等)

正如我在评论中提到的,如果您无法使用此命令获取时间(例如,它返回全 0),那么另一种方法是连接到网络并使用 HTTP 命令获取服务器的时间。

For example, the following HTTP request:
HEAD /index.html HTTP/1.1\r\n
Host: www.somehost.com\r\n;
\r\n

其中 somehost 是您自己的服务器或 Google.com 等。这也假设 index.html 是该站点的主页(不是 Google 的情况)。

它将返回一个标题,如:

HTTP/1.x 200 OK  
Transfer-Encoding: (something)  
Date: Fri, 13 Nov 2013 04:36:25 GMT
(lots more stuff)

据我所知,所有服务器都有义务在其标题中返回 GMT 时间。

首先,许多网络对 NITZ 的支持很差(你能说 COST-CUTTING)。我根本不会依赖它,因为十分之一的网络使用它,尤其是在偏远的地方。

其次,+CCLK 命令用于调制解调器的内部 RTC。一些调制解调器具有从网络更新此时钟的功能。依赖这个是有风险的。

上面的 HTTP 请求是不完整的,即它不起作用。我曾经知道如何做到这一点,所以当它工作时会恢复。

它在 AT 之后使用 + 字符的事实意味着它是一个常见的(与专有相反)命令,并且应该在大多数(如果不是所有)单元模块上都可用。(专有命令在 AT 之后使用供应商特定字符,如 AT$、AT%、AT! 等)

这并不完全正确。有遵循 AT+ 约定的专有调制解调器命令。例如 AT+WOPEN 是专有的 Sierra 命令。

无论调制解调器如何,都有一组相同的命令。这些在 3GPP 文档中定义。专有命令通常在供应商的用户手册中定义,并明确标记为专有命令。

AT+CLTS=1 (获取本地时间戳) AT&W (保存配置)

关闭调制解调器并打开调制解调器(重新启动以从网络获取本地时间)

下次调制解调器启动时,您应该能够通过网络获取本地时间,并且可以通过发送读取

AT+CCLK?

这对我有用,我使用 SIM800 GSM 调制解调器阅读 AT 命令描述以获取更多信息

油灰:

AT+COPS=2

OK

AT+CTZU=1

OK

AT+COPS=0

OK

+CTZU: "15/05/06,17:25:42",-12,0

完美运行,之后您必须解析结果并将其放在 clk 中,因为这不会自动发生。(至少在我的 Cinterion 中)