Lệnh AT nào nên được gửi đến modem để có thời gian?


11

Tôi đang sử dụng SIM800E . Tôi muốn biết lệnh AT nào nên được gửi đến modem để có thời gian? Modem này có RTC. Nhưng tôi cần phải đặt nó tự động thông qua tháp di động. Tháp có thể gửi thời gian tới modem khi được yêu cầu sử dụng lệnh AT. Tôi đã thấy trong nhiều điện thoại rằng thời gian được cập nhật trong quá trình bắt tay.

Các nhãn hiệu không có thông tin này.


1
Theo tài liệu thiết kế phần cứng đó, bạn cần lấy "Hướng dẫn lệnh SIM800E AT" - một tài liệu riêng.
RedGrittyBrick

Vậy thì trong thực tế, điện thoại phi đa phương tiện cập nhật vị trí đơn giản như thế nào?
gpuguy

3
NITZ là một phần tùy chọn của các tiêu chuẩn GSM, không được hỗ trợ bởi tất cả các nhà mạng và có thể không chính xác để tốt hơn một vài phút.
RedGrittyBrick

3
Tôi tin rằng đây là chủ đề vì nó liên quan đến việc sử dụng mô-đun GSM nhúng cho truyền thông M2M. Tại sao bài đăng này ngoài chủ đề và bốn bài đăng sau đây được cho phép: ví dụ 1 2 3 4
tcrosley

Câu trả lời:


7

Tôi đã sử dụng lệnh sau:

AT+CCLK?

trong đó trả về ngày và thời gian, như:

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

thành công trong các sản phẩm sử dụng ba mô-đun tế bào khác nhau: Enfora, Telit và Sierra. Thực tế là nó sử dụng ký tự + sau AT ngụ ý rằng đó là một lệnh phổ biến (trái ngược với quyền sở hữu) và nên có sẵn trên hầu hết nếu không phải tất cả các mô-đun tế bào. (Các lệnh độc quyền sử dụng một ký tự cụ thể của nhà cung cấp sau AT, như AT $, AT%, AT! V.v.)

Như tôi đã đề cập trong một nhận xét, nếu bạn không thể có thời gian sử dụng lệnh này (ví dụ: nó trả về tất cả 0), thì một cách khác là kết nối với mạng và tắt thời gian của máy chủ bằng lệnh HTTP.

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

trong đó somehost là máy chủ của riêng bạn hoặc Google.com, v.v. Điều này cũng giả sử index.html là trang chính cho trang web (không phải là trường hợp của Google).

Nó sẽ trả về một tiêu đề như:

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

Theo tôi biết, tất cả các sever có nghĩa vụ trả lại thời gian GMT trong các tiêu đề của họ.


1
Một số nội dung tôi đọc đề xuất giá trị được trả về bởi + CCLK có thể là từ đồng hồ trên bo mạch (RTC), không phải từ mạng GSM (tháp).
RedGrittyBrick

1
Tôi cũng đã đọc lệnh được mô tả theo cách đó, tuy nhiên tôi đã sử dụng nó trong một số sản phẩm khác nhau bằng cách sử dụng ba mô-đun tế bào khác nhau trong năm năm qua hoặc lâu hơn, và nó đã hoạt động ở khắp mọi nơi ở Hoa Kỳ và cả Châu Âu và Châu Á. Đã có một vài hãng vận tải, ví dụ như một ở Đức, nơi nó không hoạt động (trả lại tất cả 0); Tôi đã liên lạc với họ và được cho biết họ không hỗ trợ cập nhật thời gian qua mạng. Vì vậy, tôi đã viết mã để thực hiện yêu cầu HTTP 1.1 và lấy thời gian của máy chủ.
tcrosley

1
Tôi nghĩ rằng yêu cầu HTTP có thể được viết tốt hơn HEAD / HTTP/1.0\r\nHost: example.com\r\n\r\nvì tôi cảm thấy /ít bị 404 hơn và HTTP 1.0 thể hiện tốt hơn sự thiếu hiểu biết (khôn ngoan về thiết bị) của chúng tôi đối với HTTP. Bên cạnh đó, dấu chấm phẩy trông giống như một lỗi đánh máy. Ngoài ra, ngày là GMT / UTC theo thông số kỹ thuật ( xem thêm ).

1
Câu trả lời này là thông báo nhưng xứng đáng được cập nhật liên quan đến vấn đề RTC trên mạng so với vấn đề thời gian mạng.

5

