Giao tiếp GSM Modem bằng tập lệnh AT

Một phần của tài liệu Nghiên cứu phát triển trên hệ thống dịch vụ dựa trên vị trí địa lý và thử nghiệm (Trang 69)

Dịch LBS tìm đƣờng đi trong thành phố cài đặt thử nghiệm của đề tài sử dụng giao tiếp giữa máy chủ và khách thông qua dịch vụ tin nhắn. Máy khách là các loại thiết bị liên lạc di động hỗ trợ sẵn khả năng gửi nhận tin nhắn. Máy chủ là máy tính thông thƣờng giao tiếp với mạng GSM thông qua thiết bị đóng vai trò là GSM Modem.

Để thuận tiện cho thử nghiệm, hệ thống sử dụng một điện thoại di động có khả năng kết nối với máy tính đóng vai trò của một GSM Modem. Để lập trình cho điện thoại này thực hiện các hoạt động: gửi, nhận, quản lý các tin nhắn gửi đi và nhận về trong hệ thống, ta có thể sử dụng bộ lệnh điều khiển modem AT.

Giới thiệu chung về tập lệnh AT

AT Commands (viết tắt của Attention Commands) là tập các lệnh đƣợc sử dụng để điều khiển modem. Hầu hết các lệnh trong đó bắt đầu bởi “AT” hay “at” nên nó đƣợc gọi là tập lệnh AT. Với tập lệnh AT chúng ta hoàn toàn có thể điều khiển đƣợc các modem GSM/GPRS và điện thoại di động (có tích hợp GSM Modem). Tập lệnh này do Viện Tiêu Chuẩn Viễn Thông Châu Âu (European Telecommunication Standards Institute - ETSI) đƣa ra.

Các GSM modem hỗ trợ tập lệnh AT chuẩn để giao tiếp với ứng dụng máy tính. Ngoài ra, modem có thể có tập lệnh mở rộng. Nếu ứng dụng máy tính sử dụng tập lệnh AT chuẩn để giao tiếp với modem thì ứng dụng đó không phụ thuộc vào thiết bị.

Các tập lệnh AT cơ bản

Các tập lệnh đưới giới thiệu dưới đây được công bố theo chuẩn máy Nokia.

Bảng 4.1: Tập lệnh AT xử lý tin nhắn (SMS), chế độ văn PDU

Lệnh Mô tả

AT+CMGL Xem danh sách message AT+CMGR Đọc message

AT+CMGS Gửi message AT+CMGW Lƣu message

Bảng 4.2: Tập lệnh AT điều khiển cuộc gọi

Lệnh Mô tả

ATA Lệnh trả lời

ATD Lệnh gọi

ATH Lệnh cúp máy

ATL Bật chế độ loa bên trong ATM Chế độ loa ngoài

ATO Go on-line

ATP Set pulse dial as default

ATT Thiết đặt nhạc chuông mặc định AT+CSTA Chọn kiểu địa chỉ

Bảng 4.3: Tập lệnh AT điều khiển Card

Lệnh Mô tả

AT&F Trở về chế độ mặc định AT&V Xem những thiết đặt

AT+GMI Xem thông tin nhà sản xuất AT+GMM Xem thông tin đời của điện thoại AT+GMR Xem phiên bản sản xuất

AT+GSN Xem số IMEI

Bảng 4.4: Tập lệnh AT điều khiển máy điện thoại

Lệnh Mô tả

AT+CBC Xạc pin

AT+CPAS Chế độ hoạt động của điện thoại AT+CPBF Tìm kiếm trong danh bạ

AT+CPBR Đọc danh bạ AT+CPBW Lƣu vào danh bạ AT+CSQ Xem lƣu lƣợng sóng

Bảng 4.5: Tập lệnh AT xử lý tin nhắn (SMS), chế độ văn bản

Lệnh Mô tả

AT+CSMS Chọn dịch vụ message AT+CMGF Định dạng message AT+CSCA Số của trung tâm dịch vụ AT+CSMP Thiết đặt dạng text

AT+CSDH Hiển thị chế độ text AT+CSAS Lƣu thiết đặt

AT+CRES Phục hồi cài đặt

AT+CMGL Xem danh sách message AT+CMGR Đọc message

AT+CMGS Gửi message

AT+CMSS Gửi message từ bộ nhớ AT+CMGW Lƣu message vào bộ nhó AT+CMGD Xóa message

Cách sử dụng tập lệnh AT để điều khiển modem

Để gửi/nhận tin nhắn SMS, ta cần kết nối thiết bị là GSM modem vào cổng COM của máy tính. Nếu modem kết nối máy tính bằng cổng USB thì cần phải biết tên của thiết bị trong hệ thống hoặc thiết bị đã đƣợc kết nối qua cổng COM mô phỏng nào. Chƣơng trình máy tính và thiết bị trao đổi dữ liệu thông qua hệ thống lệnh AT chuẩn. Tùy vào thiết bị và nhà sản xuất, mỗi modem có thể có hệ thống lệnh AT mở rộng nhằm tối ƣu và nâng cao khả năng kết nối của thiết bị với máy tính.

Trong chƣơng trình giao tiếp với modem bằng lệnh AT, trƣớc hết cần tạo một kết nối cổng COM tới modem. Sau đó gửi đến cổng COM những lệnh AT tƣơng ứng và đọc kết quả thực thi lệnh AT từ cổng COM. Cần kiểm tra kết nối và modem bằng cách sử dụng nhóm lệnh: AT, +CPIN, +CSCA, +CGMI, +CGMM, +CMEE, +CSMS, +CSQ, +CBC trƣớc mỗi phiên làm việc.

