d. UART 9 bit tốc độ baud thay đổi được (chế độ 3):
2.3.3 TẬP LỆNH CHO ỨNG DỤNG GSM Các thuật ngữ:
Các thuật ngữ:
<CR>: Carriage return (0x0D) <LF>: Line Feed (0x0A)
MODULE: 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 cuối: máy tính,vi điều khiển).
2.3.3.1 Các lệnh thiết lập và cài đặt cuộc gọi
Bảng 2.14 Các lệnh cài đặt và thực hiện cuộc gọi
ATA Trả lời một cuộc gọi đến
ATD Đi trước một số điện thoại để thực hiện cuộc gọi
ATD><mem><n> Thực hiện cuộc gọi đến số điện thoại đã lưu trong bộ nhớ ATD<str> Thực hiện cuộc gọi đến số đã lưu và có tên <str>.
ATDL Gọi số vừa gọi gần nhất ATH Ngắt kết nối đang thực hiện
ATI Hiện thị thông tin về module SIM900 ATL Cài đặt độ lớn của loa
ATO Chuyển từ chế độ nhận lệnh sang chế độ nhận dữ liệu ATT Lựa chọn kiểu chuông
ATZ Thực hiện lệnh này trước khi cài đặt lại các thông số của module. AT&F Thiết lập các thông số cài đặt là các thông số mặc định.
AT&V Hiện thị cấu hình đã cài đặt cho module
+++ Chuyển từ chế độ dữ liệu và kết nối mạng GPRS về chế độ lệnh
2.3.3.2 Nội dung chi tiết các lệnh cài đặt và thực hiện cuộc gọi
* ATA: Lệnh nhấc máy khi có cuộc gọi đến. MODULE gửi trả “OK” khi kết nối
thành công. MODULE gửi trả “NO CARRIER” khi kết nối không thành công.
* ATD[<n>][<msgm>][;]: Lệnh thực hiện cài đặt dịch vụ cuộc gọi. Lệnh này có
thể hủy bỏ bằng việc nhận 1 lệnh ATH hoặc 1 ký tự khi lệnh đang thực thi. Nếu cuộc gọi được kết nối và cài đặt hoàn tất. MODULE gửi trả: ”OK”
MODULE gửi trả: “NO DIALTONE” nếu không có chuông. Hoặc gửi trả “BUSY” nếu số máy đang bận hoặc gửi trả “NOCARRIER” nếu bị từ chối hoặc không nhấc máy
Các tham số: <n> : số điện thoại <msgm>:
“I” Không hiện thị số người gọi. “i” Hiện thị số người gọi.
“G” Kích hoạt chế độ gọi nội bộ. “g” Hủy chế độ gọi nội bộ.
<;>: Kết thúc và thực hiện cài đặt cuộc gọi.
* ATD<mem><n>[<I>][<G>][;]: Lệnh thực hiện quay số có trong danh bạ riêng
biệt. Lệnh này có thể hủy bỏ bằng việc nhận 1 lệnh ATH hoặc 1 ký tự khi lệnh đang thực thi.Module bị lỗi. MODULE gửi trả:
+ CME ERROR: <err>
Nếu không đổ chuông. MODULE gửi trả: “NO DIALTONE”. Số máy đang bận gửi trả: “BUSY”.
Không kết nối hoặc bị từ chối gửi trả: “NO CARRIER”. Kết nối thành công và cuộc gọi được thực hiện: “OK” Các tham số: <mem> danh bạ
“DC” danh sách các số đã gọi. “FD” danh bạ trong sim.
“LD” danh sách các số đã gọi trong sim. “MC” danh sách các cuộc gọi nhỡ. “ME” tất cả các số có trong danh bạ.
<n>: Một số nguyên là vị trí bộ nhớ có thể sử dụng. <msgm>:
I: Không hiện thị số người gọi i: Hiện thị số người gọi
G: Kích hoạt chế độ gọi nội bộ g: Hủy chế độ gọi nội bộ.
<;>: Kết thúc và thực hiện cuộc gọi
* ATD><n>[<I>][<G>][;]: Thực hiện cuộc gọi từ dạnh bạ. Lệnh thực hiện quay
số có trong danh bạ riêng biệt. Lệnh này có thể hủy bỏ bằng việc nhận 1 lệnh ATH hoặc 1 ký tự khi lệnh đang thực thi. Module bị lỗi. MODULE gửi trả:
+ CME ERROR:<err>
Nếu không đổ chuông. MODULE gửi trả: “NO DIALTONE” Số máy đang bận: “BUSY”
Không kết nối hoặc bị từ chối : “NO CARRIER” Kết nối thành công và cuộc gọi được thực hiện: “OK” Các tham số: <n>:
Một số nguyên là vị trí bộ nhớ có thể sử dụng. <msgm>:
I: Không hiện thị số người gọi i: Hiện thị số người gọi
G: Kích hoạt chế độ gọi nội bộ g: Hủy chế độ gọi nội bộ.
* ATD><str>[<I>][<G>][;]: Lệnh thực hiện cuộc gọi đến số đã lưu trong danh
bạ có tên <str>. Lệnh này có thể hủy bỏ bằng việc nhận 1 lệnh ATH hoặc 1 ký tự khi lệnh đang thực thi. Module bị lỗi. MODULE gửi trả:
+ CME ERROR:<err>
- Nếu không đổ chuông. MODULE gửi trả: “NO DIALTONE”. - Số máy đang bận: “BUSY”.
- Không kết nối hoặc bị từ chối : “NO CARRIER”. - Kết nối thành công và cuộc gọi được thực hiện: “OK”. + Các tham số:
<str>: Chuỗi ký tự “abc123” đã lưu torng dạnh bạ. <msgm>:
- I: Không hiện thị số người gọi. - i: Hiện thị số người gọi
- G: Kích hoạt chế độ gọi nội bộ - g: Hủy chế độ gọi nội bộ. <;>: Kết thúc và thực hiện cuộc gọi.
* ATDL: Thực hiện cuộc gọi đến số vừa gọi gần nhất. Lệnh này có thể hủy bỏ
bằng việc nhận 1 lệnh ATH hoặc 1 ký tự khi lệnh đang thực thi. Module bị lỗi. MODULE gửi trả:
+ CME ERROR:<err>
- Nếu không đổ chuông. MODULE gửi trả: “NO DIALTONE”. - Số máy đang bận: “BUSY”.
- Không kết nối hoặc bị từ chối :“NO CARRIER”. - Kết nối thành công và cuộc gọi được thực hiện: “OK”.
* ATH0: Lệnh ngắt kết nối đang thực hiện. Lệnh được thực hiện. MODULE gửi
trả: “OK”
* ATI: Lệnh yêu cầu hiện thông tin của module.
Ví dụ: SIMCOM_ltd. SIMCOM_SIM900Z.
* ATL[value]: Lệnh cài đặt độ lớn của loa. Lệnh thực hiện thành công,
Tham số:[value]: Có bốn mức độ 0,1,2,3.
* ATM[value]: Lệnh cài đặt các chế độ cho loa. Lệnh thực hiện thành công,
MODULE gửi trả:“OK”
Tham số: [value]: - 0 Tắt loa.
- 2 Mở loa khi nhấc máy.
+++: - Lệnh này chỉ có hiệu lực khi module đang ở kết nối mạng GPRS.
- Lệnh này thực hiện hủy bỏ kết nối và trở về chế độ nhận lệnh. - Lệnh thực hiện thành công, MODULE gửi trả:“OK”
- Thực hiện chuyển từ chế độ nhận lệnh trở về chế độ nhận dữ liệu và kết nối mạng gửi lệnh ATO.
* ATO[n]:
- Lệnh chuyển module từ chế độ nhận lệnh sang chế độ nhận dữ liệu. - Lệnh thực hiện không thành công. MODULE gửi trả: “NO CARRIER “. - Lệnh thực hiện thành công, MODULE gửi trả: “OK”.
2.3.3.3 Các lệnh thiết lập và gửi SMS
Bảng 2.15 Các lệnh thiết lập và gửi tin nhắn SMS
AT+CMGD Xóa tin nhắn sms.
AT+CMGF Định dạng văn bản tin nhắn. AT+CMGL Danh sách tin nhắn đã lưu. AT+CMGR Lệnh đọc tin nhắn
AT+CMGS Lệnh gửi tin nhắn
AT+CMGW Lưu tin nhắn vào bộ nhớ AT+CMSS Gửi tin nhắn đã lưu AT+CMGC Gửi sms lệnh
AT+CNMI MODULE gửi thông báo khi có tin nhắn mới AT+CPMS Các tin nhắn riêng biệt đã lưu
AT+CRES Cài đặt lại tin nhắn AT+CSAS Lưu cài đặt cho tin nhắn AT+CSCA Địa chỉ dịch vụ tin nhắn
AT+CSMP Cài đặt định dạng chữ của tin nhắn AT+CSMS Lựa chọn tin nhắn dịch vụ
2.3.3.4 Nội dung các lệnh cài đặt và thực hiện gửi SMS
* AT+CMGD=<index>:
- Lệnh xóa tin nhắn sms đã lưu tron bộ nhớ.
- Lệnh thực hiện thành công.MODULE gửi trả: “OK”
- Nếu lệnh không thực hiện được. MODULE gửi trả: +CMS ERROR <err> - Tham số: <index> Vị trí của tin nhắn lưu trong bộ nhớ.
<err> Cho biết lỗi.
* AT+CMGF=[<mode>]:
- Lệnh cài đặt định dạng của tin nhắn gửi và nhận. - Lệnh thực hiện thành công.MODULE gửi trả: “OK” - Tham số:[<mode>] 0 Dạng PDU.
1 Dạng văn bản.
* AT+CMGL=[<stat>]:
- Danh sách tin nhắn đã lưu. - Tham số:
+ Nếu tin nhắn là dạng văn bản:
[<stat>]: “REC UNREAD” tin nhắn chưa đọc. “REC READ” tin nhắn đã đọc.
“STO UNSEND” tin nhắn chưa gửi được. “STO SEND” tin nhắn đã gửi.
“ALL” tất cả tin nhắn + Nếu tin nhắn là dạng PDU: [<stat>] 0 tin nhắn chưa đọc. 1 tin nhắn đã đọc 2 tin nhắn chưa gửi. 3 tin nhắn đã gửi. 4 tất cả tin nhắn
+ Nếu tin nhắn là dạng văn bản (+CMGF=1) :+CMGL: [<index>, [<stat>], [<oa/da>], [<alpha>], [<scts>] [,<tooa/toda>,<length>][<data>] “OK”
+ Nếu tin nhắn là dạng PDU (+CMGF=0) :+CMGL:<index>,<stat>, [<alpha>], < length ><pdu> “OK”
Nếu lệnh thực hiện không thành công, MODULE gửi trả:+CMS ERROR: <err>
* AT+CMGR=<index>[,<mode>]: Lệnh đọc tin nhắn sms.
Tham số <index> Một số nguyên là vị trí của đã lưu tin nhắn. <mode> 0 Chế độ mặc định.
1 Không thay đổi trạng thái của tin nhắn.
Ví dụ : Tin nhắn sẽ không chuyển từ 'receivedunread’ sang ‘received read’ khi được đọc.
Lệnh thực hiện thành công, MODULE gửi trả lại chuỗi có dạng:
+ Nếu tin nhắn là dạng văn bản (+CMGF=1):+ CMGR: <stat>, <sn>, <mid>, <dcs>, <page>, <pages><data>
“OK”
+ Nếu tin nhắn là dạng PDU (+CMGF=0): +CMGR: <stat>, [<alpha>], <length> <pdu>
“OK”
Lệnh thực hiện không thành công,MODULE gửi trả: + CMS ERROR: <err>
Tham số: <stat>: 0 "REC UNREAD" tin nhắn chưa được đọc. 1 "REC READ" tin nhắn đã đọc.
2 "STO UNSENT" tin nhắn chưa gửi được. 3 "STO SENT" tin nhắn đã gửi.
4 "ALL" tất cả tin nhắn. <length> Độ dài của tin nhắn (số ký tự). <data> Nội dung tin nhắn.
* AT+CMGS = <da>[,<toda>]<CR>nội dung tin nhắn<ctr-Z/ESC>: Lệnh gửi
Gửi <ESC> cho module để hủy bỏ việc gửi tin nhắn khi lệnh đang thực thi. Tham số: <da> “số điện thoại gửi tin nhắn”
Nếu lệnh được thực hiện thành công và tin nhắn đã được gửi đi, MODULE gửi trả: CR><LF>+CMGS: <mr>“OK”
Nếu lệnh không thực hiện được,MODULE gửi trả: “+CMS ERROR: <err>” Tham số: <mr> Một số nguyên là vị trí lưu tin nhắn vào bộ nhớ.
* AT+CMGW=[<oa/da>[,<tooa/toda>[,<stat>]]]<CR>:
Nội dung tin nhắn<ctrl Z/ESC><ESC>: Lệnh lưu tin nhắn vào bộ nhớ. Gửi <ESC> cho module để hủy bỏ việc lưu tin nhắn khi lệnh đang thực thi.
Lệnh thực hiện thành công, tin nhắn đã được lưu vào bộ nhớ. MODULE gửi trả: CR><LF>+CMGW: <index><“OK”. Nếu có lỗi xảy ra,MODULE gửi trả: +CMS ERROR: <err>
Tham số: <index> Vị trí lưu tin nhắn.
AT+CMSS=<index>[,<da>[,<toda>]]: Lệnh gửi tin nhắn từ bộ nhớ lưu tin nhắn Lệnh thực hiện thành công,MODULE gửi trả: +CMGS: <mr> OK
Lệnh thực hiện không thành công: +CMS ERROR: <err> Tham số: - <mr> Vị trí lưu tin nhắn trong bộ nhớ.
- <err> Lỗi nhận được.
* AT+CNMI=[<mode>[,<Module>[,<bm>[,<ds>[,<bfr>]]]]]:
- Lệnh này cài đặt cho module để module thông báo khi nhận được tin nhắn mới. - Lệnh thực hiện thành công,MODULE gửi trả: “OK”
- Lệnh thực hiện không thành công: “+CMS ERROR: <err> “ - Tham số:
<Module>: 0 Không gửi thông báo khi có tin nhắn mới.
1 Gửi thông báo với định dạng:+ CMODULEI: <mem>,<index> 2 Gửi thông báo có định dạng:+ CMODULE: <oa>, [<alpha>], <scts> [,<tooa>, <fo>,<pid>,<dcs>,<sca>,<tosca>,<length>]”<data>.