Chương 1 Dẫn nhập 2
1.1. Giới thiệu đề tài . 2
1.2. Ý nghĩa khoa học của đề tài 3
1.3. Mục đích nghiên cứu .3
1.4. Giới hạn đề tài . 4
Chương 2 Cơ sở lí luận .5
2.1. Tình hình nghiên cứu trong nước và ngoài nước . . 5
2.1.1 Ngoài nước 5
2.2.1 Trong nước 7
2.2. Ý tưởng thiết kế . . 8
2.3. Đề cương nghiên cứu chi tiết . 8
2.4. Phương pháp nghiên cứu . .9
2.5. Phương tiện nghiên cứu 9
2.6. Kế hoạch thực hiện 9
Chương 3 Truyền dữ liệu và giao tiếp máy tính 10
3.1. Tổng quan về tin nhắn SMS 10
3.1.1 Giới thiệu về SMS 10
3.1.2 Cấu trúc một tin nhắn SMS 10
3.1.3 Tin nhắn SMS chuỗi/tin nhắn SMS dài . 12
3.1.4 SMS centre/SMSC 13
3.1.5 Nhắn tin SMS quốc tế 13
3.1.6 SMS Gateway . 14
3.1.7 Mã nguồn mở và phần mềm SMS gateway 17
3.2. Tổng quan về hệ thống truyền dữ liệu . 17
3.2.1 Cấu trúc một hệ thống thông tin .17
3.2.2 Phân loại các hệ thống thông tin 19
3.2.2.1. Phân loại theo đường truyền 19
3.2.2.2. Phân loại theo tín hiệu trên đường truyền .19
3.2.2.3. Phân loại theo số bit trên một đường dây .19
3.2.2.4. Phân loại dựa vào xung nhịp đồng hồ Ck của bộ phát và bộ thu 19
3.2.2.5. Phân loại theo chiều tín hiệu trên đường truyền .19
3.2.3 Giao tiếp song song bất đồng bộ 19
3.2.3.1. Sơ đồ khối 19
3.2.3.2. Hoạt động của hệ thống 21
3.2.4 Giao tiếp nối tiếp bất đồng bộ 21
3.2.4.1. Phát dữ liệu nối tiếp 22
3.2.4.2. Thu dữ liệu nối tiếp 22
3.3. Kỹ thuật ghép nối và giao tiếp máy tính .23
3.3.1 Cổng nối tiếp RS232 .23
3.3.1.1 Giới thiệu . 23
3.3.1.2 Các loại kết nối 23
3.3.1.3 Đặc tính điện .25
3.3.1.4 Các phương pháp giao tiếp 25
3.3.1.5 Thủ tục giao tiếp .27
3.3.1.6 Các loại cáp 27
3.3.1.7 Thủ tục truyền nhận 29
3.3.2 Giao tiếp điện thoại với máy tính qua USB Modem .30
3.3.2.1 Giới thiệu 30
3.3.2.2 Cài đặt và sử dụng Driver cho USB Modem 31
3.3.2.3 Kiểm tra Com Portname 35
3.3.2.4 Kiểm tra những Mobile phone được hỗ trợ tập lệnh AT 38
Chương 4 Thiết kế 40
4.1. Phương án thiết kế . 40
4.2. Sơ đồ khối toàn hệ thống và chức năng từng khối . 40
4.3. Sơ đồ nguyên lí phần cứng hệ thống. .42
4.4. Sơ đồ nguyên lí các khối của hệ thống 43
4.4.1 Khối xử lí trung tâm . 43
4.4.2 Khối cảm biến .63
4.4.3 Khối giao tiếp LCD và Keypad 66
4.4.4 Khối công suất 76
Chương 5 Xây dựng phần mềm điều khiển 81
5.1. Xây dựng phần mềm điều khiển cho phần cứng .81
5.2. Xây dựng phần mềm điều khiển trên máy tính .84
Chương 6 Thi công 90
6.1. Thi công phần cứng .90
6.2. Giao diện phần mềm trên máy tính 94
Chương 7 Kết luận 95
7.1. Tóm tắt 95
7.2. Hướng phát triển đề tài . 97
Phần C Phụ lục 98
Hướng dẫn sử dụng phần mềm 150
Tài liệu tham khảo 153
164 trang |
Chia sẻ: banmai | Lượt xem: 2231 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Điều khiển từ xa qua tin nhắn SMS sử dụng PIC, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ếp tục gửi cho đến khi tất cả các ký tự 10 byte của mảng được
truyền, hoặc nó tìm thấy một byte bằng 0 (NULL).
Lệnh đọc giá trị từ bộ ADC
Cú pháp:
Variable = ADIN channel number
Biến = ADIN kênh
Chức năng:
Dùng để đọc giá trị từ tín hiệu Analoge chuyển sang tín hiệu số
Hoạt động:
Biến là do người dùng định nghĩa
Chân của kênh do người dùng chọn
Ví dụ:
' Đọc giá trị từ kênh 0 của ADECLARE và đặt kết quả lưu trong biến
DECLARE ADIN_RES 10 ' lưu kết quả tron 10 bit
DECLARE ADIN_TAD FRC ' RC OSC được chọn
DECLARE ADIN_STIME 50 ' thời gian lấy mẫu 50us
DIM VAR1 as WORD
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 125 -
TRISA = %00000001 ' Set analogue input on PORTA.0
ADECLAREON1 ADCON1 = %10000000 ' Cấu hình AN0
(PORTA.0) như ngõ vào
ADECLAREON0 = %11000001
VAR1 = ADIN 0 ' đặt kết quả vào VAR1
Có 3 loại DECLARE dùng để lưu kết quả là :
DECLARE ADIN_RES 8 , 10 , or 12.
‘Đặt số Bit cho kết quả.
Nếu DECLARE không được dùng thì mặc định là 8 Bit cho Pic16F877A.Cho
ví dụ nếu là họ Pic16F87X thì kết quả có độ phân giải 10 bit, trong khi loại này mặc
đinh sẽ xuất ra kết quả 8 Bit. Nhưng khi ta dùng DECLARE thì có thể khai báo dùng
10 Bit và khi khai báo DECLARE thì thiết bị cho phép lưu kết quả 8 Bit nhưng không
lưu được kết quả 12 Bit cho loại VDK có độ phân giải 10 Bit này
DECLARE ADIN_TAD 2_FOSC , 8_FOSC , 32_FOSC , or FRC.
‘đặt xung clock cho ADECLARE
Việc lựa chọn nguồn xung này cũng ảnh hưởng đến thời gian chuyển đổi dữ
liệu và có thể không được chuyển đổi chính xác.
DECLARE ADIN_STIME 0 to 65535 microseconds (us).
Cho phép tụ giữ bên trong VDK được nạp đầy trước khi lấy mẫu. điều này có
thể là 1 giá trị từ 0 đến 65535(us)
Một giá trị đặc trưng cho ADIN_STIME là từ 50 đến 100. Điều này cho phép
tương thích với thời gian nạp mà không ảnh hưởng nhiều đến thời gian chuyển đổi
Chú ý là trước khi lệnh ADIN được sử dụng thì thanh ghi TRISA phải cho phép
các chân nhận dữ liệu tương ứng là ngõ vào
Ví dụ :
Again: VAR1 = ADIN 3 ' Place the conversion into
variable VAR1
DELAYUS 1 ' Wait for 1us
GOTO Again ' Read the ADECLARE forever
Lệnh xuất ra LCD :
Lệnh Print
Cú pháp:
PRINT Item { , Item... }
Chức năng:
Gửi một đoạn văn đến LCD
Item có thể là 1 hằng , biến, hay một toán tử, một chuỗi
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 126 -
Khai báo LCD
LCD_DTPIN = PORTB.4 ‘ chọn chân kết nối dữ liệu
LCD_RSPIN = PORTB.3 ‘ chọn chân kết nối RS
LCD_ENPIN = PORTB.2 ‘ chọn chân kết nối RS
LCD_INTERFACE = 4 ‘ giao tiếp theo chế độ 4 bit(hoặc
8 bit)
LCD_LINES = 2 ‘ mặc định 2 hàng
LCD_TYPE = 0 ‘ 0 : mặc định là LCD trắng đen
Khởi tạo LCD
Lệnh điều khiển Hoạt động
$FE, 1 Xóa màn hình
$FE, 2 Trả về ban đầu
$FE, $0C Tắt con trỏ
$FE, $0E Dấu gạch dưới con trỏ
$FE, $0F Nhấp nháy con trỏ
$FE, $10 Dịch con trỏ sang trái một vị trí
$FE, $14 Dịch con trỏ sang phải một vị trí
$FE, $C0 Dịch con trỏ đến đầu dòng thứ hai
Print $FE,1 : delayms 30 xóa màn hình và đợi 30ms
Print $FE,2
Print $FE,$0E
Xuất dữ liệu ra LCD
Print at 1,1,@bien
Xuất giá trị thập phân bien ra LCD tại vị trí hàng 1,ô
thứ 1
3. CHƯƠNG TRÌNH NHẬN DỮ LIỆU VÀ ĐỌC NHIỆT ĐỘ:
include "PROTON_12.INC"
dim nhandulieu as byte
dim baodong as byte
nhietdo var word
'Khoi tao ADC
ADIN_RES 10 ' ket qua 10 bit
ADIN_STIME 50 ' thoi gian lay mau
TRISA.0 = 1 'kenh RA0 nhan tin hieu
ADCON1 = %10001110 ' chon ket qua 10bit ben trai cua
thanh ghi ket qua
ADCON0 = %11000001 ' chon xung noi,RA0,va ADON = 1
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 127 -
serin portc.7,t2400,600,Loop,[dec nhandulieu]
' nhan du lieu tu phan mem
' nhan du lieu tuong ung voi den
if nhandulieu = 11 then portb.3 = 0 ' den1 mo
if nhandulieu = 10 then portb.3 = 1' den1 tat
if nhandulieu = 21 then portb.2 = 0' den2 mo
if nhandulieu = 20 then portb.2 = 1' den2 tat
if nhandulieu = 31 then portb.1 = 0' den1 mo
if nhandulieu = 30 then portb.1 = 1' den1 tat
if nhandulieu = 41 then portb.0 = 0' den2 mo
if nhandulieu = 40 then portb.0 = 1' den2 tat
if nhandulieu = 51 then portc.2 = 0' den1 mo
if nhandulieu = 50 then portc.2 = 1' den1 tat
if nhandulieu = 61 then portc.3 = 0' den2 mo
if nhandulieu = 60 then portc.3 = 1' den2 tat
if nhandulieu = 71 then portc.4 = 0' den1 mo
if nhandulieu = 70 then portc.4 = 1' den1 tat
if nhandulieu = 81 then portc.5 = 0' den2 mo
if nhandulieu = 80 then portc.5 = 1' den2 tat
' den12 mo
if nhandulieu = 121 then
portb.0 = 0
portb.1 = 0
portb.2 = 0
portb.3 = 0
portc.2 = 0
portc.3 = 0
portc.4 = 0
portc.5 = 0
endif
' den12 tat
if nhandulieu = 120 then
portb.0 = 1
portb.1 = 1
portb.2 = 1
portb.3 = 1
portc.2 = 1
portc.3 = 1
portc.4 = 1
portc.5 = 1
endif
' lenh mo cong
if nhandulieu = 222 then
porta.1 = 0
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 128 -
porta.2 = 1
sai = 3
endif
nhietdo = ADIN 0
' doc nhiet do tai RA0
nhietdo = nhietdo / 2
' nhiet do chia 2 vi do phan giai 10bit
serout portc.6,t2400,[@nhietdo,13]
' xuat nhiet do len phan mem
4. CHƯƠNG TRÌNH GIAO TIẾP KEYPAD VÀ LCD:
col var byte
row var byte
key var byte
dim tam[5] as byte
i as byte
dim kiemtra as byte
dim sai as byte
trisb = 0
portb = $ff
trisc = %01000000
portc = $ff
trisa.1 = 0
trisa.2 = 0
porta.1 = 1
porta.2 = 1
'Khoi tao LCD
print $fe,1 : delayms 30 'doi 30ms cho LCD len nguon
print $fe,2 'xoa du lieu, bat dau dong dau tien
Print $FE,$0E 'dau "_"
i = 1
kiemtra = 0
sai = 3
baodong = 0
Loop:
For Col = 4 to 7
if sai 0 then print at 1,1,"Fill in Password"
if sai = 0 then print at 1,1,"Lock Key "
PORTd = 0 ' Ngo ra portd muc thap
TRISd = (Dcd Col) ^ $ff' cot tuong ung se xuong 0
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 129 -
while (portd $f0
row = portd << 4 & $ff
Key = (Col * 3) + (Ncd (Row ^ $f0))
'phep tinh so phim
key = key - 16
' so phim tru 16 de dua ve gia tri dung
if key = 11 then key = 0
tam[i-1] = key 'luu ma phim va bien mang bien tam
if key 10 then print at 2,i,dec key
if key = 12 then
cls
kiemtra = 0
porta.2 = 1
tam[0] = 0
i = 0
endif
tam[4] = 0
' cho gia tri cua bien tam cuoi cung bang Null
if tam[0] = 1 then if tam[1] = 2 then if tam[2] = 3
then if tam[3] = 4 then kiemtra = 1
if key = 10 then
if kiemtra = 1 then
print at 2,1,"Open the door"
porta.2 = 0
i = 0
else
sai = sai - 1
print at 2,1,"Wrong password"
delayms 300
print at 2,1,"please wait . . ."
delayms 300
print at 2,1,"Remain ",dec sai," times"
endif
endif
delayms 400
i = i + 1
if i = 5 then i = 1
while sai = 0
porta.1 = 0
print at 1,1, "Lock key "
print at 2,1,"Contact Host "
goto loop
wend
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 130 -
Chương trình chính tổng quát khi ghép nối hai chương trình trên:
Include "PROTON_12.INC"
dim nhandulieu as byte
dim baodong as byte
nhietdo var word
col var byte
row var byte
key var byte
dim tam[5] as byte
dim i as byte
dim kiemtra as byte
dim sai as byte
dim backup[9] as byte
delayms 500 ' tri hoan 500ms cho vi dieu khien duoc cap
nguon
'Khoi tao ADC
ADIN_RES 10 ' ket qua 10 bit
ADIN_STIME 50 ' thoi gian lay mau
trisb = 0
portb = $ff
trisc = %01000000
portc = $ff
TRISA.0 = 1 'kenh RA0 nhan tin hieu
trisa.1 = 0
trisa.2 = 0
porta.1 = 1
porta.2 = 1
ADCON1 = %10001110
' chon ket qua 10bit ben trai cua thanh ghi ket qua
ADCON0 = %11000001' chon xung noi,RA0,va ADON = 1
'Khoi tao LCD
print $fe,1 : delayms 30 'doi 30ms cho LCD len nguon
print $fe,2 'xoa du lieu, bat dau dong dau tien
Print $FE,$0E 'dau "_"
i = 1
kiemtra = 0
sai = 3
baodong = 0
Main:
serin portc.7,t2400,600,Loop,[dec nhandulieu]
' nhan du lieu tu phan mem
' nhan du lieu tuong ung voi den
Loop:
For Col = 4 to 7
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 131 -
if sai 0 then print at 1,1,"Fill in Password"
if sai = 0 then print at 1,1,"Lock Key "
PORTd = 0 ' Ngo ra portd muc thap
TRISd = (Dcd Col) ^ $ff
' cot tuong ung se xuong 0
if nhandulieu = 11 then portb.3 = 0 ' den1 mo
if nhandulieu = 10 then portb.3 = 1' den1 tat
if nhandulieu = 21 then portb.2 = 0' den2 mo
if nhandulieu = 20 then portb.2 = 1 ' den2 tat
if nhandulieu = 31 then portb.1 = 0 ' den1 mo
if nhandulieu = 30 then portb.1 = 1' den1 tat
if nhandulieu = 41 then portb.0 = 0' den2 mo
if nhandulieu = 40 then portb.0 = 1' den2 tat
if nhandulieu = 51 then portc.2 = 0' den1 mo
if nhandulieu = 50 then portc.2 = 1' den1 tat
if nhandulieu = 61 then portc.3 = 0' den2 mo
if nhandulieu = 60 then portc.3 = 1' den2 tat
if nhandulieu = 71 then portc.4 = 0' den1 mo
if nhandulieu = 70 then portc.4 = 1' den1 tat
if nhandulieu = 81 then portc.5 = 0' den2 mo
if nhandulieu = 80 then portc.5 = 1' den2 tat
' den12 mo
if nhandulieu = 121 then
portb.0 = 0
portb.1 = 0
portb.2 = 0
portb.3 = 0
portc.2 = 0
portc.3 = 0
portc.4 = 0
portc.5 = 0
endif
' den12 tat
if nhandulieu = 120 then
portb.0 = 1
portb.1 = 1
portb.2 = 1
portb.3 = 1
portc.2 = 1
portc.3 = 1
portc.4 = 1
portc.5 = 1
endif
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 132 -
' lenh mo cong
if nhandulieu = 222 then
porta.1 = 0
porta.2 = 1
sai = 3
endif
if nhandulieu = 211 then
backup[0] = portb.3
backup[1] = portb.2
backup[2] = portb.1
backup[3] = portb.0
backup[4] = portc.2
backup[5] = portc.3
backup[6] = portc.4
backup[7] = portc.5
backup[8] = 0
serout portc.6,t2400,[str backup]
endif
if nhandulieu = 100 then
nhietdo = ADIN 0' doc nhiet do tai RA0
nhietdo = nhietdo / 2 ' nhiet do chia 2 vi do phan giai
10bit
serout portc.6,t2400,[@nhietdo,13] ' xuat nhiet do len
phan mem
endif
while (portd $f0
row = portd << 4 & $ff
Key = (Col * 3) + (Ncd (Row ^ $f0)) 'phep tinh so phim
key = key - 16 ' so phim tru 16 de dua ve gia tri dung
if key = 11 then key = 0
tam[i-1] = key 'luu ma phim va bien mang bien tam
if key 10 then print at 2,i,dec key
if key = 12 then
cls
kiemtra = 0
porta.2 = 1
tam[0] = 0
i = 0
endif
tam[4] = 0 ' cho gia tri cua bien tam cuoi cung bang Null
if tam[0] = 1 then if tam[1] = 2 then if tam[2] = 3 then
if tam[3] = 4 then kiemtra = 1
if key = 10 then
if kiemtra = 1 then
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 133 -
print at 2,1,"Open the door"
porta.2 = 0
i = 0
else
sai = sai - 1
print at 2,1,"Wrong password"
delayms 300
print at 2,1,"please wait . . ."
delayms 300
print at 2,1,"Remain ",dec sai," times"
endif
endif
delayms 400
i = i + 1
if i = 5 then i = 1
while sai = 0
porta.1 = 0
print at 1,1, "Lock key "
print at 2,1,"Contact Host "
goto main
wend
wend
Next
goto Main
end
FILE KÈM THEO
PROTON_4.INC:
DEVICE = 16F877
XTAL = 4 ‘ thach anh 4Mhz
LCD_DTPIN = PORTb.4
LCD_RSPIN = PORTb.2
LCD_ENPIN = PORTb.3
LCD_INTERFACE = 4' 4-bit Interface
LCD_LINES = 2
LCD_TYPE = 0
‘ khai bao LCD
symbol T300 = 3313
Symbol N300 = 3313 + $4000
Symbol T600 = 1646
Symbol N600 = 1646 + $4000
Symbol T1200 = 813
Symbol N1200 = 813 + $4000
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 134 -
Symbol T2400 = 396
Symbol N2400 = 396 + $4000
Symbol T4800 = 188
Symbol N4800 = 188 + $4000
Symbol T9600 = 84
Symbol N9600 = 84 + $4000
Symbol OT2400 = 396 + $8000 ' Open True
Symbol OT1200 = 813 + $8000 ' Open True
Symbol OT9600 = 84 + $8000 ' Open True
Symbol OT300 = 3313 + $8000' Open True
Symbol ON2400 = 396 + $4000 + $8000 ' Open Inverted
Symbol ON1200 = 813 + $4000 + $8000 ' Open Inverted
Symbol ON9600 = 84 + $4000 + $8000 ' Open Inverted
Symbol ON300 = 3313 + $4000 + $8000' Open Inverted
‘ Khai bao cac toc do Baud
III. TẬP LỆNH AT COMMAND
1. LỊCH SỬ PHÁT TRIỂN
Các modem được sử dụng từ những ngày đầu của sự ra đời của máy tính. Từ
Modem là một từ được hình thành từ hai từ modulator và demodulator. Và định nghĩa
đặc trưng này cũng giúp ta hình dung được phần nào là thiết bị này sẽ làm cái gì. Dữ
liệu số thì đến từ một DTE, thiết bị dữ liệu đầu cuối được điều chế theo cái cách mà nó
có thể được truyền dữ liệu qua các đường dây truyền dẫn. Ở một mặt khác của đường
dây, một modem thứ hai điều chế dữ liệu đến và xúc tiến, duy trì nó.
Các modem ngày xưa chỉ tương thích cho việc gửi và nhận dữ liệu. Để thiết
lập một kết nối thì một thiết bị thứ hai như một dialer thì được cần đến. Đôi khi kết nối
cũng được thiết lập bằng tay bằng cách quay số điện thoại tương ứng và một khi
modem được bật thì kết nối coi như được thực thi. Vấn đề này thì không có gì cần phải
bàn cãi trong những ngày trước đây khi mà máy tính được sử dụng bởi những nhà kỹ
thuật khéo léo, modem và các máy tính lớn. Các máy tính loại nhỏ ở các năm 70 thâm
nhập vào thị trường là các gia đình, cùng với chi phí thì sự thiếu hụt về kiến thức kỹ
thuật trở thành một đề tài cần thảo luận.
Chúng ta đang nói về tuổi đời khi Internet, tele-banking và các ứng dụng truyền
thông phổ biến khác khi mà chúng ta biết chúng bây giờ không còn tồn tại nữa rồi. Lí
do chính của mọi người còn sử dụng modem đó là để kết nối với BBSes, Bullitin
Board Systems. Các hệ thống máy tính chính thống được sử dụng bởi các công ty và
các tính nguyện viên nơi mà mọi người có thể giao tiếp với người khác bằng cách sử
dụng các board thông tin và up rồi download phần mềm cùng với các tiện tính. Với chi
phí thấp thì dễ dàng cho việc sử dụng các modem, nó làm cho cộng việc này trở thành
có thể thực thi. Ở điều kiện lí tưởng, các modem có thể quay các số điện thoại mong
muốn mà không cần có giao diện dành cho người dùng hay một bộ quay số bên ngoài
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 135 -
Khi chúng ta xem trong RS232 port layout thì chuẩn RS232 miêu tả một kênh
truyền thông với bộ kết nối 25 chân DB25, nó được thiết kế để thực thi quá trình
truyền các lệnh điều khiển đến modem được kết nối với nó. Thao tác này bao gồm cả
các lệnh quay một số điện thoại rõ ràng nào đó. Không may đó là các quá trình thực
thi dùng RS232 với chi phí thấp này chỉ thể hiện trên các máy tính ở các hộ gia đình
trong những năm 70, và kênh truyền thông thứ hai không được thực thi. Thế nên nhất
thiết phải có một phương pháp đươc thiết lập để sử dụng kênh dữ liệu hiện tại để
không chỉ truyền dữ liệu từ một điểm đầu cuối này tới một điểm đầu cuối khác mà nó
còn có thể điều khiển lệnh nhắm tới modem duy nhất. Dennis Hayes đã đưa giải pháp
cho vần đềnày trong năm 1977. Modem thông minh (Smartmodem) của ông sử dụng
chuẩn truyền thông RS232 đơn giản kết nối tới một máy tính để truyền cả lệnh và dữ
liệu . Bởi vì mỗi lệnh bắt đầu với chữ AT trong chữ Attention nên ngôn ngữ điều khiển
được định nghĩa bởi Hayes nhanh chóng được biết tới với bộ lệnh Hayes AT. Chính vì
sự đơn giản và khả năng thực thi với chi phí thấp của nó, bộ lệnh Hayes AT nhanh
chóng được sử dụng phổ biến trong các modem của các nhà sản xuất khác nhau. Khi
chức năng và độ tích hợp của các modem ngay càng tăng cùng với thời gian, nên làm
cho ngôn ngữ lệnh Hayes AT và nhanh chóng mỗi nhà sản xuất modem đã sử dụng
ngôn ngữ của riêng ông ấy. Ngày nay, bộ lệnh AT bao gồm cả các lệnh về dữ liệu, fax,
voice và các truyền thông SMS.
Các lệnh AT là các hướng dẫn được sử dụng để điều khiển một modem. AT là
một cách viết gọn của chữ Attention. Mỗi dòng lệnh của nó bắt đầu với “AT” hay “at”.
Đó là lí do tại sao các lệnh Modem được gọi là các lệnh AT. Nhiều lệnh của nó được
sử dụng để điều khiển các modem quay số sử dụng dây mối (wired dial-up modems),
chẳng hạn như ATD (Dial), ATA (Answer), ATH (Hool control) và ATO (return to
online data state), cũng được hỗ trợ bởi các modem GSM/GPRS và các điện thoại di
động.
Bên cạch bộ lệnh AT thông dụng này, các modem GSM/GPRS và các điện
thoại di động còn được hỗ trợ bởi một bộ lệnh AT đặc biệt đối với công nghệ GSM.
Nó bao gồm các lệnh liên quan tới SMS như AT+ CMGS (gửi tin nhắn SMS),
AT+CMSS (gửi tin nhắn SMS từ một vùng lư trữ), AT+CMGL (chuỗi liệt kê các tin
nhắn SMS) và AT+CMGR (đọc tin nhắn SMS)
Chú ý là khởi động “AT” là một tiền tố để thông báo tới modem về sự bắt đầu
của một dòng lệnh. Nó không phải là một phần của tên lệnh AT. Ví dụ như D là một
tên lệnh AT thực tế trong ATD và +CMGS là tên một lệnh AT thực tế trong
AT+CMGS. Tuy nhiên, một số sách hay một số trang web lại sử dụng chúng thay cho
nhau như là tên của một lệnh AT.
Sau đây là một vài nhiệm vụ có thể được hoàn thành bằng cách sử dụng các
lệnh AT kết hợp với sử dụng 1 modem GSM/GPRS hay một điện thoại di động:
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 136 -
Lấy thông tin cơ bản về điện thoại di động hay modem GSM/GPRS. Ví dụ
như tên của nhà sản xuất (AT+CGMI), số model (AT+CGMM), số IMEI
(International Mobile Equipment Identity) (AT+CGSN) và phiên bản phần
mềm (AT+CGMR).
Lấy thông tin trạng thái hiện tại của điện thoại di động hay modem
GSM/GPRS. Ví dụ như trạng thái hoạt động của điện thoại (AT+CPAS),
trạng thái đăng kí mạng mobile (AT+CREG), chiều dài sóng radio
(AT+CSQ), mức sạc bin và trạng thái sạc bin (AT+CBC).
Thiết lập một kết nối dữ liệu hay kết nối voice tới một remote điều khiển
(ATD, ATA,..)
Gửi và nhận fax (ATD, ATA,AT+F*)
Gửi (AT+CMGS, AT+CMSS), đọc (AT+CMGR, AT+CMGL), viết
(AT+CMGW) hay xóa tin nhắn SMS (AT+CMGD) và nhận các thông báo
của các tin nhắn SMS nhận được mới nhất (AT+CNMI).
Đọc (AT+CPBR), viết (AT+CPBW) hay tìm kiếm (AT+CPBF) cá mục về
danh bạ điện thoại (phonebook).
Thực thi các nhiệm vụ liên quan tới an toàn, chẳng hạn như mở hay đóng các
khóa chức năng (AT+CLCK), kiểm tra xem một chức năng được khóa hay
chưa (AT+CLCK) và thay đổi password (AT+CPWD).
(Các ví dụ về khóa chức năng: khóa SIM [một password phải được cho vào thẻ
SIM mỗi khi điện thoại được mở] và khóa PH-SIM [một thể SIM nào đó có liên kết tới
điện thoại, và để sử dụng được các thẻ SIM khác thì buộc phải đăng nhập một
password vào trong nó].)
Điều khiển hoạt động của các mã kết quả/các thông báo lỗi của các lệnh AT.
Ví dụ, bạn có thể điều khiển cho phép hay không cho phép kích hoạt hiển thị
thông báo lỗi (AT+CMEE) và các thông báo lỗi nên được hiển thị theo dạng
số hay theo dạng dòng chữ (AT+CMEE=1 hay AT+CMEE=2).
Thiết lập hay thay đổi cấu hình của điện thoại di dộng hay modem
GSM/GPRS. Ví dụ, thay đổi mạng GSM (AT+COPS), loại dịch vụ của bộ
truyền tin (AT+CBST), các thông số protocol liên kết với radio (AT+CRLP),
địa chỉ trung tâm SMS (AT+CSCA) và khu vực lưu trữ các tin nhắn SMS
(AT+CPMS).
Lưu và phục hồi các cấu hình của điện thoại di động hay modem GSM/GPRS.
Ví du, lưu (AT+COPS) và phục hồi (AT+CRES) các thiết lập liên quan tới tin
nhắn SMS chẳng hạn như địa chỉ trung tâm tin nhắn SMS.
Chú ý là nhà sản xuất điện thoại di động thường không thi hành tất cả các lệnh
AT, các thông số lệnh và các giá trị của tham số trong các điện thoại di động. Trạng
thái hành vi của các lệnh AT thực thi có thể cũng khác so với các định nghĩa chuẩn
trước đó. Nói chung, các modem GSM/GPRS được thiết kế dành cho các ứng dụng
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 137 -
wireless mà có được các hỗ trợ tốt về các lệnh AT hơn là các điện thoại di động thông
thừơng khác.
Thêm vào đó, một vài lệnh AT yêu cầu sự hỗ trợ từ các tổng đài của mạng di
động. Ví dụ, SMS thông qua GPRS có thể được kích hoạt trên các điện thoại di động
có sử dụng GPRS và các modem GPRS với lệnh +CGSMS (tên lệnh ở dạng text:
Select Service for MO SMS Messages). Nhưng nếu tổng đài mạng điện thoại không hỗ
trợ quá trình truyền dẫn SMS thông qua GPRS, thì bạn không thể sử dụng chức năng
này được.
2. MODEM GSM & MODEM GPRS:
2.1. Modem GSM
Một modem GSM là một modem wireless, nó làm việc cùng với một mạng
wireless GSM. Một modem wireless thì cũng hoạt động giống như một modem quay
số. Điểm khác nhau chính ở đây là modem quay số thì truyền và nhận dữ liệu thông
qua một đường dây điện thoại cố định trong khi đó một modem wireless thì gửi và
nhận dữ liệu thông qua sóng radio .
Một modem GSM có thể là một thiết bị mở rộng bên ngoài hay một PC
Card/PCMCIA Card. Điển hình đó là một modem GSM rời bên ngoài được kết nối với
một máy tính thông qua một cáp nối tiếp hay một cáp USB. Một modem GSM hợp
chuẩn với một PC Card/PCMCIA Card được thiết kế cho việc sử dụng với môt máy
tính laptop. Nó được gắn vào một trong những khe cắm PC Card/PCMCIA Card của
một máy tính laptop.
Giống như một điện thoại di động GSM, một modem GSM yêu cầu 1 thẻ SIM
với một sóng mang wireless để hoạt động.
Như đã đề cập trong mục trước đó về hướng dẫn về SMS, các máy tính sử dụng
lệnh AT để điều khiển modem. Cả hai modem GSM và modem quay số đều có hỗ trợ
một bộ các lệnh AT chuẩn chung. Vì thế bạn có thể sử dụng modem GSM hay modem
quay số đều được.
Bổ trợ cho các lệnh AT chuẩn, các modem GSM còn hỗ trợ một bộ lệnh AT mở
rộng. Những lệnh AT mở rộng này được định nghĩa trong các chuẩn của GSM. Với
các lệnh AT mở rộng này,bạn có thể làm một số thứ như sau:
+ Đọc,viết, xóa tin nhắn
+ Gửi tin nhắn SMS
+ Kiểm tra chiều dài tín hiệu
+ Kiểm tra trạng thái sạc bin và mức sạc của bin.
+ Đọc, viết và tìm kiếm về các mục danh bạ
Số tin nhắn SMS có thể được thực thi bởi một modem SMS trên một phút là rất
thấp, nó chỉ khoảng từ 6 đến 10 tin nhắn SMS trong 1 phút.
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 138 -
2.2. Modem GPRS :
Một modem GPRS là một modem GSM mà có hỗ trợ thêm cộng nghệ GPRS
cho việc truyền dữ liệu. GPRS hỗ trợ cho Dịch Vụ Radio Gói Đầy Đủ (General Packet
Radio Service). Nó là một công nghệ truyền gói tin và là một mở rộng của GSM
(GSM là một công nghệ chuyển mạch). Một ưu điểm đáng kể của GPRS trên nền
GSM đó là GPRS có tốc độ truyền dữ liệu cao hơn.
GPRS có thể được sử dụng giống như một bộ truyền tin của SMS. Nếu như
SMS trên nền GPRS được sử dụng thì nó có thể đạt tới tốc độ truyền là 30 tin nhắn
SMS trong một phút. Điều này cho thấy nó thực thi nhanh hơn nhiều so với sử dụng
SMS trên nền GSM (với GSM thì tốc độ truyền chỉ khoảng 6 tới 10 tin nhắn SMS
trong một phút). Cần phải có modem GPRS để truyền và nhận tin nhắn SMS trền nền
GPRS. Và cần chú ý là một vài sóng mang wireless không hỗ trợ việc gửi và nhận tín
nhắn SMS trên nền GPRS.
Nếu như chúng ta cần gửi hay nhận các tin nhắn SMS thì cần phải có một
modem GPRS chuẩn.
2.3. Sự chọn lựa giữa: Mobile Phone và Modem GPRS
Nói chung, một modem GSM/GPRS thường được khuyên dùng hơn dành cho
máy tính cho việc gửi và nhận tin nhắn. Đó là bởi vì các điện thoại di động thường có
những giới hạn nhất định nào đó của nó so với các modem GSM/GPRS. Say đây là
một vài miêu tả giới hạn của nó.
Một vài model điện thoại di động (chẳng hạn như Ericsson R380) không thể sử
dụng với máy tính trong việc nhận các tin nhắn SMS ở dạng chuỗi nối tiếp nhau.
Khi một thiết bị điện thoại di động nhận các tin nhắn SMS , tin nhắn này bao
gồm tất cả các phần của một tin nhắn SMS nối chuỗi với nhau, nó kết hợp chúng lại
với nhau thành một tin nhắn một cách tự động. Cách xử lí hợp lí nên là: khi thiết bị di
động nhận các tin nhắn SMS mà các phần của tin nhắn này được kết nối móc chuỗi với
nhau, nó đẩy chúng tới máy tính mà không kết hợp chúng lại
Nhiều model điện thoại di động không thể sử dụng được với máy tính để nhận
các tin nhắn MMS. Bởi vì khi chúng nhận một thông báo MMS, chúng sẽ xử lí nó một
cách tự động thay vì đưa nó tới máy tính.
Một điện thoại di động không hỗ trợ các lệnh AT, các tham số lệnh và các giá
trị của tham số. Ví dụ, các thiết bị di động không hỗ trợ việc gửi và nhận các tin nhắn
SMS ở chế độ text. Cho nên lệnh AT "AT+CMGF=1" (nó chỉ dẫn cho điện thoại di
động sử dụng chế độ text) sẽ gây ra một thông báo lỗi phản hồi lại. Thường thì các
modem GSM/GPRS hỗ trợ cho một bộ lệnh AT hoàn chỉnh nhiều hơn so với các thiết
bị điện thoại di động.
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 139 -
Hầu hết các ứng dụng tin nhắn SMS phải ở chế độ sẵn sàng suốt 24 giờ trong
một ngày (ví dụ như, ứng dụng tin nhắn SMS mà cung cấp dịch vu download nhạc
chuông nên được chạy tại tất cả các thời gian trong ngày như thế người dùng mới có
thể doanload nhạc chuông tại bất kỳ thời điểm nào mà họ muốn). Nếu như các ứng
dụng sử dụng điện thoại di động để gửi và nhận các tin nhắn SMS thì chiếc điện thoại
di dộng này phải được mở suốt cả ngày. Tuy nhiên một số model điện thoại di động
không thể hoạt động khi tháo bin ra khỏi, thậm chí khi một adaptor AC được kết nối,
điều đó có nghĩa là bin sẽ được nạp điện 24 tiếng trong một ngày.
Bên cạnh các vấn đề trên, các điện thoại di động và các modem GSM/GPRS ít
hay nhiều cũng giống nhau trong việc gửi và nhận các tin nhắn từ máy tính. Thực ra
thì bạn có thể coi một lệnh AT được dùng để kích hoạt các thiết bị di động như
"GSM/GPRS modem + keypad + display + ...".
Có nhiều sự khác nhau giữa các điện thoại di động và các modem GSM/GPRS
ở trong các giới hạn về tốc độ truyền tin SMS, vì thế yếu tố xác định cho tốc độ truyền
tin nhắn SMS là mạng wireless.
3. Các thủ tục cần có cho việc gửi các lệnh AT tới một điện thoại di động hay
một modem GSM/GPRS bằng cách sử dụng MS HyperTerminal.
Để sử dụng MS HyperTerminal cho việc gửi các lệnh AT đến điện thoại di động hay
modem GSM/GPRS, bạn cần phải thực hiện theo những bước như sau:
1. Cho một thẻ SIM vẫn còn gía trị vào vào trong điện thoại di động hay một
modem GSM/GPRS. Bạn có thể kiếm được một thẻ SIM bằng cách mua dịch
vụ GSM của một nhà phân phối mạng wireless
2. Kết nối điện thoại di động hay modem GSM/GPPRS của bạn tới máy tính và
cài đặt driver của modem wireless tương ứng cho nó. Bạn sẽ tìn thấy driver của
modem wireless trong đĩa CD mà nhà sản xuất cung cấp cho bạn. Và nếu như
nhà sản xuất không cung cấp driver cho điện thoại hay modem GSM/GPRS thì
bạn có thể vào trang web của nhà sản xuất để download nó về rồi cài vào. Còn
nếu vào trang web của nàh sản xuất mà cũng không có thì bạn vẫn có thể sử
dụng driver cho modem chuẩn của Window
3. Chạy MS HyperTerminal bằng cách chọn Start →Programs→Accessories →
Communications → HyperTerminal.
4. Trong hộp thoại Connection Description, hãy gõ tên và chọn một biểu tượng
icon mà bạn thích dùng cho kết nối này. Sau đó thì nhấn nút OK
5. Trong hộp thoại Connect to, chọn COM port mà điện thoại di động hay
modem GSM/GPRS đang kết nối tới tại khay Connect using. Thí dụ, bạn có thể
chọn CÓM khi điện thoại di động hay modem đang được kết nối với port
COM1. Sau đó thì nhấn nút OK.
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 140 -
( đôi khi sẽ có hơn một port COM ở trong khay Connect using. Để biết port
COM nào được sử dụng bởi điện thoại di động hay modem GSM/GPRS thì hãy làm
theo những bước sau đây:
Trong Window 98:
Vào Control Panel -> Modem sau đó click vào tab Diagnostics. Trong hộp thoại này
bạn sẽ thấy port COM nào mà điện thoại di động hay modem GSM/GPRS đangđược
kết nối.
Trong Window2000
Vào Control Panel →Phone and Modem Options. Sau đó click vào tab
Modems .Trong hộp thoại này bạn sẽ thấy port COM nào mà điện thoại di động hay
modem GSM/GPRS đangđược kết nối.)
6. Hộp thoại Properties xuất hiện. Chọn các thiết lập port chính xác cho điện
thoại di động hay modem GSM/GPRS. Sau đó click vào nút OK
(Để tìm ra các thiết lập chính xác phù hợp với điện thoại di động hay modem
GSM/GPRS thì có một cách đó là tra sổ hướng dẫn cầm tay của điện thoại di động của
bạn hay modem GSM/GPRS. Và một cách khác là kiểm tra các thiết lập port được sử
dụng cho driver của modem wireless mà bạn cài đặt trước đó).
Để kiểm tra các thiết lập port được sử dụng cho driver của modem wireless trên
nền Windows 98, hãy làm theo những bước sau:
a.Vào Control Panel → Modem.
b.Chọn điện thoại di động hay modem GSM/GPRS trong hộp thoại hiện ra.
c.Click vào nút Properties
d.Hộp thoại Properties hiện ra. Tại khu vực Maximum speeds tại tab General
ứng với khu vực Bits per second HyperTerminal. Click vào tab Connection và bạn có
thể tìm các thiết lập cho các bít dữ liệu, các bít parityvà bit stop. Click vào nút
Advanced thì bạn có thể tìm thấy thiết lập cho điều khiển lưu lượng.
Để kiểm tra các thiết lập port được sử dụng cho driver của modem wireless trên
nền Windows 2000 và Windows XP, hãy làm theo những bước sau:
a.Vào Control Panel→Phone and Modem Options→Modems tab.
b.Chọn điện thoại di động hay modem GSM/GPRS trong hộp thoại hiện ra.
c.Click vào nút Properties
d.Hộp thoại Properties hiện ra. Click vào tab Advanced rồi sau đó Click vào nút
Change Default Preferences
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 141 -
e.Hộp thoại Change Default Preferences xuất hiện. Khu vực Port Speed ở tab
General tương ứng với khu vực Bits per second. Bạn cũng có thể tìm các thiết lập cho
điều khiển lưu lượng ở tab General. Ở tab Advanced, bạn có thể tìm các thiết lập cho
các bít dữ liệu, các bít parity và bít stop.
Hình: Cửa sổ màn hình hộp thoại Properties của MS HyperTerminal trong
Windows 98.
7. Gõ “AT” ở trong cửa sổ màn hình window chính. Một phản hồi “OK” sẽ được
trả lời từ điện thoại di động hay modem GSM/GPRS
Gõ “AT+CPIN?” trong cửa sổ màn hình window chính. Lệnh AT “AT+CPIN”
được sử dụng để chất vần liệu điện thoại di động hay modem GSM/GPRS đang đợi
một PIN có đúng không (personal identification number _số nhận dạng cá nhân, ví dụ
như password). Nếu thấy có phản hồi là “+CPIN:READY”thì nó có nghĩa là thẻ SIM
không yêu cầu có một PIN và nó đã sẵn sàng cho sử dụng. Còn nếu như thẻ SIM của
bạn yêu cầu có một PIN thì bạn cần đặt PIN thông qua lệnh AT “AT+CPIN+”.
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 142 -
Hình: Cửa sổ màn hình chính của MS HyperTerminal trong windows 98.
Nếu như bạn nhận được phản hồi như cửa sổ màn hình trên thì điện thoại di
động hay modem GSM/GPRS đang hoạt động đúng. Và tới đây bạn có thể gõ cá lệnh
AT theo ý riêng của bạn để điều khiển điện thoại di động hay modem GSM/GPRS.
Để có những hiểu biết chi tiết hơn về cách sử dụng các lệnh AT để gửi và nhận
các tin nhắn SMS sẽ được cung cấp trong các mục sau.
Kiểm tra xem điện thoại di động hay modem GSM/GPRS có hỗ trợ việc sử dụng
các lệnh AT để gửi, nhận và đọc các tin nhắn SMS.
Sau khi kiểm tra xong các truyền thông giữ PC và điện thoại di động hay
modem GSM/GPRS, thứ kế tiếp mà bạn muốn làm là kiểm tra xem điện thoại di động
hay modem GSM/GPRS có hỗ trợ việc sử dụng các lệnh AT để truyền, nhận và đọc tin
nhắn SMS không. Hầu hết các modem GSM/GPRS đều có hỗ trợ ba chức năng trên
nhưng chỉ có một số điện thoại di động hỗ trợ các chức năng đó.
Gửi tin nhắn SMS.
Để hiểu xem một modem GSM/GPRS hay điện thoại di động có hỗ trợ việc gửi
các tin nhắn SMS thông qua các lệnh AT hay không, bạn phải:
1.Sử dụng lệnh AT +CSMS (tên lệnh trong text: Select Message Service) để
kiểm tra liệu xem các tin nhắn SMS có nguồn gốc từ mobile có được hỗ trợ không.
2.Thực thi các hoạt động test để kiểm tra liệu các lệnh AT +CMGW (tên lệnh ở
dạng text: Send Message) và (hay) +CMSS (tên lệnh ở dạng text: Send Message from
Storage) được hỗ trợ không.
(bạn có thể kiểm tra các lệnh AT +CMGW [tên lệnh ở dạng text: Write
Message to Memory] và +CMGD [tên lệnh ở dạng text: Delete Message] thêm vào khi
đôi khi chúng được sử dụng chung với +CMSS)
Nhận và đọc các tin nhắn SMS từ vùng lưu trữ tin nhắn
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 143 -
Để hiểu xem liệu một modem GSM/GPRS hay điện thoại di động có hỗ trợ
nhận và đọc tin nhắn SMS thông qua các lệnh AT không thì bạn phải :
1.Sử dụng lệnh AT +CSMS (tên lệnh ở dạng text: Select Message Service)
dùng để kiểm tra xem liệu các tin nhắn SMS kết cuối di động có được hỗ trợ không
2.Thực thi các hoạt động test để kiểm tra xem liệu +CNMI (tên lệnh ở dạng
text: New Message Indications to TE), +CMGL (tên lệnh ở dạng text: List Messages)
và (hay) +CMGR (tên lệnh ở dạng text: Read Message) có được hỗ trợ không.
Nếu như modem GSM/GPRS hay điện thoại di động có hỗ lệnh AT +CNMI
thì nó có thể gửi một thông báo hay trực tiếp xúc tiến tin nhắn tới PC bất cứ khi nào
một tin nhắn SMS mới tới.
Còn nếu như modem GSM/GPRS hay điện thoại di động không hỗ trợ lệnh
+CNMI nhưng lai hỗ trợ lệnh +CMGL và/hay +CMGR thì PC phải có sự lựa chọn
modem GSM/GPRS hay điện thoại di động theo thứ tự để biết nếu như có bất kỳ tin
nhắn mới nào vừa tới nó.
4. Chế độ hoạt động: chế độ SMS text và chế độ SMS PDU:
Chi tiết kỹ thuật của SMS được định nghĩa ở hai chế độ (hai mode),và ở hai chế
độ đó modem GSM/GPRS hay điện thoại di động đều có thể hoạt động tốt với nó. Hai
chế độ đó là :chế độ SMS text và chế độ SMS DPU. (chuẩn PDU dùng cho đơn vị dữ
liệu Protocol). Chế độmà một modem GSM/GPRS hay điện thoại di động đang hoạt
động tìm kiếm, xác định cấu trúc ngữ pháp của các lệnh AT SMS và định dạng của các
đáp ứng trả lại sau khi thi hành. Dưới đây là các lệnh AT SMS mà nó có ảnh hưởng
tới:
CMGS (Send Message_gửi tin nhắn)
CMSS (Send Message from Storage_gửi tin nhắn từ trung tâm lưu trữ)
CMGR (Read Message_đọc tin nhắn)
CMGL (List Messages_liệt kê các tin nhắn)
CMGW (Write Message to Memory_viết tin nhắn vào bộ nhớ)
CNMA (New Message Acknowledgement to ME/TA_Sự chấp nhận các tin
nhắn mới tới ME/TA).
CMGC (Send Command_gửi tin nhắn).
Hai lệnh AT sau chỉ hữu ích khi chế độ SMS text được sử dụng.
CSMP (Set Text Mode Parameters_đặt các tham số cho chế độ text)
CSDH (Show Text Mode Parameters_Chỉ ra các tham số ở chế độ text)
5. Sự so sánh giữa chế độ SMS text và chế độ SMS PDU:
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 144 -
Dưới đây chúng ta sẽ so sánh các khía cạch khác nhau giữa hai chế độ SMS text
và SMS PDU. Sự so sánh này sẽ giúp chúng ta thấy được sự khác nhau giữa hai chế độ
này và từ giúp ta có quyết định tốt hơn trong việc chọn lựa chế độ nào nên được sử
dụng bởi ứng dụng tin nhắn SMS của bạn.
Cấu trúc ngữ pháp của các lệnh AT SMS và các đáp ứng của nó:
Khi modem GSM/GPRS hay điện thoại di động đang hoạt động trong các chế
độ khác nhau thì cấu trúc ngữ pháp lệnh AT SMS nào đó và các đáp ứng của nó đưa
lại sau khi thực thi lệnh là khác nhau. Sau đây là một ví dụ cho trình bày nói trên. Giả
sử rằng bạn muốn gửi một tin nhắn SMS như sau: “It is easy to send text messages”
đến một số điện thoại +85291234567 thì trong chế độ SMS text thì dòng lệnh bạn phải
đánh vào là như sau: AT+CMGS="+85291234567"It is easy to send text
messages. . Tuy nhiên nếu modem GSM/GPRS hay điện thoại di động đang
hoạt động trong các chế độ SMS PDU thì việc thực thi dòng lệnh trên sẽ phát sinh ra
một lỗi. Đó là do cấu trúc ngữ pháp của lệnh AT +CMGS được sử dụng theo một cách
khác trong chế độ SMS DPU. Để thực thi nhiệm vụ trên thì dòng lệnh sau nên được
thay thế vào:
AT+CMGS=4207915892000000F001000B915892214365F7000021493
A283D0795C3F33C88FE06CDECLAREB6E32885EC6D341EDF27C1E3E97E72E
Các giá trị được định nghĩa cho các tham số:
Khi modem GSM/GPRS hay điện thoại di động đang hoạt động trong các chế
độ khác nhau thì các giá trị của các tham số nào đó cũng khác nhau. Thường thì các
giá trị dạng string được định nghĩa dành cho chế độ SMS text trong khi các giá trị số
được định nghĩa dành cho chế độ PDU. Thí du, lệnh AT +CMGL được sử dụng để liệt
kê các tin nhắn được lưu trữ trong kho lưu trữ tin nhắn. Nó sẽ lấy một tham số để chỉ
ra trạng thái của các tin nhắn SMS được tìm, lấy về. Bảng thông số sau sẽ liệt kê các
giá trị được định nghĩa cho các tham số trong hai chế độ text và chế độ PDU.
Trạng thái tin nhắn Các giá trị định nghĩa trong chế độ text
Các giá trị định nghĩa
trong chế độ PDU
Received unread "REC UNREAD" 0
Received read "REC READ" 1
Stored unsent "STO UNSENT" 2
Stored sent "STO SENT" 3
All messages "ALL" 4
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 145 -
Giả sử rằng bạn muốn liệt kê tất cả cac1tin nhắn từ trung tâm lưu trữ tin nhắn.
Nếu như modem GSM/GPRS hay điện thoại di động đang hoạt động trong các chế độ
SMS text thì bạn nên ấn định giá trị dạng string “All” đối với lệnh AT AT +CMGL
như sau:
AT+CMGL="ALL"
Còn trong chế độ SMS PDU thì giá trị số “4” nên được ấn định cho cho lệnh
AT +CMGL, nó như sau:
AT+CMGL=4
Dạng ngõ ra/ngõ vào (input/output) của các tin nhắn SMS được dùng bởi các lệnh
AT SMS.
Khi modem GSM/GPRS hay điện thoại di động đang hoạt động trong các chế
độ khác nhau thì dạng ngõ ra/ngõ vào (input/output) của các tin nhắn SMS được dùng
bởi các lệnh AT SMS cũng khác nhau. Trong chế độ SMS text thì đầu và thân của các
tin nhắn SMS được làm các ngõ vào vao/ngõ ra khi tách rời các tham số/các lĩnh
vực.Trong chế độ SMS DPU, TPDUs (Transport Protocol Data Units) ở định dạng
hexa là các ngõ vào và ngõ ra. Đầu và thần của các tin nhắn SMS được mã hóa theo
dạng TPDUs.
Sau đây là một thí dụ cho những trình bày nói trên. Để gửi một tin nhắn SMS
"It is easy to send text messages." Đến một số điện thoại +85291234567 thì dòng lệnh
sau nên được sử dụng trong chế độ SMS text. Trong khi bạn thấy các dưới đây, đầu số
của số điện thoại đích và các đầu số của các số điện thoại khác nữa được mã hóa theo
dãy số hexa.
AT+CMGS=4207915892000000F001000B915892214365F7000021493A283D
0795C3F33C88FE06CDECLAREB6E32885EC6D341EDF27C1E3E97E72E
Dễ dàng trong sử dụng
Khi các bạn đã xem tất cả các ví dụ trước thì bạn sẽ cảm thấy thật là dễ dàng sử
dụng các lệnh AT trong chế độ SMS text. Bạn không cần phải học về các loại cấu trúc
khác nhau của TPDUs ở dạng bit hay là các mã hóa hay giải mã các chuỗi số hexa.
Các đặc điểm hỗ trợ của tín nhắn SMS
Mặc dù sử dụng các lệnh AT rất dễ dàng trong chế độ SMS text, nhưng nó lại
hỗ trợ ít các đặc điểm về tin nhắn SMS hơn là chế độ SMS DPU. Điều này là do bạn
không thể hoàn tất các điều khiển dựa trên các giá trị đầu và than6cua3 tin nhắn trong
chế độ SMS text. Một vài nhiệm vụ có thể được hoàn thành trong chế độ text, đòi hỏi
người lập trình phải hiểu biết về chế độ PDU và TPDU. Thí dụ, để yêu cầu một bản tin
trạng thái từ SMSC trong chế độ SMS text thì bạn phải đặt bit 5 của 8 bít đầu tiên
trong SMS-SUBMIT TPDU thành “1” bằng lệnh AT +CCMP (tên lệnh ở dạng text:
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 146 -
Set Text Mode Parameters). Các nhiệm vụ tương tự bao gồm thiết lập chu kỳ hợp lí
cho tin nhắn và gửi một tin nhắn SMS dạng flash (nghĩa là nó ngay lập tức xuất hiện
trên màn hình điện thoại khi nó đến địa chỉ đích).
6. Gửi các tin nhắn SMS từ một máy tính/PC sử dụng các lệnh AT (AT+CMGS,
AT+CMSS)
Chế độ SMS DPU có nhiều hỗ trợ phổ biến hơn dành cho điện thoại hay
modem GSM/GPRS hơn là cho chế độ SMS text.
Cả hai lệnh AT+CMGS (tên lệnh ở dạng text:Send Message) và +CMSS(tên
lệnh ở dạng text: Send Message From Storage) đều có thể được sử dụng để gửi các tin
nhắn SMS từ một máy tính (PC). Sự khác nhau cơ bản ở bản giữa chúng là lệnh AT
+CMGS lấy các tin nhắn SMS như là một tham số,trong khi đó lệnh AT+CMSS lấy
các số index mà chỉ rõ vị trí của tin nhắn SMS trong khu vực lưu trữ tin nhắn như là
một tham số. Những trình bày sau đây là một thí dụ để làm sáng tỏ sự khác nhau này.
Giả sử rằng bạn muốn gửi một tin nhắn dạng text "Sending text messages is easy." Từ
một máy tính để bàn (PC) tới một số thoại di động 091234567 sử dụng lệnh AT
+CMGS ở chế độ SMS text. Và sau đây là dòng lệnh được sử dụng:
AT+CMGS="91234567"Sending text messages is easy.
Còn nếu cũng muốn gửi text nhưng sử dụng lệnh AT +CMSS thì đầu tiên bạn
phải sử dụng lệnh AT+CMGW (tên lệnh ở dạng text: Write Message to Memory) để
viết text tin nhắn tới khu vực lưu trữ tin nhắn. Trong chế độ SMS text thì dòng lệnh sẽ
như sau:
AT+CMGW="91234567"Sending text messages is easy.
Giờ thì chúng ta có thể nói text tin nhắn SMS bây giờ được định vị tại index 3
của vùng lưu trữ tin nhắn. Ban5co1 thể sử dụng lệnh AT +CMSS để gửi text tin nhắn
đến trung tâm tin nhắn bằng dòng lệnh sau:
AT+CMSS=3
Khi khong gian lưu trữ bị giới hạn, nếu như mỗi text tin nhắn SMS đã gửi được
để ở vùng lưu trữ tin nhắn thì sẽ có một thời điểm khi mà không có thêm các text tin
nhắn SMS nào có thể được viết. Để giải thoát không gian lưu trữ, bạn có thể sử dụng
lệnh AT +CMGD (tên lệnh ở dạng text: Delete Message) để xóa các text tin nhắn
SMS ở vùng lưu trữ tin nhắn,nó như sau:
AT+CMGD=3
Khi bạn thấy dòng lệnh trên, gửi một tin nhắn SMS bằng lệnh AT +CMSS là
một sự nặng nề về bit, bởi vì nó bao gồm nhiều bước và các lệnh AT. Tuy nhiên,một
bản copy của tin nhắn SMS đã gửi được lưu ở vùng lưu trữ tin nhắn. Điều này không
thể đạt được với lệnh AT +CMGS.
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 147 -
Trong một vài tình huống, có nhiều thuận lợi để gửi các tin nhắn SMS bằng
lệnh AT +CMSS hơn là dùng lệnh AT +CMGS. Ví dụ, nếu như bạn phải gửi các tin
nhắn tương tự nhau đến nhiều người nhận thì sử dụng lệnh At +CMSS sẽ thuận lợi
hơn:
AT+CMSS=3,"91234567"
AT+CMSS=3,"97777777"
AT+CMSS=3,"96666666"
7. Đọc các tin nhắn SMS từ một khu vực lưu trữ tin nhắn sử dụng các lệnh AT
(AT+CMGR, AT+CMGL)
Để kích hoạt sử dụng một máy tính để bàn (PC) cho việc đọc các tin nhắn SMS
từ một khu vực lưu trữ tin nhắn, thì modem GSM/GPRS hay điện thoại di động phải
được hỗ trợ cả hai lệnh AT+CMGR (tên lệnh ở dạng text: Read Messages) và lệnh
AT+CMGL (tên lệnh ở dạng text: List Messages). Lệnh AT+CMGR được sử dụng để
đọc một tin nhắn SMS tại một vị trí nào đó trong khu vực lưu trữ tin nhắn. Trạng thái
có thể là : "received unread", "received read", "stored unsent", "stored sent",…Còn
lệnh AT+CMGL cũng cho phép bạn lấy tất cả các tin nhắn SMS được lưu trữ trong
khu vực lưu trữ tin nhắn.
Những trình bày sau là một ví dụ nhằm giúp hiểu rõ được sự khác nhau giữa
+CMGR và +CMGL. Giả sử rằng bạn muốn sử dụng máy tính đọc một text tin nhắn từ
một khu vực lưu trữ tin nhắn và bạn cũng biết chỉ số của text tin nhắn SMS là ở chỗ
nào. Trong trường hợp này thì bạn nên sử dụng lệnh AT+CMGR. Và đây là dòng lệnh
được đánh vào(giả sử rằng text tin nhắn được lưu trữ tại vị trí có chỉ số là 3):
AT+CMGR=3
Modem GSM/GPRS hay điện thoại sẽ phản hồi lại như sau:
+CMGR: "REC READ","+85291234567",,"07/02/18,00:12:05+32".
Hello, welcome to our SMS tutorial.
OK
Giả sử bay giờ bạn lại ở trong một tình huống khác. Bạn muốn sử dụng máy
tính bàn (PC) để lấy về tất cả các tin nhắn SMS mà bạn chưa đọc trước đó. Trong
trường hợp này thì bạn sử dụng lệnh AT+CMGL. Trong chế độ SMS text thì dòng
lệnh được sử dụng là:
AT+CMGL="REC UNREAD"
Modem GSM/GPRS hay điện thoại sẽ phản hồi lại như sau:
+CMGL: 1,"REC UNREAD","+85291234567",,"07/02/18,00:05:10+32"
Reading text messages is easy.
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 148 -
+CMGL: 2,"REC UNREAD","+85291234567",,"07/02/18,00:07:22+32"
A simple demo of SMS text messaging.
OK
Lệnh AT+CMGL cũng có thể được dùng để đọc tất cả các tin nhắn mà được
lưu trữ trong khu vực lưu trữ tin nhắn. Để làm được như vậy trong chế độ SMS text thì
dòng lệnh sẽ là:
AT+CMGL="ALL"
Ở thời điểm này thì phản hồi của Modem GSM/GPRS hay điện thoại di động sẽ
như sau:
+CMGL: 1,"REC READ","+85291234567",,"07/02/18,00:05:10+32"
Reading text messages is easy.
+CMGL: 2,"REC READ","+85291234567",,"07/02/18,00:07:22+32"
A simple demo of SMS text messaging.
+CMGL: 3,"REC READ","+85291234567",,"07/02/18,00:12:05+32"
Hello, welcome to our SMS tutorial.
OK
Với những gì bạn thấy ở những dòng trên, lệnh AT+CMGR chỉ có thể được sử
dụng để đọc 1 tin nhắn SMS tại một thời điểm trong khi đó lệnh AT+CMGL có thể
được sử dụng để đọc nhiều tin nhắn tại cùng một thời điểm.
Một sự khác nhau khác nữa giữa hai lệnh AT+CMGR và AT+CMGL là lệnh
AT+CMGR có thể được sử dụng để lấy nhiều chi tiết tin nhắn hơn là lệnh AT+CMGL
khi cac1 modem GSM/.GPRS hay các điện thoại di động đang hoạt động ở chế độ
SMS text.Sau đây là cac1chi tiết tin nhắn có thể lấy được bằng cách sử dụng lệnh
AT+CMGR ở chế độ SMS text.
+ Trạng thái của tin nhắn SMS ("received unread", "received read", "stored
unsent", "stored sent",…)
+ Số điện thoại của người gửi/người nhận được lưu trữ trong phần đầu của tin
nhắn SMS và kiểu của số điện thoại.
+ Text liên quan tới số điện thoại của người gửi/người nhận nằm trong danh bạ
điện thoại.
+ Thời gian và ngày tin nhắn SMS đến SMSC (chỉ cho phép với các tin nhắn
SMS đến)
+ Tám bit đầu tiên (1 octet = 8 bits) của TPDU (Transport Protocol Data Unit)
của tin nhắn SMS.
+ Giá trị nhận dạng protocol nằm trongTPCU của tin nhắn SMS.
Đồ án tốt nghiệp Phụ Lục
GVHD_Trần Thu Hà ‐ 149 -
+ Giá trị lược đồ mã hóa dữ liệu nằm trong TPCU của tin nhắn SMS.
+ Số SMSC được lư trữ cùng với tin nhắn SMS và kiểu số SMSC
+ Chu kỳ hợp lí của tin nhắn SMS (chỉ cho phép tin nhắn SMS đi)
+ Thân của tin nhắn SMS và chiều dài của nó.
Sau đây là các chi tiết tin nhắn có thể lấy được bằng cách sử dụng lệnh
AT+CMGL ở chế độ SMS text:
+ Số index nhằm định rõ vị trí của tin nhắn SMS ở trong vùng lưu trữ tin nhắn.
+ Trạng thái của tin nhắn SMS ("received unread", "received read", "stored
unsent", "stored sent"…)
+ Số điện thoại của người gửi/người nhận được lưu trữ trong phần đầu của tin
nhắn SMS và kiểu của số điện thoại.
+ Text liên quan tới số điện thoại của người gửi/người nhận nằm trong danh bạ
điện thoại.
+ Thời gian và ngày tin nhắn SMS đến SMSC (chỉ cho phép với các tin nhắn
SMS đến)
+ Thân của tin nhắn SMS và chiều dài của nó.
Nếu bạn so sánh hai list trên, bạn sẽ nhận ra rằng các chi tiết tin nhắn sau chỉ có
thể được lấy bằng các lệnh AT+CMGR chứ không phải lệnh AT+CMGL:
+ Tám bit đầu tiên của TPCU của tin nhắn SMS.
+ Giá trị nhận dạng protocol trong TPCU của tin nhắn SMS.
+ Gía trị lược đồ mã hóa dữ liệu trong TPCU của tin nhắn SMS.
+ Số SMSC được lưu trữ cùng với tin nhắn SMS và kiểu của số SMSC.
+ Chu kỳ giá trị của tin nhắn SMS (chỉ cho phép với các tin nhắn SMS đi).
Chú ý: Nếu modem GSM/GPRS hay điện thoại di động đang hoạt động ở chế
độ SMS PDU thì các chi tiết tin nhắn có thể được lấy bằng hai lệnh AT+CMGR và
lệnh AT+CMGL là như nhau.
Đồ án tốt nghiệp Hướng Dẫn Sử Dụng Phần Mềm
GVHD_Trần Thu Hà ‐ 150 -
HƯỚNG DẪN SỬ DỤNG PHẦN MỀM
««««oΟo»»»»
Phần mềm được viết dựa trên ngôn ngữ lập trình Visual Basic. Net của hãng
Microsoft. Khi tạo thành file để thực thi thì đòi hỏi cần có một nền máy ảo để chạy
chương trình. Đó gọi là Net Framework 2.0 hoặc cao hơn. Phần mềm được chạy theo
một quy trình như sau :
Khi khởi động phần mềm thì cần phải đăng nhập mới có thể mở chương trình.
Sau khi đang nhập thành công thì ta cần phải thiết lập các thuộc tính để có thể
điều khiển thiết bị. Việc thiết lập như sau:
Chọn tên cổng cần kết nối. Chương trình sẽ tự phát hiện ra tên cổng đang sử
dụng. Nếu chưa phát hiện hay việc kết nối thiết bị sau khi đã khởi động phần mềm thì
bấm nút Refresh
Chọn tốc độ Baud cho Modem điện thoại
Chọn thuộc tính cho thiết bị bằng cách Click vào nút Properties. Trong bảng
thuộc tính này có các thành phần như Baudrate, Databit, Stopbit, Parity, Handshaking.
Baudrate : chọn tốc độ Baud cho việc đồng bộ 2 thiết bị, mặc định là 2400
Stopbit : chọn số lượng stopbit cho việc đồng bộ với thiết bị, mặc định là One
Parity : chọn phương thức báo lỗi chẵn, lẻ hoặc không chọn, mặc định là None
Handshaking : chọn phương thức bắt tay, để kiểm tra xem thiết bị có muốn
truyền nhận dữ liệu hay không? Mặc định là None
Đồ án tốt nghiệp Hướng Dẫn Sử Dụng Phần Mềm
GVHD_Trần Thu Hà ‐ 151 -
Sau khi thực hiện các thao tác trên, lúc này ta mới có thể cho mở cổng. Nếu
chưa thực hiện những bước trên thì sẽ xuất hiện thông báo “ Bạn chưa chọn các thuộc
tính. Làm ơn hãy chọn thuộc tính trước khi mở cổng”
Sau khi mở cổng thì ta có thể điều khiển được thiết bị thông qua nút bấm và tin
nhắn SMS, xem nhiệt độ, các sự kiện xảy ra cứ mỗi 5s, và biểu đồ hiển thị nhiệt độ đo
được. Muốn điều khiển bằng tin nhắn SMS thì ta cần nắm các lệnh điều khiển :
light1 on/off : đèn 1 bật/tắt
light2 on/off : đèn 2 bật/tắt
light12 on/off : đèn 1 và 2 bật/tắt
Nút Security có nhiệm vụ thay đổi mật khẩu để khởi động chương trình và số
điện thoại cho phép điều khiển các thiết bị khi đã bật phân mềm
Đồ án tốt nghiệp Hướng Dẫn Sử Dụng Phần Mềm
GVHD_Trần Thu Hà ‐ 152 -
Khi muốn cài đặt lịch làm việc Schedule Tasks cho hệ thống. Nhấn nút
Schedule . Khi nhấn xong thì thực hiện các thao tác trong Form
Chọn ngày giờ và nhập sự kiện sau đó nhấn nút Add. Nhấn nút Confirm để
chấp nhận. Khi sau đó nhấn Exit để thoát ra, nếu muốn xóa thì bấm Clear
Muốn nhắn tin đến số điện thoại khác thì soạn tin nhắn tại:
Bấm Send để gửi đi.
Đồ án tốt nghiệp Tài Liệu Tham Khảo
GVHD_Trần Thu Hà ‐ 153 -
TÀI LIỆU THAM KHẢO
1. NGUYỄN HỮU PHƯƠNG - MẠCH SỐ - NHÀ XUẤT BẢN THỐNG KÊ.
2. NGUYỄN ĐÌNH PHÚ - VI XỬ LÍ 2 - TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ
THUẬT.
3. HOÀNG MINH SƠN – MẠNG TRUYỀN THÔNG CÔNG NGHIỆP – NXB
KHOA HỌC VÀ KỸ THUẬT – 2006.
4. DOGAN IBRAHIM – PIC BASIC PROJECTS 30 PROJECTS USING PIC
BASIC AND PIC BASIC PRO.
5. JAN AXELSON – SERIAL PORT COMPLETE SECOND EDITION.
6. NGUYỄN TIẾN AN - ĐỒ ÁN TỐT NGHIỆP “THIẾT KẾ HỆ THỐNG ĐIỀU
KHIỂN NGÔI NHÀ TỰ ĐỘNG” - TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ
THUẬT.
7. TRẦN NGỌC MINH, LÊ ANH TÀI - ĐỒ ÁN TỐT NGHIỆP “ĐIỀU KHIỂN
CÁC THIẾT BỊ ĐIỆN TRONG NHÀ QUA MẠNG INTERNET” - TRƯỜNG
ĐẠI HỌC SỰ PHẠM KỸ THUẬT.
8. MỘT SỐ TRANG WEB:
www.codeproject.com
www.dientuvietnam.com
www.picvietnam.com
www.deverlopershome.com
Các file đính kèm theo tài liệu này:
- do an tot nghiep_trongkien phamvannamat.pdf