Giao Tiếp Vi Điều Khiển Với Module Sim548 - Part 2
4. Ứng
dụng GSM của module SIM548.
4.1. Giới
thiệu về ứng dụng GSM.
GSM
(Global System for Mobile Communication) là hệ thống thông tin di động toàn
cầu. GSM là chuẩn giao tiếp phổ biến nhất cho điện thoại di động nhờ khả năng
phủ sóng rộng khắp thế giới.GSM khác với các chuẩn giao tiếp trước đó về chất
lượng tín hiệu,tốc độ và tiện ích tin nhắn. Nó được xem là một hệ thống di động
thứ hai (second generation, 2G) . GSM là một chuẩn mở,hiện tại nó được phát
triển bởi 3rd Generation Partnership Project (3GPP).
Mạng
GSM
4.2. Sử
dụng ứng dụng GSM cho dịch vụ gửi tin nhắn và cuộc gọi.
Sử dụng tập lệnh AT dành
cho GSM của module SIM548 trong các thao tác dùng cho dịch vụ SMS (Short
Message Service) và cuộc gọi, bao gồm:
- Khởi
tạo
- Nhận
cuộc gọi.
- Thiết
lập cuộc gọi.
- Nhận
tin nhắn.
- Gửi
tin nhắn.
4.2.1 Các
thuật ngữ.
<LF> : Line Feed
(0x0A).
MT : Mobile Terminal .
Thiết bị đầu cuối mạng (trong trường hợp này là module SIM548).
TE : Terminal
Equipment. Thiết bị đầu cuối (máy tinh, hệ vi điều khiển)
4.2. 2 Khởi tạo sử dụng.
- Đưa
module về chế độ nghỉ (sleep mode)
Chuyển
từ chế độ bình thường sang chế độ nghỉ (sleep mode)
(1) AT+CFUN=0<CR>
Tắt hết mọi chức năng liên
quan đến truyền nhận sóng RF và các chức năng liên quan đến SIM. module không
còn được kết nối với mạng.
(2)
<CR><LF>OK<CR><LF>
Chuỗi thông báo kết quả
thực thi lệnh thành công, thông thường là sau 3 giây kể từ lúc nhận lệnh
AT+CFUN=0.
(3) Chuyển trạng thái chân
DTR từ mức 0 sang mức 1.
Module hoạt động ở chế độ
sleep mode.
- Chuyển
từ chế độ nghỉ sang chế độ hoạt động bình thường.
Đưa
module trở về trạng thái hoạt động
(1) Đưa chân DRT chuyển từ
mức 1 xuống mức 0
Module thoát khỏi chế độ
sleep.
(2)
AT+CFUN=1<CR>
Đưa module trở về chế độ
hoạt động bình thường.
(3) MT trả về chuỗi
<CR><LF>OK<CR><LF>.
(4) Module gửi tiếp chuỗi
thông báo <CR><LF>Call Ready<CR><LF>.
Thời gian kể từ lúc nhận
lệnh AT+CFUN=1<CR> đến lúc module gửi về thông báo trên khoảng 10 giây.
-
Khởi tạo cấu hình mặc định cho modem.
Khởi
tạo cấu hình mặc định cho module SIM548
(1) ATZ<CR>
Reset modem, kiểm tra modem
dã hoạt động bình thường chưa. Gửi nhiều lần cho chắc ăn, cho đến khi nhận được
chuỗi: ATZ<CR><CR><LF>OK<CR><LF>.
(2) ATE0<CR>
Tắt chế độ echo lệnh. Chuỗi
trả về có dạng: ATE0<CR><CR><LF>OK<CR><LF>.
(3) AT+CLIP=1<CR>
Định dạng chuỗi trả về khi
nhận cuộc gọi.
Thông thường, ở chế độ mặc
định, khi có cuộc gọi đến, chuỗi trả về sẽ có dạng:
<CR><LF>RING<CR><LF>
Sau khi lệnh
AT+CLIP=1<CR> đã được thực thi, chuỗi trả về sẽ có dạng:
<CR><LF>RING<CR><LF>
<CR><LF>+CLIP:
"0929047589",129,"",,"",0<CR><LF>
Chuỗi trả về có chứa thông
tin về số điện thoại gọi đến. Thông tin này cho phép xác định việc có nên nhận
cuộc gọi hay từ chối cuộc gọi.
Kết thúc các thao tác khởi
tạo cho quá trình nhận cuộc gọi. Các bước khởi tạo tiếp theo liên quan đến các
thao tác truyền nhận tin nhắn.
(4) AT&W<CR>
Lưu cấu hình cài đặt được
thiết lập bởi các lệnh ATE0 và AT+CLIP vào bộ nhớ.
(5) AT+CMGF=1<CR>
Thiết lập quá trình truyền
nhận tin nhắn được thực hiện ở chế độ text (mặc định là ở chế độ PDU).
Chuỗi trả về sẽ có dạng:
<CR><LF>OK<CR><LF>
(6)
AT+CNMI=2,1,0,0,0<CR>
Thiết lập chế độ thông báo
cho TE khi MT nhận được tin nhắn mới.
Chuỗi trả về sẽ có dạng:
<CR><LF>OK<CR><LF>
Sau khi lệnh trên được
thiết lập, tin nhắn mới nhận được sẽ được lưu trong SIM, và MT gửi thông báo
khi có tin nhắn mới. TE có thể đọc tin nhắn được lưu trong SIM.
(7) AT+CSAS<CR>
Lưu cấu hình cài đặt được
thiết lập bởi các lệnh AT+CMGF và AT+CNMI.
- Xóa
tin nhắn trước khi hoạt động :
Khởi
tạo module SIM548
(1) AT+CMGD=1
Xóa tin nhắn ở vùng nhớ 1
trong SIM.
Chuỗi trả về sẽ có dạng:
<CR><LF>OK<CR><LF>
(2) AT+CMGD=2
Tác dụng tương tự như lệnh
số 1. Lệnh này được dùng để xóa tin nhắn được lưu trong ngăn số 2.
Có thể hình dung bộ nhớ lưu
tin nhắn trong SIM bao gồm nhiều ngăn (loại Super SIM của Mobi phone có 50
ngăn), mỗi ngăn cho phép lưu nội dung của 1 tin nhắn (bao gồm tất cả các loại
tin nhắn: tin nhắn từ tổng đài, tin nhắn thông báo kết quả quá trình gửi tin
nhắn trước đó, tin nhắn từ thuê bao khác, …). Mỗi ngăn được đại diện bằng một
số thứ tự.
Khi nhận được tin nhắn mới,
nội dung tin nhắn sẽ được lưu trong một ngăn trống có số thứ tự nhỏ nhất có
thể.
Việc xóa nội dung tin
nhắn ở hai ngăn 1 và 2 cho phép tin nhắn nhận được luôn được lưu vào trong hai
ô nhớ này, giúp dễ dàng xác định vị trí lưu tin nhắn vừa nhận được, và giúp cho
việc thao tác với tin nhắn mới nhận được trở nên dễ dàng và đơn giản hơn, giảm
khả năng việc tin nhắn mới nhận được bị thất lạc ở một vùng nhớ nào đó mà ta
không kiểm soát được.
Nhận
cuộc gọi
(1) Sau khi
được khởi tạo bằng lệnh AT+CLIP=1, khi có cuộc gọi đến, chuỗi trả về sẽ có
dạng:
<CR><LF>RING<CR><LF>
<CR><LF>+CLIP:
"0929047589",129,"",,"",0<CR><LF>
Chuỗi trả về có hiển thị số
điện thoại yêu cầu được kết nối, dựa trên thông tin này để có thể ra quyết định
nhận cuộc gọi hay từ chối cuộc gọi.
(2A) Nếu số điện thoại gọi
đến không hợp lệ, từ chối nhận cuộc gọi bằng lệnh ATH, và chuỗi trả về sẽ có
dạng:
<CR><LF>OK<CR><LF>
Cuộc gọi kết thúc.
(2B) Nếu số điện thoại gọi
đến là hợp lệ, nhận cuộc gọi bằng cách gửi lệnh ATA, và chuỗitrả về sẽ có dạng:
<CR><LF>OK<CR><LF>
(3) Giai đoạn thông
thoại.
(4A) Kết thúc cuộc gọi. Đầu
còn lại gác máy trước.
(4B) Kết thúc cuộc gọi, chủ
động gác máy bằng cách gửi lệnh ATH.
4.2.4. Thiết
lập cuộc gọi
Thực
hiện cuộc gọi
(1)
ATDxxxxxxxxxx;<CR>
Quay số cần gọi.
(2) Chuỗi trả
về có dạng: <CR><LF>OK<CR><LF>.
Chuỗi này thông báo lệnh
trên đã được nhận và đang được thực thi.
Sau đó là những chuỗi thông
báo kết quả quá trình kết nối (nếu như kết nối không được thực hiện thành
công).
(2A) Nếu MT không thực hiện
được kết nối do sóng yếu, hoặc không có sóng,chuỗi trả về sẽ có dạng:
<CR><LF>NO DIAL
TONE<CR><LF>
(2B) Nếu cuộc gọi bị từ
chối bởi người nhận cuộc gọi, hoặc số máy đang gọi tạm thời không hoạt động
(chẳng hạn như bị tắt máy) chuỗi trả về có dạng:
<CR><LF>NO
CARRIER<CR><LF>
(2C) Nếu cuộc gọi không thể
thiết lập được do máy nhận cuộc gọi đang bận (ví dụ như đang thông thoại với
một thuê bao khác), chuỗi trả về sẽ có dạng:
<CR><LF>BUSY<CR><LF>
(4s)
Tổng thời gian từ lúc modem
nhận lệnh cho đến lúc nhận được chuỗi trên thông thường là 4 giây.
(2D) Nếu sau 1 phút mà thuê
bao nhận cuộc gọi không bắt máy, chuỗi trả về sẽ có dạng:
<CR><LF>NO ANSWER<CR><LF> (60s)
(3) Trong trường hợp
quá trình thiết lập cuộc gọi diễn ra bình thường, không có chuỗi thông báo nào
(2A, 2B, 2C hay 2D) được trả về, và chuyển sang giai đoạn thông thoại. Quá
trình kết thúc cuộc gọi được diễn ra trong hai trường hợp:
(4A) Đầu nhận cuộc gọi gác
máy trước.Chuỗi trả về sẽ có dạng:
<CR><LF>NO
CARRIER<CR><LF>
(4B) Đầu thiết lập cuộc gọi
gác máy trước.Phải tiến hành gửi lệnh ATH, và chuỗi trả về sẽ có dạng:
<CR><LF>OK<CR><LF
4.2.5. Đọc
tin nhắn
Đọc
tin nhắn từ 2 vùng nhớ 1 và 2 trên SIM
Mọi thao tác liên quan đến
quá trình nhận tin nhắn đều được thực hiện trên 2 ngăn 1 và 2 của bộ nhớ nằm
trong SIM.
(1) Đọc tin nhắn
trong ngăn 1 bằng lệnh AT+CMGR=1.
(2A) Nếu ngăn 1 không chứa
tin nhắn, chỉ có chuỗi sau được trả về:
<CR><LF>OK<CR><LF>
(2B) Nếu ngăn 1 có chứa tin
nhắn, nội dung tin nhắn sẽ được gửi trả về TE với định dạng như sau:
<CR><LF>+CMGR:
"REC
UNREAD","+84929047589",,"07/05/15,09:32:05+28"
<CR><LF>NỘI
DUNG<CR><LF>
<CR><LF>OK<CR><LF>
Các tham số trong chuỗi trả
về bao gồm trạng thái của tin nhắn (REC UNREAD), số điện thoại gửi tin nhắn
(+84929047589) và thời gian gửi tin nhắn (07/05/15,09:32:05+28) và nội dung tin
nhắn.
Đây là định dạng mặc định
của module SIM548 lúc khởi động. dạng mở rộng có thể được thiết lập bằng cách
sử dụng lệnh AT+CSDH=1 trước khi thực hiện đọc tin nhắn.
(3) Sau khi
đọc, tin nhắn được xóa đi bằng lệnh AT+CMGD=1.
Thao
tác tương tự đối với tin nhắn chứa trong ngắn thứ 2 trong các bước 4, 5A (5B)
và 6.
4.2.6. Gửi
tin nhắn.
Gửi
tin nhắn
(1) Gửi tin nhắn đến thuê
bao bằng cách sử dụng lệnh AT+CMGS=”số điện thoại”.
(2) Nếu lệnh (1) được thực
hiện thành công, chuỗi trả về sẽ có dạng:
<CR><LF>>
(kí tự “>” và 1 khoảng trắng).
(3) Gửi nội dung tin nhắn
và kết thúc bằng kí tự có mã ASCII 0x1A.
(3A) Gửi kí tự ESC
(mã ASCII là 27) nếu không muốn tiếp tục gửi tin nhắn nữa. Khi đó
TE sẽ gửi trả về chuỗi
<CR><LF>OK<CR><LF>.
(4) Chuỗi trả
về thông báo kết quả quá trình gửi tin nhắn. Chuỗi trả về có định dạng như sau:
<CR><LF>+CMGS:
62<CR><LF>
<CR><LF>OK<CR><LF>
Trong đó 62 là một số
tham chiếu cho tin nhắn đã được gửi. Sau mỗi tin nhắn được gửi đi, giá trị của
số tham chiếu này sẽ tăng lên 1 đơn vị. Số tham chiếu này có giả trị nằm trong
khoảng từ 0 đến 255.
Thời gian gửi một tin nhắn
vào khoảng 3-4 giây (kiểm tra với mạng Mobi phone).
(4A) Nếu tình trạng
sóng không cho phép thực hiện việc gửi tin nhắn hoặc chức năng RF của modem
không được cho phép hoạt động (do sử dụng các lệnh AT+CFUN=0 hoặc AT+CFUN=4),
hoặc số tin nhắn trong hàng đợi phía tổng đài vượt qua giới hạn cho phép, hoặc
bộ nhớ chứa tin nhắn của MT nhận được tin nhắn bị tràn, MT sẽ gửi thông báo lỗi
trở về và có định dạng như sau:
<CR><LF>+CMS
ERROR: 193<CR><LF>
<CR><LF>+CMS
ERROR: 515<CR><LF>
Chức
năng truyền nhận tin nhắn và chức năng thoại được tách biệt. Khi đang thông
thoại vẫn có thể truyền nhận được tin nhắn. Khi truyền nhận tin nhắn vẫn có thể
tiến hành thiết lập và kết thúc cuộc gọi.
5. Một
số tập lệnh AT cơ bản sử dụng cho ứng dụng GSM
5.1. Các
thuật ngữ.
<CR> : Carriage
return (0x0D).
<LF> : Line Feed
(0x0A).
MT : Mobile Terminal .
Thiết bị đầu cuối mạng (trong trường hợp này là module SIM548).
TE
: Terminal Equipment. Thiết bị đầu cuối (máy tinh, hệ vi điều khiển).
5.2. Các
lệnh thiết lập và cài đặt cho 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 SIM548.
|
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.
|
Chi tiết các lệnh thiết lập
và cài đặt cuộc gọi
- Chi
tiết về tập lệnh thiết lập và cài đặt cho cuộc gọi:
ATA
|
Lệnh nhấc máy khi có cuộc gọi đến
MT gửi trả <CR><LF>OK<CR><LF>
khi kết nối thành công.
MT gửi trả <CR><LF>NO CARRIER
<CR><LF> 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. MT gửi trả:
<CR><LF>OK<CR><LF>
Nếu không đổ chuông. MT gửi trả:
<CR><LF>NO
DIALTONE<CR><LF>
Số máy đang bận:
<CR><LF>BUSY<CR><LF>
Không kết nối hoặc bị từ chối :
<CR><LF>NO
CARRIER<CR><LF>
Các tham số:
<n>: số điện thoại
<msgm>: I Kích hoạt
CLIR (Không hiện thị số người
gọi)
i Hủy chế độ CLIR(Hiện thị số người gọi)
G Kích hoạt chế độ gọi nội bộ(chỉ dành riêng
cho cuộc
gọi này)
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. MT gửi trả:
+CME ERROR:<err>
Nếu không đổ chuông. MT gửi trả:
<CR><LF>NO
DIALTONE<CR><LF>
Số máy đang bận:
<CR><LF>BUSY<CR><LF>
Không kết nối hoặc bị từ chối :
<CR><LF>NO
CARRIER<CR><LF>
Kết nối thành công và cuộc gọi được thực hiện:
<CR><LF>OK<CR><LF>
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 Kích hoạt CLIR (Không hiện thị số
người gọi)
i Hủy chế độ CLIR(Hiện thị số người gọi)
G Kích hoạt chế độ gọi nội bộ(chỉ dành riêng
cho cuộc
gọi này)
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. MT gửi trả:
+CME ERROR:<err>
Nếu không đổ chuông. MT gửi trả:
<CR><LF>NO
DIALTONE<CR><LF>
Số máy đang bận:
<CR><LF>BUSY<CR><LF>
Không kết nối hoặc bị từ chối :
<CR><LF>NO
CARRIER<CR><LF>
Kết nối thành công và cuộc gọi được thực hiện:
<CR><LF>OK<CR><LF>
Các tham số:
<n>:
Một số nguyên là vị trí bộ nhớ có thể sử
dụng.
<msgm>:
I Kích hoạt CLIR (Không hiện thị số
người gọi)
i Hủy chế độ CLIR(Hiện thị số người gọi)
G Kích hoạt chế độ gọi nội bộ(chỉ dành riêng
cho cuộc
gọi này)
g Hủy chế độ gọi nội bộ.
<;>: Kết thúc và thực hiện cuộc gọi
|
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. MT gửi trả:
+CME ERROR:<err>
Nếu không đổ chuông. MT gửi trả:
<CR><LF>NO
DIALTONE<CR><LF>
Số máy đang bận:
<CR><LF>BUSY<CR><LF>
Không kết nối hoặc bị từ chối :
<CR><LF>NO
CARRIER<CR><LF>
Kết nối thành công và cuộc gọi được thực hiện:
<CR><LF>OK<CR><LF>
Các tham số:
<str>:
Chuỗi ký tự “abc123” đã lưu torng dạnh bạ .
<msgm>:
I Kích hoạt CLIR (Không hiện thị số
người
gọi).
i Hủy chế độ CLIR(Hiện thị số người gọi)
G Kích hoạt chế độ gọi nội bộ(chỉ dành riêng
cho cuộc
gọi này).
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. MT gửi trả:
+CME ERROR:<err>
Nếu không đổ chuông. MT gửi trả:
<CR><LF>NO
DIALTONE<CR><LF>
Số máy đang bận:
<CR><LF>BUSY<CR><LF>
Không kết nối hoặc bị từ chối :
<CR><LF>NO
CARRIER<CR><LF>
Kết nối thành công và cuộc gọi được thực hiện:
<CR><LF>OK<CR><LF>
|
ATH0
|
Lệnh ngắt kết nối đang thực hiện.
Lệnh được thực hiện. MT gửi trả:
<CR><LF>OK<CR><LF>
|
ATI
|
Lệnh yêu cầu hiện thông tin của module.
Ví dụ:
SIMCOM_ltd.
SIMCOM_SIM548Z.
|
ATL[value]
|
Lệnh cài đặt độ lớn của loa.
Lệnh thực hiện thành công.MT gửi trả:
<CR><LF>OK<CR><LF>
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. MT gửi trả:
<CR><LF>OK<CR><LF>
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. MT gửi trả:
<CR><LF>OK<CR><LF>
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 thực hiện 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. MT gửi trả:
<CR><LF> NO CARRIER <CR><LF>
Lệnh thực hiện thành công. MT gửi trả:
<CR><LF>OK<CR><LF>
Tham số:
[n]
0 chuyển từ nhận lệnh
sang nhận dữ liệu.
|
5.3. Các
lệnh thiết lập và cài đặt cho 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
|
MT gửi thông báo khi
có tin nhắn mới.
|
AT+CPMS
|
Các tin nhắn riêng
biệt được lưu.
|
AT+CRES
|
Cài đặt lại tin nhắn.
|
AT+CSAS
|
Lưu các cài đặt cho
tin nhắn.
|
AT+CSCA
|
Địa
chỉ dịch vu 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ụ.
|
Lệnh thiết lập và cài đặt
cho tin nhắn SMS
- Chi
tiết mô tả các lệnh dành cho tin nhắn 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.MT gửi trả:
<CR><LF>OK<CR><LF>
Nếu lệnh không thực
hiện được.MT 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.MT gửi trả:
<CR><LF>OK<CR><LF>
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.
“RED
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 lệnh thực hiện
thành công,MT gửi trả chuỗi có định dạng như sau :
+ Nếu tin nhắn là dạng
văn bản (+CMGF=1) :
+CMGL:
[<index>,[<stat>],[<oa/da>],[<alpha>],[<scts>]
[,<tooa/toda>,<length>]
<CR><LF>[<data>]<CR><LF>
<CR><LF>OK<CR><LF>
+
Nếu tin nhắn là dạng PDU (+CMGF=0) :
+CMGL:<index>,<stat>,[<alpha>],<length><CR><LF><pdu><CR><LF>
<CR><LF>OK<CR><LF>
Nếu lệnh thực
hiện không thành công,MT 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ừ 'received unread’ sang 'received read’ khi được đọc.
Lệnh thực hiện thành
công,MT 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><CR><LF><data>
<CR><LF>OK<CR><LF>
+ Nếu tin nhắn
là dạng PDU (+CMGF=0)
+CMGR:
<stat>,[<alpha>],<length><CR><LF><pdu>
<CR><LF>OK<CR><LF>
Lệnh thực hiện không
thành công,MT 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 tin nhắn dạng
văn bản.
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,MT gửi trả:
CR><LF>+CMGS: <mr><<CR><LF>
<CR><LF>OK<CR><LF>
Nếu lệnh không thực
hiện được,MT gửi trả:
<CR><LF>+CMS ERROR: <err><CR><LF>
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ớ.MT gửi trả:
CR><LF>+CMGW: <index><<CR><LF>
<CR><LF>OK<CR><LF>
Nếu có lỗi xảy ra,MT
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,MT gửi trả:
CR><LF>+CMGS: <mr> [,<scts>]CR><LF>
<CR><LF>OK<CR><LF>
Lệnh thực hiện không
thành công:
<
CR><LF>+CMS ERROR: <err><CR><LF>
Tham số:
<mr>
Vị trí lưu tin nhắn trong bộ nhớ.
|
AT+CNMI=[<mode>[,<mt>
[,<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,MT gửi trả:
<CR><LF>OK<CR><LF>
Lệnh thực hiện không
thành công:
<CR><LF>+CMS
ERROR: <err><CR><LF>
Tham số:
<mt>
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:
+CMTI:
<mem>,<index>
2 Gửi
thông báo có định dạng:
+CMT: <oa>, [<alpha>],<scts>
[,<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca>,<length>]<CR><LF><data>.
|
Chi tiết các lệnh thiết lập
và cài đặt tin nhắn SMS
5.4. Các
lệnh đặc biệt dành cho SIM548.
AT+CPOWD
|
Tắt nguồn cung cấp cho
module.
|
AT+CMIC
|
Thay
đổi đổ lớn của microphone.
|
AT
+UART
|
Cầu
hình cho truyền thông nối tiếp.
|
AT+CALARM
|
Cài
đặt hẹn giờ.
|
AT+CADC
|
Đọc
ADC.
|
AT+ECHO
|
Cài
đặt tiếng vọng cho cuộc gọi.
|
AT+CSMINS
|
Cho
biết sim đã gắn vào đế hay chưa.
|
AT+CMTE
|
Đọc
nhiệt độ hiện tại của module.
|
AT+CNMI
|
Xóa
tất cả các tin nhắn.
|
AT+CPMS
|
Các tin nhắn riêng
biệt được lưu.
|
AT+CRES
|
Cài đặt lại tin nhắn.
|
AT+CMGDA
|
Lưu các cài đặt cho
tin nhắn.
|
Chi tiết các lệnh đặc biệt
dành cho SIM548
- Chi
tiết về các lệnh đặc biệt dành cho SIM548 :
AT+CPOWD
= <n>
|
Lệnh
ngắt nguồn cung cấp cho module hoạt động.
Tham
số :
<n>
0 Ngắt nguồn khẩn cấp.
1 Ngắt nguồn bình
thường.
|
AT+UART=<uart>[,<baud>]
|
Lệnh
cấu hình cho truyền thông nối tiếp.
Lệnh
được thực hiện thành công,MT gửi trả :
<CR><LF>OK<CR><LF>
Tham số:
<uart
>
1 sử dụng line 1
2 sử dụng line 2 (gprs)
3 sử dụng line 3
<baud>
9600,19200,28800,38400,57600,115200
|
AT+CALARM=<state>,
<time> ,<repeat>,<power>
|
Lệnh cài đặt báo thức.
Lệnh được thực hiện
thành công,MT gửi trả :
<CR><LF>OK<CR><LF>
Tham số:
<state> 0 Tắt
báo thức.
1 Bật báo thức.
< time
> Thời gian
báo thức “yy/MM/dd,hh:mm:ss+-
zz”
< repeat
> 0 Không lặp lại.
1 Lặp lại hàng ngày.
2 Tuần
3 Tháng
<power>
0 Thông báo bình
thường.
Chỉ gửi “ALARM RING”
1 Tắt
nguồn báo thức.
Gửi “ALARM RING” và
ngưng báo thức sau 5s.
2 Bất
nguồn báo thức.
Gửi “ALARM MODE và trở
về chế độ báo thức.
|
AT+ CADC?
|
Lệnh đọc ADC.
Lệnh thực hiện thành
công,MT gửi trả:
+ CADC: <
status>,<value>
<CR><LF>OK<CR><LF>
Tham số:
<status>
1 Đọc thành công.
0 Lỗi khi đọc ADC.
<value>
Số nguyên từ 0-2400.
|
AT+CSMINS?
|
Lệnh cho biết sim đã
được gắn vào đế sim hay chưa.
Lệnh thực hiện thành
công,MT gửi trả:
<CR><LF>+CSMINS:<n>,<SIM
inserted><CR><LF>
Tham số:
<n>
0 Không cho phép gắn sim.
1 Cho phép.
<SIM
inserted> 0 Sim chưa được gắn vào đế.
1 Sim đã được gắn.
|
AT+CMGDA=<type>
|
Xóa tất cả các tin
nhắn.
Lệnh thực hiện thành
công,MT gửi trả:
<CR><LF>OK<CR><LF>
Lệnh thực hiện không
thành công:
<CR><LF> +CMS ERROR: NUM<CR><LF>
Tham số:
<type> “DEL READ” xóa các tin
nhắn đã đọc.
“DEL UNREAD” xóa tin nhắn chưa đọc.
“DEL
SENT” xóa các tin nhắn đã gửi.
“DEL
UNSENT” xóa các tin nhắn chưa gửi.
“DEL
INBOX” xóa các tin nhắn nhận được.
“DEL
ALL” xóa tắt cả các tin nhắn.
|
5.5. Các thông báo lỗi.
Thông báo lỗi có dạng: +CME
ERROR: <err>
- Một
số lỗi thường gặp:
<err>
|
Ý nghĩa
|
0
|
Module bị lỗi,không
thể kết nối với mạng.
|
1
|
Không kết nối mạng.
|
3
|
Module không cho phép
kết nối mạng.
|
4
|
Module không hỗ trợ
kết nối.
|
10
|
Chưa gắn sim.
|
13
|
Sim không hoạt động.
|
14
|
Sim bận.
|
15
|
Sim bị lỗi.
|
16
|
Nhập mật mã sai.
|
20
|
Bộ nhớ đầy.
|
22
|
Không tìm thấy.
|
23
|
Bộ nhớ bị lỗi.
|
24
|
Chuỗi quá dài.
|
30
|
Không có mạng.
|
32
|
Mạng không kết nối
được. Chỉ thực hiện được các cuộc gọi khẩn cấp.
|
100
|
Không nhận ra.
|
107
|
Dịch vụ GPRS không
được kết nối.
|
744
|
Sim đầy.
|
746
|
Không nhận được dịch
vụ mạng.
|
770
|
Không có tín hiệu sim.
|
772
|
Không có nguồn cho
sim.
|
Các thông báo lỗi CME
- Thông
báo lỗi có dạng: +CMS ERROR: <err>
<err>
|
Ý nghĩa
|
300
|
Module bị lỗi.
|
302
|
Module không hoạt
động.
|
303
|
Không được hỗ trợ.
|
310
|
Chưa gắn sim.
|
313
|
Sim bị lỗi.
|
314
|
Sim bận.
|
315
|
Sim gắn sai.
|
320
|
Bộ nhớ bị lỗi,không
hoạt động.
|
331
|
Không có mạng.
|
512
|
Sim chưa sẵn sàng.
|
513
|
Không nhận ra sim.
|
Các thông báo lỗi CMS
Facebook: Rid HaUI
Gmail: dienturid@gmail.com
0 nhận xét:
Đăng nhận xét