Trước hết, NITZ được hỗ trợ kém trong nhiều mạng (bạn có thể nói CHI PHÍ-CẮT). Tôi hoàn toàn không dựa vào nó vì 1 trong 10 mạng sử dụng nó, đặc biệt là ở những nơi xa xôi.

Thứ hai + Lệnh CCLK dành cho RTC bên trong của modem. Một số modem có cơ sở để cập nhật đồng hồ này từ mạng. Dựa vào điều này là rủi ro.

Yêu cầu HTTP ở trên không đầy đủ, nghĩa là nó không hoạt động. Tôi đã từng biết làm thế nào để làm điều này vì vậy sẽ trở lại khi nó hoạt động.

Thực tế là nó sử dụng ký tự + sau AT ngụ ý rằng đó là một lệnh phổ biến (trái ngược với quyền sở hữu) và nên có sẵn trên hầu hết nếu không phải tất cả các mô-đun tế bào. (Các lệnh độc quyền sử dụng một ký tự cụ thể của nhà cung cấp sau AT, như AT $, AT%, AT! V.v.)

Điều này không hoàn toàn đúng. Có các lệnh modem độc quyền tuân theo quy ước AT +. Ví dụ AT + WOPEN là lệnh Sierra độc quyền.

Có một bộ lệnh nhất định giống nhau bất kể modem. Chúng được định nghĩa trong các tài liệu 3GPP. Các lệnh độc quyền thường được xác định trong hướng dẫn sử dụng của nhà cung cấp và được đánh dấu rõ ràng là độc quyền.


4

AT + CLTS = 1 (Nhận dấu thời gian địa phương) AT & W (Lưu cấu hình)

Tắt modem và bật modem (khởi động lại để lấy giờ địa phương từ mạng)

Lần tới khi modem khởi động, bạn sẽ có thể nhận được giờ địa phương qua mạng và có thể được đọc bằng cách gửi

TẠI + CCLK?

Điều này làm việc với tôi tôi đang sử dụng modem GSM SIM800 đọc mô tả lệnh AT để biết thêm thông tin


@ s0nic2k câu trả lời đã được xác nhận, điều này sẽ KHÔNG hoạt động như bạn mong đợi.
Ali80

3

PuTTY:

AT+COPS=2

OK

AT+CTZU=1

OK

AT+COPS=0

OK

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

Hoạt động hoàn hảo, sau đó bạn phải phân tích kết quả và đặt vào clk vì điều này không tự động xảy ra. (ít nhất là trong Cinterion của tôi)


6
Nó sẽ giúp nếu bạn có thể giải thích, bằng tiếng Anh, điều này làm gì và tại sao nó là một giải pháp cho câu hỏi.
David

@David Hãy theo dõi, chúng tôi đang thực hiện một bản dịch trong cuộc trò chuyện.
Nick Alexeev

2
Biến thể cho SIM800H hoạt động với tôi: sử dụng AT + CLTS = 1 thay vì AT + CTZU = 1 (vì CTZU không được hỗ trợ). Sau đó, bạn sẽ nhận được một tin nhắn không mong muốn như * PSUTTZ: 2017,1,30,20,17,28, "- 20", 0 khi bạn đăng ký lại
Matt Thomas

2

Sử dụng lệnh AT + CIPGSMLOC. Nó hoạt động tốt trong các mô-đun SIMCOM.

Lệnh này cần dịch vụ GPRS kèm theo trước khi bạn sử dụng. Vì vậy, trước tiên hãy đính kèm dịch vụ GPRS bằng chuỗi lệnh thích hợp sau đó sử dụng lệnh này để lấy ngày và giờ từ mạng GSM.

Để đính kèm dịch vụ GPRS:

CMD:AT+CGATT=1 CMD:AT+SAPBR=3,1,"Contype","GPRS" CMD:AT+SAPBR=3,1,"APN","" CMD:AT+SAPBR=3,1,"USER","" CMD:AT+SAPBR=3,1,"PWD","" CMD:AT+SAPBR=1,1 CMD:AT+SAPBR=2,1 /* to confirm that GPRS is attached. will show IP if attached */

Sau đó sử dụng lệnh GSM Location:

AT+CIPGSMLOC=1,1

Lệnh này cần thời gian đáng kể (vài giây) để lấy thông tin từ mạng, vì vậy hãy cung cấp cho chức năng thực thi lệnh đúng thời gian chờ.

Lệnh này cũng trả về vị trí BTS mà mô-đun được kết nối. Vì vậy, bạn cũng có thể có được vị trí gần như chính xác của mô-đun GSM.

