Các chế độ hoạt động của sim900

Một phần của tài liệu Đo lường điều khiển từ xa qua mạng điện thoại di động bằng modulsim900 kết nối vi điều khiển ATmega8 (Trang 30)

Sim900 có ba chế độ hoạt động khác nhau, với các chế độ này thì nguồn tiêu thụ và sự hoạt động cũng khác nhau. Chi tiết các chế độ hoạt động của sim900 được thể hiện 2.3.1 Chế độ Hoạt động

+ Chế độ bình thường - GSM/GPRS SLEEP

Sim900 sẽ tự động đi vào chế độ SLEEP (chế độ nghỉ) nếu DTR được thiết lập là mức cao và không có ngắt ở phần cứng. Trong trường hợp này, dòng tiêu thụ của module sim900 sẽ được làm giảm tối thiểu chỉ còn 1.5mA.

Trong chế độ SLEEP, các mô-đun vẫn có thể nhận được tin nhắn SMS từ hệ thống bình thường.

Phần mềm được kích hoạt để hoạt động. Sim900 đã đăng nhập vào hệ thống mạng GSM, và sẵn sàng để gửi và nhận tin nhắn,cuộc gọi...

- GSM TALK

Kết nối giữa sim900 và thiết bị khác hỗ trợ GPRS được thực hiện. Trong trường hợp này, công suất tiêu thụ phụ thuộc vào các thiết lập mạng như DTX bật/tắt, FR/EFR/HR, ăng-ten.

- GPRS STANDBY

Sim900 đã sẵn sàng cho việc kết nối GPRS, nhưng không có dữ liệu hiện đang được gửi hoặc nhận được. Trong trường hợp này, công suất tiêu thụ phụ thuộc vào các thiết lập mạng và cấu hình GPRS.

- GPRS DATA

Dữ liệu GPRS đã được truyền (PPP hoặc TCP hoặc UDP) trong quá trình hoạt động. Trong trường hợp này, công suất tiêu thụ có liên quan với các thiết lập mạng (ví dụ như điều khiển chế độ công suất), tốc độ uplink /downlink và cấu hình GPRS.

2.3.2 Chế độ tắt nguồn

Sim900 có thể tắt nguồn bằng cách gửi lệnh "AT + CPOWD = 1" hoặc bằng cách sử dụng trực tiếp chân PWRKEY. Nguồn quản lý ASIC ngắt kết nối các nguồn cung cấp từ sim900. Và nó chỉ cung cấp năng lượng cho các RTC còn lại. Phần mềm không hoạt động. Không thể truy cập các cổng nối tiếp khác. Tuy nhiên điện áp hoạt động (kết nối với VBAT) vẫn còn.

Ngừng hoạt động nhưng không cần ngắt nguồn cung cấp Sử dụng lệnh "AT + CFUN" để thiết lập sim900 về chế độ tiết kiệm mà không cần loại bỏ các nguồn cung cấp năng lượng. Trong trường hợp này, phần ăng ten sẽ không làm việc hoặc SIM card sẽ không thể truy cập được, hoặc cả hai phần ăng ten và SIM card sẽ không hoạt động. Nguồn tiêu thụ trong trường hợp này là rất thấp.

2.3 Tập lệnh AT

Tập lệnh AT (AT – ATtention) còn gọi là tập lệnh Hayes, được phát triển lúc đầu bởi Hayes Communications cho modem Hayes Smartmodem 300 vào năm 1997 .

Tập lệnh bao gồm một loạt các chuỗi ký tự được kết hợp lại để tạo thành những lệnh hoàn chỉnh cho những tao tác như gọi, giữ, và thay đổi các tham số kết nối. Ngày nay hầu hết các modem đều sử dụng tập lệnh Hayes. Các lệnh này đều bắt đầu bằng “AT”. Một cách để gửi lệnh AT đến GSM/GPRS modem là sử dụng một chương trình đầu cuối. Chức năng của chương trình này là gửi các ký tự được gõ vào GSM/GPRS modem, sau đó hiển thị những phản hồi nó nhận được từ modem này lên màn hình. Có thể dùng các chương trình như Hyper Terminal, TeraTerm…

2.3.1 Cú pháp tổng quát của các lệnh AT mở rộng

Cú pháp tổng quát của các lệnh AT mở rộng khá rõ ràng. Dưới đây là các quy tắc của các lệnh AT mở rộng:

Quy tắc 1: Tất cả các lệnh phải bắt đầu với “AT” và kết thúc với ký tự về đầu dòng (CR – carriage return)

Quy tắc 2: Một dòng lệnh có thể bao gồm nhiều hơn một lệnh AT. Chỉ có lệnh đầu tiên bắt đầu với “AT”. Các lệnh còn lại trên dòng sẽ cách nhau bằng dấu chấm phẩy “;”. Quy tắc 3: Chuỗi ký tự được để trong dấu nháy kép “”.

Quy tắc 4: Thông tin phản hồi và mã kết quả (bao gồm mã kết quả cuối cùng và mã kết quả không mong muốn) luôn bắt đầu với một ký tự về đầu dòng và một ký tự xuống dòng.

2.3.2 Mã kết quả của lệnh AT a. Mã kết quả cuối cùng a. Mã kết quả cuối cùng

Mã kết quả cuối cùng đánh dấu kết thúc phản hồi cho một lệnh AT. Nó cho biết GSM modem đã hoàn thành thực thi lệnh. Hai mã được sử dụng thường xuyên là OK và ERROR. Mỗi một lệnh chỉ có một mã kết quả cuối cùng được trả về.

Mã kết quả cuối cùng OK Cho biết một lệnh AT nào đó đã được thực hiện thành công bởi GSM modem. Luôn bắt đầu và kết thúc với ký tự về đầu dòng và xuống dòng. Mã kết quả cuối cùng ERROR

Mã này cho biết đã có lỗi xảy ra khi thực hiện một lệnh AT. Sau khi xảy ra lỗi, GSM/GPRS modem sẽ không xử lý tiếp phần còn lại trong chuỗi lệnh.

Một số nguyên nhân dẫn đến lỗi như cú pháp của lệnh sai; Giá trị của một tham số không hợp lệ; Tên lệnh bị gõ sai; GSM/GPRS modem không hỗ trợ lệnh đó; Mã lỗi này cũng bắt đầu và kết thúc với ký tự về đầu dòng và xuống dòng.

Mã kết quả cuối cùng +CMS ERROR

Mã này được trả về khi một lỗi dịch vụ tin nhắn xảy ra. Một mã lỗi được trả về cho người lập trình để kiểm tra nguyên nhân gây ra lỗi. Lỗi này chỉ liên quan đến những lệnh AT thao tác với SMS. Cũng như OK và ERROR, mã lỗi này cũng bắt đầu và kết thúc với một ký tự về đầu dòng và xuống dòng, và một số nguyên thể hiện một lỗi xác định.

2.3.4 Các lỗi +CMS và ý nghĩa của các lỗi Mã lỗi +CMS Ý nghĩa Mã lỗi +CMS Ý nghĩa

300 Lỗi thiết bị di động. Thường là máy điện thoại hoặc GSM/GPRS modem. 301 Dịch vụ SMS của thiết bị di động đã bị chiếm dụng. (adsbygoogle = window.adsbygoogle || []).push({});

302 Thao tác thực hiện bởi lệnh AT không được cho phép. 303 Thao tác thực hiện bởi lệnh AT không được hỗ trợ.

304 Một hoặc nhiều giá trị tham số gắn với lệnh AT không hợp lệ. (Với chế độ PDU)

305 Một hoặc nhiều giá trị tham số gắn với lệnh AT không hợp lệ. (Với chế độ văn bản)

310 Không có thẻ SIM.

311 Thẻ SIM đòi hỏi phải nhập mã PIN.

312 Thẻ SIM đòi hỏi phải nhập mã PH-SIM PIN. 313 Lỗi thẻ SIM.

314 Thẻ SIM bận. 315 Thẻ SIM hỏng. 2.3.5 Mã lỗi +CMS

Mã kết quả không được yêu cầu

Là những mã kết quả được gửi từ GSM/GPRS modem để cung cấp về sự xảy ra của một sự kiện nào đó. Ví dụ, chúng ta có thể dùng lệnh +CNMI (New Message Indication to TE) để yêu cầu GSM/GPRS modem gửi các mã kết quả “+CMTI” tới máy tính mỗi khi có tin nhắn SMS được nhận từ SMSC.

Dưới đây là một vài mã kết quả liên quan tới SMS:

CDS: được dùng để chuyển một tin nhắn SMS mới nhận thông báo tình trạng tới thiết bị đầu cuối.

CDSI: được dùng để nhắc nhở thiết bị đầu cuối về một tin nhắn SMS mới thông báo tình trạng đã được nhận và vị trí trong bộ nhớ lưu nó.

CMT: được dùng để chuyển một tin nhắn mới nhận vào thiết bị đầu cuối.

CMTI: được dùng để nhắc nhở thiết bị đầu cuối có tin nhắn mới nhận và vị trí nó được lưu trong bộ nhớ.

Một số lệnh AT được dùng

Một số thuật ngữ sử dụng: Carriage return (Mã ASCII 0x0D). : Line Feed ( Mã ASCII 0 x0 A).

MT: Mobile Terminal - Thiết bị đầu cuối mạng (trong trường hợp này là module Sim900).

TE : Terminal Equipment - Thiết bị đầu c uối (vi điều khiển, máy tính). Dưới đây là một số lệnh AT thường gặp

- Lệnh ATZ

Lệnh ATZ dùng thiết lập lại (reset) tất cả các tham số hiện tại theo mẫu được người dùng định nghĩa. Lệnh trả về của modem là lệnh OK. Mẫu người dùng định nghĩa trước đó được lưu trên bộ nhớ cố định. Nếu không thiết lập lại được theo mẫu của người dùng định nghĩa thì nó sẽ reset lại theo đúng các tham số mặc định của nhà sản xuất. Bất cứ lệnh AT cộng thêm nào trên cùng một dòng với lệnh ATZ đều không được thực hiện

- Lệnh AT+CMGR

Lệnh AT+CMGR được dùng để đọc tin nhắn trên một ngăn nào đó trên sim điện thoại. Cấu trúc lệnh như sau: AT+CMGR=i, với i là ngăn bộ nhớ chứa tin nhắn trong sim.

Đáp ứng trở về là lệnh OK nếu ngăn i có chứa tin nhắn. Nếu ngăn i không chứa tin nhắn thì sẽ xuất hiện thông báo lỗi trả về ERROR. Ví dụ khi gõ lệnh AT+CMGR=1 thì sim900 sẽ đọc tin nhắn tại ngăn số 1 của bộ nhớ sim điện thoại gắn ngoài.

- Lệnh AT+CMGS

Lệnh AT+CMGS dùng để gửi tin nhắn SMS tới một số điện thoại cho trước . Cú pháp gửi tin như sau:

- AT+CMGS= “số điện thoại cần gửi” - Nội dung tin nhắn

- ESC/Ctrl Z

Số điện thoại cần gửi phải được đặt trong dấu ngoặc kép. Sau khi gõ xong số điện thoại thì cần thực hiện lệnh enter để xuống dòng và bắt đầu nội dung tin nhắn. Kết thúc lệnh này bằng việc thực hiện lệnh Cltr Z.

Ví dụ lệnh gửi tin nhắn tới số 0989196980 với nội dung “abcd” được thực hiện tại chế độ text trong phần mềm lập trình CCS như sau:

printf("AT+CMGS=\"0978306385\"\r\n"); delay_ms(500); (adsbygoogle = window.adsbygoogle || []).push({});

printf("abcd");// nội dung tin nhắn delay_ms(500);

putc(26); // ctrl +Z delay_ms(500); - AT+CMGD

Lệnh AT+CMGD dùng dể xóa tin nhắn SMS trên sim. Cấu trúc lệnh như sau: AT+CMGD=i

Với i là ngăn bộ nhớ chứa tin nhắn cần xóa. Nếu ngăn i chứa tin nhắn thì đáp ứng trả về là OK, còn nếu việc thực hiện tin nhắn không thực hiện được như ngăn i không có tin nhắn, hoặc lỗi kết nối tới sim, lỗi sóng thì trả về sẽ là ERROR.

Ví dụ xóa tin nhắn từ ngăn số 1 của sim: AT+CMGD=1. - Lệnh ATE

Lệnh này dùng để thiết lập chế độ lệnh phản hồi trở lại . Đáp ứng trở lại là OK. Lệnh ATE có hai tham số hoàn toàn khác nhau:

- ATE0: tắt chế độ phản hồi - ATE1: bật chế độ phản hồi.

