2) Nội dung các phần thuyết minh và tính toán:
3.3.4.2 Cú pháp lệnh AT
Khởi đầu lệnh : Tiền tố “AT” hoặc “at” Kết thúc lệnh : ký tự <CR>
Lệnh AT thường có một đáp ứng theo sau nó, đáp ứng có cấu trúc : “<CR><LF><Response><CR><LF>”
Tập lệnh AT có thể chia thành 3 loại cú pháp chính : cú pháp cơ bản, cú pháp tham số S, cú pháp mở rộng
Cú pháp cơ bản :
“AT<x><n>” hoặc “AT&<x><n>” Với :
<x> : Lệnh
<n> : Đối số của lệnh, đối số có thể có 1 hoặc nhiều đối số, đối số có thể tùy chỉnh, được thiết lập mặc định nếu trong lệnh thiếu đối số. Cú pháp tham số S :
“ATS<n>=<m>” Với :
<n> : Chỉ số của thanh ghi S được thiết lập.
<m> : Giá trị đặt cho thanh ghi S. <m> có thể tùy chỉnh, nếu thiếu, giá trị mặc đinh sẽ được đ ặt cho <m>.
Cú pháp mở rộng :
Các lệnh có cú pháp này có thể hoạt động ở nhiều chế độ. Các chế độ được liệt kê ở bảng bên dưới :
Bảng 3.2 : Chế độ lệnh AT
Lệnh kiểm tra AT+<x>=? Liệt kê danh sách các tham số của lệnh và các giá trị có thể thiết lập cho tham số Lệnh đọc AT+<x>? Cho biết giá trị hiện tại của các tham số
trong lệnh
Lệnh thiết lập AT+<x>=<…> Thiết lập các giá trị cho các tham số của lệnh
Lệnh thực thi AT+<x> Đọc các tham số bất biến được tác động bởi các tiến trình bên trong của module
Kết hợp các lệnh AT liên tiếp trên cùng một dòng lệnh : Chỉ cần đánh “AT” hoặc “at” một lần ở đầu đầu dòng lệnh, các lệnh còn lại chỉ cần đánh lệnh, các lệnh cách nhau bởi dấu chấm phẩy. Một dòng lệnh chỉ chấp nhận tối đa 256 ký tự. Nếu số ký tự nhiều hơn sẽ không có lệnh nào được thi hành.
Nhập các lệnh AT liên tiếp trên các dòng lệnh khác nhau : Giữa các dòng lệnh sẽ có một đáp ứng (Ví dụ như OK, CME error, CMS error). Cần phải chờ đáp ứng này trước khi nhập lệnh AT tiếp theo.
3.4.3 Một số lệnh AT được dùng
ATZ thiết lập tất cả các tham số hiện tại theo mẫu được người dùng định nghĩa
Bảng 3.3 : Một số lệnh AT Lệnh thực thi ATZ[<value>] Đáp ứng OK Tham số
<value> 0 Thiết lập lại mẫu thứ 0 Chú ý :
Mẫu được người dùng định nghĩa được lưu trên bộ nhớ cố định
Nếu mẫu của người dùng không hiệu lực, nó sẽ mặc định theo mẫu mặc định lúc sản xuất.
Bất cư lệnh cộng thê m trên cùng một dòng lệnh đều bị bác bỏ.
AT+CMGR : Đọc nội dung tin nhắn SMS Bảng 3.4 : Lệnh AT+CMGR Lệnh kiểm tra AT+CMGR=? Đáp ứng OK Lệnh thiết lập AT+CMGR=<index> [,<mode>] Các tham số
<index> : kiểu số nguyên; giá trị nằm trong khoảng số vùng nhớ được hỗ trợ bởi bộ nhớ
<mode> 0 : bình thường
1 : không thay đổi trạng thái của bộ thu SMS chuyên biệt
AT+CMGS : Gửi tin nhắn SMS
Bảng 3.5 : Lệnh AT+CMGS Lệnh kiểm tra AT+CMGS=? Đáp ứng OK Lệnh thiết lập 1) Ở chế độ văn bản (+CMGF=1): AT+CMGS=<da> [,<toda>]<CR>vă n bản được nhập<Ctrl- Z/ESC> 2) Ở chế độ PDU (+CMGF=0): AT+CMGS=<len gth><CR>PDU được nhập<Ctrl- Z/ESC> Các tham số
<da> Số điện thoại mà tin nhắn được gửi đến.
<toda> Định dạng dạng địa chỉ thể hiện trong số điện thoại 129 Dạng không xác định (Số định dạng ISDN)
128 Dạng không xác định (Số định dạng không xác định) 161 Dạng số quốc gia (Định dạng ISDN)
145 Dạng số quốc tế (Định dạng ISDN) 177 Số mạng chuyên biệt (Định dạng ISDN)
AT+CMSS : Gửi tin nhắn SMS đã được lưu sẵn trong bộ nhớ
Bảng 3.6 : Lệnh AT+CMSS Lệnh kiểm tra AT+CMSS=? Đáp ứng OK Lệnh thiết lập Đáp ứng
AT+CMGS=<index> [,<da>[,<toda>]
với vị trí vùng nhớ được chỉ bởi tham số <index>. Nếu số điện thoại đến mới <da> được chọn, module sẽ gửi tin nhắn đến số đó thay vì số được lưu trong tin nhắn. Giá trị tham chiếu <mr> sẽ được gửi lại cho thiết bị đầu cuối báo việc gửi tin nhắn thành công..
1) Nếu gửi thành công : +CMGS:<mr> [,<scts>] OK
2) Nếu có lỗi sẽ báo : +CMS ERROR: <err> Các tham số
<index> dạng số nguyên; giá trị nằm trong khoảng giá trị được hỗ trợ bởi bộ nhớ lưu trữ liên quan.
<da> Số điện thoại mà tin nhắn được gửi đến.
<toda> Định dạng dạng địa chỉ thể hiện trong số điện thoại 129 Dạng không xác định (Số định dạng ISDN)
128 Dạng không xác định (Số định dạng không xác định) 161 Dạng số quốc gia (Định dạng ISDN)
145 Dạng số quốc tế (Định dạng ISDN) 177 Số mạng chuyên biệt (Định dạng ISDN)
AT+CMGD : Xóa tin nhắn SMS
Bảng 3.7 : Lệnh AT+CMGD
Lệnh đọc AT+CMGD=?
Đáp ứng
+CMGD : <khoảng các tin nhắn SMS trên SIM có thể được xóa>
OK Lệnh thiết lập
AT+CMGD=<index>
Các tham số
<index> Kiểu số nguyên, giá trị trong kho ảng số lượng vùng nhớ được hỗ trợ bởi bộ nhớ.
Đáp ứng
TA xóa tin nhắn từ bộ nhớ tin nhắn liên quan <mem1> khu vực <index>
OK
Nếu có lỗi thì sẽ báo cho TE : +CMS ERROR <err>
ATE Thiết lập chế độ lệnh phản hồi Bảng 3.8 : Lệnh ATE Lệnh thực thi ATE[<value>] Đáp ứng OK Tham số <value> 0 Tắt chế độ phản hồi 1 Mở chế độ phản hồi
AT+CLIP Định dạng chuỗi trả về khi nhận cuộc gọi
Bảng 3.9 : Lệnh AT+CLIP Lệnh đọc AT+CLIP? Đáp ứng +CLIP:<n>,<m> OK
Nếu có lỗi sẽ báo cho TE: +CME ERROR: <err> Lệnh kiểm tra
AT+CLIP?
Đáp ứng
+CLIP: (danh sách các <n> được hỗ trợ) Lệnh thiết lập
AT+CLIP=<n>
Đáp ứng OK
Nếu có lỗi sẽ báo cho TE : +CME ERROR: <err> Các tham số
<n> 0 khử các mã kết quả gửi tự động 1 Hiển thị các mã kết quả gửi tự động <m> 0 CLIP không dự phòng
1 CLIP dự phòng 2 Không biết
AT&W Lưu các tham số hiện tại vào mẫu người dùng định nghĩa Bảng 3.10 : Lệnh AT&W Lệnh thực thi AT&W[<n>] Đáp ứng OK Tham số
<n> 0 số thứ tự của mẫu được lưu vào
AT+CMGF Lựa chọn định dạng tin nhắn SMS
Bảng 3.11 : Lệnh AT+CMGF Lệnh đọc AT+CMGF? Đáp ứng +CMGF: <mode> OK Lệnh kiểm tra AT+CMGF=? Đáp ứng
+CMGF: Danh sách các <mode> được hỗ trợ OK Lệnh thiết lập AT+CMGF=[<mode>] Đáp ứng OK Tham số <mode> 0 Chế độ PDU 1 Chế độ văn bản
AT+CNMI Thông báo có tin nhắn mới đến
Bảng 3.12: Lệnh AT+CNMI
Lệnh kiểm tra AT+CNMI=?
Đáp ứng
+CNMI: Danh sách các <mode> hỗ trợ, (danh sách các <mt> được hỗ trợ), (danh sách các <bm> được hỗ trợ), (danh sách các <ds> được hỗ trợ), (danh sách các <bfr> được hỗ trợ) OK Lệnh thiết lập AT+CNMI=[<mode> [,<mt> [,<bm>[,<ds>[,<bfr>] ]]]] Đáp ứng OK
Nếu có lỗi sẽ báo cho TE: +CMS ERROR <err> Các tham số
<mode> 0 lưu các mã lệnh chỉ thị kết quả trong bộ đệm của module. Nếu bộ đệm đầy thì các chỉ thị có thể lưu ở các vùng nhớ khác hoặc chỉ thị cũ nhất sẽ bị xóa và thay thế bởi chỉ thị mới nhận được.
1 Hủy chỉ thị và không chấp nhận mã lệnh chỉ thị kết quả báo tin nhắn mới nhận khi kết nối giữa module và thiết bị bị ngắt. Ngược lại truyền chúng trực tiếp cho thiết bị.
2 Lưu các mã lệnh chỉ thị kết quả trong bộ đệm của module nếu kết nối giữa module và thiết bị bị ngắt và gửi chúng cho thiết bị nếu kết nối được thiết lập lại. Ngược lại gửi chúng trực tiếp cho thiết bị.
<mt> 0 Không có chỉ thị báo có tin nhắn mới được gửi đến thiết bị.
1 Có chỉ thị báo có tin nhắn mới được gửi đến cho thiết bị.
AT+CSAS Lưu các thiết lập SMS
Bảng 3.13: Lệnh AT+CSAS
Lệnh kiểm tra AT+CSAS=?
Đáp ứng
+CSAS: Danh s ách các <profile> được hỗ trợ OK Lệnh thiết lập AT+CSAS=[<profile> ] Đáp ứng OK
Nếu có lỗi sẽ báo cho TE: +CMS ERROR: <err> Tham số
3.3.4.4 Khởi tạo cấu hình mặc định cho modem
Hình 3.7: Khởi tạo cấu hình mặc định cho module SIM300CZ
(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,0,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 không truyền trở về TE bất cứ thông báo nào. TE sẽ đọc tin nhắn được lưu trong
SIM trong trường hợp cần thiết. (7) AT+CSAS<CR>