¿Qué comando AT debe enviarse al módem para obtener tiempo?

9

Estoy usando SIM800E . ¿Quiero saber qué comando AT debe enviarse al módem para obtener tiempo? Este modem tiene un RTC. Pero necesito configurarlo automáticamente a través de la torre celular. La torre puede enviar la hora al módem cuando se solicite mediante un comando AT. He visto en muchos teléfonos que la hora se actualiza durante las transferencias.

El manual no tiene esta información.

    
pregunta gpuguy

8 respuestas

5

He usado el siguiente comando:

AT+CCLK?

que devuelve la fecha y la hora, como:

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

con éxito en productos que utilizan tres módulos celulares diferentes: Enfora, Telit y Sierra. El hecho de que use un carácter + después de la AT implica que es un comando común (a diferencia de propietario), y debería estar disponible en la mayoría, si no en todos, los módulos celulares. (Los comandos propietarios utilizan un carácter específico del proveedor después de AT, como AT $, AT%, AT! Etc.)

Como mencioné en un comentario, si no puede obtener el tiempo con este comando (por ejemplo, devuelve todos los 0), otra forma es conectarse a la red y desconectar el tiempo de un servidor usando un Comando HTTP.

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

donde algún host es tu propio servidor o Google.com, etc. Esto también supone que index.html es la página principal del sitio (no es el caso de Google).

Devolverá un encabezado como:

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

Por lo que sé, todos los servidores están obligados a devolver el tiempo GMT en sus encabezados.

    
respondido por el tcrosley
4

En primer lugar, NITZ no es compatible con muchas redes (¿puede decir COST-CUTTING)? No confiaría en ello en absoluto, ya que 1 de cada 10 redes lo usa, especialmente en lugares remotos.

En segundo lugar, el comando + CCLK es para el RTC interno del módem. Algunos módems tienen facilidades para actualizar este reloj desde la red. Confiar en esto es arriesgado.

La solicitud HTTP anterior está incompleta, es decir, no funciona. Solía saber cómo hacerlo, así que volveré cuando funcione.

  

El hecho de que use un carácter + después de AT indica que es un comando común (en lugar de propietario) y debería estar disponible en la mayoría, si no en todos, los módulos de celda. (Los comandos propietarios utilizan un carácter específico del proveedor después de AT, como AT $, AT%, AT! Etc.)

Esto no es del todo cierto. Hay comandos de módem propietarios que siguen la convención AT +. Por ejemplo, AT + WOPEN es un comando exclusivo de Sierra.

Hay un cierto conjunto de comandos que son iguales independientemente del módem. Estos se definen en los documentos 3GPP. Los comandos de propiedad por lo general se definen en los manuales de usuario del proveedor y están claramente marcados como de propiedad.

    
respondido por el s0nic2k
3

AT + CLTS = 1 (Obtener marca de hora local) AT & W (Guardar configuración)

Apague el módem y enciéndalo (reiniciar para obtener la hora local desde la red)

La próxima vez que se inicie el módem, debería poder obtener la hora local por red y se puede leer enviando

AT + CCLK?

Esto me funcionó. Estoy usando SIM800 GSM modem. Lea las descripciones de los comandos AT para obtener más información

    
respondido por el Sumit Dubey
2

PuTTY:

AT+COPS=2

OK

AT+CTZU=1

OK

AT+COPS=0

OK

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

Funciona a la perfección, después de eso tienes que analizar el resultado y colocarlo en clk, ya que esto no sucede automáticamente. (al menos en mi Cinterion)

    
respondido por el died74
1

NITZ como lo señala RedGrittyBrick es la respuesta. Sin embargo, este es un mensaje que se envía solo por la red, generalmente al unirse a la red. Algunos transportistas lo envían, otros no. No hay una forma estándar de solicitarlo.

    
respondido por el pjc50
1

Aquí está la secuencia de comandos AT para obtener el tiempo de la red celular. Funcionó en mi UBLOX LEON G-200 módulo GSM.

GSM_Send_Modem_Command("AT+COPS=2\r\n");//de register
GSM_Send_Modem_Command("AT+CTZU=1\r\n");//automatic time zone update is enabled
GSM_Send_Modem_Command("AT+COPS=0\r\n");// register to network
GSM_Send_Modem_Command("AT+CCLK?\r\n");// gets the clock of the MT
    
respondido por el Myanju
0

He utilizado NITZ correctamente durante la inicialización y CCLK cuando quiero leer el RTC interno. SIN EMBARGO, puede tomar un minuto o dos antes de que el módem RTC se configure desde la red. Vale la pena mantener una bandera para indicar si el tiempo es realmente válido.

    
respondido por el M C
0

Desarrollé un firmware para un U-Blox LTE. ¿Allí utilicé el AT + CCLK? para obtener la hora local actual desde el modem.

Da una hora en el siguiente formato. No es que sea un comando sincronizado.

+CCLK: "00/01/01,05:44:53+00" (might get unsynchronized time if the modem time is not sync with the system time)

Por lo tanto, se envió el siguiente comando AT antes del registro, para sincronizar la hora con la red

AT+CTZU=1\r\n

Así que mi secuencia de comandos es:

AT+CTZU=1\r\n
AT+CREG=1\r\n (to subscribe for the network registration updates)
AT+CCLK?\r\n (The Time Zone information is provided after the network registration, if the network supports the time
zone information)

Lógica adicional para garantizar que tenga la hora correcta:

  

Comprueba la fecha con el 70/01/01 o el 00/01/01 (en nuestro caso, aquellos   son los tiempos que obtenemos si el módem tiene un tiempo no válido). Y si   no es válido, lo intenta periódicamente cada 1 minuto hasta que recibe una   tiempo correcto. ¿Después de algunos reintentos deja de enviar CCLK? y confiar en otras fuentes de tiempo.

Nota: NITZ es compatible en un conjunto limitado de países todavía ( enlace )

Por lo tanto, es mejor tener una copia de seguridad de la hora de actualización si no se admite en ese país.

En mi caso, tenemos un módulo GPS, así que obtengo actualizaciones de tiempo a través de los datos GNSS.

Además, lo que no es relevante aquí, pero se considera útil para la sincronización horaria.

  

Ejecutamos Chrony Deamon para actualizar la hora del sistema (comandos manuales   habilitado). Así que ambas actualizaciones de tiempo se recuperan y Chrony decide la   hora correcta y actualiza la hora del sistema.

    
respondido por el SajithP

Lea otras preguntas en las etiquetas