Khi giao tiếp module sim900 với phần mềm terminal trên máy tính, nếu ta dùng lệnh ATE0 thì khi gõ các lệnh AT khác thì không nhìn thấy lệnh ta gõ mà chỉ nhìn thấy kết quả trả về của sim900. Ngược lại, khi dùng lệnh ATE1 thì sẽ nhìn được cả lệnh ta gõ lên và lệnh sim900 trả về.

- Lệnh AT&W

Lệnh AT&W được dùng để lưu cấu hình cài đặt được thiết lập bởi các lệnh ATE và AT+CLIP vào bộ nhớ (Lệnh AT+CLIP để cài đặt cuộc gọi). Đáp ứng trả về khi thực hiện lệnh này là OK.

Lệnh AT+CMGF dùng để lựa chọn định dạng tin nhắn SMS, với hai chế độ là text và PDU, cụ thể như sau:

AT+CMGF=1: lựa chọn sử dụng tin nhắn ở chế độ văn bản AT+CMGF=0: lựa chọn sử dụng tin nhắn ở chế độ PDU

Đáp ứng trả về là “OK” nếu như modem hỗ trợ, ngược lại, nếu modem không hỗ trợ chế độ định dạng tin nhắn là text hoặc PDU thì đáp ứng trả về sẽ là “ERROR”.

- Lệnh AT+CNMI

Lệnh này dùng để thông báo có tin nhắn mới đến. Với các tham số khác nhau thì mỗi khi có tin nhắn, đáp ứng trả về cũng sẽ khác nhau.

Ví dụ về các lệnh AT+CNMI khác nhau khi cùng nhận một tin nhắn SMS có nội dung giống nhau: AT+CNMI=1,1,0,0,0 sẽ trả về: +CMTI: "SM",10 AT+CNMI=2,2,0,0,0 sẽ trả về: +CMT: "+0978306385","","12/09/19,14:21:42+28" Abcdef

Như vậy, chúng ta thấy rằng, với trường hợp 1 thì nội dung tin nhắn được lưu trực tiếp vào ngăn số 10 của sim. Nội dung của tin nhắn này chỉ được đọc bằng lệnh AT+CMGR=10. Còn trong trường hợp số 2, nội dung tin nhắn được hiển thị ra cùng với thời gian và số điện thoại.

- Lệnh AT+CSAS

Lệnh AT+CSAS dùng để lưu các thiết lập SMS do người dùng đã cài đặt trước đó. Lệnh này sẽ lưu trực tiếp các thông số đã cài đặt cho tin nhắn SMS như các lệnh AT+CMGF=1; AT+CNMI=2,2,0,0,0...và còn nhiều lệnh khác liên quan tới tin nhắn SMS đều được lưu lại bởi lệnh AT+CSAS này.

Trên đây là một số lệnh AT thường dùng để GSM/GPRS modem xử lý với tin nhắn SMS. Và cũng chính các lệnh cơ bản này được sử dụng trong việc viết chương trình điều khiển thiết bị có sử dụng trong đồ án này. Sim900 đóng vai trò là Mobile Terminal . Ngoài ra, còn rất nhiều tập lệnh AT dùng cho sim900 để phục vụ cho các quá trình khác nhau như thực hiện cuộc gọi, kết nối GPRS, cài đặt thời gian, đặt mật khẩu và còn nhiều chức năng khác phục vụ trong quá trình hoạt động của modem .

Ứng dụng:

GSM Module Sim900 cho phép ta triển khai các ứng dụng giám sát/điều khiển dựa trên tin nhắn SMS, hoặc công nghệ GPRS cho phép giám sát ngay trên nền web.

Hình 2.3 Ứng dụng mô hình triển khai thực tế

Hình 4: Ứng dụng của GSM MODULE SIM900

GSM Module Sim900 cho phép điều khiển các thiết bị điện trong nhà như đèn quạt, máy tính, các thiết bị sử dụng điện 220V, thiết bị công suất thấp…Đồng thời GSM Module Sim900 cũng cập nhật và giám sát các thiết bị bằng các cảm biến mà người dùng tùy chọn thông qua các mạch vi điều khiển.

2. Hướng dẫn sử dụng:

