ÐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ÐẠI HỌC BÁCH KHOA
KHOA ÐIỆN – ÐIỆN TỬ
BỘ MÔN VIỄN THÔNG
ĐỒ ÁN MÔN HỌC 1
QUẢN LÝ XE SỬ DỤNG MODULE SIM908 VÀ GOOGLE MAP
- Tp. Hồ Chí Minh, Tháng 12-2013
TÓM TẮT ĐỒ ÁN
Đề tài đồ án: “ GIÁM SÁT HÀNH TRÌNH XE BẰNG MODULE SIM908 VÀ
GOOGLE MAP”
Đồ án được nghiên cứu, khảo sát và thực hiện với mục đích áp dụng những kiến thức đã học
trong nhà trường để thiết kế, tạo ra một Hệ thống giám sát hành trình xe hoàn chỉnh. Hệ
thống tích hợp module GSM/GPS SIM908, MCU điều kiển trong tâm và ứng dụng bản đồ
GOOGLE MAP.
Nhóm sinh viên thực hiện
MỤC LỤC
NHIỆM VỤ ĐỒ ÁN MÔN HỌC 1 Error! Bookmark not defined.
LỜI CẢM ƠN Error! Bookmark not defined.
TÓM TẮT ĐỒ ÁN 2
PHẦN I: CƠ SỞ LÝ THUYẾT 7
Chương 1: GIỚI THIỆU MODULE SIM908 7
1.1. Tổng quan về module sim908 7
1.2. Đặc điểm phần cứng và các thông số kĩ thuật: 7
Chương 2: TẬP LỆNH AT 17
2.1. Khái niệm: 17
2.2. Cú pháp một lệnh AT: 17
2.3. Một số lệnh AT sử dụng trong đề tài 18
Chương 3: TÌM HIỀU VI XỬ LÝ MPS430 22
3.1 Giới thiệu 22
3.2 Hệ thống định thời (clock) linh hoạt 22
3.3 Các vùng địa chỉ 23
3.4 Hệ thống reset và khởi động 24
3.5 Hệ thống ngắt 26
3.6 Digital I/O 29
PHẦN II: TÌM HIỂU VỀ GPS/GSM/GOOGLE MAP 32
Chương 4: TÌM HIỂU VỀ GPS 32
4.1 Giới thiệu về hệ thống định vị toàn cầu GPS 32
4.2 Hoạt động của GPS 34
4.3 Độ chính xác của GPS 35
4.4 Các thành phần của GPS 35
4.5 Tín hiệu GPS 36
4.6 Ứng dụng GPS 36
4.7 Máy thu GPS 37
Chương 5: TÌM HIỂU VỀ GSM 40
5.1 Giới thiệu chung về GSM 40
5.2. Cấu trúc của hệ thống thông tin di động GSM 41
5.3. Quá trình xử lý các tín hiệu số và biến đổi vào sóng vô tuyến 43
PHẦN III: XÂY DỰNG HỆ THỐNG 48
Chương 6: GIAO TIẾP SIM908 VỚI PC VÀ HIỂN THỊ TỌA ĐỘ LÊN GOOGLE MAP 48
6.1 Sơ đồ khối của hệ thống: 48
6.2 Xây dựng giao diện người dùng bằng Microsoft Visual Studio 50
Chương 7: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 70
7.1 Kết luận: 70
7.2 Hướng phát triển: 71
PHẦN I: CƠ SỞ LÝ THUYẾT
Chương 1: Giới thiệu về module sim908
Chương 2: Tập lệnh AT
Chương 3: Tìm hiểu vi xử lý MSP430
PHẦN I: CƠ SỞ LÝ THUYẾT
Chương 1: GIỚI THIỆU MODULE SIM908
Chương 1: GIỚI THIỆU MODULE SIM908
NỘI DUNG CHÍNH:
1.1. Tổng quan về module sim908
1.2. Đặc điểm về phần cứng và các thông số kĩ thuật
PHẦN I: CƠ SỞ LÝ THUYẾT
Chương 1: GIỚI THIỆU MODULE SIM908
1.1. Tổng quan về module sim908
SIM908 là module GSM/GPRS 4 băng tần kết hợp với công nghệ GPS; vì vậy nó hoàn toàn
tương thích với băng tần Dual- band (GSM 900/1800) mà các mạng di động hiện tại ở Việt Nam
đang sử dụng. SIM908 hỗ trợ GPRS multi-slot class 10/class 8 và dạng đồ thị mã hóa (coding
schemes ) CS-1, CS-2 , CS-3, CS-4. Giải pháp GPS tích hợp trên module SIM908 cung cấp khả
năng thu thập, tính toán với độ chính xác ở mức chấp nhận được và thời gian kết nối lần đầu
(Time-To-First-Fix) ngắn.
Với kích thước nhỏ gọn, module này có thể sử dụng cho các ứng dụng như Smart phone, PDA,
thiết bị định vị GPS cầm tay hay các thiết bị di động khác.
Hình 1: Module sim908 của hãng SIMCOM
Hình 2: Bảng giới thiệu Coding schemes
1.2. Đặc điểm phần cứng và các thông số kĩ thuật:
1.2.1. Sơ đồ chân sim908:
Sim908 được đóng gói theo kiểu linh kiện dán có 80 chân
Hình 3: Sơ đồ chân module sim908
Bảng 1: Chi tiết các chân module SIM908
1.2.2 Sơ đồ khối SIM908:
Hình 4: Sơ đồ khối SIM908
Module SIM908 gồm các khối sau:
Power supply: nhận điện áp vào trong khoảng 3.2V- 4.8V , ngõ ra là các giá trị điện áp thích hợp
để cung cấp cho các khối khác thông qua bộ quản lí nguồn (Power management unit).
Radio frequency: xử lí tín hiệu cao tần
Base band: xử lí tín hiệu băng gốc, bao gồm tín hiệu analog và digital
GPS Receiver: thu nhận và xử lí tín hiệu GPS.
Analog interface and digital interface: các khối giao diện để người sử dụng tương tác với
module.
1.2.3 Các cổng giao tiếp/báo hiệu module SIM908 thực tế:
Hình 5: Module SIM908 thực tế
Các phần giao tiếp/báo hiệu
SW101: nút tắt mở module
GSM PORT: cổng giao tiếp chính ( lệnh AT, GPRS data port)
GPS PORT: GPS debug port
D200: đèn báo nguồn
D101: đèn led chỉ thị
CN102: cổng giao tiếp USB
J103: anten GSM
J100: anten GPS
Các điện áp kiểm tra:
TEST1: 3.3V
TEST2: 5V
TEST3: 4V
TEST4: 2.8V
Hình 6: Kết nối SIM908 với các thành phần giao tiếp
1.2.4: Thông số kĩ thuật:
Nguồn cung cấp: 3.2 – 4.8V
Dòng tiêu thụ:
a) Chế độ cực đại: 2A
b) Chế độ GPS: 77mA
c) Chế độ sleep: 1mA
Sạc pin: hộ trợ sạc điều khiển cho pin Li-ion
Dải tần hoạt động:
a) Sim 908 có 4 băng tần: GSM 850MHz, EGSM 900MHz, DCS 1800MHz và PCS
1900MHz. Sim 908 có thể dò tìm 4 băng tần tự động hoặc thiết lập bởi lệnh AT
b) Phù hợp với GSM phase 2/2+
Công suất phát:
a) Class 4 (2W) ở băng GSM 850 và EGSM 900
b) Class 1 (1W) ở băng DCS 1800 và PCS 1900
Kết nối GPRS:
a) GPRS multi-slot class 10 (mặc định)
b) GPRS multi-slot class 8 (tùy chọn)
Dữ liệu GPRS:
a) Tốc độ downlink lớn nhất: 85.6kbps
b) Tốc độ uplink lớn nhất: 42.8kbps
c) Mã hóa: coding scheme CS – 1, CS – 2, CS – 3 và CS – 4
d) Tích hợp TCP/IP protocol
e) Hỗ trợ Packet Broadcast control channel
Nhiệt độ hoạt động:
a) Bình thường: -30 ⇨ 80 độ C
b) Hạn chế: -40 ⇨ -30 độ C và 80 ⇨ 85 độ C
c) Lưu trữ: -45 ⇨ 90 độ C
Giao tiếp SIM: hỗ trợ sim card 1.8 đến 3V
CSD: hổ trợ truyền CSD
USSD: hỗ trợ dịch vụ bổ sung dữ liệu phi cấu trúc (unstructured supplementary services data)
SMS:
a) MT, MO, CB, Text and PDU mode
b) Lưu trữ SMS: sim card
External Antenna ( anten bên ngoài): antenna pad
Tính năng audio: speech codec modes
a) Half rate (ETS 06.20)
b) Full rate (ETS 06.10)
c) Enhanced Full Rate (ETS 06.50/ 0.6.60 / 06.80) ( tăng cường tốc độ)
d) Adaptive multi rate (AMR) (tốc độ đa thích nghi)
e) Echo Cancellation ( triệt phản xạ)
f) Noise Suppression ( triệt nhiễu)
SERIAL PORT AND DEBUG PORT:
a) Serial port:
Giao tiếp modem đầy đủ với tình trạng và kiểm soát dòng, không cân bằng,
không đồng bộ
Tốc độ baud: 1200bps đến 115200bps
Có thể dùng các lệnh và dòng dữ liệu AT
hỗ trợ RTS / CTS bắt tay phần cứng và phần mềm bật / tắt điều khiển lưu lượng
khả năng ghép kênh theo GSM 07.10 giao thức mutiplexer
Hỗ trợ tốc độ baud tự động: 1200bps đến 57600bps
b) Debug port:
Null modem interface GPS/DBG_TXD and GPS/DBG_RXD ( giao tiếp modem
rỗng)
Có thể dùng để hiệu chỉnh lỗi và cập nhật firmwave
Phonebook management ( quản lý danh bạ): hỗ trợ cho các loại danh bạ SM, FD, LD, RC,
ON, MC
Sim application toolkit: GSM 11.14 release 99
Real time clock ( thời gian thực): hỗ trợ thời gian thực (RTC)
Kích thước vật lý:Size: 30*30*3.2mm - Weight: 5.2g
1.2.5 Chế độ hoạt động:
Bảng 2: chế độ hoạt động module SIM908
PHẦN I: CƠ SỞ LÝ THUYẾT
Chương 2: TẬP LỆNH AT
Chương 2: TẬP LỆNH AT
Nội dung chính:
1.3. Khái niệm
1.4. Cú pháp một lệnh AT
1.5. Các lệnh AT sử dụng trong đề tài
PHẦN I: CƠ SỞ LÝ THUYẾT
Chương 2: TẬP LỆNH AT
2.1 Khái niệm:
Tập lệnh AT bao gồm các lệnh đượ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”. Module SIM908 được điều khiển bằng
tập lệnh AT.
2.2 Cú pháp một 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 t hanh 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 định sẽ được gán
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: Chế độ lệnh AT
2.3. Một số lệnh AT sử dụng trong đề tài:
Bảng 4. Một số lệnh AT dùng trong đề tài
Chức năng
Cú pháp
Giá trị trả về
Kiểm tra module có
hoạt động hay không
AT
+OK: module sẵn sàng nhận lệnh
+ERROR: có lỗi xảy ra, module chưa
sẵn sàng nhận lệnh
Thiết lập cấu hình mặc
định
ATZ
+OK: thành công
+ERROR: có lỗi
LỆNH AT DÙNG CHO GSM
Thiết lập tốc độ baud
serial port GSM
AT+IPR=<baudrate>
Với <baudrate> là một trong
số các giá trị: 0(auto-
bauding), 1200, 2400, 4800,
9600, 19200, 38400, 57600,
115200
+OK: thành công
+ERROR: có lỗi
(ở đây chọn tốc độ baud GSM là
9600)
Cài định dạng frame
UART GSM
AT+ICF=<format>,<parity>
<format>=1: 8 bit data, 0
parity, 2 stop bit
<format>=2: 8 bit data, 1
parity, 1 stop bit
+OK: thành công
+ERROR: có lỗi
<format>=3: 8 bit data, 0
parity, 1 stop bit
<format>=4: 7 bit data, 0
parity, 2 stop bit
<format>=5: 7 bit data, 1
parity, 1 stop bit
<format>=6: 7 bit data, 0
parity, 1 stop bit
<parity>=0: odd
<parity>=1: even
<parity>=3: space
Chọn format cho SMS
AT+CMGF=<mode>
<mode>=0: PDU mode
<mode>=1: text mode
+OK: thành công
+ERROR: có lỗi
Gửi tin nhắn
AT+CMGS=”PhoneNumber”
Đợi SIM908 trả về ký tự “>”
rồi gửi tiếp nội dung tin nhắn
+”>”
+OK hoặc ERROR
Đọc tin nhắn
AT+CMGR=<index>,<mode>
<index>: số thứ tự tin nhắn
lưu trong bộ nhớ
<mode>=0: sau khi đọc tin
nhắn trạng thái của tin nhắn
sẽ chuyển từ “unread” sang
“read”
<mode>=1: không thay đổi
trạng thái của tin nhắn được
đọc
Tùy vào thiết lập format SMS mà ta
sẽ nhận được những chuỗi trả về khác
nhau.
LỆNH AT DÙNG CHO GPS
Điều khiển nguồn GPS
AT+CGPSPWR=<mode>
<mode>=0: Tắt nguồn GPS
<mode>=1: Bật nguồn GPS
+OK: thành công
+ ERROR: có lỗi
Thiết lập mode cho
GPS
AT+CGPSRST=<mode>
<mode>=0: Thiết lập mode
COLD
<mode>=1: Thiết lập GPS
trong chế độ tự chủ
+OK: thành công
+ERROR: có lỗi
Thiết lập tốc độ baud
GPS
AT+CGPSIPR=<rate>
Với <rate> là baud rate per
second, là một trong số các giá
trị 4800, 9600, 19200, 38400,
57600, 115200, 230400,
460800
+OK: thành công
+ ERROR: có lỗi
Trạng thái GPS
AT+CGPSSTATUS =?
+“Location UnKnown”: GPS
không chạy
+“Location Not Fix”: GPS đã
chạy và không cố định
+“Location 2D Fix”: trạng thái
GPS cố định 2D
+“Location 3D Fix”: trạng thái
GPS cố định 3D
Điều khiển dữ liệu ra
NMEA GPS
AT+CGPSOUT=?
+CGPSOUT: :(0-255)
+ 0 thì: giảm thiểu thông tin ngõ ra
GPS NMEA từ Debug UART
+ Bit1=1, cho phép dữ liệu ngõ ra
NMEA $GPGGA
+ Bit2=1, cho phép dữ liệu ngõ ra
NMEA $GPGLL
+ Bit3=1, cho phép dữ liệu ngõ ra
NMEA $GPGSA
+ Bit4=1, cho phép dữ liệu ngõ ra
NMEA $GPGSV
+ Bit5=1, cho phép dữ liệu ngõ ra
NMEA $GPRMC
+ Bit6=1, cho phép dữ liệu ngõ ra
NMEA $GPVTG
Lấy thông tin vị trí GPS
hiện tại
AT+CGPSINF=32
Các thông tin về: kinh độ, vĩ độ, cao
độ, thời gian, …
PHẦN I: CƠ SỞ LÝ THUYẾT
Chương 3: TÌM HIỂU VI XỬ LÝ MSP430
Chương 3: TÌM HIỂU VI XỬ LÝ MSP430
Nội dung chính:
3.1. Giới thiệu
3.2 Hệ thống định thời (clock) linh hoạt
3.3 Các vùng địa chỉ
3.4 Hệ thống reset và khởi động
3.5 Hệ thống ngắt
3.6 Digital I/O
PHẦN I – CƠ SỞ LÝ THUYẾT
Chương 3: TÌM HIỀU VI XỬ LÝ MPS430
3.1 Giới thiệu
MSP430 chứa 16 bit RISC CPU, các ngoại vi và hệ thống bộ định thời linh hoạt được kết nối với nhau
theo cấu trúc VON-NEUMANN, có các Bus liên kết như: Bus địa chỉ bộ nhớ ( MAB), Bus dữ liệu bộ nhớ
( MDB). Đây là một bộ xử lý hiện đại với các module bộ nhớ tương tự và những kết nối ngoại vi tín hiệu
số, MSP430 đã đưa ra được những giải pháp tốt cho những nhu cầu ứng dụng với tín hiệu hỗn tạp.
MSP430 có một số phiên bản như: MSP430x1xx, MSP430x2xx, MSP430x3xx, MSP430x4xx,
MSP430x5xx. Dưới đây là những đặc điểm tổng quát của họ vi điều khiển MSP430:
+ Cấu trúc sử dụng nguồn thấp giúp kéo dài tuổi thọ của Pin.
- Duy trì 0.1µA dòng nuôi RAM.
- Chỉ 0.8µA real- time clock.
- 250 µA/ MIPS.
+ Bộ tương tự hiệu suất cao cho các phép đo chính xác
- 12 bit hoặc 10 bit ADC-200 kskp, cảm biến nhiệt độ, Vref .
- 12 bit DAC.
- Bộ giám sát điện áp nguồn.
+ 16 bit RISC CPU cho phép được nhiều ứng dụng, thể hiện một phần ở kích thước Code lập trình.
- Thanh ghi lớn nên loại trừ được trường hợp tắt nghẽn tập tin khi đang làm việc.
- Thiết kế nhỏ gọn làm giảm lượng tiêu thụ điện và giảm giá thành.
- Tối ưu hóa cho những chương trình ngôn ngữ bậc cao như C, C++
- Có 7 chế độ định địa chỉ.
- Khả năng ngắt theo véc tơ lớn.
+ Trong lập trình cho bộ nhớ Flash cho phép thay đổi Code một cách linh hoạt, phạm vi rộng, bộ nhớ
Flash còn có thể lưu lại như nhật ký của dữ liệu.
3.2 Hệ thống định thời (clock) linh hoạt
Hệ thống Clock được thiết kế một cách đặc biệt cho những ứng dụng sử dụng nguồn cung cấp là Pin. Một
bộ tạo xung nhịp phụ tần số thấp ( ACLK) được cung cấp trực tiếp từ một bộ dao động thạch anh 32 KHz.
ACLK được sử dụng như là một Real-time Clock nền để kích hoạt các tính năng. Một bộ dao động kĩ
thuật số tốc độ cao ( DCO) có thể làm nguồn xung đồng hồ chính ( MCLK) sử dụng cho CPU và những
kết nối ngoại vi tốc độ cao. Bởi thiết kế này, DCO có thể hoạt động ổn định 1MHz trong thời gian ít hơn
2 µS. MSP430 được thiết kế dựa trên những giải pháp có hiệu quả sử dụng một RISC CPU16 bít hiệu
suất cao.
+ Bộ định thời phụ tần số thấp: Hoạt động ở chế độ sẵn sang sử dụng nguồn cực thấp.
+ Bộ định thời chính ( Master Clock) tốc độ cao: Hoạt động xử lý tín hiệu hiệu suất cao.
Hình 7: Sơ đồ cấu trúc của MSP430
3.3 Các vùng địa chỉ
MSP430 được thiết kế theo cấu trúc Von-Neumann có một vùng địa chỉ được chia thành nhiều vùng như
là thanh ghi hàm đặc biệt ( SFRs), những ngoại vi, RAM, bộ nhớ Flash/ROM
3.3.1 Flash/ROM
Địa chỉ bắt đầu của Flash/ROM phụ thuộc vào độ lớn của Flash/ROM và còn tùy thuộc vào từng họ vi
điều khiển. Địa chỉ kết thúc của Flash/ROM là 0x1FFFFh. Flash/ROM có thể sử dụng cho cả mã chương
trình và dữ liệu. Những bảng Byte hoặc Word có thể được tồn trử và sử dụng ngay trong Flash/ROM mà
không cần copy vào RAM trước khi sử dụng chúng. Những bảng véc tơ được ánh xạ đến 16 Word phía
trên của vùng địa chỉ Flash/ROM với ưu tiên ngắt cao nhất ở vùng địa chỉ cao nhất của Flash/ROM.
3.3.2 RAM
RAM bắt đầu ở địa chỉ 0200h và giới hạn cuối cùng tùy thuộc vào kích thước của RAM. RAM có thể sử
dụng cho cả mã chương trình và dữ liệu.
Hình 8: Sơ đồ bộ nhớ của MSP430
3.3.3 Các module ngoại vi
Trong vùng không gian địa chỉ của MSP430 có 2 vùng địa chỉ dành cho những Mô đun ngoại vi. Vùng
địa chỉ từ 0100 đến 01FFh sử dụng dành riêng cho những mô đun ngoại vi 16 Bít. Vùng địa chỉ từ 010
đến 0FFh sử dụng dành riêng cho những mô đun ngoại vi 8 bit.
3.3.4 Thanh ghi hàm đặc biệt
SFRs liên quan nhiều đến sự cho phép những tính năng của một số mô đun ngoại vi và dùng để truyền
những tín hiệu ngắt từ ngoại vi. SFRs nằm ở 16 Byte thấp của vùng địa chỉ và được tổ chức bằng Byte.
SFRs chỉ có thể được truy cập bởi chỉ thị Byte.
3.3.5 Tổ chức bộ nhớ
Byte thì dùng để định vị trí của địa chỉ lẽ hoặc chẳn, còn Word thì chỉ sử dụng cho địa chỉ chẵn. Vì vậy
khi sử dụng những chỉ lệnh Từ thì chỉ có địa chỉ chẵn thì được sử dụng. Byte thấp của một Word luôn là
số chẵn, Byte cao thì ở một số lẽ kế tiếp.
3.4 Hệ thống reset và khởi động
Hệ thống mạch reset bao gồm 2 hệ thống là POR ( Power On Reset) và PUC( Power Up Clear)
Hình 9: bit, Byte, Word trong cấu trúc nhớ của MSP430
+ POR chỉ được sinh ra bởi 3 sự kiện sau:
- Cấp nguồn cho thiết bị.
- Tín hiệu ở chân RST /NMI ở mức thấp khi thiết lập cấu hình cho hệ thống Reset.
- SVS ở mức thấp khi PORON = 1.
+ PUC thì luôn sinh ra khi POR được sinh ra, nhưng không xảy ra ngược lại. Những sự kiện sau đây sẽ
khởi động PUC:
- Khi POR được sinh ra
- Watchdog timer hết hiệu lực khi trong chế độ watchdog.
- Khi chốt an toàn của Watchdog timer, Flash memory bị vi phạm
3.4.1 Power On Reset
POR được sinh ra bởi các điều kiện liên quan đến phần cứng:
+ Thiết bị được cấp nguồn. POR được sinh ra nếu điện áp cung cấp giảm xuống dưới giá trị mà tại đó
thiết bị không còn làm việc chính xác nữa, còn gọi là sự sụt áp.
+ Khi chân RST /NMI ở mức thấp nếu nó được thiết lập chức năng Reset hơn là ngắt không khả ngụy.
Mặc định thì chức năng của chân này là Reset.
+ Ở những phương án lớn hơn có bộ giám sát điện áp cung cấp SVS. Ở đây ta có thể thiết lập cấu hình,
không giống như bộ dò sụt áp. Nó đặt cờ SVSFG nếu điện áp sụt dưới mức được lập trình và có thể Reset
một cách tùy chọn.
Hình 10: Sơ đồ hệ thống Reset của MSP430