Để đọc thiết lập hiện tại, dùng lệnh AT có thêm ký tự „?‟. Để xem những giá trị nào có thể thiết lập, dùng lệnh AT có thêm hai ký tự „=?‟. Để thiết lập giá trị thông số mới, dùng lệnh AT có thêm ký tự „=‟, và theo sau đó là những giá trị

thông số mới. Để gửi một nội dung đến một thuê bao của khách hàng, sử dụng lệnh +CMGS. Trong trƣờng hợp nội dung cần gửi đến nhiều khách hàng khác nhau ta sử dụng lệnh +CMGW ghi SMS lên bộ nhớ của modem, sau đó dùng lệnh +SMSS để gửi SMS đó đến các khách hàng khác nhau. Cách này cho phép nâng cao tốc độ làm việc của modem nhờ giảm thiểu trao đổi thông tin giữa modem và chƣơng trình.

Có thể gửi SMS theo hai chế độ văn bản (text mode, +CMGF = 1) và chế độ mặc định PDU (Protocol Data Unit, +CMGF = 0). Giá trị các thiết lập thông số cho chế độ văn bản và PDU có khác nhau cho một số lệnh AT. Ví dụ, với lệnh đọc tất cả các tin nhắn +CMGL tiếp nhận các thông số "REC UNREAD","REC READ","STO UNSENT", "STO SENT" và "ALL" trong chế độ văn bản. Trong khi đó ở chế độ PDU sẽ là các giá trị 0 - 4. Ngoài ra, không phải tất cả các GSM modem đều hỗ trợ chế độ văn bản. Thử nghiệm cho thấy không chỉ những điện thoại lạc hậu, mà ngay cả với một số loại điện thoại hiện đại, chẳng hạn W580, cũng không hỗ trợ chế độ văn bản khi làm việc với các chƣơng trình trên máy tính. Trong khi đó, chế độ PDU thì tất cả các modem đều hỗ trợ và chế độ này cho phép gửi hình ảnh và nhạc chuông. Từ đó cho thấy, khi xây dựng một chƣơng trình làm việc với các GSM modem, cần phải nghiên cứu tài liệu kỹ thuật của từng loại modem để có thể thiết lập đúng những thông số mà modem đó hỗ trợ. Tất cả các modem đều phải hỗ trợ tập các lệnh AT chuẩn nên nếu chƣơng trình sử dụng tập lệnh AT chuẩn để làm việc với các modem, thì hệ thống sẽ không bị phụ thuộc vào thiết bị đƣợc sử dụng.

Sau đây là một ví dụ sử dụng lệnh AT và chƣơng trình HyperTerminal của Windows để gửi tin nhắn SMS. Nội dung dƣới đây là các lệnh và kết quả trả về từ màn hình giao diện HyperTerminal:

AT

OK

AT+CMGF=1

OK

AT+CMGW="0982713301"

> Day la noi dung thong diep thu nghiem.

+CMGW: 1 OK

AT+CMSS=1

+CMSS: 20 OK

Dòng thứ nhất: “AT” để gửi tới GSM modem nhằm kiểm tra kết nối. GSM modem gửi lại xâu “OK” (dòng thứ 2) cho biết kết nối giữa HyperTerminal và modem là tốt.

Dòng thứ 3: câu lệnh “AT+CMGF” để báo cho modem biết lựa chọn chế độ làm việc SMS là văn bản (text mode). Kết quả trả về “OK” báo rằng lệnh “AT+CMGF=1” đã thực hiện thành công. Nếu kết quả là “ERROR” thì có nghĩa là lệnh đã không đƣợc thực hiện thành công, điều này cũng có nghĩa là modem không hỗ trợ SMS text mode. Để xác nhận, thực hiện lệnh “AT+CMGF=?”, nếu kết quả trả về là “+CMGF: (0,1)” trong đó 0=PDU mode và 1=Text mode. Nếu kết quả là “+CMGF: (1)” thì Text mode đƣợc hỗ trợ, ngƣợc lại thì không.

Các dòng 5 và 6: câu lệnh “AT+CMGW” đƣợc sử dụng để ghi một thông điệp đến modem. Số điện thoại nhận là “0982713301”. Sau khi nhập xong số điện thoại nhận tin nhắn, nhấn phím Enter, modem gửi lại dấu nhắc “>”, tiếp theo nhập nội dung tin nhắn muốn gửi (trong ví dụ là “Day la noi dung thong diep thu nghiem.”). Nhấn tổ hợp phím “Ctrl+z” để kết thúc soạn nội dung tin nhắn.

Dòng 7: “+CMGW:1” cho biết chỉ số đƣợc gắn với tin nhắn là 1. Đây cũng chính là vị trí của tin nhắn trong bộ nhớ lƣu trữ tin nhắn văn bản.

Dòng 9: kết quả trả về “OK” báo lệnh “AT+CMGW” đã thực hiện thành công.

Dòng 10: “AT+CMSS” đƣợc sử dụng để gửi tin nhắn đƣợc lƣu trong bộ nhớ tin nhắn tại ví trí 1.

Dòng 11: “+CMSS:20” cho biết số hiệu tham chiếu đƣợc gán cho tin nhắn là 20.

Dòng 13: “OK” báo câu lệnh “AT+CMSS” đã đƣợc thực hiện thành công.

Một phần của tài liệu Nghiên cứu phát triển trên hệ thống dịch vụ dựa trên vị trí địa lý và thử nghiệm (Trang 69)

Tải bản đầy đủ (PDF)

(89 trang)