GSM Module Sim900 hoạt động với mức điện áp từ 3.2V – 4.8V, yêu cầu dòng cung cấp 2A. Simcom khuyên nên sử dụng mạch nguồn xung 3A dùng IC ổn áp LM2576 hoặc LM2596. Để bật/tắt GSM Module Sim900 ta kích một xung mức cao vào chân số 1 trong thời gian khoảng 1s, lúc này đèn Led status sẽ sáng, sau đó nhấp nháy với tần suất nhanh báo hiệu Sim900 đang khởi động và tìm mạng. 10s sau Led status nhấp nháy chậm lại báo hiệu Sim900 đã hoạt động bình thường.Với các ngõ giao tiếp được thiết kế sao cho thuận tiện nhất cho người sử dụng, bạn có thể tự phát triển ý tưởng và làm ra một sản phẩm “hand made” hiện đại nhưng cũng rất thiết thực với cuộc sống Để test SIM900 với máy vi tính ta cần một board giao tiếp máy tính

truyền nhận dữ liệu từ cổng UART của SIM900 với bất kì một phần mềm Terminal nào trên máy vi tính.

Để hướng dẫn test GSM Module Sim900 sử dụng mạch nguồn

LM2596 STEP DOWN và mạch giao tiếp USB to UART do AT-COM. Sau khi kết nối ta sử dụng phần mềm Terminal.exe để giao tiếp máy tính với GSM Module Sim900 (adsbygoogle = window.adsbygoogle || []).push({});

Test GSM Module Sim900: Bước 1: Khởi động SIM900

- Sau khi khởi động SIM900 ta sẽ nhìn thấy trên màn hình như sau… RDY

+CFUN: 1 +CPIN: READY Call ready

- Màn hình hiện 4 dòng như trên tức là SIM900 đã khởi động hoàn tất Bước 2: Test kiểm tra đường truyền

- Để kiểm tra đường truyền ta gởi lệnh AT cho sim ta gõ từ bàn phím lệnh AT và nhấn enter. Lúc đó trên màn hình sẽ hiển thị:

At OK

- Nếu nhận được thông báo OK tức là đường truyền đang truyền tốt. Bước 3: Test nhận cuộc gọi:

- Sau khi test gởi AT thành công ta dùng một điện thoại khác để gọi vào sim trên GSM Module Sim900 để test nhận cuộc gọi.

SIM900 hoạt động tốt sẽ trả về màn hình như sau: Ring

NO CARIER

Bước 4: Test nhận tin nhắn

Đầu tiên ta phải cấu hình tin nhắn của SIM900 với định dạng là kiểu text Cấu trúc lệnh như sau: AT+CMGF=1 Gõ Enter

Bây giờ ta sẽ dùng một điện thoại khác để gởi một tin nhắn vào SIM900. Nếu SIM900 hoạt động tốt sẽ nhận chuỗi như sau:

+CMT: “+84978306385”,””,”12/12/26,09:57:27+28” Test module sim900

Bước 5: Test gọi

- Bước tiếp theo là test cho sim thực hiện cuộc gọi ta dùng lệnh:

Cú pháp lệnh: ATDxxxxxxxxxx; Gõ Enter (xxxxxxxxxxx: là số điện thoại cần gọi). Nếu muốn kết thúc cuộc gọi dùng lệnh ATH để kết thúc cuộc gọi.

Cú pháp lệnh: ATH Gõ Enter

Nên nhớ sau khi đánh xong dòng lệnh ATD; gõ Enter tiếp theo phải nhấn tổ hợp phím Ctrl+z thì sim mới hiểu và thực hiện cuộc gọi.

Atd0978306385; OK BUSY

Bước 6: Test nhắn tin

- Để test nhắn tin ta dùng lệnh

AT+CMGS=”xxxxxxxxxxx” (xxxxxxxxxxx: là số điện thoại cần nhắn tin) >nội dung tin nhắn

- Sau khi nhập nội dung tin nhắn và cuối cùng là tổ hợp phím Ctrl+z để sim hiểu và gởi tin nhắn đi. Sau đây là các thao tác trên màn hình:

+CMT : “+84978306385”,””,”12/12/26,09:57:27+28” Test module sim900

- Sim trả về OK tức là đã gởi thành công tin nhắn.

Một phần của tài liệu Đo lường điều khiển từ xa qua mạng điện thoại di động bằng modulsim900 kết nối vi điều khiển ATmega8 (Trang 30)