Tham khảo hướng dẫn này để biết thêm thông tin: (hoạt động theo cách tương tự cho SIM800)

SIM900_GSM Location AT Command Manual_V1.00

Cũng lưu ý rằng lệnh AT + CLBS không giống với lệnh này. Nó có thể không hoạt động ở một số vùng. (Tôi chưa thể sử dụng nó!). Nhưng AT + CIPGSMLOC luôn hoạt động.


Tôi nhận được +CIPGSMLOC: 302<\r><\n> phản hồi
Ali80

1
@ Ali80 Nạp tiền tín dụng simcard của bạn. Điều này có thể xảy ra nếu simcard của bạn có tín dụng nhưng đã không bị tính phí trong một thời gian dài. Bạn có thể kiểm tra với một simcard khác là tốt.
MDR

yeah Tôi có thể xác nhận phương pháp này hoạt động, simcard của tôi có tín dụng nhưng có một số quyền truy cập hạn chế gói dữ liệu.
Ali80

1

NITZ như được chỉ ra bởi RedGrittyBrick là câu trả lời. Tuy nhiên, đây chỉ là một tin nhắn được gửi bởi mạng, thường là khi tham gia mạng. Một số hãng gửi nó, một số thì không. Không có cách tiêu chuẩn để yêu cầu nó.


1

Đây là chuỗi lệnh AT để lấy thời gian mạng di động. Nó hoạt động trong mô-đun GSM UBLOX LEON G-200 của tôi .

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

1

đầu tiên gửi hai lệnh này
AT + CLTS = 1; & W

AT + CFUN = 1,1 và hơn AT + CLTS? kiểm tra xem bạn có nhận được trả lời này + clts: 1
và hơn gửi lệnh này AT + CCLK không?


Chào mừng đến với EE.SE. Sử dụng hai dấu kiểm ngược (``) xung quanh đoạn mã trong bài đăng của bạn hoặc sử dụng {}nút trên thanh công cụ biên tập cho các khối mã như trong các câu trả lời khác. Điều này sẽ cung cấp một nền màu xám và phông chữ có chiều rộng cố định giúp dễ dàng xem mã của bạn bắt đầu và kết thúc ở đâu.
Transitor

0

Tôi đã sử dụng thành công NITZ trong quá trình khởi tạo và CCLK khi tôi muốn đọc RTC nội bộ. TUY NHIÊN có thể mất một hoặc hai phút trước khi modem RTC được đặt từ mạng. Thật đáng để duy trì một lá cờ để cho biết thời gian có thực sự hợp lệ hay không.


0

Tôi đã phát triển phần sụn cho LTE U-Blox. Có tôi đã sử dụng AT + CCLK? để có được thời gian địa phương hiện tại từ modem.

Nó cho một thời gian trong định dạng sau. Không phải đó là một lệnh đồng bộ.

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

Vì vậy, lệnh AT sau đây đã được gửi trước khi đăng ký, để đồng bộ hóa thời gian với mạng

AT+CTZU=1\r\n

Vì vậy, chuỗi lệnh của tôi là:

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)

Logic bổ sung để đảm bảo rằng nó có thời gian chính xác:

Nó kiểm tra ngày so với 70/01/01 hoặc 00/01/01 (trong trường hợp của chúng tôi, đó là những lần chúng tôi nhận được nếu modem có thời gian không hợp lệ). Và nếu nó không hợp lệ, nó sẽ cố gắng định kỳ cứ sau 1 phút cho đến khi nó có thời gian chính xác. Sau vài lần thử lại dừng gửi CCLK? và dựa vào các nguồn thời gian khác.

Lưu ý: NITZ được hỗ trợ ở một số quốc gia giới hạn ( https://en.wikipedia.org/wiki/NITZ )

Vì vậy, tốt nhất là có một cách sao lưu thời gian cập nhật nếu nó không được hỗ trợ ở quốc gia đó.

Trong trường hợp của tôi, chúng tôi có mô-đun GPS để tôi có được cập nhật thời gian thông qua dữ liệu GNSS.

Ngoài ra, không liên quan ở đây, nhưng được cho là hữu ích cho việc đồng bộ hóa thời gian.

Chúng tôi chạy chrony deamon để cập nhật thời gian hệ thống (kích hoạt các lệnh thủ công). Vì vậy, cả hai cập nhật thời gian đều được tìm nạp và chrony quyết định thời gian chính xác và cập nhật thời gian hệ thống.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.