Post on 05-Dec-2014
i
Bộ Giáo dục và Đào tạo
Trường Đại học Sư Phạm Kỹ Thuật Tp. HCM
Khoa Cơ khí Chế tạo máy
Bộ môn Cơ Điện Tử
---o0o---
Cộng Hoà Xã Hội Chủ Nghĩa Việt Nam
Độc lập – Tự do – Hạnh phúc
---o0o---
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên : Chu Văn Hiền MSSV : 06111029
Hồ Trọng Hiếu MSSV: 06111034
Phạm Đình Thủy MSSV: 06111100
Lớp 061111B Ngành : Cơ Điện Tử
1.1. ĐẦU ĐỀ LUẬN VĂN
ỨNG DỤNG CÔNG NGHỆ GPS/GPRS GIÁM SÁT HỆ THỐNG XE BUÝT
1.2. NHIỆM VỤ.
- Thiết kế, thi công mạch phần cứng định vị GPS và truyền dữ liệu
- Xây dựng phần mềm server quản lý, giám sát và điều hành xe buýt
1. Ngày giao nhiệm vụ luận văn: ............................................................
2. Ngày hoàn thành nhiệm vụ:................................................................
3. Họ và tên giáo viên hướng dẫn: TS. Nguyễn Trường Thịnh
4. Họ và tên giáo viên phản biện: ThS. Nguyễn Thành Chiến
Nội dung và yêu cầu LVTN đã thông qua Bộ môn.
Ngày .... tháng ...... năm .........
CHỦ NHIỆM BỘ MÔN GIÁO VIÊN HƯỚNG DẪN
PHẦN DÀNH CHO KHOA, BỘ MÔN
Người duyệt (chấm sơ bộ): ......................
Đơn vị: .....................................................
Ngày bảo vệ: ............................................
Điểm tổng kết: .........................................
Nơi lưu trữ dự án: ....................................
ii
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
....
Ngày........tháng.......năm........
Giáo viên hướng dẫn
iii
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
Ngày .........tháng..........năm........
Giáo viên phản biện
iv
LỜI CẢM ƠN
Qua một thời gian nghiên cứu và thực hiện, đến nay đồ án tốt nghiệp với đề tài:
“Ứng dụng công nghệ GPS/GPRS giám sát hệ thống xe buýt” do thầy Nguyễn
Trường Thịnh hướng dẫn đã được hoàn thiện. Trong suốt thời gian nghiên cứu và thi
công đề tài, chúng em đã gặp không ít vướng mắc nhất định và đã nhận được nhiều sự
giúp đỡ nhiệt thành và quý báu.
Trước tiên, chúng em gửi lời cảm ơn sâu sắc tới thầy Nguyễn Trường Thịnh đã
tin tưởng giao đồ án, chỉ đạo và hướng dẫn tận tình trong suốt quá trình thực hiện đề
tài. Chúng em cũng xin được gửi lời cảm ơn chân thành tới các thầy cô giáo trong
khoa Cơ Khí Chế Tạo Máy, các bạn trên các diễn đàn điện tử, cùng toàn thể các bạn
sinh viên lớp Cơ Điện Tử 061111 đã động viên, góp ý, tạo điều kiện thuận lợi nhất
giúp cho chúng em được hoàn thành đề tài đúng tiến độ được giao.
Do năng lực và thời gian còn hạn chế nên việc tìm thêm nhiều tài liệu làm giàu
cho đồ án còn thiếu sót. Chúng em rất mong nhận được nhiều hơn nữa ý kiến đóng góp
của các thầy cô giáo, sự chia sẻ tài liệu của các bạn sinh viên để chúng em có thể hoàn
thiện hơn kiến thức của mình.
Chúng em xin chân thành cảm ơn!
v
TÓM TẮT ĐỒ ÁN
Nội dung đồ án nghiên cứu về hệ thống quản lý hệ thống xe buýt dựa trên nền
công nghệ GPS kết hợp với công nghệ GPRS, hệ thống có nhiệm vụ theo dõi, giám sát
và điều hành hệ thống xe buýt trên địa bàn hoạt động.
Trên mỗi xe buýt đều được gắn một thiết bị có nhiệm vụ thu tín hiệu định vị
GPS từ vệ tinh, sau đó gửi về Server trung tâm thông qua mạng GPRS với giao thức
truyền TCP/IP, thiết bị này được gọi là thiết bị định vị GPS hay gọi tắt là thiết bị định
vị.
Ở Server trung tâm được kết nối mạng Internet và sử dụng phần mềm Java lập
trình mạng Socket để kết nối với thiết bị định vị, thông qua giao thức TCP/IP, nhằm
mục đích truyền nhận dữ liệu giữa 2 bên.
Tiếp theo đó Server trung tâm sẽ xử lý dữ liệu GPS nhận được từ thiết bị định
vị, sau đó hiển thị thông số tọa độ vị trí lên bản đồ số của phần mềm trung tâm hoặc
Google Map và gửi các lệnh điều khiển cũng như thông báo tới xe buýt và các trạm
dừng
vi
ABSTRACT
vii
MỤC LỤC
LỜI CẢM ƠN .............................................................................................................. iv
TÓM TẮT ĐỒ ÁN ......................................................................................................... v
ABSTRACT ................................................................................................................. vi
DANH MỤC HÌNH VẼ .............................................................................................. xii
DANH MỤC BẢNG BIỂU ......................................................................................... xv
DANH MỤC CÁC TỪ VIẾT TẮT .......................................................................... xvi
CHƯƠNG 1: TỔNG QUAN ......................................................................................... 1
1.1 Dẫn nhập .................................................................................................................. 1
1.2. Mục tiêu đề tài ....................................................................................................... 2
1.3. Giới hạn đề tài ....................................................................................................... 2
1.4. Một số mô hình, ứng dụng trong việc quản lý và điều hành các phương tiện. ..... 3
1.4.1. Hệ thống thông tin địa lý GIS ........................................................................... 3
1.4.2. Quản lý hệ thống xe buýt thông qua bộ đàm. ................................................... 3
1.5. Lựa chọn phương án thực hiện. ............................................................................. 3
1.6. Thiết kế hệ thống .................................................................................................... 4
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT ............................................................................. 6
2.1. Tổng quan về GPS. ................................................................................................. 6
2.1.1. Lịch sử hình thành và phát triển của hệ thống GPS. ........................................ 6
2.1.2 . Các thành phần của GPS ................................................................................. 8
2.1.2.1. Phần không gian ........................................................................................ 8
2.1.2.2. Phần điều khiển ......................................................................................... 9
2.1.2.3. Phần người sử dụng ................................................................................ 10
2.1.3 Hoạt động của hệ thống .................................................................................. 10
2.1.4. Bộ thu GPS. .................................................................................................... 11
2.1.5. Phương trình xác định tọa độ. ....................................................................... 13
viii
2.1.6. Hiệu chỉnh đồng hồ của bộ thu. ..................................................................... 14
2.1.8. Nguồn lỗi của tín hiệu GPS ............................................................................ 14
2.1.9. Chuẩn NMEA0183 .......................................................................................... 15
2.1.9.1. Sơ lược về chuẩn NMEA và chuẩn NMEA0183.................................... 15
2.1.9.2. Cấu trúc chuỗi NMEA ............................................................................ 16
2.2. Hệ thống thông tin di động toàn cầu GSM .......................................................... 18
2.3 Dịch vụ số liệu cải tiến GPRS – General Packet Radio Service ......................... 18
2.3.1. Sơ lược............................................................................................................. 18
2.3.2. Kiến trúc hệ thống GPRS chung. ................................................................... 19
2.3.3. Địa chỉ IP ........................................................................................................ 20
2.3.4 Các lớp thiết bị GPRS. .................................................................................... 22
2.3.5 Thông số chất lượng dịch vụ (QoS) GPRS ....................................................... 22
2.3.6 Các dịch vụ hỗ trợ ............................................................................................ 23
2.4. GIỚI THIỆU SIM 548 ........................................................................................ 23
2.4.1. Giới thiệu chung .............................................................................................. 23
2.4.2. Đặc điểm của module SIM548C ..................................................................... 24
2.4.3. Sơ đồ chức năng .............................................................................................. 27
2.5. Giới thiệu về vi điều khiển ATMEGA128 ........................................................... 30
2.5.1. Tổng quan về vi điều khiển ATMega128 ......................................................... 30
2.5.2.Giao tiếp USART .............................................................................................. 34
2.5.3. Khối USART trong Atmega128 ...................................................................... 35
2.5.4. Giao tiếp I2C ................................................................................................... 40
2.5.4.1. Khái quát TWI và I2C ............................................................................ 40
2.5.4.2. TWI trên AVR ........................................................................................ 41
2.5.5. Giao tiếp SPI ................................................................................................... 46
2.6. Giới thiệu IC thu phát âm thanh ISD2560 ........................................................... 48
ix
2.6.1. Sơ đồ chân ISD2560 ........................................................................................ 49
2.6.2. Sơ đồ khối bên trong của ISD2560 ................................................................. 49
2.6.3. Một số thông số cơ bản ................................................................................... 50
2.6.4. Mô tả chức năng các chân .............................................................................. 50
2.6.5. Mô tả chức năng .............................................................................................. 54
2.6.5.1. Mô tả chi tiết ............................................................................................ 54
2.6.5.2. Các MODE vận hành ............................................................................... 55
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG PHẦN CỨNG ...................................... 60
3.1. Sơ đồ khối mạch phần cứng. ................................................................................ 61
3.2. Thiết kế phần cứng cho khối modul sim 548C .................................................... 61
3.2.1. Thiết kế phần cứng cho phần GSM/GPRS ...................................................... 61
3.2.2. Thiết kế phần cứng cho phần GPS .................................................................. 66
3.3. Thiết kế phần cứng cho khối vi điền khiển ATMEGA128 .................................. 69
3.4. Thiết kế phần cứng cho khối vi điền khiển ATMEGA32 .................................... 71
3.5. Khối nguồn cung cấp ............................................................................................ 72
3.5.1. Nguồn cung cấp cho phần GSM/GPRS .......................................................... 73
3.5.2. Nguồn cung cấp cho phần GPS và khối ATMega128 ..................................... 75
3.6. Khối hiển thị ........................................................................................................ 75
3.7. Khối tiếng nói ...................................................................................................... 76
CHƯƠNG 4: LẬP TRÌNH ĐIỀU KHIỂN ................................................................ 77
4.1 Tập lệnh AT ........................................................................................................... 77
4.2 Tập lệnh AT sử dụng điều khiển module GSM và GPS ...................................... 79
4.2.1 Cấu hình cho phần cứng: module simcom548 truy cập GPRS ........................ 79
4.2.2 Truyền nhận thông báo về tình trạng GPRS .................................................. 83
4.2.3 Thiết lập kết nối ................................................................................................ 84
4.2.4 Truyền nhận gói ............................................................................................... 85
x
4.2.5 Hủy kết nối ....................................................................................................... 86
4.3. Lập trình cho vi điều khiển Atmega 128 .............................................................. 87
CHƯƠNG 5: XÂY DỰNG PHẦN MỀM SERVER ................................................. 91
5.1. Yêu cầu và mục đích của hệ thống phần mềm ..................................................... 91
5.2.Cấu trúc và sơ đồ giải thuật ................................................................................... 92
5.2.1. Cấu trúc ........................................................................................................... 92
5.2.2. Sơ đồ giải thuật ............................................................................................... 93
5.3. Xây dựng phần mềm server quản lý phương tiện, ứng dụng giao thức TCP/IP .. 94
5.3.1 Ứng dụng giao thức TCP/IP trong việc liên kết các user qua mạng internet. . 94
5.3.1.1. Sơ lược về TCP server. ........................................................................... 94
5.3.1.2. Đơn vị điều khiển socket ......................................................................... 94
5.3.1.3. Quy trình tạo một server trên máy tính sử dụng socket ........................... 94
5.3.2 Giải pháp ứng dụng của module Sim548 trong việc kết nối server- client ...... 95
5.3.2.1. Đối với server. ......................................................................................... 95
5.3.2.2. Module Sim548 ........................................................................................ 95
5.3.3 Khả năng và mức độ đáp ứng của Server ........................................................ 96
5.3.4 Vấn đề bảo mật của hệ thống ........................................................................... 96
5.3.5 Giải pháp GPRS .............................................................................................. 97
5.4. Xây dựng phần mềm Server dùng Java ............................................................... 98
5.4.1 Java và lịch sử phát triển ................................................................................. 98
5.4.2 Các khối chức năng thực hiện yêu cầu đặt ra .................................................. 99
5.4.3. Các công việc thực hiện để xây dựng phần mềm Server ............................... 99
5.4.3.1. Xây dựng bản đồ offline ................................................................... 100
5.4.3.2. Xây dựng thuật toán tính khoảng cách ............................................. 101
CHƯƠNG 6: KẾT QUẢ THỰC NGHIỆM ........................................................... 102
6.1. Thực nghiệm đánh giá sai số của hệ thống ........................................................ 102
xi
6.2. Thực nghiệm đánh giá tính ổn định của hệ thống .............................................. 107
CHƯƠNG 7: CÁC KẾT QUẢ ĐẠT ĐƯỢC, KẾT LUẬN VÀ HƯỚNG PHÁT
TRIỂN ..................................................................................................................... 108
7.1. Các kết quả đạt được .......................................................................................... 108
7.1.1. Thiết kế chế tạo thành công mạch phần cứng, hiển thị các thông số. .......... 108
7.1.2. Xây dựng phần mềm server có chức năng giám sát và quản lý ................... 109
7.1.3. Bản đồ offline ................................................................................................ 110
7.1.4. Ý nghĩa thực tiễn ........................................................................................... 110
7.2. Kết luận .............................................................................................................. 111
7.2.1 Kết luận .......................................................................................................... 111
7.2.2. Các vấn đề còn chưa được giải quyết ........................................................... 111
7.2.3. Đánh giá ........................................................................................................ 111
7.3. Hướng phát triển của đề tài ................................................................................ 112
TÀI LIỆU THAM KHẢO ......................................................................................... 113
xii
DANH MỤC HÌNH VẼ
Hình 1.1 Sơ đồ thiết kế hệ thống ................................................................................. 4
Hình 2.1 Sơ đồ liên quan giữa ba phần của hệ thống định vị toàn cầu ................... 8
Hình 2.2 Chuyển động vệ tinh nhân tạo xung quanh trái đất .................................. 9
Hình 2.3 Phần điều khiển của GPS ........................................................................... 10
Hình 2.4 Tính toán vị trí của bộ thu GPS trên bề mặt trái đất .............................. 12
Hình 2.5 Hệ trục tọa độ máy thu - vệ tinh ................................................................ 13
Hình 2.6 Phương trình xác định tọa độ của máy thu GPS ..................................... 13
Hình 2.13 Kiến trúc chung của hệ thống GPRS ...................................................... 19
Hình 2.14 Cấp phát địa chỉ IP tĩnh trong GPRS ..................................................... 21
Hình 2.15 Cấp phát địa chỉ IP động trong GPRS .................................................... 21
Hình 2.16 Sơ đồ chức năng của module SIM548C ................................................... 28
Hình 2.17 Sơ đồ chân vi điều khiển ATMega128 ..................................................... 32
Hình 2.18 Sơ đồ cấu trúc vi điều khiển ATMega128 ............................................... 33
Hình 2.19 Sơ đồ truyền dữ liệu nối tiếp ..................................................................... 35
Hình 2.20 Thanh ghi dữ liệu UDR0 ........................................................................... 36
Hình 2.21 Thanh ghi điều khiển hoạt động UCSRA0 .............................................. 36
Hình 2.22 Thanh ghi điều khiển hoạt động USART0 .............................................. 37
Hình 2.23 Thanh ghi UCSRC ..................................................................................... 38
Hình 2.24 Cấu trúc hai thanh ghi UBRRL và UBRRH ........................................... 39
Hình 2.25 Mạng TWI(I2C) và 2 điện trở kéo lên ..................................................... 41
Hình 2.26 Biểu đồ hoạt động tạo ra Start, Stop và Repeat Start ............................ 41
Hình 2.27 Các bit trong thanh ghi TWBR ................................................................ 42
Hình 2.28 Các bit trong thanh ghi TWCR ................................................................ 42
Hình 2.29 Các bit trong thanh ghi TWSR ................................................................. 42
Hình 2.30 Các bit trong thanh ghi TWAR ................................................................ 42
xiii
Hình 2.31 Master truyền dữ liệu ................................................................................ 44
Hình 2.32 Slave nhận dữ liệu ...................................................................................... 46
Hình 2.33 Sơ đồ khối truyền nhận SPI ...................................................................... 47
Hình 2.34 Sơ đồ kết nối SPI ........................................................................................ 48
Hình 3.1 Sơ đồ khối mạch phần cứng. ...................................................................... 61
Hình 3.2 Bật chế độ hoạt động cho phần GSM/GPRS sử dụng nút bấm ............... 62
Hình 3.3 Thời gian bật chế độ hoạt động của phần GSM/GPRS ............................ 62
Hình 3.4 Thời gian tắt chế độ hoạt động của phần GSM/GPRS............................. 63
Hình 3.5 Đèn LED chỉ thị cho NETLIGHT và chân STATUS ............................... 64
Hình 3.6 Sơ đồ chuyển mức điện áp giữa vi điều khiển ATMega128 với phần
GSM/GPRS .................................................................................................................. 65
Hình 3.7 Kích hoạt chế độ hoạt động cùa phần GPS ............................................... 67
Hình 3.8 Sơ đồ nguyên lí của khối module SIM548C ............................................. 69
Hình 3.9 Sơ đồ nguyên lí của vi điều khiển ATMega128 ......................................... 70
Hình 3.10 Sơ đồ mắc thạch anh với vi điều khiển ATMega128 .............................. 70
Hình 3.11 Sơ đồ đấu nối với chân Reset của vi điều khiển ATMega128 ................ 71
Hình 3.12 Sơ đồ nguyên lí của vi điều khiển ATMega32 ......................................... 72
Hình 3.13 Sơ đồ nguyên lí giao tiếp cổng COM ........................................................ 72
Hình 3.14 Sự sụt áp đã làm cho dòng tiêu thụ phải tăng lên 2A ............................. 73
Hình 3.15 Sơ đồ chân kết nối Pin Li-Ion cung cấp nguồn cho GSM/GPRS .......... 74
Hình 3.16 Nguồn cấp cho chân VRTC trong phần GSM/GPRS của module. ....... 74
Hình 3.17 Khối nguồn cung cấp cho phần GPS và ATMega128 ............................ 75
Hình 3.18 Khối hiển thị LCD ...................................................................................... 75
Hình 3.19 Nguyên lý khối phát âm thanh LCD ........................................................ 76
Hình 4.1 Lưu đồ thuật toán của vi điều khiển ......................................................... 88
Hình 4.3 Cấu trúc chuỗi tin GPRMC ........................................................................ 89
xiv
Hình 4.4 Lưu đồ thuật toán chương trình con nhận dữ liệu GPS .......................... 90
Hình 5.1 Sơ đồ hệ thống ............................................................................................. 92
Hình 5.2 Sơ đồ phần mềm theo lớp ........................................................................... 92
Hình 5.3 Sơ đồ giải thuật ............................................................................................ 93
Hình 5.4 Sơ đồ khối Server ......................................................................................... 99
Hình 5.5 Tọa độ của đối tượng trên bản đồ ............................................................ 100
Hình 6.1 Biểu đồ tính ổn định của hệ thống ............................................................ 107
Hình 7.1 Mạch sản phẩm hoạt động ........................................................................ 108
Hình 7.2 Giao diện phần mềm server. ..................................................................... 109
Hình 7.3 Giao diện bản đồ offline. ........................................................................... 110
xv
DANH MỤC BẢNG BIỂU
Bảng 2.3 Diễn giải của bản tin GPRMC .................................................................... 17
Bảng 2.5 Sơ đồ mã hóa và tốc độ dữ liệu lớn nhất trên giao diện vô tuyến ........... 27
Bảng 2.6 Chức năng chân của module SIM548C ..................................................... 29
Bảng 2.7 Chọn kiểm tra Parity. ................................................................................. 38
Bảng 2.8 Độ dài dữ liệu truyền ................................................................................... 39
Bảng 2.9 Tính tốc độ Baud. ......................................................................................... 40
Bảng 2.10 Chức năng các chân kết nối SPI ............................................................... 48
Bảng 3.1 Bảng trạng thái làm việc của NETLIGHT ................................................ 63
Bảng 3.2 Mức logic của chân Serial port .................................................................. 65
Bảng 4.1 Bảng phân loại các câu lệnh AT mở rộng ................................................ 78
Bảng 4.2 Bảng lệnh cấu hình cho Module GPRS truy cập mạng .......................... 79
Bảng 4.3 Tập lệnh tra cứu trạng thái GPRS ............................................................ 83
Bảng 4.4 Tập lệnh thiết lập cấu hình TCP ................................................................ 84
Bảng 4.5 Lệnh gửi dữ liệu qua GPRS ........................................................................ 85
Bảng 4.6 Tập lệnh hủy kết nối GPRS ....................................................................... 87
Bảng 6.1 Kết quả thống kê đo được từ thực tế ...................................................... 102
xvi
DANH MỤC CÁC TỪ VIẾT TẮT
GSM Global System for Mobile
Communications
Hệ thống thông tin di động toàn
cầu
GPRS General Packet Radio Services Dịch vụ vô tuyến gói chung
GPS Global position systems Hệ thống định vị toàn cầu
GIS Geographic Information System Hệ thống thông tin địa lý
OMC Operation & Maintenance Center
Trung tâm điều hành và bảo
dưỡng
BSS Base station system Phân hệ trạm gốc
OMS Operation and Maintenance
SubSystem
Phân hệ vận hành và sửa chữa
SMS Short Message Service Dịch vụ tin nhắn ngắn
MMS Multimedia messaging service Dịch vụ tin nhắn đa phương tiện
WAP Wireless Application Protocol Giao thức ứng dụng mạng đơn
giản.
SGSN Serving GPRS Support Node Là một phần tử trong mạng lõi
GPRS nhằm nối kết giữa mạng
truy nhập và gateway
GGSN Gateway GPRS Support Node Là một gateway giữa
mạng GPRS/UMTS và các mạng
ở ngoài (như Internet hoặc các
mạng GPRS khác)
VLR Visited Location Register Bộ đăng kí định vị tạm trú
HLR Home Location Register Bộ đăng kí định vị thường trú
xvii
CDMA Code Division Multiple Access Phương thức Đa truy cập phân
chia theo mã
TDMA Time Division Multiple Access Phương thức đa truy cập phân chia
theo thời gian
SIM Subscriber Identity Module Thẻ chứa thông tin định dạng
W-CDMA Wideband Code Division
Multiple Access
Đa truy nhập theo mã băng rộng
TCP/UDP Transmission Control Protocol/
User Datagram Protocol
Giao thức điều khiển truyền dẫn/
Giao thức dữ liệu gói người sử
dụng
IP Internet Protocol Giao thức dùng cho mạng Internet
AT Attention Command Tập lệnh AT
CR CARRIAGE RETURN Lệnh Enter
LF Line Feed Lùi vào đầu dòng
TE Terminal Equipment Thiết bị đầu cuối
MT Mobile Terminal Thiết bị đầu cuối mạng
1
CHƯƠNG 1: TỔNG QUAN
1.1 Dẫn nhập
Xuất phát từ nhu cầu thực tế, nhất là trong thời kỳ mở rộng về hoạt động của
các hệ thống vấn tải, yêu cầu quản lý chuyên nghiệp, hiệu quả, bài toán quản lý và
giám sát phương tiện giao thông công cộng trở nên rất bức thiết.
Bài toán này đặt ra cho hệ thống một số yêu cầu sau:
- Giám sát các phương tiện công cộng: xác định vị trí, theo dõi, cập nhật các
trạng thái của phương tiện công cộng: bao gồm cả các yếu tố bên trong
phương tiện.
- Truyền thông báo tới phương tiện công cộng và các trạm dừng
- Độ mở rộng và khả năng phục vụ lớn.
Một số giải pháp hiện nay:
- Cắt cử nhân viên theo dõi, ghi nhận các báo cáo bằng văn bản, hoặc đường
điện thoại.
- Sử dụng các module GPS – Galileo: các module này có chức năng thu tín
hiệu từ các hệ thống vệ tinh định vị, qua đó tính toán xác định được vị trí
của thiết bị đó theo hệ tọa độ địa lý: bao gồm kinh độ, vĩ độ và độ cao.
- GIS: là hệ thống phần mềm địa lý có chức năng tiếp nhận thông tin về vị trí
địa lý, sau đó xử lý và hiển thị trên hệ thống bản đồ số. Ví dụ như hệ thống
quản lý tàu đánh cá thông qua bộ đàm, quản lý taxi…
Các vấn đề tồn tại trong thực tế:
- Đối với việc quản lý bằng các nhân viên cử theo các chuyến xe: tốn kém về
nhân lực và chưa hiệu quả. Khả năng giám sát và điều khiển chưa chuyên
nghiệp.
- Việc sử dụng các module xác định vị trí bằng GPS còn đơn giản, các thiết bị
hầu hết được nhập khẩu nguyên chiếc, ứng dụng đơn thuần xác định vị trí.
Bên cạnh đó giá thành còn cao và không chủ động được về mặt kỹ thuật.
- Với một số hệ thống quản lý thông tin về bản đồ số như GIS: tuy đã xây
dựng theo mô hình hệ thống mức độ phổ biến chưa cao. Ứng dụng mang
tính chuyên biệt, đặc biệt là mức chi phí đầu tư lớn, chủ động về mặt kỹ
thuật bị hạn chế.
2
1.2. Mục tiêu đề tài
Xuất phát từ thực tiễn đã nêu, đồ án thực hiện với những mục đích chính sau:
- Đối với nhóm sinh viên, đồ án là bước đầu tìm hiểu, thi công sản phẩm ứng
dụng GPS trong thực tế, đồng thời cũng là bước triển khai những kiến thức
đã được học. Thông qua việc nghiên cứu và làm việc nghiêm túc để rèn
luyện tác phong, tinh thần khoa học, cũng như hoàn thiện phương pháp, tư
duy nghiên cứu, giải quyết một vấn đề thực tiễn. Quan trọng hơn, đồ án còn
là bước “tổng kết và hoàn thiện” những kỹ năng còn thiếu sót trước khi thực
sự trở thành người kỹ sư.
- Về mặt ứng dụng thực tiễn, hệ thống góp phần giúp quản lý các tuyến xe
buýt một cách thông minh có hệ thống và thuận lợi, kịp thời đưa ra các
thông báo khi có sự cố trên các tuyến đường: kẹt xe, xe hư…Người đi xe
buýt dễ dàng trong việc đón xe, tránh được tình trạng lên nhầm hay xuống
nhầm trạm do đã có sự thông báo trước
Ngoài ra, đồ án còn có ý nghĩa như những bước đầu chập chững tiếp cận công
nghệ GPS đang ngày càng phát triển như vũ bão, góp phần làm “điểm tựa” cho các thế
hệ sau của trường ta đạt được những nấc thang cao hơn của công nghệ GPS nói riêng,
của công nghệ và kỹ thuật nói chung.
1.3. Giới hạn đề tài
Đối với trường ta, công nghệ GPS là một vấn đề mới, chưa được đưa vào giảng
dạy, cũng như có rất ít ứng dụng cụ thể được triển khai. Nguyên nhân có thể do đây là
ngành khoa học còn nhiều mới mẻ, và khó khăn, giá thành cho thiết bị nghiên cứu khá
đắt.
Đối với nước ta, ứng dụng GPS chưa nhiều do tính phức tạp, do trình độ công
nghệ chưa đủ và do giá thành linh kiện liên quan GPS còn khá đắt. Và quan trọng hơn
là vẫn còn thiếu các mô hình hỗ trợ cho việc dạy và học
Do đó yêu cầu thực hiện đề tài được bộ môn, giáo viên hướng dẫn đặt ra cho
nhóm sinh viên là: ứng dụng công nghệ GPS/GPRS định vị, giám sát và truyền thông
đến tuyến xe buýt và các trạm dừng.
3
1.4. Một số mô hình, ứng dụng trong việc quản lý và điều hành các phương tiện.
1.4.1. Hệ thống thông tin địa lý GIS
Công nghệ GIS (Geographic Information System) được ứng dụng trong các
điều tra nghiên cứu khoa học, quản lý tài nguyên, đất đai, đánh giá các tác động của
môi trường, quy hoạch đô thị, lịch sử địa lý, khoa học bản đồ, marketing, vận tải …ví
dụ như GIS có thể được ứng dụng để quản lý các vùng đất đai và nước bị ô nhiễm, hỗ
trợ các nhà hoạch định, chuyên gia ra quyết định kịp thời và đúng đắn trên vùng bị ô
nhiễm. GIS cũng có thể dùng để thống kê, phân tích, lập bản đồ phân bố khách hàng,
các vị trí kinh doanh hay hệ thống bán hàng để hỗ trợ việc ra các quyết định kinh
doanh.
Thông tin địa lý có thể được truy xuất, truyền tải, chuyển đổi, và hiển thị bằng
nhiều ứng dụng phần mềm. Trong công nghiệp, các sản phẩm thương mại từ các công
ty như SmallWorld, Manifold System, ESRI, Intergraph, Mapinfo và AutoDesk giữ ưu
thế với các bộ công cụ toàn diện. Chính phủ và các cơ quan an ninh, quân đội thường
sử dụng các phần mềm riêng, các sản phẩm mã nguồn mở như GRASS và nhiều sản
phẩm riêng biệt khác đáp ứng tốt các nhu cầu cụ thể. Các công cụ miễn phí để xem tập
dữ liệu GIS, truy cập công cộng các thông tin địa lý được thống trị bởi các nguồn tài
nguyên trực tuyến như Google Earth và bản đồ web tương tác.
1.4.2. Quản lý hệ thống xe buýt thông qua bộ đàm.
Mô tả: trên mỗi chiếc xe buýt của hệ thống được trang bị một chiếc bộ đàm có
khả năng liên lạc với trung tâm bằng sóng VHF. Trung tâm quản lý có thể giao tiếp
trực tiếp với lái xe thông qua kênh thoại. Bên cạnh đó có thể dùng bộ ghép nối tín hiệu
để truyền dữ liệu.
Hệ thống này rất phổ biến, tuy nhiên tồn tại một số thực trạng: Bị ảnh hưởng
của nhiễu lớn, bên cạnh đó là vùng phủ sóng nhỏ, chỉ trong phạm vi vài chục km.
1.5. Lựa chọn phương án thực hiện.
Để khắc phục các thực trạng trên và tìm ra một giải pháp tối ưu hơn nhóm đã
kết hợp giữa công nghệ GPS và mạng di động GSM (cụ thể là công nghệ GPRS) để
đưa ra một hệ thống quản lý tối ưu hơn:
- Chi phí đầu tư, chi phí bảo trì và sử dụng thấp.
- Có khả năng quản lý hệ thống rộng lớn.
4
- Phạm vi quản lý không có giới hạn (khu vực nào có sóng di động là có thể
triển khai được.)
- Sản phẩm bền đẹp, dễ sử dụng…
1.6. Thiết kế hệ thống
Hệ thống bao gồm các module hoàn chỉnh đáp ứng tốt giải pháp quản lý các
tuyến xe buýt: Module phần cứng GPS có nhiều chức năng, có khả năng định vị vị trí,
kết nối với trung tâm, module quang báo hiển thị thông tin bằng hình ảnh, module
thông báo dùng âm thanh, phần mềm giám sát hiệu quả.
Hình 1.1 Sơ đồ thiết kế hệ thống
Đồ án thực hiện bao gồm những vấn đề sau:
- Phân tích : các khái niệm ban đầu về được đưa ra trong chương 2 nhằm trình
bày về các kiến thức cơ bản về GPS, vi điều khiển và các lý thuyết có liên
quan, đó chính là phương pháp luận thông suốt đồ án.
- Thiết kế mô hình phần cứng: thông qua 3 chương trình bày về thiết kế mô
hình và thi công phần cứng cho module thu thập dữ liệu từ vệ tinh, phần
cứng giao tiếp với module thông báo tại các trạm dừng xe buýt
- Thiết kế phần mềm: thông qua chương 4 và chương 5. Chương 4 trình bày
thiết kế phần mềm cho module điều khiển thu thập dữ liệu và gửi dữ liệu về
5
trung tâm điều khiển. Chương 5 xây dựng phần mềm server nhận dữ liệu từ
các xe buýt, giám sát và gửi các thông báo điều khiển kịp thời
- Kết quả thực nghiệm: chương 6 là quá trình đánh giá kết quả thực tế và hoàn
thiện.
- Kết luận: chương 7 là phần kết luận và hướng phát triển đề tài.
6
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. Tổng quan về GPS.
2.1.1. Lịch sử hình thành và phát triển của hệ thống GPS.
Sự ra đời của những phương tiện vận chuyển như máy bay, và những con tàu
vũ trụ đòi hỏi điều khiển những thiết bị đó trong không gian ba chiều. Những phương
pháp dẫn đường và những hệ thống dẫn đường vô tuyến điện chỉ xác định được vị trí
theo 2 chiều không gian dùng cho việc dẫn dắt các tàu thủy đã trở thành lỗi thời và
không còn phù hợp. Trước những đòi hỏi về kỹ thuật đó nhiều nhà khoa học đã được
chính phủ Mỹ tài trợ để thực hiện nghiên cứu hệ thống dẫn đường dựa trên vũ trụ. Bộ
Quốc phòng Mỹ là cơ quan thiết kế và điều khiển hệ thống định vị toàn cầu. Trong
nhóm những người tham gia điều hành dự án GPS của Bộ Quốc Phòng Mỹ cần kể tới
sự đóng góp to lớn của TS Ivan Getting, người sáng lập The Aerospace Corporation,
và TS Bradford Parkinson, chủ tịch hội đồng quản trị của The Aerospace Corporation.
Hệ thống định vị toàn cầu (Global Positioning System - GPS) được Chính phủ
Mỹ thiết lập năm 1995, là hệ thống định vị, dẫn hướng và định thời trên không trung
được sử dụng rộng rãi nhất hiện nay. Hệ thống vệ tinh này cung cấp miễn phí các dịch
vụ có liên quan, bao gồm các hoạt động dân sự và quân sự cho người sử dụng trên toàn
thế giới. Việc áp dụng công nghệ GPS không chỉ phổ biến cho việc sử dụng dân sự, từ
ôtô, máy bay đến điện thoại di động, mà cũng là một bộ phận không thể thiếu của hệ
thống an ninh và bảo vệ quốc phòng.
Hệ thống định vị toàn cầu (GPS-Global Positioning System) là một mạng gồm
24 vệ tinh Navstar quay xung quanh Trái đất tại độ cao 11.000 dặm (17.600 km).
Được Bộ Quốc Phòng Mỹ ấn định chi phí ban đầu vào khoảng 13 tỷ USD, song việc
truy nhập tới GPS là miễn phí đối với mọi người dùng, kể cả những người ở các nước
khác. Các số liệu định vị và định thời được sử dụng cho vô số những ứng dụng khác
nhau bao gồm hàng không, đất liền và hàng hải, theo dõi các phương tiện giao thông
trên bộ và tầu biển, điều tra khảo sát và vẽ bản đồ, quản lý tài sản và tài nguyên thiên
nhiên.
Với việc khắc phục được những giới hạn về độ chính xác quân sự vào tháng
3/1996, ngày nay GPS có thể chỉ ra chính xác vị trí của các mục tiêu chỉ nhỏ bằng
đồng 10 xu ở bất kỳ nơi nào trên bề mặt trái đất.
Vệ tinh GPS đầu tiên đã được phóng vào năm 1978. Mười vệ tinh đầu tiên là
các vệ tinh ‘mở mang’, gọi là Block 1 (Lô 1). Từ năm 1989 đến năm 1993 có 23 vệ
7
tinh khai thác, gọi là Block 2 (Lô 2) đã được phóng lên quỹ đạo. Vệ tinh thứ 24 được
phóng nốt vào năm 1994 đã hoàn thành hệ thống.
Vệ tinh bay với vận tốc cao cứ 12 tiếng đồng hồ thì đủ một vòng quỹ đạo. Cho
đến nay đã có tổng số 28 vệ tinh, trong đó 24 chiếc đang hoạt động và 4 chiếc kia dùng
để dự phòng khi có một chiếc nào bị hỏng.
Quỹ đạo bay của hệ thống vệ tinh này cũng được sắp xếp để bất cứ chỗ nào trên
trái đất đều nhận thấy ít nhất là 4 vệ tinh đang bay ngang trên trời. Nhiệm vụ của thiết
bị GPS là làm sao nhận được tín hiệu phát ra từ các vệ tinh bay ngang trên trời … tối
thiểu là từ ba vệ tinh. Một khi máy đã nhận được tín hiệu phát ra từ các vệ tinh thì các
mạch điện tử trong máy sẽ đo và biết được khoảng cách từ các vệ tinh cũng như tọa độ
của nó.
Trong vài giây đồng hồ máy sẽ làm bài toán và cho giải đáp ngay đó là tọa độ
của máy, phương pháp này trong toán học gọi là TRILATERATION (phép đo 3 cạnh
tam giác). Tọa độ này cho bạn biết từ vĩ tuyến cho đến kinh tuyến chính xác đến mức
độ tới từng giây.
Một số hệ thống toàn cầu và khu vực khác như hệ thống Galileo do liên minh
Châu Âu và Cơ quan vũ trụ Châu Âu thiết lập. Hệ thống dẫn hướng trong không trung
GLONASS của Nga, Hệ thống QZSS của Nhật Bản và Hệ thống BEIDOU của Trung
Quốc hiện đang được xây dựng. Sau nghiên cứu đánh giá kỹ lưỡng. Chương trình dẫn
hướng vệ tinh Galileo, một sáng kiến hợp tác giữa liên minh Châu Âu và Cơ quan Vũ
trụ Châu Âu, cuối cùng đã nhận được sự khẳng định để sử dụng và chương trình này
rất giống với trọng tâm chính sách của Mỹ. Các thực thể quản lý và cơ quan an ninh
cũng được yêu cầu phát hiện và bảo vệ chống lại việc sử dụng các hệ thống này một
cách phi pháp và cho các mục đích chống đối. Nỗ lực duy trì Chương trình GLONASS
cho thấy dự định của Nga ủng hộ GNSS riêng của mình. Hệ thống do Chính phủ liên
bang Nga quản lý bao gồm 21 vệ tinh, có quỹ đạo quay quanh 3 hành tinh khác nhau.
Từ sau năm 1995 hệ thống GPS vẫn tiếp tục được duy trì và bảo dưỡng cũng như thay
thế những vệ tinh già tuổi. Năm 2000, số vệ tinh trong chòm GPS đã tăng lên 28 vệ
tinh. Những vệ tinh thế hệ GPS-IIR đã và đang được phóng lên để thay thế những vệ
tinh già tuổi. Vệ tinh được phóng lên ngày 16/9/2005 mang tên GPS-IIR-M1, là vệ
tinh đầu tiên thuộc thế hệ 8 chiếc vệ tinh hiện đại nhất GPS-IIR-M. Theo website
Space-Based Postioning, Navigation and Timing của chính phủ Mỹ, Chính phủ Mỹ
cam kết cung cấp tối thiểu 24 vệ tinh GPS hoạt động trên quĩ đạo với 95% thời gian.
Không lực Mỹ (USA Air Force) phóng các vệ tinh bổ sung có chức năng dự trữ để
8
phòng cho thời gian bảo dưỡng định kỳ các vệ tinh và bảo đảm tính sẳn có của ít nhất
24 vệ tinh hoạt động. Từ 28/08/2009, đã có 35 vệ tinh trong chòm GPS, với 30 vệ tinh
‘khỏe mạnh’ cho người sử dụng”. Do đó, chòm 30 vệ tinh đang thực sự bay như một
chòm 24 vệ tinh.
2.1.2 . Các thành phần của GPS
Hệ thống vệ tinh GPS chia làm 3 phần:
- Phần không gian (space segment): Các vệ tinh.
- Phần điều khiển (control segment ): Trạm mặt đất.
- Phần người sử dụng (user segment): Bộ thu tín hiệu.
Hình 2.1 Sơ đồ liên quan giữa ba phần của hệ thống định vị toàn cầu
2.1.2.1. Phần không gian
Gồm 28 quả vệ tinh (24 vệ tinh hoạt động và 4 vệ tinh dự trữ khi có một chiếc
nào bị hỏng) (tính đến năm 2000) nằm trên các quỹ đạo xoay quanh trái đất. Chúng
chuyển động ổn định, hai vòng quỹ đạo trong khoảng thời gian gần 24 giờ. Các vệ tinh
này chuyển động với vận tốc 7 nghìn dặm một giờ. Các vệ tinh trên quỹ đạo được bố
9
trí sao cho các máy thu GPS trên mặt đất có thể nhìn thấy tối thiểu 4 vệ tinh vào bất kỳ
thời điểm nào.
Các vệ tinh được cung cấp bằng năng lượng Mặt Trời. Chúng có các nguồn pin
dự phòng để duy trì hoạt động khi chạy khuất vào vùng không có ánh sáng Mặt Trời.
Các tên lửa nhỏ gắn ở mỗi quả vệ tinh giữ chúng bay đúng quỹ đạo đã định.
Hình 2.2 Chuyển động vệ tinh nhân tạo xung quanh trái đất
2.1.2.2. Phần điều khiển
Mục đích trong phần này là kiểm soát vệ tinh đi đúng hướng theo quỹ đạo và
thông tin thời gian chính xác. Có tất cả 5 trạm kiểm soát được đặt rải rác trên trái đất.
Bốn trạm kiểm soát hoạt động một cách tự động, và một trạm kiểm soát là trung tâm ở
Colorado Springs bang Colarado của Mỹ. Bốn trạm này nhận tín hiệu liên tục từ
những vệ tinh và gửi các thông tin này đến trạm kiểm soát trung tâm. Tại trạm kiểm
soát trung tâm, nó sẽ sửa lại dữ liệu cho đúng và kết hợp với hai anten khác để gửi lại
thông tin cho các vệ tinh.
Phần điều khiển có 5 trạm quan sát có nhiệm vụ như sau:
10
- Giám sát và điều khiển hệ thống vệ tinh liên tục
- Quy định thời gian hệ thống GPS
- Dự đoán dữ liệu lịch thiên văn và hoạt động của đồng hồ trên vệ tinh
- Cập nhật định kỳ thông tin dẫn đường cho từng vệ tinh cụ thể.
Hình 2.3 Phần điều khiển của GPS
2.1.2.3. Phần người sử dụng
Phần người sử dụng là khu vực có phủ sóng mà người sử dụng dùng anten và
máy thu tín hiệu từ vệ tinh và có được thông tin vị trí, thời gian và vận tốc di chuyển.
Các bộ thu GPS của người sử dụng bao gồm anten, bộ xử lý và một đồng hồ có
độ ổn định cao được đặt ở tần số truyền dẫn của các vệ tinh. Chúng cũng có thể bao
gồm các bộ phận hiển thị để cung cấp các thông tin vị trí, tốc độ, hay bản đồ chỉ
đường.
Một bộ thu GPS được mô tả với số kênh. Nó cho biết số lượng vệ tinh tối đa mà
bộ thu có thể xử lý đồng thời. Hiện nay, số kênh của bộ thu GPS thường đạt tới 12 đến
20 kênh.
Đa số các bộ thu GPS có thể truyền tải dữ liệu tính toán được tới máy tính hay
các thiết bị khác sử dụng giao thức NMEA 0183 hay chuẩn mới hơn và ít sử dụng hơn
là NMEA 2000. Ngoài ra cũng có các giao thức khác như SiRF hay MTK. Bộ thu GPS
có thể truyền dữ liệu tới các thiết bị khác thông qua giao tiếp nối tiếp, USB hay
BlueTooth.
2.1.3 Hoạt động của hệ thống
Với GPS, các tín hiệu từ các vệ tinh sẽ đi tới các vị trí chính xác của người
dùng và được đo theo phép tam giác đạc. Để thực hiện phép tam giác đạc, GPS đo
11
khoảng cách thông qua thời gian hành trình của bản tin vô tuyến từ vệ tinh tới một
máy thu mặt đất. Để đo thời gian hành trình, GPS sử dụng các đồng hồ rất chính xác
trên các vệ tinh, một khi khoảng cách tới vệ tinh đã được đo thì việc biết trước về vị trí
vệ tinh trong không gian sẽ được sử dụng để hoàn thành tính toán. Các máy thu GPS
trên mặt đất có một “cuốn niên giám” được lưu trữ trong bộ nhớ máy tính của chúng
để chỉ thị mỗi vệ tinh sẽ có mặt nơi nào trên bầu trời vào bất kỳ thời điểm nào. Các
máy thu GPS sẽ tính toán các thời gian trễ qua tầng đối lưu và khí quyển để tiếp tục
làm chính xác hơn phép đo vị trí.
Để bảo đảm chắc chắn vệ tinh và máy thu đồng bộ với nhau, mỗi vệ tinh có bốn
đồng hồ nguyên tử chỉ thời gian chính xác tới 3 ns, tức ba phần tỷ giây. Nhằm tiết
kiệm chi phí, các đồng hồ trong các máy thu dưới đất được làm ít chính xác hơn đôi
chút. Bù lại, một phép đo tầm hoạt động vệ tinh được trang bị thêm. Phép đo lượng
giác chỉ ra rằng, nếu ba số đo chính xác định vị được vị trí một điểm trong không gian
ba chiều thì một phép đo thứ tư có thể loại bỏ mọi độ chênh lệch thời gian nào đó.
Phép đo thứ tư này chỉnh lại sự đồng bộ hoá không hoàn hảo của máy thu.
Khối mặt đất thu nhận tín hiệu vệ tinh đi tới với tốc độ bằng tốc độ ánh sáng,
với tốc độ như vậy tín hiệu cũng phải mất một lượng thời gian đáng kể để tới được
máy thu. Sự chênh lệch giữa thời điểm tín hiệu được gửi đi và thời điểm tín hiệu được
thu nhận với tốc độ ánh sáng cho phép máy thu tính được khoảng cách tới vệ tinh. Để
đo lường chính xác độ cao, kinh độ và vĩ độ, máy thu đo thời gian các tín hiệu từ một
số vệ tinh truyền tới máy thu
GPS sử dụng một hệ tọa độ gọi là Hệ thống Trắc địa học Toàn cầu 1984 (WGS-
84 - Worldwide Geodetic System 1984). Hệ thống này tương tự như các đường kẻ
kinh tuyến và vĩ tuyến quen thuộc thường thấy trên các bản đồ treo tường cỡ lớn. Hệ
thống WGS - 84 cung cấp một khung tham chiếu gắn sẵn tiêu chuẩn hoá, cho phép các
máy thu của bất kỳ hãng sản xuất nào cũng cung cấp đúng cùng một thông tin định vị.
2.1.4. Bộ thu GPS.
Bộ thu GPS tính toán vị trí của nó bằng việc tính toán và so sánh thời gian
truyền tín hiệu từ lúc nó được gửi từ vệ tinh đến khi nhận được tại bộ thu trên mặt đất.
Mỗi vệ tinh truyền liên tục các bản tin có chứa thời gian bản tin được gửi đi, thông tin
quỹ đạo chính xác, tình trạng hệ thống chung. Bộ thu GPS đo thời gian truyền của mỗi
bản tin gửi từ vệ tinh và tính toán khoảng cách tới vệ tinh đó. Phép đo hình học ba
cạnh tam giác được sử dụng để kết hợp các khoảng cách này cùng vị trí của các vệ tinh
để xác định vị trí của bộ thu. Tuy nhiên trên thực tế, một sai số nhỏ của thời gian nhân
12
với vận tốc rất lớn của ánh sáng (cũng là vận tốc lan truyền của sóng điện từ) sẽ gây ra
sai số về khoảng cách đáng kể. Do vậy các bộ thu sử dụng thêm một vệ tinh để hiệu
chỉnh đồng hồ của chúng. Trong một số trường hợp nếu biết một trong các thông số
tọa độ không gian, ví dụ như độ cao, chúng ta chỉ cần 3 vệ tinh để xác định được vị trí
chính xác.
Tính toán được khoảng cách từ bộ thu tới vệ tinh, cho phép xác định vị trí của
bộ thu nằm trên hình cầu có tâm là vệ tinh đó. Do vậy, với 4 vệ tinh ta có thể xác định
được vị trí của bộ thu ở tại hai miền giao của 4 hình cầu có tâm là vị trí các vệ tinh,
bán kính là khoảng cách từ bộ thu tới các vệ tinh đó.
Trường hợp không có lỗi, bộ thu GPS sẽ có vị trí tại một điểm giao của 4 bề
mặt hình cầu. Nếu bề mặt của hai mặt cầu giao nhau tại nhiều hơn một điểm, giao
tuyến của chúng sẽ là một hình tròn. Giao tuyến này và mặt cầu thứ 3 trong hầu hết
các trường hợp sẽ giao nhau tại hai điểm (mặc dù chúng có thể chỉ giao nhau tại một
điểm hoặc không giao nhau). Vị trí chính xác của bộ thu GPS là 1 trong hai giao điểm
mà gần với bề mặt trái đất nhất đối với các bộ thu của các phương tiện di chuyển trên
hay gần bề mặt trái đất. Giao điểm còn lại có thể là vị trí chính xác của một thiết bị
khác trong không gian.
Hình 2.4 Tính toán vị trí của bộ thu GPS trên bề mặt trái đất
13
2.1.5. Phương trình xác định tọa độ.
Hình 2.5 Hệ trục tọa độ máy thu - vệ tinh
Để xác định được tọa độ thì tại vị trí đó cần “nhìn” thấy ít nhất 4 vệ tinh (hình
vẽ). Ta có khoảng cách giữa vị trí cần đo và vệ tinh là ρ = c * t, trong đó c là vận tốc
ánh sáng và t là khoảng thời gian sóng truyền từ vệ tinh tới vật.
Gọi tọa độ vị trí là (X, Y, Z), tại một thời điểm ta có 4 phương trình như sau:
___
2 2 2
1 2 3( ) ( ) ( ) .1 S S SX X Y Y Z Z C t (1.1)
___
2 2 2
2 2 2( ) ( ) ( ) .2 S S SX X Y Y Z Z C t (1.2)
___
2 2 2
3 3 33
( ) ( ) ( ) .S S SX X Y Y Z Z C t (1.3)
___
2 2 2
4 4 4( ) ( ) ( ) .4 S S SX X Y Y Z Z C t (1.4)
14
Hình 2.6 Phương trình xác định tọa độ của máy thu GPS
Trong đó Δt là thông số để đồng bộ thời gian giữa phía phát và phía thu. Giải 4
phương trình 4 ẩn ta thu được tọa độ cần xác định.
2.1.6. Hiệu chỉnh đồng hồ của bộ thu.
Phương pháp tính toán vị trí trong trường hợp không có lỗi đã được giải thích ở
trên. Trong thực tế, nguồn gây lỗi đáng kể nhất là đồng hồ của bộ thu GPS. Bởi vì tốc
độ lan truyền ánh sáng là rất lớn, do vậy chỉ một sai số nhỏ của thời gian sẽ gây ra sai
lệch lớn trong tính toán khoảng cách từ bộ thu tới vệ tinh. Muốn vậy bộ thu GPS phải
được trang bị một đồng hồ đặc biết chính xác, với giá thành cao. Tuy nhiên, các nhà
sản xuất mong muốn đưa ra thị trường những thiết bị thu GPS ở mức giá chấp nhận
được cho thị trường đa số người dùng, do vậy cách giải quyết sự xung đột này dựa trên
cách mà các mặt cầu giao nhau.
Hầu hết các khả năng bề mặt của 3 mặt cầu sẽ giao nhau khi đường tròn giao
tuyến của hai mặt cầu đầu tiên thường sẽ đủ lớn và sẽ giao với mặt cầu thứ 3 tại hai
điểm. Tuy vậy, mặt cầu thứ 4 hầu như sẽ không có khả năng giao với hai điểm của ba
mặt cầu đầu tiên, do bất kỳ một sự sai số về thời gian khi thực hiện các phép tính trên
bộ thu. Tuy nhiên, khoảng cách từ vị trí ước lượng của bộ thu GPS tới bề mặt hình cầu
ứng với vệ tinh thứ 4 có thể được sử dụng để hiệu chỉnh sai số đồng hồ. Chúng ta đặt
khoảng cách từ vị trí ước lượng của bộ thu GPS tới vệ tinh thứ 4 là R4, P4 là giả
khoảng cách của vệ tinh thứ 4. Khi đó, khoảng cách Da từ vị trí ước lượng của bộ thu
tới bề mặt hình cầu ứng với vệ tinh thứ 4: Da = R4 – P4. Thời gian ước lượng cho sự
sai số đồng hồ được tính là B= Da / c (với c là vận tốc ánh sáng). Chúng ta dễ nhận
thấy đồng hồ trên bộ thu GPS trễ khi giá trị B là âm và nhanh khi giá trị B là dương.
2.1.8. Nguồn lỗi của tín hiệu GPS
Có khá nhiều nguồn có thể gây nhiễu hoặc suy giảm tín hiệu siêu cao tần phát
từ vệ tinh tới các bộ thu. Khi đó bộ thu có thể không thực hiện được các phép tính toán
vị trí hay cho kết quả sai lệch:
Sự giữ chậm của tầng đối lưu (do độ ẩm) và tầng điện ly. Tín hiệu bị chậm đi
khi đi xuyên qua tầng khí quyển, nhất là tầng điện ly. Hệ thống GPS sử dụng các mô
hình tích hợp sẵn để tính toán độ trễ tín hiệu trung bình và hiệu chỉnh một phần lỗi do
nguyên nhân này gây ra.
15
Hiệu ứng nhiều đường: xảy ra khi tín hiệu GPS bị phản xạ từ các tòa nhà, các
bề mặt lớn trước khi tới được bộ thu. Nguyên nhân này sẽ làm tăng thời gian truyền
dẫn tín hiệu GPS.
Sai lệch đồng hồ máy thu: Đồng hồ trên máy thu có thể sai lệch so với các đồng
hồ nguyên tử trên vệ tinh, gây ra các phép tính sai về khoảng cách. Tuy nhiên trên thực
tế các sai lệch về đồng hồ rất nhỏ.
Lỗi quỹ đạo: Cũng được biết đến là các lỗi thiên văn, do các vệ tinh thông báo
vị trí không chính xác.
Số lượng vệ tinh nhìn thấy tại vị trí bộ thu: Càng nhiều số lượng vệ tinh nhìn
thấy được thì các phép tính của bộ thu càng chính xác. Bất kỳ một vật cản nào cũng có
thể làm che khuất các vệ tinh khỏi tầm nhìn của bộ thu GPS. Các bộ thu GPS thường
không làm việc trong nhà, dưới nước hay dưới lòng đất.
Che khuất về hình học: Phụ thuộc vào vị trí tương đối của các vệ tinh ở thời
điểm bất kỳ. Khi các vệ tinh nằm trên một đường thẳng hoặc tạo thành nhóm sẽ gây ra
sự che khuất đối với bộ thu GPS.
Sự suy giảm của tín hiệu vệ tinh có chủ ý: Là hành động có mục đích của Bộ
Quốc phòng Hoa Kỳ nhằm ngăn chặn các đối thủ quân sự thu được chính xác tín hiệu
định vị. Tuy việc này đã được ngừng từ năm 2000, tuy nhiên không có một sự đảm
bảo chắc chắn về tính ổn định và chính xác của các bộ thu GPS.
2.1.9. Chuẩn NMEA0183
2.1.9.1. Sơ lược về chuẩn NMEA và chuẩn NMEA0183.
NMEA (hay NMEA 0183) là sự một chuẩn giao thức cho truyền thông giữa các
thiết bị điện tử dùng cho tàu thủy cũng như các thiết bị đo tốc độ gió, la bàn, máy lái
tự động, thiết bị thu GPS và rất nhiều các thiết bị khác được định nghĩa và phát triển
bởi Hiệp hội điện tử tàu thủy quốc gia Hoa Kỳ (National Marine Electronics
Association).
Chuẩn NMEA 0183 sử dụng các ký tự ASCII, giao thức truyền thông nối tiếp
quy định cách một “thiết bị gửi” truyền một câu dữ liệu tới “thiết bị nhận” tại một thời
điểm.
Ở tầng ứng dụng, chuẩn NMEA quy định nội dung các kiểu câu dữ liệu cho
phép thiết bị nhận có khả năng phân tích dữ liệu một cách chính xác. Các câu dữ liệu
đều bắt đầu bằng ký tự “$” và kết thúc bằng <CR><LF>.
16
Đối với các các thiết bị GPS, tất cả các câu dữ liệu đều bắt đầu bằng “$GPxxx”
trong đó xxx là loại bản tin. Một số loại câu dữ liệu thường sử dụng:
GGA: Global positioning system fixed data
GLL: Geographic position-latitude/longitude
GSA: GNSS DOP and active satellites
GSV: GNSS satellites in view
RMC: Recommended minimum specific GNSS data
VTG: Course over ground and ground speed
Cấu hình truyền thông nối tiếp (tầng liên kết dữ liệu)
Tốc độ bit: 4800 bps
Số bit dữ liệu: 8
Bít chẵn lẻ: None
Bit dừng: 1 hoặc nhiều hơn
Cơ chế bắt tay thiết bị: không
Hầu hết các máy GPS hiện nay đều giao tiếp dựa trên chuẩn NMEA 0183, một
số thì vẫn có thể dùng được với chuẩn NMEA 0180 và NMEA 0182 với tốc độ truyền
dữ liệu chỉ có 1200bps.
2.1.9.2. Cấu trúc chuỗi NMEA
Mỗi câu bắt đầu bằng ký tự “$” 5 ký tự tiếp theo cho phép nhận dạng loại câu
dữ liệu. Tất cả các trường dữ liệu theo sau được phân cách bởi dấu “,”. Ký tự đầu tiên
tiếp theo sau các trường dữ liệu là dấu “*”
Theo sau dấu “*” là hai số checksum biểu diễn dưới dạng hex. Checksum được
tính bằng cách XOR tất cả các mã ASCII của tất cả các trường giữa 2 dấu “$” và “*”
kể cả mã ASCII của dấu “*”.
Các ký tự enter và xuống dòng kết thúc câu dữ liệu. Nếu dữ liệu cho một trường
nào đó không có thì trường đó trống và dấu “,” ngăn cách giữa các trường vẫn được
truyền đi.
Ví dụ với câu dữ liệu GPRMC
$GPRMC,225446,A,4916.45,N,12311.12,W,000.5,054.7,191194,020.3,E*68
17
- Bản tin kiểu RMC- (Recommended Minimum Specific GNSS Data)
Ví dụ ta nhận được chuỗi bản tin
$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,*10
Sau đây là diễn giải của bản tin
Bảng 2.3 Diễn giải của bản tin GPRMC
Tên Ví dụ Đơn vị Mô tả
Message ID $GPRMC
Giao thức header
RMC
(RMC protocol
header)
Thời gian (UTC
Time)
161229.487 Giờ phút giây (%
giây)
hhmmss.sss
Tình trạng A A: dữ liệu hợp lệ; V:
dữ liệu không hợp lệ.
Ví độ (Latitude) 3723.2475 ddmm.mmmm
Chỉ dẫn Nam
Bắc
(N/S Indicator)
N N = Bắc hoặc S=Nam
N=north or S=south
Kinh độ
(Longitude)
12158.3416 dddmm.mmmm
Chỉ dẫn Đông
Tây
(E/W Indicator)
W E=Đông hoặc W=Tây
E=east or W=west
Tốc độ trên mặt
đất
0.13 Knots
18
Hướng bám
trên mặt đất
309.62 Độ Đúng (True)
Ngày tháng 120598 ddmmyy
Kiểm tra
(Checksum)
*10 Kiểm tra mã truyền
tin
2.2. Hệ thống thông tin di động toàn cầu GSM
Hệ thống thông tin di động toàn cầu – GSM là tiêu chuẩn phổ biến nhất trong
thông tin di động trên thế giới hiện nay. Theo tổ chức sáng lập là hiệp hội GSM ước
đoán rằng, 80% thị trường di động toàn cầu đang sử dụng công nghệ này, với hơn 3 tỷ
người trên hơn 212 quốc gia. Sự phổ biến này giúp cho việc chuyển vùng quốc tế giữa
các nhà cung cấp dịch vụ di động trở nên dễ dàng, các thuê bao có thể sử dụng dịch
vụ di động ở nhiều nơi trên thế giới.
Ngoài cung cấp dịch vụ cuộc gọi thoại, GSM cũng mở rộng các dịch vụ tiện lợi
khác cho người sử dụng như tin nhắn ngắn SMS, được hỗ trợ tốt bởi hầu hết các chuẩn
di động khác. Các tiêu chuẩn mới sau này ra đời, như General Packet Radio Service –
GPRS (năm 1997) và Enhanced Data Rates for GSM Evolution – EDGE (năm 1999),
mang lại các dịch vụ giá trị gia tăng phong phú và các mức cước phí hấp dẫn.
2.3 Dịch vụ số liệu cải tiến GPRS – General Packet Radio Service
2.3.1. Sơ lược
GPRS là dịch vụ dữ liệu di động, sử dụng phương thức chuyển mạch gói được
phát triển trên nền hệ thống thông tin di động toàn cầu GSM, cho phép các thiết bị di
động gửi và nhận dữ liệu trong mạng. GPRS là một bước để phát triển lên hệ thống
thông tin di động thế hệ thứ 3 (3G).
Tốc độ: GPRS sử dụng phương thức chuyển mạch gói. Tốc độ kết nối cao hơn,
có thể đạt tới khoảng 56-118kbps, so với mạng GSM truyền thống chỉ là 9,6kbps.
Bằng việc kết hợp các khe thời gian chuẩn GSM, tốc độ theo lý thuyết có thể đạt tới
171,2kbps. Tuy nhiên, tốc độ 20-50kbps là khả thi hơn trong thực tế.
Kết nối liên tục: GPRS là dịch vụ kết nối liên tục, mà không cần phải quay số.
Đây không phải là một tính năng duy nhất có ở GPRS, nhưng sẽ không có trở ngại nào
để nó trở thành tính năng then chốt khi chuyển tiếp lên 3G. Nó giúp cho các thiết bị
tiếp nhận các dịch vụ một cách tức thời.
19
Các ứng dụng giá trị gia tăng mới và tốt hơn: Kết nối truyền dữ liệu tốc độ cao
và liên tục cho phép các ứng dụng internet và các dịch vụ như hội thoại hình có thể
được thực hiện trên các thiết bị di động hay chuyển tới máy PC.
Chi phí đầu tư và vận hành: Các nhà cung cấp dịch vụ mạng di động không cần
phải bắt đầu từ vạch xuất phát để có thể triển khai GPRS. GPRS được nâng cấp từ
mạng GSM đã có.
Cước phí dịch vụ truyền tải dữ liệu bằng GPRS thường được tính trên lưu lượng
truyền tải, trong khi đó phương pháp truyền thống sử dụng chuyển mạch kênh được
tính dựa trên thời gian kết nối, không phụ thuộc vào việc người sử dụng đang truyền
tải dữ liệu hay ở trạng thái nghỉ.
2.3.2. Kiến trúc hệ thống GPRS chung.
Hình 2.13 Kiến trúc chung của hệ thống GPRS
GPRS không phải là một mạng hoàn toàn tách biệt với GSM. Nhiều thiết bị như
trạm thu phát gốc (BTS), bộ điều khiển trạm thu phát gốc (BSC) vẫn được sử dụng.
Việc triển khai dịch vụ GPRS thường là nâng cấp về phần mềm, phần cứng hoặc cả
hai. Việc nâng cấp phần mềm hầu như có thể được thực hiện từ xa.
Có hay bộ phận chức năng quan trong trong hoạt động của GPRS: Serving
GPRS Support Node – SGSN và Gateway GPRS Support Node – GGSN. Hai thành
phần này là những thay đổi lớn nhất và hoàn toàn mới so với mạng GSM.
Dịch vụ dữ liệu GPRS hoạt động song song với dịch vụ thoại trên GSM. Trong
mạng GSM thường có nhiều trạm điều khiển trạm thu phát gốc (BSC). Khi triển khai
dịch vụ GPRS, tại các trạm BSC được bổ sung các bộ đơn vị điều khiển gói tin PCU –
20
Packet Control Unit. Bộ phận này sẽ phân biệt dữ liệu của mạng GSM chuẩn (hay
chuyển mạch kênh) và dữ liệu của dịch vụ GPRS ( hay chuyển mạch gói). Trong vài
trường hợp, PCU có thể là các bộ phận riêng biệt.
- SGSN
Nút hỗ trợ dịch vụ GPRS (SGSN) đảm nhận các tác nhiệm quan trọng, bao gồm
định tuyến (routing), chuyển giao và cấp phát địa chỉ IP.
SGSN có một kết nối logic tới các thiết bị GPRS. Khi thiết bị đang sử dụng
dịch vụ GPRS di chuyển, từ ô tế bào này sang ô tế bào khác, SGSN có nhiệm vụ đảm
bảo kết nối của thiết bị di động tới mạng không bị ngắt. Khi thiết bị di chuyển vào một
vùng mạng được điều khiển bởi một SGSN khác, nó sẽ thực hiện chuyển giao cho
SGSN mới. Quá trình này được thực hiện rất nhanh. Bất kỳ gói dữ liệu nào bị mất
trong quá trình chuyển giao này cũng sẽ được truyền lại.
SGSN chuyển đổi dữ liệu di động thành IP và được kết nối với GGSN qua giao
thức đường hầm( tunneling protocol).
- GGSN
Nút hỗ trợ cổng vào GPRS (GGSN) là cổng cuối cùng trong mạng GPRS trước khi
kết nối với một ISP hay bộ định tuyến của mạng doanh nghiệp. GGSN về cơ bản là
một cổng vào (gateway), bộ định tuyến (router) và tường lửa (firewall) kết hợp làm
một. GGSN cũng làm nhiệm vụ xác nhân chi tiết người dùng với máy chủ RADIUS
cho quá trình bảo mật, thường xảy ra trong mạng IP, hay bên ngoài mạng GPRS.
- Kết nối giữa SGSN và GGSN
Kết nối giữa hai nút hỗ trợ GPRS sử dụng giao thức gọi là GPRS Tunneling
Protocol (GTP). GTP nằm trên TCP/IP và có trách nhiệm thu thập các thông tin tính
cước và dàn xếp. Trong thực tế hai khối GSN có thể nằm cùng trong một khối đơn.
- HLR – Home Location Register
Bộ đăng ký vị trí trung tâm (HLR) là một cơ sở dữ liệu chứa các thông tin thuê
bao, khi một thiết bị di động kết nối tới mạng sử dụng số nhận dạng MSISDN, trạng
thái của thuê bao, hay đôi khi là địa chỉ IP.
2.3.3. Địa chỉ IP
a) Cấp phát địa chỉ IP
Có 3 cách khác nhau để cấp phát địa chỉ IP cho các thiết bị di động.
21
- Cấp phát IP tĩnh:
Địa chỉ IP tĩnh cho thiết bị di động không được sử dụng do sự hạn chế của địa
chỉ IPv.4. Thông tin này được lưu giữ trong HLR
Hình 2.14 Cấp phát địa chỉ IP tĩnh trong GPRS
- Cấp phát IP động:
Thiết bị di động được cấp phát địa chỉ IP động. Địa chỉ IP này không được lưu
giữ tại HLR, mà được chuyển cho GGSN.
Hình 2.15 Cấp phát địa chỉ IP động trong GPRS
Phương pháp cấp phát IP thứ 3, cũng là một dạng cấp phát động, trong đó địa
chỉ IP được cấp phát bởi máy chủ RADIUS, thường được đặt ngoài mạng thông tin di
động, trong mạng IP.
b) Liên lạc giữa SGSN và GGSN
Một thiết bị di động được lập trình với một hay nhiều tên điểm truy cập –
Access Point Name (APN). Một APN có chứa một tên máy chủ tên miền DNS. Khi
22
thiết bị di động muốn truy cập một địa chỉ web, SGSN tìm kiếm máy chủ tên miền
DNS và phân giải tên tới đúng GGSN tương ứng.
2.3.4 Các lớp thiết bị GPRS.
Có 3 lớp khác nhau của thiết bị GPRS:
- Lớp A: Các thiết bị đầu cuối lớp A có hai bộ thu phát, cho phép gửi/nhận dữ
liệu thoại và dữ liệu GPRS đồng thời.
- Lớp B: Các thiết bị đầu cuối lớp B có thể gửi/nhận dữ liệu thoại hoăc dữ
liệu GPRS nhưng không đồng thời cả hai.
- Lớp C: Các thiết bị này chỉ cho phép thực hiện 1 trong 2 kết nối thoại hoặc
dữ liệu
2.3.5 Thông số chất lượng dịch vụ (QoS) GPRS
a) Kiến trúc mạng:
Các mạng lưới cần được nâng cấp trong GPRS, trong đó có các nút hỗ trợ GSN.
GPRS đã đáp ứng sự trông đợi của người sử dụng về hiệu suất mạng.
b) Giao diện vô tuyến
ETSI đã cho ra đời 3 sơ đồ mã hóa mới cho giao diện vô tuyến. Khi thiết bị
GPRS liên lạc với trạm thu phát gốc, chúng có thể sử dụng 1 trong 4 sơ đồ. Các sơ đồ
CS-1 tới CS-3 trong đó CS-1 giống như chuẩn GSM. Một cách đơn giản, CS-1 có độ
dư thừa lớn, trong khi CS-2 và CS-3 có ít dư thừa hơn. Trong khi CS-4 có ít dư thừa
nhất, gỡ bỏ tất các điều khiển lỗi, trong khi đạt khả năng truyền tải lớn nhất. Nếu chất
lượng sóng vô tuyến thấp, CS-1 được sử dụng, với các điều khiển lỗi giúp tăng chất
lượng dịch vụ.
c) Các lớp dịch vụ GPRS
Các thiết bị di động có thể yêu cầu các loại truyền tải khác nhau được ưu tiên,
trong nỗ lực mang đến cho người sử dụng mức độ kết nối mong muốn. Có 4 lớp truyền
tải khác nhau:
- Lớp ưu tiên: Một ứng dụng có thể được gán cho một lớp ưu tiên 1, 2 hay 3.
Nếu một ứng dụng có độ ưu tiên cao hơn (1) các ứng dụng khác (3) thì quá
trình truyền tải của nó sẽ có thứ tự ưu tiên cao hơn.
23
- Lớp trễ: Các ứng dụng có thể yêu cầu các lớp trễ, đảm bảo độ trễ trung bình
95%. Có 4 lớp, lớp 1 là nhanh nhất.
- Lớp tin cậy: Các ứng dụng có thể yêu cầu các mức khác nhau của độ tin cậy
cho dữ liệu của nó, phụ thuộc vào mức độ mất mát dữ liệu.
- Lớp dung lượng: Các ứng dụng có thể chọn các cấu hình khác nhau cho lưu
lượng. Có hai lớp: đỉnh và trung bình. Lớp lưu lượng đỉnh được sử dụng chủ
yếu cho các truyền dẫn tức thời với số lượng octet biến đổi trong một giây.
Lớp trung bình là tốc độ truyền dẫn trung bình trong một khoảng thời gian,
tính bằng sô octet trong một giờ.
Ngoài ra, các nhân tố khác cũng có thể ảnh hưởng tới QoS, như chất lượng sóng
vô tuyến, nghẽn mạng internet, LAN/WAN, lỗi trong mạng GSM/GPRS, vv…
2.3.6 Các dịch vụ hỗ trợ
Dịch vụ GPRS trên nền GSM cung cấp các dịch vụ mới:
- Dịch vụ tin nhắn đa phương tiện (MMS – Multimedia messaging service).
- Dịch vụ đàm thoại Push to Talk (PTT).
- Các ứng dụng internet trên thiết bị thông minh, qua giao thức ứng dụng
không giây (WAP – Wireless Application Protocol).
- Dịch vụ Point to Point (PTP): liên mạng với mạng internet (giao thức IP)
GPRS cho phép tăng hiệu quả sử dụng đường truyền và tốc độ truyền dữ liệu.
Khi sử dụng dịch vụ nhắn tin ngắn SMS bằng GPRS có thể đạt được tốc độ truyền tin
30 bản tin / phút, trong khi với dịch vụ SMS truyền thống trên GSM, tốc độ chỉ đạt
được từ 6-10 bản tin / phút.
2.4. GIỚI THIỆU SIM 548
2.4.1. Giới thiệu chung
Module SIM548C sử dụng 4 băng tần GSM/GPRS hơn nữa còn được tích hợp
sẵn bộ thu GPS, nó được thiết kế nhỏ gọn, khả năng di động rất cao, giá thành tiết
kiệm hơn nhiều so với giải pháp đã nói ở trên. Nó là sự kết hợp của 2 công nghệ : công
nghệ GSM/GPRS và công nghệ GPS. Một giải pháp rất tối ưu cho việc truyền dữ liệu
GPS về trung tâm thông qua mạng GSM/GPRS.
24
Như đã nói, module SIM548C được chia làm 2 phần : phần GSM/GPRS và
phần GPS. Chúng ta sẽ tìm hiểu các đặc tính cũng như các thông số kĩ thuật mỗi phần
của module SIM548C.
2.4.2. Đặc điểm của module SIM548C
- SIM548C làm việc ở 4 tần số khác nhau : EGSM 900 MHz/DCS 1800 MHz
và GSM850 MHz/PCS 1900 MHz. . SIM548C cung cấp GPRS multi-slot
class10 / class 8 , hỗ trợ GPRS mã hóa theo sơ đồ CS -1 , CS – 2 , CS – 3
và CS – 4.
- Được thiết kế với kích thước nhỏ gọn 50mm x 33mm x 8.8mm , SIM548C
có thể được sử dụng trong rất nhiều các ứng dụng ví dụ như : M2M , điện
thoại thông minh , điện thoại PDA , thiết bị định vị cầm tay và các thiết bị di
động khác hoặc các ứng dụng cho xe hơi , cho server …
- Giao tiếp vật lý gồm có 60 chân , nó cung cấp các giao tiếp cứng giữa
module với bo mạch khác , ngoại trừ giao tiếp với anten RF .
- Giao tiếp hiển thị SPI giúp ta phát triển các ứng dụng một cách mềm dẻo
hơn.
- Gồm một cổng giao tiếp GSM nối tiếp và 2 cổng giao tiếp GPS nối tiếp , nó
có thể giúp ta dễ dàng phát triển các ứng dụng hơn.
- 2 kênh audio gồm 2 cổng vào microphone và 2 cổng ra speaker’s .
- Điều khiển tập lệnh AT thông qua cổng giao tiếp truyền thông nối tiếp.
- Giao tiếp với SIM card holder .
- Giao tiếp màn hình LCD.
- Hai đầu nối ăng ten riêng biệt cho 2 phần GSM / GPRS & GPS. SIM548C
cung cấp giao tiếp anten RF GSM với 2 loại : Anten connector và anten râu.
Anten connector là MURATA MM9329-2700 RA1 và ta có thể tự thiết kế
anten râu. Một anten GPS phải được nối với phần GPS của module nhằm
thu tín hiệu GPS một cách chính xác.
- Giao tiếp Pin Sạc , mạch sạc được tích hợp sẵn trong SIM548C nên nó rất
phù hợp với các ứng dụng dùng nguồn PIN.
- Hỗ trợ 2 chuẩn giao tiếp Serial interface và Debug interface.
25
- SIM548C được thiết kế với công nghệ nguồn tiết kiệm , vì vậy dòng tiêu thụ
của phần GSM/GPRS trong chế độ SLEEP rất nhỏ, khoảng 3mA.
- SIM548C hỗ trợ giao thức TCP/IP , rất hữu ích cho việc thực hiện việc
truyền dữ liệu.
- Nguồn cung cấp :
• Phần GSM : 3.4V – 4.5V
• Phần GPS : sử dụng nguồn cung cấp riêng 3.3V ± 5%
• Nguồn tiết kiệm
• Phần GSM : dòng tiêu thụ trong chế độ SLEEP cỡ 3.5mA.
• Phần GPS : Power Down mode / Push-to-Fix mode.
• Pin sạc : Hỗ trợ sạc PIN Li-Ion.
- Dải tần sử dụng
• EGSM 900/DCS 1800 và GSM850 MHz/PCS 1900 MHz . SIM548C có
thể tự động dò tìm các băng tần trên .
• Các băng tần có thể được thiết lập bằng tập lệnh AT.
• Tuân theo GSM Phase 2/2+.
- Công suất phát
- Kết nối GPRS
• GPRS multi-slot class 10 (mặc định).
• GPRS multi-slot class 8 (tùy chọn).
• GPRS mobile station class B.
- GPS
• Bộ nhận GPS sử dụng Chip SiRF star III .
• Kiểu xử lý : ARM7/TDMI.
- Dải nhiệt độ
• Hoạt động bình thường : -30°C đến +80°C.
• Hoạt động giới hạn : min: 40°C đến -30°C và max: +80°C đến +85°C
• Nhiệt độ bộ lưu trữ : -45°C đến +90°C .
26
- Dữ liệu GPRS
• Tốc độ Downlink lớn nhất : 85.6 kbps .
• Tốc độ Uplink lớn nhất : 42.8 kbps .
• Sơ đồ mã hóa : CS-1 , CS-2 , CS-3 và CS-4.
• SIM548C hỗ trợ giao thức PAP ( Password Authentication Protocol )
thường được sử dụng cho kết nối PPP.
• SIM548C được tích hợp giao thức TCP/IP .
- CSD
• Hỗ trợ PBCCH.
• Tốc độ truyền của CSD : 2.4 ; 4.8 ; 9.6 ; 14.4 kbps , non-transparent.
• Hỗ trợ USSD.
- SMS
• Hỗ trợ các chế độ : MT , MO , CB , Text và PDU .
• Lưu trữ SMS : ở SIM card
- FAX : Group 3 class 1.
- Giao tiếp SIM : Hỗ trợ SIM card : 1.8V , 3V.
- Anten ngoài :
• Phần GSM : được kết nối qua anten 50 Ohm và anten râu.
• Phần GPS : kết nối anten GPS riêng .
- Audio : Chế độ Speech codec
• Half Rate (ETS 06.20).
• Full Rate (ETS 06.10).
• Enhanced Full Rate (ETS 06.50 / 06.60 / 06.80).
• Adaptive multi rate (AMR).
• Echo Cancellation.
- Cổng truyền thông nối tiếp GSM và cổng Debug
- Cổng nối tiếp : 7 đường trên giao tiếp cổng nối tiếp.
27
- Cổng nối tiếp có thể sử dụng cho CSD FAX , nhận và gửi GPRS được điều
khiển bởi tập lệnh AT.
- Cổng nối tiếp có thể sử dụng chức năng phân kênh.
- Hỗ trợ tốc độ : 4800 bps đến 115200 bps.
- Cổng Debug : có 2 đường trên cổng giao tiếp Debug : DBG_TXD và
DBG_RXD.
- Cổng Debug chỉ sử dụng cho gỡ rối.
- Hai cổng nối tiếp GPS :
- Cổng nối tiếp A : 2 đường trên cổng nối tiếp A : GPS_TXA và GPS_RXA.
- Cổng nối tiếp B : 2 đường trên cổng nối tiếp B : GPS_TXB và GPS_RXB.
- Thông số vật lý :
• Kích thước : 50±0.15 x 33±0.15 x10.3±0.3mm .
• Nặng : 16.5g.
Bảng 2.5 Sơ đồ mã hóa và tốc độ dữ liệu lớn nhất trên giao diện vô tuyến
Sơ đồ mã hóa 1 Timeslot 2 Timeslot 4 Timeslot
CS-1: 9.05kbps 18.1kbps 36.2kbps
CS-2: 13.4kbps 26.8kbps 53.6kbps
CS-3: 15.6kbps 31.2kbps 62.4kbps
CS-4: 21.4kbps 42.8kbps 85.6kbps
2.4.3. Sơ đồ chức năng
SIM548C có hai khối tách biệt: phần GSM/GPRS và phần GPS.
Phần GSM :
- Khối trung tâm GSM :GSM baseband engine .
- Khối bộ nhớ : Flash and SRAM .
- Phần GSM radio frequency .
- Khối giao tiếp anten : anten interface .
28
- Khối giao tiếp ngoài : board-to-board interface.
Phần GPS :
- Chip thu GPS : SIRFIII GPS engine .
- Phần GPS radio frequency
- Khối giao tiếp anten : anten interface .
- Khối giao tiếp ngoài : board-to-board interface.
Hình 2.16 Sơ đồ chức năng của module SIM548C
29
Bảng 2.6 Chức năng chân của module SIM548C
30
Module SIM548C bao gồm 60 chân DIP trong đó bao gồm 48 chân cho phần
GSM/GPRS từ chân 1 đến chân 48 và 12 chân cho phần GPS từ chân 49 đến chân 60.
2.5. Giới thiệu về vi điều khiển ATMEGA128
2.5.1. Tổng quan về vi điều khiển ATMega128
31
Những tính năng chính của vi điều khiển ATmega128
- Bộ nhớ ROM : 128 Kbytes.
- Bộ nhớ SRAM: 4Kbytes.
- Bộ nhớ EEPROM : 4Kbytes.
- Gồm có 64 thanh ghi vào ra I/O.
- 160 thanh ghi vào ra mở rộng
- 32 thanh ghi đa mục đích.
- 2 bộ định thời 8 bit (0,2).
- 2 bộ định thời 16 bit (1,3).
- Bộ định thời watchdog
- Bộ dao động nội RC tần số 1 MHz, 2 MHz, 4 MHz, 8 MHz
- ADC 8 kênh với độ phân giải 10bit(Ở dòng Xmega lên tới 12 bit )
- 2 kênh PWM 8 bit
- 6 kênh PWM có thể lập trình thay đổi độ phân giải từ 2 tới 16 bit
- Bộ so sánh tương tự có thể lựa chọn ngõ vào
- 8 ngắt ngoài từ INT0 đến INT7
- Hai khối USART lập trình được
- Khối truyền nhận nối tiếp SPI
- Khối giao tiếp nối tiếp 2 dây TWI
- Hỗ trợ boot loader
- 6 chế độ tiết kiệm năng lượng
- Lựa chọn tần số hoạt động bằng phần mềm
- Đóng gói 64 chân kiểu TQFP.
- Tần số tối đa 16MHz
- Điện thế : 4.5v - 5.5v
Vi điều khiển AVR do hãng Atmel ( Hoa Kì ) sản xuất được gới thiệu lần đầu
năm 1996. AVR có rất nhiều dòng khác nhau bao gồm dòng Tiny AVR ( như AT tiny
13, ATtiny 22…) có kích thước bộ nhớ nhỏ, ít bộ phận ngoại vi, rồi đến dòng AVR (
32
chẳng hạn AT90S8535, AT90S8515,…) có kích thước bộ nhớ vào loại trung bình và
mạnh hơn là dòng Mega ( như ATmega32, ATmega128,…) với bộ nhớ có kích thước
vài Kbyte đến vài trăm Kbyte cùng với các bộ ngoại vi đa dạng được tích hợp trên
chip, cũng có dòng tích hợp cả bộ LCD trên chip ( dòng LCD AVR ). Tốc độ của dòng
Mega cũng cao hơn so với các dòng khác. Sự khác nhau cơ bản giữa các dòng chình là
cấu trúc ngoại vi, còn nhân thì vẫn như nhau.
Hình 2.17 Sơ đồ chân vi điều khiển ATMega128
Ưu điểm của ATMega128 mà các dòng thấp hơn không có là nó hỗ trợ 2 cổng
giao tiếp nối tiếp( chân 2 RXD0- chân 3 TXD0 và chân 27 RXD1- chân 28 TXD1 ).
Mục đích để ta chọn vi điều khiển hỗ trợ 2 cổng giao tiếp nối tiếp là một cổng
(RXD0 – TXD0) kết nối với phần GSM/GPRS của module SIM548C nhằm điều khiển
SIM548C này thông qua tập lệnh AT , một cổng ( RXD1 –TXD1) kết nối với phần
GPS của module SIM548C lấy dữ liệu GPS sau đó tách lấy các thông số tọa độ vị trí ,
thời gian …để gửi về trung tâm thông qua mạng GSM/GPRS.
33
Hình 2.18 Sơ đồ cấu trúc vi điều khiển ATMega128
34
2.5.2.Giao tiếp USART
USART (Universal Synchronous and Asynchronous serial Receiver and
Transmitter): Bộ Truyền Nhận Nối Tiếp Đồng Bộ Và Bất Đồng Bộ, đây là khối chức
năng dùng cho việc truyền thông giữa vi điều khiển với các thiết bị khác. Trong vấn đề
truyền dữ liệu số, có thể phân chia cách thức (method) truyền dữ liệu ra hai chế độ
(mode) cơ bản là : Chế độ truyền nhận Đồng bộ (Synchronous) và Chế độ truyền nhận
Bất đồng bộ (Asynchronous). Ngoài ra, nếu ở góc độ phần cứng thì có thể phân chia
theo cách khác đó là: Truyền nhận dữ liệu theo kiểu Nối tiếp (serial) và Song song
(paralell).
- Truyền đồng bộ: là kiểu truyền dữ liệu trong đó bộ truyền (Transmitter) và
bộ nhận (Receiver) sử dụng chung một xung đồng hồ (clock). Do đó, hoạt
động truyền và nhận dữ liệu diễn ra đồng thời. Xung clock đóng vai trò là
tín hiệu đồng bộ cho hệ thống (gồm khối truyền và khối nhận). Ưu điểm của
kiểu truyền đồng bộ là tốc độ nhanh, thích hợp khi truyền dữ liệu khối
(block).
- Truyền bất đồng bộ: Là kiểu truyền dữ liệu trong đó mỗi bộ truyền
(Transmitter) và bộ nhận (Receiver) có bộ tạo xung clock riêng, tốc độ xung
clock ở hai khối này có thể khác nhau, nhưng thường không quá 10 %. Do
không dùng chung xung clock, nên để đồng bộ quá trình truyền và nhận dữ
liệu, người ta phải truyền các bit đồng bộ (Start, Stop,…) đi kèm với các bit
dữ liệu. Các bộ truyền và bộ nhận sẽ dựa vào các bit đồng bộ này để quyết
định khi nào thì sẽ thực hiện hay kết thúc quá trình truyền hoặc nhận dữ
liệu. Do đó, hệ thống truyền không đồ bộ còn được gọi là hệ thống truyền
“tự đồng bộ”.
Từ hai kiểu truyền dữ liệu cơ bản trên, người ta đưa ra nhiều giao thức
(Protocol) truyền khác nhau như: SPI (đồng bộ), USRT (đồng bộ), UART (bất đồng
bộ),…Tuy vậy, cũng có giao thức truyền mà không thể xếp được vào kiểu nào: Đồng
bộ hay bất đồng bộ, chẳn hạn kiểu truyền I2C (Trong AVR gọi là TWI), tuy vậy một
cách hơi gượng ép thì có thể thấy giao thức truyền I2C gần với kiểu đồng bộ hơn vì
các thiết bị giao tiếp với nhau theo chuẩn I2C điều dùng chung một xung clock.
Cấu trúc truyền thường được sử dụng trong truyền nối tiếp không đồng bộ là
cấu trúc bắt đầu bằng 1 bit START, theo sau là các bit dữ liệu và bit kiểm tra chẵn lẻ
(nếu sử dụng) và cuối cùng là 1 hay nhiều hơn (1,5 hoặc 2) bit dừng.
35
Hình 2.19 Sơ đồ truyền dữ liệu nối tiếp
Số bít dữ liệu: Số bít dữ liệu được truyền giữa bit START, STOP, có thể là
4,5,6,7 và thông thường là 8 bit dữ liệu
Bit START: bắt đầu ở mức 0 (điện áp dương)
Bit STOP: có thể là 1, 1.5 hay 2 bit STOP
Bit chẵn lẻ (Parity bit): dùng để phát hiện lỗi khi nhận dữ liệu. Bit chẵn lẻ là
phương pháp phát hiện lỗi đơn giản để kiểm tra số lượng bit “1” được gửi trong khung
truyền là chẵn hay lẻ). Cũng vì thế bit chẵn lẻ chỉ có thể phát hiện được số lẻ bit lỗi,
và nó chỉ được dùng với các trường hợp có số bit lỗi thấp.
Tốc độ Baud: một thông số chính đặc trưng cho quá trình truyền dữ liệu nối tiếp
là tốc độ truyền nhận dữ liệu, hay tốc độ bit. Tốc độ bit được định nghĩa là số bit
truyền được trong 1 giây. Cả bộ truyền và nhận dữ liệu đều phải được thiết lập để hoạt
động cùng tốc độ bit này. Tốc độ bit phản ánh thực tế số bit được gửi/nhận trên đường
truyền. Ngoài ra, khái niệm tốc độ baud là tốc độ của các phần tử dùng để mã hóa các
bit dữ liệu được truyền. Khi một phần tử mã hóa 1 bit thì tốc độ baud cũng chính bằng
tốc độ bit thực tế trên đường truyền. Trong các modem, các phần tử mã hóa nhiều bit,
do đó tốc độ bit trên đường truyền cao hơn so với tốc độ baud.
Tốc độ baud thường dùng là: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800,
9600, 19200, 28800, 38400, 56000, 115200…
2.5.3. Khối USART trong Atmega128
ATmega128 có hai bộ USART là USART0 và USART1. Hai bộ USART này là
độc lập nhau, điều này có nghĩa là hai khối USART0 và USART1 có thể hoạt động
cùng một lúc. Chính vì đặc điểm này mà ta đã chọn ATMega128.
Tất cả hoạt động và trạng thái của USART0 được điều khiển và quan sát thông
qua các thanh ghi trong vùng nhớ I/O. Có 5 thanh ghi được thiết kế riêng cho hoạt
động và điều khiển của USART0, đó là:
36
UDR0: hay thanh ghi dữ liệu, là 1 thanh ghi 8 bit chứa giá trị nhận được và phát
đi của USART0. Thực chất thanh ghi này có thể coi như 2 thanh ghi TXB0 (Transmit
data Buffer) và RXB0 (Reveive data Buffer) có chung địa chỉ. Đọc UDR0 thu được
giá trị thanh ghi đệm dữ liệu nhận, viết giá trị vào UDR0 tương đương đặt giá trị vào
thanh ghi đệm phát, chuẩn bị để gởi đi. Chú ý trong các khung truyền sử dụng 5, 6
hoặc 7 bit dữ liệu, các bit cao của thanh ghi UDR0 sẽ không được sử dụng
Hình 2.20 Thanh ghi dữ liệu UDR0
UCSRA0 (USART Control and Status Register A): là 1 trong 3 thanh ghi điều
khiển hoạt động của module USART0.
Hình 2.21 Thanh ghi điều khiển hoạt động UCSRA0
Thanh ghi UCSRA0 chủ yếu chứa các bit trạng thái như bit báo quá trình nhận
kết thúc (RXC), truyền kết thúc (TXC, báo thanh ghi dữ liệu trống (UDRE), khung
truyền có lỗi (FE), dữ liệu tràn (DOR), kiểm tra parity có lỗi (PE)…Bạn chú ý một số
bit quan trọng của thanh ghi này:
UDRE0 (USART Data Register Empty) khi bit này bằng 1 nghĩa là thanh ghi
dữ liệu UDR đang trống và sẵn sàng cho một nhiệm vụ truyền hay nhận tiếp theo. Vì
thế nếu bạn muốn truyền dữ liệu đầu tiên bạn phải kiểm tra xem bit UDRE0 có bằng 1
hay không, sau khi chắc chắn rằng UDRE0=1 hãy viết dữ liệu vào thanh ghi UDR để
truyền đi.
- U2X là bit chỉ định gấp đôi tốc độ truyền, khi bit này được set lên 1, tốc độ
truyền so cao gấp 2 lần so với khi bit này mang giá trị 0.
- MPCM là bit chọn chế độ hoạt động đa xử lí (multi-processor).
UCSRB0 (USART Control and Status Register B): đây là thanh ghi quan trọng
điều khiển USART0. Vì thế chúng ta sẽ khảo sát chi tiết từng bit của thanh ghi này.
37
Hình 2.22 Thanh ghi điều khiển hoạt động USART0
- RXCIE (Receive Complete Interrupt Enable) là bit cho phép ngắt khi quá
trình nhận kết thúc. Việc nhận dữ liệu truyền bằng phương pháp nối tiếp
không đồng bộ thường được thực hiện thông qua ngắt, vì thế bit này thường
được set bằng 1 khi USART được dùng nhận dữ liệu.
- UDRIE (USART Data Register Empty Interrupt Enable) là bit cho phép
ngắt khi thanh ghi dữ liệu UDR trống.
- RXEN (Receiver Enable) là một bit quan trọng điều khiển bộ nhận của
USART, đề kích hoạt chức năng nhận dữ liệu bạn phải set bit này lên 1.
- TXEN (Transmitter Enable) là bit điều khiển bộ phát. Set bit này lên 1 bạn
sẽ khởi động bộ phát của USART.
- UCSZ2 (Chracter size) bit này kết hợp với 2 bit khác trong thanh ghi
UCSRC0 quy định độ dài của dữ liệu truyền/nhận. Chúng ta sẽ khảo sát chi
tiết khi tìm hiểu thanh ghi UCSRC0.
- RXB8 (Receive Data Bit 8) gọi là bit dữ liệu 8. USART0 trong ATMega128
có hỗ trợ truyền dữ liệu có độ dài tối đa 9 bit, trong khi thanh ghi dữ liệu là
thanh ghi 8 bit. Do đó, khi có gói dữ liệu 9 bit được nhận, 8 bit đầu sẽ chứa
trong thanh ghi UDR, cần có 1 bit khác đóng vai trò bit thứ chín, RXD8 là
bit thứ chín này, các bit được đánh số từ 0, vì thế bit thứ chín sẽ có chỉ số là
8, vì lẽ đó mà bit này có tên là RXD8 (không phải RXD9).
- TXB8 (Transmit Data Bit 8), tương tự như bit RXD8, bit TXB8 cũng đóng
vai trò bit thứ 9 truyền thông, nhưng bit này được dùng trong lúc truyền dữ
liệu.
UCSRC0 (USART Control and Status Register C): thanh ghi này chủ yếu quy
định khung truyền và chế độ truyền. Tuy nhiên, có một rắc rối nho nhỏ là thanh ghi
này lại có cùng địa chỉ với thanh ghi UBRRH (thanh ghi chứa byte cao dùng để xác
lập tốc độ baud), nói một cách khác 2 thanh ghi này là 1. Vì thế bit 7 trong thanh ghi
này, tức bit URSEL là bit chọn thanh ghi. Khi URSEL=1, thanh ghi này được chip
38
AVR hiểu là thanh ghi điều khiển UCSRC, nhưng nếu bit URSEL=0 thì thanh ghi
UBRRH sẽ được sử dụng.
Hình 2.23 Thanh ghi UCSRC
Các bit còn lại trong thanh ghi UCSRC0 được mô tả như sau:
- UMSEL (USART Mode Select) là bit lựa chọn giữa 2 chế độ truyền thông
đồng bộ và không đồng bộ. Nếu UMSEL=0, chế độ không đồng bộ được
chọn, ngược lại nếu UMSEL=1, chế độ đồng bộ được kích hoạt.
- Hai bit UPM1 và UPM0( Parity Mode) được dùng để quy định kiểm tra
pariry. Nếu UPM1:0=00, parity không được sử dụng (mode này khá thông
dụng), UPM1:0=01 không được sử dụng, UPM1:0=10 thì parity chẵn được
dùng, UPM1:0=11 parity lẻ được sử dụng (xem thêm bảng 3.3).
Bảng 2.7 Chọn kiểm tra Parity.
- USBS (Stop bit Select), bit Stop trong khung truyền bằng AVR USART có
thể là 1 hoặc 2 bit, nếu USBS=0 thì Stop bit chỉ là 1 bit trong khi USBS=1
sẽ có 2 bit Stop được dùng.
- Hai bit UCSZ1 và UCSZ2 (Character Size) kết hợp với bit UCSZ2 trong
thanh ghi UCSRB tạo thành 3 bit quy định độ dài dữ liệu truyền. Bảng 3.4
tóm tắt các giá trị có thể có của tổ hợp 3 bit này và độ dài dữ liệu truyền
tương ứng.
39
Bảng 2.8 Độ dài dữ liệu truyền
- UCPOL (Clock Pority) là bit chỉ cực của xung kích trong chế độ truyền
thông đồng bộ. Nếu UCPOL=0, dữ liệu sẽ thay đổi thay đổi ở cạnh lên của
xung nhịp, nếu UCPOL=1, dữ liệu thay đổi ở cạnh xuống xung nhịp. Nếu
bạn sử dụng chế độ truyền thông không đồng bộ, hãy set bit này bằng 0..
- UBRRL và UBRRH (USART Baud Rate Register): 2 thanh ghi thấp và cao
quy định tốc độ baud.
Hình 2.24 Cấu trúc hai thanh ghi UBRRL và UBRRH
Nhắc lại là thanh ghi UBRRH dùng chung địa chỉ thanh ghi UCSRC0, phải set
bit này bằng 0 nếu muốn sử dụng thanh ghi UBRRH. Như quan sát trong hình trên,
chỉ có 4 bit thấp của UBRRH được dùng, 4 bit này kết hợp với 8 bit trong thanh ghi
UBRRL tạo thành thanh ghi 12 bit quy định tốc độ baud. Chú ý là nếu bạn viết giá trị
vào thanh ghi UBRRL, tốc độ baud sẽ tức thì được cập nhật, vì thế bạn phải viết giá trị
vào thanh ghi UBRRH trước khi viết vào thanh ghi UBRRL.
Giá trị gán cho thanh ghi UBRR không phải là tốc độ baud, nó chỉ được
USART0 dùng để tính tốc độ baud. Bảng 3 hướng dẫn cách tính tốc độ baud dựa vào
giá trị của thanh ghi UBRR và ngược lại, cách tính giá trị cần thiết gán cho thanh ghi
UBRR khi đã biết tốc độ baud.
40
Bảng 2.9 Tính tốc độ Baud.
Trong các công thức trong bảng 3.5, fOSC là tốc tần số xung nhịp của hệ thống
(thạch anh hay nguồn xung nội…).
2.5.4. Giao tiếp I2C
2.5.4.1. Khái quát TWI và I2C
TWI (Two-Wire Serial Intereafce) là một module truyền thông nối tiếp đồng bộ
trên các chip AVR dựa trên chuẩn truyền thông I2C. I2C là viết tắc của từ Inter-
Integrated Circuit là một chuẩn truyền thông do hãng điện tử Philips Semiconductor
sáng lập và xây dựng thành chuẩn năm 1990. Phiên bản mới nhất của I2C là V3.0 phát
hành năm 2007.
TWI (I2C) là một truyền thông nối tiếp đa chip chủ (tạm dịch của cụm từ multi-
master serial computer bus). TWI (I2C) được thực hiện trên 2 đường SDA (Serial
DATA) và SCL (Serial Clock) trong đó SDA là đường truyền/nhận dữ liệu và SCL là
đường xung nhịp. Căn cứ theo chuẩn I2C, các đường SDA và SCL trên các thiết bị có
cấu hình “cực góp mở, nghĩa là cần có các “điện trở kéo lên” (pull-up resistor) cho các
đường này. Ở trạng thái nghỉ (Idle), 2 chân SDA và SCL ở mức cao. Hình 1 mô tả một
mô hình mạng TWI (I2C) cơ bản.
41
Hình 2.25 Mạng TWI(I2C) và 2 điện trở kéo lên
Master: là chip khởi động quá trình truyền nhận, phát đi địa chỉ của thiết bị cần
giao tiếp
Slave: là chip có một địa chỉ cố định, được gọi bởi Master và phục vụ yêu cầu
Master.
SDA- Serial Data: là đường dữ liệu nối tiếp, tất cả các thông tin về địa chỉ hay dữ
liệu đều được truyền trên đường này theo thứ tự từng bit một. Chú ý là trong chuẩn
I2C, bit có trọng số lớn nhất (MSB) được truyền trước nhất, đặc điểm này ngược lại
với chuẩn USART
SCL –Serial Clock: là đường giữ nhịp nối tiếp. TWI (I2C) là chuần truyền
thông nối tiếp đồng bộ, cần có 1 đường tạo xung giữ nhịp cho quá trình truyền/nhận,
cứ mỗi xung trên đường giữ nhịp SCL, một bit dữ liệu trên đường SDA sẽ được lấy
mẫu (sample). Dữ liệu nối tiếp trên đường SDA được lấy mẫu khi đường SCL ở mức
cao trong một chu kỳ giữ nhịp, vì thế đường SDA không được đổi trạng thái khi SCL
ở mức cao (trừ START và STOP condition).
REPEAT START – Bắt đầu lặp lại: khoảng giữa START và STOP là khoảng
bận của đường truyền, các Master khác không tác động được vào đường truyền trong
khoảng này. Hình bên dưới mô tả các Master tạo ra START, STOP và REPEAT
START.
Hình 2.26 Biểu đồ hoạt động tạo ra Start, Stop và Repeat Start
2.5.4.2. TWI trên AVR
TWI trên AVR được vận hành bởi 5 thanh ghi bao gồm thanh ghi tốc độ giữ
nhịp TWBR, thanh ghi điều khiển TWCR, thanh ghi trạng thái TWSR, thanh ghi địa
chỉ TWAR và thanh ghi dữ liệu TWDR.
42
- TWBR (TWI Bit Rate Register): là 1 thanh ghi 8 bit quy định tốc độ phát
xung giữ nhịp trên đường SCL của chip Master.
Hình 2.27 Các bit trong thanh ghi TWBR
Tốc độ phát xung giữ nhịp được tính theo công thức:
- TWCR (TWI Control Register): là thanh ghi 8 bit điều khiển hoạt động của
TWI.
Hình 2.28 Các bit trong thanh ghi TWCR
- TWSR (TWI Status Register): là 1 thanh ghi 8 bit trong đó có 5 bit chứa
code trạng thái của TWI và 2 bit chọn prescaler.
Hình 2.29 Các bit trong thanh ghi TWSR
- TWDR (TWI Data Register): là thanh ghi dữ liệu chính của TWI. Trong quá
trình nhận, dữ liệu nhận về sẽ được lưu trong TWDR. Trong quá trình gởi,
dữ liệu chứa trong TWDR sẽ được chuyển ra đường SDA.
- TWAR (TWI Address Register): là thanh ghi chứa device address của chip
Slave. Cấu trúc thanh ghi được trình bày trong hình dưới.
Hình 2.30 Các bit trong thanh ghi TWAR
TWI trên AVR được gọi là byte-oriented (tạm dịch là hướng byte) và
interrupt-based (dựa trên ngắt). Bất kỳ một sự kiện nào trong quá trình truyền/nhận
43
TWI cũng có thể gây ra 1 ngắt TWI. TWI trên AVR vì thế hoạt động tương đối độc
lập với chip. Tuy nhiên, cần khai thác ngắt trên AVR một cách hơp lý. Chúng ta sẽ lần
lượt khảo sát các mode như sau: Master Transmitter (chip chủ truyền), Slave Reicever
(chip tớ nhận)
Trước khi khảo sát các chế độ hoạt động của TWI chúng ta qui ước một số ký
hiệu thường dùng (đây cũng là các ký hiệu dùng trong datasheet của các chip AVR).
S: START condition – điều kiện bắt đầu
Rs: REPEAT START – bắt đầu lặp lại
R: READ Bit, bit này bằng 1 được gởi kèm với gói địa chỉ
W: WRITE Bit, bit này mang giá trị 0, gởi kèm gói địa chỉ
ACK: Ackowledge, bit xác nhận
NACK: Not Acknowledge, không xác nhận
Data: 8 bits dữ liệu
P: STOP condition – điều kiện kết thúc.
SLA: Slave address, địa chỉ của Slave cần giao tiếp.
a. Master Transmitter mode – Master truyền dữ liệu:
Trong chế độ này, Master truyền 1 hoặc một số byte dữ liệu đến một hoặc các
Slave. Để bắt đầu, Master tạo ra một START condition trên đường SDA, nếu đường
truyền đang rảnh, Master sẽ tiếp tục phát đi địa chỉ của Slave cần giao tiếp cùng với bit
W (ghi) theo định dạng như sau: SLA+W. Nếu Slave đáp lại bằng một ACK trong
xung giữ nhịp thứ 9, Master sẽ tiếp tục gởi 1 hoặc liên tiếp các byte dữ liệu trên SDA.
Cứ sau mỗi byte dữ liệu, Master sẽ kiểm tra ACK từ Slave. Nếu Slave gởi một NACK
hoặc Master không muốn gởi thêm dữ liệu đến Slave nó sẽ phát đi một STOP
condition hoặc một REPEAT START (Rs). Nếu STOP được phát, cuộc gọi kết thúc,
nếu Rs được phát, một cuộc gọi mới bắt đầu, sau Rs là địa chỉ của Slave mới…
44
Hình 2.31 Master truyền dữ liệu
Chúng ta nhận thấy khi Master truyền dữ liệu, dãy code 0x08 -> 0x18 -> 0x28 -
>… -> 0x28 (-> 0x30) là dãy code thành công nhất. Code 0x08 báo rằng START
codition được truyền thành công, code 0x18 báo địa chỉ truyền thành công và đã có
45
Slave xác nhận bằng ACK, code 0x28 tức dữ liệu được Master truyền thành công và
Slave đã nhận được, báo ACK lại cho Master, code 0x30 tức dữ liệu đã được truyền
nhưng Slave không xác nhận lại, lúc này Master có thể phát đi một STOP codition sau
code 0x30. Ngoài ra còn một số code khác tương ứng với các trường hợp khác như gởi
địa chỉ thất bại (code 0x20), Master bị lost (code 0x38)…Đối với mỗi loại ứng dụng,
cách “hành xử” sẽ khác nhau đối với các trường hợp thất bại này. Trong bài này, tôi sẽ
bỏ qua tất cả các trường hợp thất bại, nếu một trong các code thất bại xảy ra chúng ta
sẽ thoát khỏi cuộc gọi và đưa đường truyền về trạng thái nghỉ.
b. Slave Receiver mode – Slave nhận dữ liệu:
Hình 2.32 mô tả một quá trình Slave nhận dữ liệu, các khả năng có thể xảy ra
và giá trị code tương ứng của thanh ghi TWSR. Chế độ Slave nhận dữ liệu xảy ra khi
Master thực hiện một cuộc gọi phát dữ liệu (SLA+W). Như quan sát trong hình 4,
Slave chỉ nhận ra cuộc gọi này khi địa chỉ của nó trùng với địa chỉ của Master (Own
address mode) hoặc khi Master thực hiện một cuộc gọi chung. Khi đó, bit TWINT của
Slave sẽ được set lên 1. Nếu Slave cho phép ngắt TWI (bit TWIE trong thanh ghi
TWCR được set từ lúc đầu) thì một ngắt xảy ra báo có một sự kiện TWI. Nếu code
trong thanh ghi TWSR là 0x60 thì một cuộc gọi địa chỉ riêng được yêu cầu và Slave
cũng đã đáp ứng lại Master bằng một ACK, Slave sau đó bắt đầu nhận dữ liệu từ
đường SDA. Cứ sau một byte dữ liệu Slave phải xác nhận một ACK nếu nó còn muốn
tiếp tục nhận. Nếu vì một lý do nào đó mà Slave không thể tiếp tục nhận nó có thể phát
một NOT ACK sau một byte dữ liệu. Cuộc gọi kết thúc khi Slave nhận được STOP
condition, tương ứng code 0xA0. Cuộc gọi chung cũng diễn ra hoàn toàn tương tự
cuộc gọi địa chỉ riêng nhưng code có giá trị khác. Khi viết chương trình cho Slave
trong chế độ nhận dữ liệu, chúng ta cần xét cả 2 trường hợp cuộc gọi địa chỉ riêng và
cuộc gọi chung.
46
Hình 2.32 Slave nhận dữ liệu
2.5.5. Giao tiếp SPI
Đây là chuẩn giao tiếp nối tiếp đồng bộ (synchronous receiver transmitter) dùng
kết nối giữa các thiết bị ngoại vi với nhau…Theo đó, có ít nhất là một đường xung
clock đồng bộ tín hiệu và một đường data để truyền dữ liệu theo mỗi nhịp xung clock.
47
Với cách giao tiếp này sẽ có một Master thiết lập và điều khiển kết nối với một
Slave nhận và truyền dữ liệu ngược về Master. Sơ đồ khối truyền nhận của SPI như
sau:
Hình 2.33 Sơ đồ khối truyền nhận SPI
Điều mấu chốt của SPI là thanh ghi dịch ở cả Master và Slave, và nguồn xung
clock tạo bởi Master. Sau đây là cách Master truyền một byte dữ liệu (gọi là A) cho
Slave và cùng lúc đó nó cũng nhận một byte khác (gọi là B) từ Slave. Trước khi
truyền, Master ghi A vào thanh ghi dịch của mình và Slave cũng ghi B vào thanh ghi
dịch của mình. Sau đó Master tạo ra 8 xung clock, tương ứng mỗi xung clock thì một
bit trong thanh ghi dịch của Master được truyền sang thanh ghi dịch của Slave và
ngược lại. Sau khi xung clock cuối cùng thì Master hoàn thành nhận B còn Slave hoàn
thành nhận A. Có thể nhận thấy rằng quá trình truyền và nhận diễn ra đồng thời do đó
đây được gọi là truyền “song công” (duplex).
Để giao tiếp nhiều Slave trên cùng bus SPI ta cần có phương pháp chọn Slave
nào mà ta muốn kết nối ngay lúc đó. Đây chính là chức năng của chân SS. Nếu SS treo
lên mức cao thì các chân SPI của thiết bị đó là các ngõ vào bình thường, và sẽ không
thể nhận dữ liệu qua SPI. Nếu SS ở mức thấp, SPI ở chế độ Slave và có thể truyền
nhận dữ liệu qua SPI. Nếu giao tiếp đồng thời hai Salve, chân SS ở mỗi Slave nối với
một ngõ ra bất kỳ của Master. Khi muốn truyền SPI với Slave nào thì cho ngõ ra tương
ứng với SS của Slave đó xuống mức thấp, các ngõ ra tương ứng với các chân SS của
các Salve khác đưa lên mức cao. Do các chân của chuẩn SPI được nối chung giữa
Master và tất cả các Slave nên việc quản lý quá trình truyền nhận với một Slave nhất
định phải được quy định chặt chẽ (mỗi lần chỉ giao tiếp với “một” Slave) nếu không có
thể xảy ra tình trạng xung đột đường truyền.
48
Hình 2.34 Sơ đồ kết nối SPI
Như vậy, việc quy định chân I/O cũng rất quan trọng vì chức năng I/O của các
chân trên Master và Slave không giống nhau.
Bảng 2.10 Chức năng các chân kết nối SPI
Tên chân Mater Slave
MOSI Output Input
MISO Input Output
SCK Output Input
SS Người dùng định nghĩa Input
2.6. Giới thiệu IC thu phát âm thanh ISD2560
Cùng với ISD2560, các Ic ISD2575/2590/25120, là loạt các Ic chuyên dụng
dùng để thu (record) và phát lại(playback) âm thanh. Đây là các Ic chuyên dụng chất
lượng cao, có nhiều đường điều khiển cũng như nhiều mode chức năng hoạt động có
thể đáp ứng được một số yêu cầu nhất định trong lĩnh vực thu và phát lại tiếng nói.
49
2.6.1. Sơ đồ chân ISD2560
Hình 2.34 Sơ đồ chân IC ISD2560
2.6.2. Sơ đồ khối bên trong của ISD2560
Hình 2.35 Sơ dồ khối bên trong của ISD2560
50
2.6.3. Một số thông số cơ bản
Bảng 2.11 Một số thông số cơ bản của ISD2560
Tên thông số Giá trị
Điện áp nguồn cung cấp 4.5V – 6.5V
Nhiệt độ hoạt động 00C – 500C
Điện áp đất 0V
Tần số lấy mẫu 8 KHz
Lọc dãi thông 3.4 KHz
Ngõ ra loa 50mW đối với loa 16Ω
Điện áp cung cấp cực đại 7V
2.6.4. Mô tả chức năng các chân
Bảng 2.12 Mô tả chức năng các chân của IC ISD2560
Tên
chân
Số
chân
Chức năng
Ax / Mx 1-
10/1-7
Address/Mode inputs : Các chân này có hai chức năng
phụ thuộc vào mức điện áp trên hai bit có trọn số cao nhất
của các chân địa chỉ (A8 và A9). Nếu một trong hai bit này ở
mức thấp, tất cả các ngõ vào được xem như các bit địa chỉ
và được sử dụng như địa chỉ bắt đầu cho chu kỳ ghi hoặc
phát. Các chân địa chỉ này chỉ là các ngo? Vào không xuất ra
ba kỳ thông tin địa chỉ nào bên trong trong suốt quá trình vận
hành. Các ngõ vào địa chỉ này thì được chốt bởi cạnh xuống
của CE.
Nếu cả hai chân A8 và A9 ở mức cao, các ngõ vào
Address/Mode được xem như các bit chế độ. Có 6 mode chế
độ vận hành từ M0 → M6. Ta có thể sử dụng nhiều mode
vận hành đồng thời. Các mode vận hành cũng được chốt ở
51
mỗi cạnh xuống của CE. Vì vậy các chế độ vận hành (mode)
và kiểu định địa chỉ trực tiếp loại trừ lẫn nhau. Nói các khác
ta không thể sử dụng cùng lúc kiểu định địa chỉ trực tiếp và
các mode.
AUX IN 11 Auxiliary Input ( Ngõ vào bổ trợ ) : Chân này ghép ngõ
ra của mạch khuếch đại với chân ngõ ra loa khi CE = high,
P/ R = High, và playback hiện không được tích cực hoặc nếu
thiết bị đang ở trạng thái tràn trong playback. Khi ghép
nhiều thiết bị ISD2560 với nhau, chân AXU IN để nối tín
hiệu phát lại từ thiết bị phía sau đến ngõ ra của mạch thúc loa
của thiết bị phía trước. Để tránh nhiễu, chân này được yêu
cầu không được lái khi mảng lưu trữ đang là tích cực.
Vssa,Vssd 13,
12
Ground ( đất ) : Các IC loạt ISD2500 dùng các bus đất
số và bus đất tương tự riêng. Các chân này nên được nối
riêng lẻ bằng các đường tổng trở thấp đến mass nguồn.
SP+/S
P-
14/1
5
Speaker Outputs : loạt IC ISD2500 có thể lái một loa có
trở kháng là 16Ω , công suất 50mW. Các ngõ ra loa được
giữ ở mức Vssa trong suốt quá trình ghi. Không được nối
song song nhiều ngõ ra loa của các IC ISD2500 hoặc ngõ ra
của các thiết bị lái loa khác. Việc kết nối các ngõ ra loa song
song có thể phá huỷ IC. Một ngõ ra kết thúc đơn có thể được
sử dụng ( bao gồm một tụ điện nối giư?a chân SP và loa ).
Các ngõ ra này có thể được sử dụng riêng lẻ với ngõ ra tín
hiệu của chân còn lại. Tuy nhiên, việc sử dụng ngõ ra đơn sẽ
làm cho công suất ngõ ra giảm đi 4 lần.
Vcca,Vssd 16,
18
Supply voltage : Để giảm nhiều các mạch điện số và
tương tự trong loạt IC ISD 2500 sử dụng các bus nguồn
riêng. Các bus điện áp này được đưa đến các chân riêng và
nên được nối với nhau tại điểm càng gần điểm nguồn càng
tốt. Hơn nữa các nguồn cung cấp này nên đặt gần chân linh
kiện.
MIC 17 Microphone : Chân MIC truyền tín hiệu ngõ vào đến
52
mạch tiền khuếch đại trên chip. Một mạch AGC ( tự động
điều chỉnh độ lợi ) điều chỉnh độ lợi của mạch tiền khuếch
đại này khoảng -15 đến 24 dB.
MIC REF 18 Microphone Reference : là ngõ vào đảo của mạch tiền
khuếch đại microphone. Điều này cung cấp một sự triệt
nhiều hoặc ngõ vào đưa ra một mode chung đến thiết bị khi
nối với một microphone khác.
AGD 19 Automatic gain control : Điều chỉnh độ lợi của mạch tiền
khuếch đại để phù hợp điện áp ngõ vào của microphone.
Mạch AGC cho phép khoảng rộng đủ để âm thanh của một
tiếng còi lớn được ghi lại với sự méo dạng nhỏ nhất.
ANA IN 20 Analog input: Ngõ vào Analog truyền tín hiệu analog
đến chip để thực hiện việc ghi. Khi ngõ vào là microphone
chân ANA OUT nên được nối với tụ ngoài đến ANA IN.
Giá trị của tụ cùng với 3 KΩ tổng trở ngõ vào của ANA IN
sẽ qui định tần số cắt dưới và băng thông của giọng nói. Nếu
tín hiệu sử dụng từ nguồn khác microphone nó có thể đưa
trực tiếp đến chân ANA IN ( việc thêm một tụ ở giữa có thể
làm cho tín hiệu xấu đi ).
ANAOUT 21 Analog output : Chân này là chân ngõ ra của mạch tiền
khếch đại được thiết kế đưa ra cho người dùng. Độ lợi điện
áp của mạch tiền khuếch đại được xác định bởi mức độ điện
áp trên chân AGC.
OVF
23 Overflow :Tín hiệu này tạo ra xung ở mức thấp tại điểm
cuối của mảng bộ nhớ, chỉ định rằng bộ nhớ IC đã đầy và
thông tin đã bị tràn. Ngõ ra chân OVF sau đó theo ngõ vào
chân CE cho đến khi xung PD reset lại thiết bị . Chân này có
thể sử dụng để ghép cascade nhiều thiết bị ISD 2500 lại với
nhau để tăng thêm thời gian ghi hoặc phát.
CE 23 Chip Enable : Ngõ vào CE xuống thấp để cho phép tất
cả các sự vận hành ghi và phát. Những chân địa chỉ và chân
ghi / phát lại được chốt bởi cạnh xuống của xung CE. Chân
53
CE còn có thêm chức năng khác trong chế độ hoạt động 6 (
mode 6 ).
PD 24 Power down ( nguồn giảm) : Khi không có ghi cũng như
không có phát lại chân PD nên được kéo lên mức cao để đưa
IC vào chế độ stanby. Khi OVF tạo ra xung LOW cho điều
kiện tràn, PD nên được nối lên HIGH để reset lại con trỏ địa
chỉ tại địa chỉ bắt đầu của mảng bộ nhớ. Chân PD còn có
thêm chức năng trong mode 6 (push- button).
EOM 25 End Of Message : Điểm dấu không mất được tự động
chèn vào tại nơi cuối của mo?i thông tin ghi. No duy trì ở
đó cho đến khi có một thông tin khác ghi đè lên. Ngõ ra
EOM tạo ra một xung thấp cho giai đoạn kết thúc của một
thông tin. Khi IC đang hoạt động trong Mode 6, chân này
cung cấp một tín hiệu tích cực ở mức cao chỉ đ?nh rằng IC
đang trong trạng thái ghi hoặc phát. Tín hiệu này có thể
thuận lợi để thúc một led cho thiết bị hiển thị trực quan trạng
thái IC đang ghi hoặc đang phát.
XCLK 26 External Clock : Thường thì tần số lấy mẫu ta sử dụng
dao động trên chip. Với loại ISD2560, tần số lấy mẫu là
8kHz thì xung clock yêu cầu là 1024 KHz. Hệ số công tác
của xung clock ngõ vào không quan trọng lắm vì xung clock
ngay lập tức được chia hai. Nếu ta không sử dụng xung clock
bên ngoài thì nên nối chân này xuống mass để tránh nhiễu.
P/ R 27 Playback/Record: Ngõ vào P/R được chốt bởi cạnh
xuống của xung trên chân CE. Một mức cao trên chân này sẽ
chọn chế độ phát lại còn mức thấp trên nó sẽ đặt IC vào chế
độ thu. Để thực hiện việc ghi, các chân địa chỉ cung cấp địa
chỉ bắt đầu và quá trình ghi được tiếp tục cho đến khi PD
hoặc CE được kéo lên mức cao hoặc có dấu hiệu tràn được
phát hiện ( bộ nhớ bị đầy ). Khi việc ghi được tác động bởi
việc kéo PD hoặc CE lên mức cao, dấu kết thúc thông tin (
EOM ) được lưu trữ tại địa chỉ hiện hành trong bộ nhớ. Để
thực hiện việc phát lại tín hiệu, các ngõ vào địa chỉ cung cấp
54
địa chỉ bắt đầu và thiết bị sẽ phát lại cho đến khi gặp dấu
EOM. Thiết bị có thể vượt qua dấu EOM nếu CE được giữ
mức thấp trong mode địa chỉ.
2.6.5. Mô tả chức năng
2.6.5.1. Mô tả chi tiết
- Tốc độ / Chất lượng âm thanh:
Loạt IC ISD2500 bao gồm các thiết bị có tần số lấy mẫu tại: 4.0, 5.3, 6.4 và 8
KHz, cho phép người dùng lựa chọn tốc độ chất lượng về tốc độ. Để tăng thời gian ghi
/ phát thì buộc phải giảm tần số lấy mẫu và băng thông, và điều này lại ảnh hưởng đến
chất lượng của âm thanh.
Dữ liệu lấy mẫu được lưu trữ trực tiếp trên bộ nhớ “không bay hơi” của chip
không có bất kỳ sự số hoá và sự kết hợp nén dư? liệu như các giải pháp khác.Việc lưu
trữ trực tiếp tín hiệu analog cung cấp một âm thanh tự nhiên, trung thực của tiếng nói,
nhạc, các tone và các hiệu ứng âm thanh thì không đáp ứng với hầu hết các giải pháp
số trạng thái “đặc”.
- Thời gian :
Có nhiều hệ thống được yêu cầu, những sản phẩm ISD2560/75/90/120 cung
cấp một giải pháp chip đơn với thời gian lưu trữ là 60, 75, 90, 120 giây. Các IC này có
thể ghép nối với nhau để có thời gian dài hơn.
Bảng 2.13 Thời gian các loại IC loạt 2500
• Bộ nhớ EEPROM :
Một trong những lợi ích của công nghệ Winbond’s ChipCorder là sử dụng bộ
nhớ “không bay hơi”, điện áp cung cấp cho việc lưu trữ là Zero. Thông tin có thể được
lưu trữ trên 100 năm mà không cần nguồn cung cấp. Hơn nữa thiết bị có thể ghi lại
trên 100,000 lần.
55
2.6.5.2. Các MODE vận hành
Loạt IC ISD2500 được thiết kế nhiều chế độ ( mode ) vận hành được xây dựng
bên trong cung cấp tối đa các chức năng với các thành phần bên ngoài ít nhất. Các
mode này được mô tả chi tiết trong bảng bên dưới. Mode vận hành được truy cập bằng
các đường địa chỉ bên ngoài khi A8 và A9 ở mức cao. Kh i A8 và A9 ở mức cao thì
các chân A0→ A7 được hiểu là những bit mode chứ không còn là những bit địa chỉ
nữa.
Vì vậy chế độ mode và cách định địa chỉ trực tiếp không thể tương hợp hay nói
cách khác chúng không thể sử dụng đồng thời. Có hai vấn đề quan trọng cần xem xét
khi sử dụng chế độ mode. Một là, tất cả các chế độ vận hành đều bắt đầu từ địa chỉ 0
của bộ nhớ. Sự vận hành sau đó có thể bắt đầu từ một địa chỉ khác, điều này phụ thuộc
vào mode vận hành đã chọn. Thêm vào đó con trỏ địa chỉ sẽ reset về 0 khi thiết bị thay
đổi từ ghi sang phát, từ phát sang ghi ( ngoại trừ trường hợp sử dụng mode 6 ) hoặc
khi chu kỳ nguồn giảm được thi hành (power down). Hai là, các mode vận hành được
thi hành khi CE xuống mức thấp. Mode vận hành sẽ duy trì ảnh hưởng cho đến khi tín
hiệu tại chân CE xuống mức thấp lần nữa.
Bảng các mode vận hành
Bảng 2.14 Các mode vân hành của ISD 2500
Mô tả các mode vận hành:
56
Các Mode vận hành có thể được sử dụng liên kết với một vi điều khiển, hoặc
chúng có thể kiểm soát bằng mạch điện tử để cung cấp một hệ thống như mong muốn.
- M0 – Message Cueing:
Mode cho phép người dùng bỏ qua thông tin này để đến thông tin khác mà
chúng ta không cần biết địa chỉ vật lý thực sự của mỗi thông tin. Mỗi một xung CE ở
mức thấp là nguyên nhân khiến con trỏ địa chỉ bên trong bỏ qua thông tin hiện hành
nhảy đến một thông tin kế tiếp. Mode này chỉ sử dụng cho chế độ phát lại và nó
thường được sử dụng kết hợp với mode 4.
- M1- Delete EOM Markers:
Mode M1 cho phép ghi một cách tuần tự thông tin để kết hợp thành một thông
tin riêng lẻ với chỉ một dấu kết EOM đặt tại vị trí cuối của thông tin sau cùng. Khi
Mode này được cấu thành thì những thông tin đã ghi một cách tuần tự sẽ được phát lại
như một thông tin liên tục.
- M2- Unused
Khi vận hành các mode đã chọn chân 2 nên được nối xuống mức thấp.
- M3- Message Looping:
Mode này cho phép tự động, tiếp tục lặp lại thông tin phát tại địa chỉ bắt đầu
của không gian địa chỉ. Một thông tin có thể hoàn toàn làm đầy ISD2560 và sẽ lặp lại
từ đầu đến cuối mà OVF không đi xuống mức thấp
- M4 – Consecutive Addressing:
Trong suốt chế độ vận hành bình thường, con trỏ địa chỉ sẽ được reset khi một
thông tin đang chơi xuyên qua dấu kết EOM . Mode M4 ngăn cấm con trỏ địa chỉ reset
khi gặp dấu kết EOM , cho phép thông tin được phát lại liên tục.
- M5 – CE - Level – Activated:
Mode mặc định của ISD2560 cho phép CE tác động cạnh khi phát lại và tác
động mức khi ghi. Chế độ M5 làm cho chân CE được hiểu là tác động mức thay vì tác
động cạnh trong suốt quá trình phát lại. Đây là một hữu ích đặc biệt để kết thúc việc
phát lại sử dụng tín hiệu CE. Trong mode này mức thấp chân CE bắt đầu cho một chu
kỳ phát lại, tại vị trí bắt đầu của bộ nhớ. Chu kỳ phát lại được tiếp tục miễn là chân CE
được giữ ở mức thấp. Khi CE lên mức cao thì việc phát lại sẽ được dừng ngay lập
tức. Khi một mức thấp mới ở CE xuất hiện, nó sẽ khởi động lại thông tin từ địa chỉ
bắt đầu ( ngoại trừ M4 lúc này cũng ở mức cao ).
57
- M6 – Chế độ Push – Button
Tất cả các IC loạt ISD2500 đều chứa chế độ vận hành Push -Button. Chế độ M6
chủ yếu được sử dụng trong các ứng dụng giá rất thấp và được thiết kế với các mạch
điện và thành phần bên ngoài giảm đến mức tố i thiểu vì thế làm giảm giá thành của hệ
thống. Để cấu thành mode 6 thì hai chân A8 và A9 phải ở mức cao và chân đặt chế độ
M6 cũng phải ở mức cao. Một IC sử dụng mode này thì luôn luôn nguồn giảm tại vị trí
cuối của mỗi chu kỳ ghi/phát sau khi CE ở mức cao. Khi mode này vận hành ba chân
của IC có chức năng điều khiển được miêu tả trong bảng sau:
Bảng 2.15 Chế độ Push – Button các Ic loạt ISD2500
- Chân CE (Start/Stop):
Trong mode vận hành Push-Button tín hiệu tác động xung LOW trên chân CE
được xem là tín hiệu Start/Stop. Nếu không có hệ thống hiện hành đang được xử lý,
xung mức thấp trên chân CE sẽ khởi động chu kỳ ghi hoặc phát lại tuỳ thuộc vào mức
điện áp trên chân P/ R . Một xung sau nữa của chân CE xuất hiện, trước khi gặp dấu
kết EOM trong khi phát lại hoặc trước khi dữ liệu bị tràn trong chế độ ghi, nó sẽ làm
dừng sự vận hành, và bộ đếm địa chỉ không bị reset. Một xung CE tiếp theo nữa sẽ làm
cho thiết bị tiếp tục vận hành tại nơi mà nó đã dừng.
- Chân PD ( Stop/ Reset ):
Trong chế độ vận hành Push – Button, tín hiệu xung mức cao của chân PD
được xem là tín hiệu Stop/Reset. Khi một chu kỳ ghi hoặc phát lại đang được xử lý,
một xung cao trên chân PD, chu kỳ hiện hành sẽ được dừng và con trỏ địa chỉ sẽ được
reset về 0, địa chỉ bắt đầu của khoảng không thông tin.
- EOM (RUN):
Trong chế độ vận hành Push-Button, tín hiệu EOM trở thành tín hiệu “tích cực
chạy mức cao” có thể được sử dụng để thúc một led hoặc một thiết bị bên ngoài khác.
Chân này ở mức cao bất cứ khi nào hệ thống ghi hoặc phát lại đang được xử lý.
58
Ghi trong chế độ Push-Button
• Chân PD ở mức thấp, thường sử dụng một điện trở kéo xuống.
• Chân P/ R ở mức thấp.
• Chân CE là xung mức thấp. Bắt đầu ghi, EOM tự động lên mức cao chỉ
định rằng hệ thống vận hành đang được xử lý.
• Khi CE có xung mức thấp tiếp theo, việc ghi bị dừng, EOM tự động
xuống mức thấp. Con trỏ địa chỉ bên trong không bị xoá, nhưng dấu
EOM được lưu trữ lại trong bộ nhớ chỉ định khi một thông tin kết thúc.
Ch ân P/ R có thể lên mức cao trong thời gian này và bất kỳ một xung
CE nào tiếp theo sẽ làm cho hệ thống phát lại tại địa chỉ 0.
• Khi chân CE là một xung thấp. Việc ghi lại tiếp tục tại địa chỉ tiếp theo
sau dấu EOM đặt ở phía trước. Chân EOM lại quay trở lại mức cao.
• Khi việc ghi lần lượt được hoàn thành, xung thấp CE cuối sẽ kết thúc
chu kỳ ghi sau cùng, bằng việc đặt dấu EOM tại thông tin kết thúc.
Việc ghi có thể kết thúc bằng việc đặt chân PD lên mức cao, nơi mà nó
sẽ để lại một dấu kết EOM .
Phát lại trong chế độ Push-Button
• Xung PD ở mức thấp.
• Chân P/ R đặt ở mức cao.
• Tác động xung thấp lên chân CE. Quá trình phát lại bắt đầu, chân EOM
tự động lên mức cao cho biết hệ t hống đang xử lý.
• Nếu CE có một xung mức thấp hoặc dấu EOM được phát hiện trong quá
trình vận hành, phần này sẽ bị dừng lại. Con trỏ địa chỉ bên trong không
bị xóa và EOM chuyển xuống mức thấp. Chúng ta có thể thay đổi trạng
thái chân P/ R trong thời gian này, khi đó một chu kỳ ghi sau đó sẽ
không reset con trỏ dữ liệu và việc ghi sẽ bắt đầu tại nơi phát vừa kết
thúc.
• Tác động một xung thấp trên chân CE một lần nữa, quá trình phát lại sẽ
bắt đầu tại nơi mà nó vừa rời khỏi, và EOM lại lên mức cao chỉ định hệ
thống đang xử lý.
59
• Việc phát lại tiếp tục như bước 4 và bước 5 cho đến khi PD được tác
động bởi xung mức cao, hoặc cờ tràn được phát hiện.
• Nếu bị tràn, việc kéo CE xuống mức thấp sẽ reset con trỏ địa chỉ và bắt
đầu phát lại từ địa chỉ bắt đầu. Sau khi chúng ta tác động xung trên chân
PD thì phần này được reset về địa chỉ 0.
60
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG PHẦN CỨNG
Như đã phân tích ở trên, để thực hiện đuợc đồng thời 2 chức năng vừa thu nhận
dữ liệu từ GPS và truyền dữ liệu qua GPRS, module SIM548C tích hợp cả 2 phần GPS
và GPRS, có bộ UART. Để lập trình điều khiển được module SIM548C thì vi điều
khiển cần có 2 bộ UART. Qua nghiên cứu tìm hiểu thì vi điều khiển ATMega 128 đáp
ứng được yêu cầu trên, mặt khác các linh kiện này phổ biển và có giá thành khá hợp
lý. Do vậy, chúng em đã lựa chọn vi điều khiển ATMega 128 và SIM548C sử dụng
trong đồ án.
Như vậy các thành phần cơ bản của hệ thống quản lý giám sát xe buýt gồm 3
phần:
- Phần thứ nhất thiết bị định vị, truyền thông và điều khiển thông tin trên xe
buýt gồm: 2 thành phần chính Module SIM548C và vi điều khiển
ATMega128 giao tiếp với ATMega32
- Phần thứ hai nhận dữ liệu thông báo tại các trạm dừng:Module SIM548
- Phần thứ ba Server trung tâm.
Ở đây, ta chỉ xét đến các thành phần của thiết bị định vị gồm module SIM548C
và vi điều khiển ATMega128, ATEMega32; còn phần Server trung tâm ta sẽ nói ở
chương sau. Đây là một phần quan trọng trong cả hệ thống. Chức năng chính của phần
này có thể chia làm 2 nhiệm vụ chính:
- Chức năng ghi nhận dữ liệu, bao gồm:
• Thu thập dữ liệu GPS, xác định vị trí kinh độ, vĩ độ, tốc độ
• Chức năng kết nối và truyền nhận dữ liệu
- Thiết bị kết nối với trung tâm quản lý thông qua mạng GPRS, theo cơ chế
client – server.
61
3.1. Sơ đồ khối mạch phần cứng.
Vi điều khiển
Atemega 128
Nguồn
Hiển Thị
LCD
SIM548
GPS
SIM548
GPRS
Anten GPS Anten GSM
UART0 UART1
Hình 3.1 Sơ đồ khối mạch phần cứng.
Phần thiết kế mạch cho thiết bị định vị được chia làm các khối : Khối module
SIM548C , khối vi điều khiển ATMega128 và khối nguồn cung cấp, khối hiển thị.
Phần GPS thu tín hiệu định vị từ vệ tinh, sau đó gửi vào chân UART0 của
ATMega128 , ATMega128 xử lý tách lấy dữ liệu cần thiết : tọa độ vị trí xe, thời gian,
vận tốc xe, sau đó vi điều khiển sử dụng tập lệnh AT gửi qua cổng UART1 tới phần
GPRS của module SIM548C, phần GPRS sẽ tự nhận biết được các tập lệnh của nó và
thực hiện việc truyền dữ liệu về trung tâm thông qua mạng GSM với giao thức
TCP/IP.
3.2. Thiết kế phần cứng cho khối modul sim 548C
Do module SIM548C được chia làm 2 phần : phần GSM/GPRS và phần GPS
nên ta sẽ xét riêng từng phần.
3.2.1. Thiết kế phần cứng cho phần GSM/GPRS
Như ở chương 2 đã giới thiệu về sơ đồ chân của module SIM548C , bao gồm
60 chân DIP trong đó chân dùng cho phần GSM/GPRS có 48 chân ( từ chân 1 đến
chân 48 ). Trong đồ án này nhiệm vụ chính của khối GSM/GPRS chính là truyền dữ
62
liệu qua mạng GPRS về trung tâm nên ta sẽ đề cập đến một số chân được sử dụng
trong việc này.Chân VBAT cung cấp nguồn cho phần GSM/GPRS với điện áp trong
khoảng 3.4 V ÷ 4.5 V , trung bình là 4V .Điều đáng chú ý là dòng cung cấp cho phần
GSM/GPRS là khá lớn , nó có thể lên tới 2A.
Chân VRTC chân lưu dữ các số liệu ví dụ như thời gian …. ngay cả khi phần
GSM/GPRS mất nguồn, điều này rất thích hợp khi sử dụng các loại Pin CMOS. Điện
áp yêu cầu của chân VRTC vào khoảng 1.2 V ÷ 2.0 V điện áp trung bình là 1.8V.
Ta có thể khởi động phần GSM/GPRS của module bằng cách đưa chân
PWRKEY xuống mức điện áp thấp trong một khoảng thời gian ngắn . Có nhiều cách
để thiết lập cho chân PWRKEY , để đơn giản chúng em đã sử dụng một nút bấm được
nối đất để thực hiện việc bật chế độ hoạt động cho phần GSM/GPRS.
Hình 3.2 Bật chế độ hoạt động cho phần GSM/GPRS sử dụng nút bấm
Khi hoàn thành việc bật nguồn, phần GSM/GPRS của SIM548C sẽ gửi thông
báo cho vi điều khiển (thông qua chân UART1) biết rằng module đã sẵn sàng hoạt
động và chân STATUS của module sẽ được kéo lên 2.8v và giữ nguyên mức điện áp
này trong chế độ làm việc.
Hình 3.3 Thời gian bật chế độ hoạt động của phần GSM/GPRS
63
Ngoài chân PWRKEY sử dụng để bật chế độ hoạt động cho phần GSM/GPRS
còn có một số cách khác đó là sử dụng chân VCHG hoặc chân VRTC ở chế độ cảnh
báo. Chân PWRKEY cũng được dùng để tắt chế độ hoạt động của phần GSM/GPRS
Trước khi hoàn thành việc chuyển sang chế độ tắt thì module sẽ gửi kết quả như
sau:
NORMAL POWER DOWN. Sau thời điểm này , các lệnh AT sẽ không còn có
tác dụng nữa .Module sẽ chuyển sang chế độ POWER DOWN , chỉ duy nhất RTC vẫn
hoạt động bình thường. POWER DOWN có thể nhận biết bằng chân STATUS, lúc đó
chân STATUS kéo xuống điện áp thấp nhất.
Hình 3.4 Thời gian tắt chế độ hoạt động của phần GSM/GPRS
Ngoài ra ta còn có thể tắt chế độ hoạt động của phần GSM/GPRS bằng tập lệnh
AT : “ AT+CPOWD = 1”. Chân NETLIGHT phát hiện trạng thái của mạng
GSM/GPRS được báo hiệu qua một đèn LED, được mắc như sơ đồ bên dưới.
Bảng 3.1 Bảng trạng thái làm việc của NETLIGHT
Trạng thái LED Chức năng của phần GSM/GPRS của SIM548C
Tắt Phần GSM/GPRS của module không chạy
64ms Sáng/800ms Tắt Phần GSM/GPRS của module không tìm thấy mạng
64msSáng/3000ms
Tắt Phần GSM/GPRS của module đã tìm thấy mạng
64
64ms Sáng/300ms Tắt Kết nối GPRS
Chân STATUS cũng được kết nối với một LED báo hiệu hệ thống hoạt động
hay tắt như đã trình bày ở trên. Cả hai chân này khi kéo lên mức logic 1 thì làm đèn
LED sáng lên và khi ở mức logic 0 thì đèn LED sẽ tắt.
Hình 3.5 Đèn LED chỉ thị cho NETLIGHT và chân STATUS
Tiếp đến ta sẽ đề cập đến một phần rất quan trọng trong việc thiết kế phần
GSM/GPRS : Giao tiếp nối tiếp GSM/GPRS. Trong phần GSM/GPRS của module
cung cấp 2 cổng nối tiếp không đồng bộ : Serial port và Debug port.
Serial port (Cổng giao tiếp nối tiếp)
- DCD : chân 25, phát hiện truyền dữ liệu.
- DTR : chân 27, sẵn sàng dữ liệu cuối.
- RXD : chân 29, nhận dữ liệu.
- TXD : chân 31, truyền dữ liệu.
- RTS : chân 33, yêu cầu gửi.
- CTS : chân 35, xóa để gửi.
- RI : chân 37, báo hiệu chuông.
- Debug port (Cổng giao tiếp gỡ rối)
- DBG_RXD : chân 36, nhận dữ liệu.
- DBG_TXD : chân 38, truyền dữ liệu.
65
Trong đồ án, giải pháp cho yêu cầu của đề tài ta chỉ sử dụng cổng Serial port cụ
thể là 2 chân TXD và RXD. Hai chân này sẽ được kết nối tương ứng với 2 chân của vi
điều khiển chân Rx và chân Tx. Do đó ta chỉ đề cập đến hai chân 29 và 31 của phần
này.
Trước khi thiết kế kết nối giữa vi điều khiển với phần GSM/GPRS của module
SIM548C ta phải xét đến các mức điện áp vào ra của mỗi phần.
Ta biết rằng mức logic 1 output (mức ra “ 1” Tx) của vi điều khiển ATMega128
sẽ là cỡ 5V hơn nữa mức logic 1 input (mức vào “1” RXD) của phần GSM/GPRS vào
khoảng 2.1V÷3.3V. Do đó khi kết nối 2 chân này với nhau cần hạ mức điện áp từ
chân ra Tx 5V của vi điều khiển xuống khoảng 2.1V÷3.3V .Giải pháp sử dụng mạch
phân áp cho kết nối trên.
Còn mức logic 1 output (mức ra “1” TXD) của phần GSM/GPRS vào khoảng
2.8V÷3 V là mức mà vi điều khiển vẫn có thể hiểu là mức “1” nên chân TXD của phần
GSM/GPRS ta có thể kết nối trực tiếp với chân Rx của vi điều khiển ATMega128.
Bảng 3.2 Mức logic của chân Serial port
UARTO - TXD
AT Mega 128
UARTO - RXD
R1
R2
2K2
3K3
RXD – GSM
Vih 2.1-3.3V
TXD – GSM
Voh 2.8-3V
Hình 3.6 Sơ đồ chuyển mức điện áp giữa vi điều khiển ATMega128 với phần
GSM/GPRS
66
Giao tiếp serial port hỗ trợ tốc độ truyền : 300, 1200, 2400, 4800, 9600, 19200,
38400, 57600, 115200 mặc định ở tốc độ 115200bps. Tất nhiên khi ta muốn tốc độ nào
đó thì phải thiết lập bằng tập lệnh AT. Chỉ có một số tốc độ sau sẽ được tự động phần
GSM/GPRS dò tìm : 4800, 9600, 19200, 38400, 57600, 115200bps.
Do giao tiếp serial port của phần GSM/GPRS với cổng giao tiếp UART1 của vi
điều khiển nên khi lập trình cho vi điều khiển cổng giao tiếp UART1 phải thiết lập
cổng UART1 ở tốc độ cùng với tốc độ của phần GSM/GPRS.
Giao tiếp SIM Card Holder: ta có thể sử dụng tập lệnh AT để ghi các thông tin
lên thẻ SIM. Giao tiếp SIM hỗ trợ chức năng của GSM Phase 1 và một số chức năng
mới của GSM Phase 2 cho FAST 64kbps. SIM Card được hỗ trợ với 2 mức điện áp
1.8V và 3.0V. Giao tiếp SIM gồm có 5 chân :
- Chân 17 SIM_VDD : chân nguồn cấp cho SIM, nó có thể tự động chuyển
các chế độ nguồn : nguồn 3.0V±10% và nguồn 1.8V±10%, dòng tiêu thụ
vào khoảng 10mA.
- Chân 19 SIM_RST: chân SIM Card Reset.
- Chân 21 SIM_DATA: chân dữ liệu vào ra SIM Card.
- Chân 23 SIM_CLK: chân khóa SIM Card.
- Chân 15 SIM_PRESENCE: chân phát hiện SIM Card.
- Chân 15 SIM_PRESENCE được sử dụng để phát hiện sự có mặt của thẻ
SIM hay không. Ta có thể sử dụng lệnh “AT+CSDT” cấu hình SIMCARD.
Do đó ta có thể không cần sử dụng chân SIM_PRESENCE để phát hiện
SIM Card nữa và chân SIM_PRESENCE sẽ được nối đất.
Như vậy việc thiết kế cho phần GSM/GPRS của SIM548C đã hoàn tất, bấy giờ
ta sẽ chuyển sang thiết kế cho phần GPS của SIM548C.
3.2.2. Thiết kế phần cứng cho phần GPS
Phần GPS của module bao gồm 12 chân, từ chân 49 đến chân 60, ta cũng
chỉ xét một số chân cơ bản để có thể thực hiện mục đích của đồ án : lấy tín hiệu GPS
với giao thức NMEA 0183.
Chân GPS_VCC : cung cấp nguồn cho phần GPS của SIM548C với điện áp vào
khoảng 3V÷5V, điện áp trung bình là 3.3V. Dòng tiêu thụ của phần GPS vào khoảng
lớn hơn 150mA.
67
Chân GPS_VRTC: cũng giống như chân VRTC của phần GSM/GPRS của
module, nó dùng để lưu trữ dữ liệu. Điện áp cung cấp cho chân này vào khoảng 2.7V ÷
3.3V ,điện áp trung bình là 3.0V.
Chân GPS_BOOTSEL : sử dụng với việc thiết lập lại chương trình Flash, nếu
cấp cho chân ở mức cao. Trong đồ án này ta không sử dụng chức năng này do đó sẽ để
chân này nối đất.
Chân GPS_WAKEUP : nó chỉ được sử dụng để wakeup hệ thống từ chế độ
PTF. Do ta cũng không cần dùng chức năng này của phần GPS nên chân này ta nối
đất.
Để kích hoạt chế độ hoạt động của phần GPS, thì chân GPS_VCC cần được cấp
điện áp lớn hơn 2.3V và được giữ tối thiểu trong khoảng 220ms.
Hình 3.7 Kích hoạt chế độ hoạt động của phần GPS
Giao tiếp cổng nối tiếp Serial: phần GPS của module hỗ trợ hai cổng giao tiếp
Serial port A và Serial port B. Cho phép các giao thức khác nhau sẽ hoạt động trên các
cổng khác nhau.
Cổng giao tiếp nối tiếp Serial port A :
- Gồm hai đường giao tiếp : GPS_TXA và GPS_RXA.
- Đường nhận GPS_RXA và đường truyền GPS_TXA.
68
- Được hỗ trợ các tốc độ : 1200 ÷ 115200 bps, nhưng 4800 ÷ 38400 bps là
dải tốc độ chung.
- Giao thức : mặc định NMEA, 4800bps.
- Mặc định bản tin : GGA, GSA, GSV, RMC, VTG.
- Tiêu chuẩn WGS84 mặc định.
- Cổng giao tiếp nối tiếp Serial port B :
- Gồm hai đường giao tiếp : GPS_TXB và GPS_RXB.
- Đường nhận GPS_RXB và đường truyền GPS_TXB.
- Tốc độ hỗ trợ : 1200 ÷ 115200 bps.
- Giao thức : không mặc định.
Với mục đích là tách lấy dữ liệu về tọa độ vị trí, thời gian, …từ bản tin GPRMC
trong giao thức NMEA 0183, nên sử dụng cổng Serial port A.
Do mức logic 1 của cổng Serial port A khoảng 3V nên vi điều khiển vẫn có thể
hiểu đó là mức 1, vì vậy ta sẽ kết nối trực tiếp cổng GPS_TXA với cổng RXD0 của vi
điều khiển ATMega128. Và khi lập trình việc lấy dữ liệu từ cổng GPS_TXA ta phải
thiết lập tốc độ cho cổng RXD0 là 4800bps.
Một điều lưu ý khi sử dụng cổng Serial port A : khởi tạo định dạng dữ liệu 8
data bits, no parity và 1 stop bit.
69
Hình 3.8 Sơ đồ nguyên lí của khối module SIM548C
3.3. Thiết kế phần cứng cho khối vi điền khiển ATMEGA128
Như ta đã nói, chức năng chính của khối vi điều khiển ATMega128 : nhận dữ
liệu GPS từ cổng Serial port A của phần GPS đến chân RXD0 ( thuộc cổng UART0 )
của vi điều khiển. Vi điều khiển sẽ tách dữ liệu nhận được thành các dữ liệu cần lấy
như tọa độ vị trí, thời gian,… rồi sử dụng tập lệnh AT gửi dữ liệu tách được gửi ra
chân TXD1 (thuộc cổng UART1), tập lệnh AT này sau khi đưa vào chân RXD của
phần GSM/GPRS, phần GSM/GPRS sẽ truyền dữ liệu tách được đó qua mạng GPRS
về trung tâm.
Ứng với chức năng đó của vi điều khiển, việc thiết kế phần cứng cho vi điều
khiển ATMega128 cũng khá đơn giản.
70
Hình 3.9 Sơ đồ nguyên lí của vi điều khiển ATMega128
Trước tiên ta phải kể đến tần số thạch anh của ATMega128, ATMega128
thường sử dụng 2 loại thạch anh 8MHz và 12MHz. Trong đồ án này ta sử dụng loại
thạch anh 12MHz với 2 tụ 33pF.
Hình 3.10 Sơ đồ mắc thạch anh với vi điều khiển ATMega128
71
Hai chân của thạch anh sẽ được nối với hai chân 23 XTAL1 và chân 24 XTAL2
của vi điều khiển ATMega128.
Việc reset vi điều khiển sẽ được thiết kế với 1 nút bấm và được nối với chân 20
Reset của vi điều khiển. Reset là chế độ ngắt ưu tiên nhất của vi điều khiển
ATMega128, vì vậy bất kì chương trình đang chạy ở vị trí nào đi chăng nữa khi có một
yêu cầu Reset thì mọi hoạt động sẽ ngừng và hệ thống sẽ thực hiện lại từ đầu.
Hình 3.11 Sơ đồ đấu nối với chân Reset của vi điều khiển ATMega128
Điện áp trung bình cấp cho vi điều khiển ATMega128 là 5V (chân 51,52 VCC),
điện áp lớn nhất 5.5V, dòng tiêu thụ vào khoảng 200÷400 mA .
ATMega128 hỗ trợ hai cổng giao tiếp nối tiếp UART0 và UART1. Cổng
UART0 được thiết lập với tốc độ 4800bps được nối với chân RXD1 phần GPS của
module còn cổng UART1 được thiết lập với tốc độ 9600bps, chân TXD1 được phân
áp với 2 điện trở 2.2k và 3.3k rồi được nối với chân RXD phần GSM/GPRS, chân
RXD1 được nối thẳng với chân TXD của phần GSM/GPRS .
3.4. Thiết kế phần cứng cho khối vi điền khiển ATMEGA32
Mạch điều khiển ATMEGA32 dùng để giao tiếp với module phát tiếng nói
thông qua chuẩn truyền SPI và giao tiếp với quang báo qua cổng COM
72
Hình 3.12 Sơ đồ nguyên lí của vi điều khiển ATMega32
Hình 3.13 Sơ đồ nguyên lí giao tiếp cổng COM
3.5. Khối nguồn cung cấp
Mặc dù nguồn cung cấp không chính thức tham gia vào quá trình truyền dữ liệu
hay xử lý dữ liệu, nhưng để hệ thống hoạt động ổn định thì khối nguồn đóng vai trò
hết sức quan trọng. Vấn đề đặt ra là làm sao thiết kế khối nguồn ngoài việc cung cấp
73
đúng điện áp , đủ dòng cho các khối trong hệ thống, nó phải đảm bảo yêu cầu tính ổn
định.
Trong quá trình thiết kế phần cứng cho hệ thống ta có thể chia ra các nguồn
cung cấp sau :
Thứ nhất : Nguồn cung cấp cho phần GSM/GPRS :
- Nguồn cung cấp cho chân VBAT.
- Nguồn cung cấp cho chân VRTC.
- Nguồn cung cấp cho chân VCHG.
Thứ hai : Nguồn cung cấp cho phần GPS :
- Nguồn cung cấp cho chân GPS_VCC.
- Nguồn cung cấp cho chân GPS_VRTC.
Thứ ba : Nguồn cung cấp cho vi điều khiển ATMega128.
3.5.1. Nguồn cung cấp cho phần GSM/GPRS
Như đã đề cập ở trên ta biết rằng nguồn cung cấp cho chân VBAT vào khoảng
3.4V ÷ 4.5V , trung bình là 4V. Trong một số trường hợp sụt áp lớn do xung truyền
tăng lên, lúc đó dòng tiêu thụ lên tới 2A. Vì vậy nguồn cung cấp cho chân VBAT phải
đủ dòng lên tới 2A.
Hình 3.14 Sự sụt áp đã làm cho dòng tiêu thụ phải tăng lên 2A
Để tối ưu bộ nguồn cấp cho chân VBAT, chúng em đã sử dụng nguồn pin 3.7V
Li-Ion được kết nối thẳng tới chân VBAT của phần GSM/GPRS như
74
Hình 3.15 Sơ đồ chân kết nối Pin Li-Ion cung cấp nguồn cho GSM/GPRS
Chân nguồn VBAT của phần GSM/GPRS được nối thẳng với dương nguồn của
Pin .Chân TEMP_BAT dùng để đo nhiệt độ của Pin .
Chân VCHG được sử dụng để phát hiện nguồn sạc cho Pin và cung cấp phần
lớn dòng sạc cho Pin thông qua phần GSM/GPRS. Yêu cầu chân VCHG được nối với
điện áp 5V, ta có thể sử dụng ngay điện áp 5V cấp cho vi điều khiển để cấp cho chân
này.
Khi phần GSM/GPRS của module phát hiện ra nguồn sạc và Pin thì quá trình
sạc Pin sẽ xảy ra ngay, ngược lại thì quá trình sạc Pin sẽ không xảy ra.
Nguồn cung cấp cho chân VRTC trong phần GSM/GPRS trong khoảng
1.2V÷2.0V, điện áp trung bình 1.8V với dòng tiêu thụ I(max) =20uA. Do đó việc sử
dụng Pin CMOS 3.0V là thích hợp nhất, vì chân VRTC có nhiệm vụ là backup dữ liệu
: thời gian,…ngay cả khi hệ thống mất nguồn. Pin CMOS 3.0V được mắc nối tiếp với
2 điốt 1N4007 để giảm điện áp ra, khi đó điện áp ra theo định luật Kiefhof : 3 - 0.7x2
= 1.6V.
Hình 3.16 Nguồn cấp cho chân VRTC trong phần GSM/GPRS của module.
75
3.5.2. Nguồn cung cấp cho phần GPS và khối ATMega128
Yêu cầu nguồn cung cấp cho khối vi điều khiển ATMega128 là 5V với dòng
tiêu thụ trong khoảng 200 ÷ 400 mA. Như vậy sử dụng IC LM7805C/TO với điện áp
đầu vào khoảng 5 ÷ 35V là rất thích hợp.
Yêu cầu nguồn cung cấp cho chân GPS_VCC vào khoảng 3.0V ÷ 5.0V, điện áp
trung bình là 3.0V với dòng tiêu thụ lớn hơn 150mA. Ta sử dụng con IC LM117 ổn áp
3.3V, với điện áp cố định đầu ra là 3.3V rất phù hợp với yêu cầu của chân GPS_VCC.
Hình 3.17 Khối nguồn cung cấp cho phần GPS và ATMega128
Nguồn cung cấp cho chân GPS_VRTC trong phần GPS vào khoảng 2.7V ÷
3.3V, điện áp trung bình 3.0V nên ta có thể chích lấy chân Pin CMOS cung cấp cho
VRTC trong phần GSM/GPRS (không nối tiếp với 2 điốt 1N4001) để cung cấp cho
chân GPS_VRTC.
3.6. Khối hiển thị
Khối hiển thị có chức năng hiển thị các giá trị: kinh độ, vĩ độ, tốc độ, các dữ
liệu nhận được từ server, và các thông tin khác.
Hình 3.18 Khối hiển thị LCD
76
3.7. Khối tiếng nói
Khối tiếng nói được đặt trên xe buýt có chức năng phát ra âm thanh thông báo:
thông báo xe khởi hành, sắp đến trạm chờ xe buýt, thời gian xe đến trạm kế.
Hình 3.19 Nguyên lý khối phát âm thanh LCD
77
CHƯƠNG 4: LẬP TRÌNH ĐIỀU KHIỂN
Ngôn ngữ sử dụng là C, viết trên phần mềm biên dịch Codevision. Đây là phần
mềm hiệu quả trong việc viết các lệnh điều khiển vi điều khiển AVR, ngoài ra phần
mềm hỗ trợ việc biên dịch, sửa lỗi…
Ngoài phần mềm biên dịch, việc điều khiển module từ vi điều khiển còn sử
dụng tập lệnh AT. Đây là tập lệnh chuyên dùng để điều khiển các thiết bị liên lạc trong
mạng di động, sử dụng giao tiếp nối tiếp.
4.1 Tập lệnh AT
Các thiết bị GSM chuẩn được điều khiển bằng tập lệnh AT thông qua giao diện
kết nối nối tiếp. Ngoài tập lệnh AT chuẩn bao gồm GSM07.05, GSM07.07 và ITU-T
V.25, các thiết bị SIM300CZ và SIM548CZ được mở rộng thêm một số lệnh AT phát
triển bởi nhà sản xuất SIMCOM.
Cú pháp của lệnh AT
Các câu lệnh luôn bắt đầu với tiền tố “AT” hay “at”, và kết thúc bởi ký tự enter
<CR>
Các lệnh AT thường được phản hồi lại bằng cấu trúc: <CR><LF><phản
hồi><CR><LF>
Các câu lệnh AT chỉ được thực hiện khi các thiết bị được cấp nguồn và sẵn
sàng với mã thiết bị trả về “RDY” nhận được qua cổng nối tiếp. Nếu mã trả về là
“SCKS” báo hiệu không nhận dạng được thẻ SIM
Các câu lệnh AT có thể chia làm 3 loại cú pháp chính: “cơ bản”, “tham số S” và
“mở rộng”
Cú pháp cơ bản
Câu lệnh AT có cú pháp: “AT<x><n>” hoặc “AT&<x><n>”, trong đó <x> là
câu lệnh, <n> là một hay nhiều tham số của câu lệnh
Cú pháp tham số S
Câu lệnh AT có cú pháp: “ATS<n>=<m>”, trong đó <n> là chỉ số trong tập S,
<m> là giá trị gán cho nó. <m> là tùy chọn, nếu thiếu, giá trị mặc định sẽ được sử
dụng
Cú pháp mở rộng:
78
Các câu lệnh AT này có thể được sử dụng ở một vài chế độ theo bảng dưới đây:
Bảng 4.1 Bảng phân loại các câu lệnh AT mở rộng
Câu lệnh kiểm tra AT+<x>=? Thiết bị di động sẽ trả về danh
sách các tham số và dải giá trị
tương ứng
Câu lệnh đọc AT+<x>? Câu lệnh này trả về giá trị hiện
tại của các tham số tương ứng
Câu lệnh ghi AT+<x>=<…> Câu lệnh này thiết đặt các
tham số theo giá trị được truyền
vào
Câu lệnh thi hành AT+<x> Câu lệnh này đọc các tham số
cố định ảnh hưởng bởi các quá
trình bên trong thiết bị GSM
Thực thi lệnh AT
Các lệnh AT có thể được kết hợp trong cùng một dòng lệnh hoặc thực hiện từng
câu lệnh trên từng dòng riêng.
Khi kết hợp nhiều câu lệnh trên một dòng, chúng ta không cần thêm các tiền tố
“AT” hay “at” trên mỗi câu lệnh, ngoại trừ ở đầu dòng lệnh. Các câu lệnh cần được
ngăn cách nhau bằng dấu chấm phẩy. Mỗi dòng lệnh có bộ nhớ đệm có khả năng chưa
tối đa 256 ký tự. Nếu dòng lệnh vượt quá giới hạn này, sẽ không có lệnh nào được
thực hiện và thiết bị trả về chuỗi “ERROR”.
Khi thực hiện mỗi lệnh AT trên một dòng, chúng ta buộc phải đợi trả lời cuối
cùng cho câu lệnh đó (ví dụ như OK, CME Error, CMS Error) trước khi gửi lệnh tiếp
theo.
Các tập ký tự hỗ trợ
Giao diện câu lệnh AT của các thiết bị SIM548CZ và SIM300CZ mặc định là
tập ký tự IRA. Nó hỗ trợ đầy đủ các tập ký tự sau:
Định dạng GSM
- UCS2
79
- HEX
- IRA
- PCCP437
Tập ký tự có thể được thiết đặt lại hoặc truy vấn sử dụng câu lệnh “AT+CSCS”
(GSM07.07). Các tập ký tự được định nghĩa trong bản thông số kỹ thuật GSM 07.05
Tập ký tự sẽ ảnh hưởng tới quá trình gửi và nhận tin nhắn nhanh (SMS), các tin
nhắn SMS quảng bá, hiển thị các trường văn bản trong danh bạ và các chuỗi ký tự
trong bộ công cụ ứng dụng của thẻ SIM.
4.2 Tập lệnh AT sử dụng điều khiển module GSM và GPS
4.2.1 Cấu hình cho phần cứng: module simcom548 truy cập GPRS
Khởi tạo cấu hình mặc định cho module
(MT: module. TE: máy tính hoặc thiết bị điều khiển module)
Bảng 4.2 Bảng lệnh cấu hình cho Module GPRS truy cập mạng
80
(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 đế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>
81
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>
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.
(8) AT+CIPMODE=0<CR>
Lựa chọn phương thức giao tiếp với modem để điều khiển quá trình truyền
nhận dữ liệu bằng GPRS. Có hai phương thức:
AT+CIPMODE=0: dùng lệnh AT.
AT+CIPMODE=1: TE truyền nhận dữ liệu trực tiếp với mạng GSM, modem
chỉ đóng vai trò là thiết bị trung chuyển dữ liệu, mà không thực hiện thêm bất cứ thao
tác nào khác.
Phương pháp dùng lệnh AT được lựa chọn vì tính đơn giản, dễ điều khiển, vì
các thao tác với dữ liệu ở các lớp trên sẽ được modem thực hiện thay cho TE.
82
(9) AT+CDNSORIP=0<CR>
Lựa chọn phương thức định địa chỉ cho Server. Có hai phương thức:
AT+CDNSORIP=0: định địa chỉ trực tiếp bằng địa chỉ IP của Server.
AT+CDNSORIP=1: định địa chỉ gián tiếp thông qua tên miền của Server.
Địa chỉ IP của Server sẽ được truy vấn thông qua hệ thống tên miền DNS
(Domain Name Server).
Để đơn giản và tăng tốc độ kết nối và giảm rủi ro, phương thức định địa chỉ trực
tiếp bằng địa chỉ IP được lựa chọn.
(10) AT+CIPCSGP=1,”m-wap”,”mms”,”mms”<CR>
Thiết lập phương thức thực hiện kết nối GPRS.
Có hai phương thức kết nối dữ liệu: đó là kết nối thông qua hệ thống chuyển
mạch CSD (Circuit Switch Data) dựa trên đường truyền vô tuyến của mạng GSM
(tương tự như việc thực hiện một cuộc gọi data call) và phương pháp chuyển mạch gói
GPRS. CSD có lợi thế về vùng phủ sóng, nhưng giá cước đắt (giá cước được tính theo
thời gian kết nối), tốn băng thông vô tuyến (chiếm trọn kênh truyền vô tuyến) và
module SIM548 không hỗ trợ TCP stack cho phương thức kết nối trên, điều đó gây
nhiều khó khăn cho quá trình truyền nhận dữ liệu. Phương thức kết nối bằng GPRS tuy
gặp phải sự hạn chế về vùng phủ sóng nhưng lại có được mọi ưu thế khác so với CSD.
Đó cũng là nguyên nhân GPRS được lựa chọn trong phạm vi ứng dụng của hệ thống.
Phương thức kết nối GPRS và các tham số được thiết lập tương ứng với các
tham số của dịch vụ GPRS của nhà cung cấp dịch vụ mạng di động GSM Vina Fone
tại Việt Nam.
AT+CIPCSGP=1,”m3-world”,”mms”,”mms”<CR>
(11) AT+CIPHEAD=1<CR>
Thêm phần header “+IPDx:” (x là số byte dữ liệu nhận được) vào phía trước
phần dữ liệu nhận được.
(12) AT+CIPSPRT=1<CR>
Thiết lập định dạng cho quá trình truyền dữ liệu bằng lệnh AT+CIPSEND.
(13) AT+CIPSRIP=1<CR>
Thiết lập định dạng phần header của dữ liệu nhận được.
83
(14) AT+CIPSCONT<CR>
Lưu lại cấu hình thiết lập dùng cho quá trình kết nối và truyền nhận dữ liệu
bằng GPRS.
Các lệnh trên chỉ cần được thực thi 1 lần, sau đó lưu lại và trở thành cấu hình
mặc định của modem. Cấu hình mặc định này không thay đổi, kể cả khi mất nguồn.
Phần khởi tạo này không liên quan đến quá trình hoạt dộng sau này của modem. Do đó
có thể khởi tạo riêng trước khi đưa vào vận hành trong hệ thống.
4.2.2 Truyền nhận thông báo về tình trạng GPRS
Các thông số này cần được cấu hình mỗi khi module bị reset.
Bảng 4.3 Tập lệnh tra cứu trạng thái GPRS
(3) AT+CGREG=1<CR>
Lệnh này cho phép modem gửi các thông báo trạng thái kết nối GPRS về TE.
84
Khi vị trí của modem thay đổi từ vùng phủ sóng GPRS sang vùng chưa phủ
sóng GPRS, modem sẽ gửi về chuỗi
<CR><LF>+CGREG: 0<CR><LF>
Trong trường hợp modem ở ngoài vùng phủ sóng GPRS một thời gian đủ lâu,
kết nối GPRS sẽ bị ngắt, và modem gửi về chuỗi:
<CR><LF>+PDP: DEACT<CR><LF>
Ngược lại, khi modem trở về vùng phủ sóng GPRS, modem sẽ gửi về chuỗi:
<CR><LF>+CGREG: 1<CR><LF>
Việc xác định trạng thái kết nối GPRS tại vị trí hiện tại của modem cho phép
chuyển đổi linh hoạt hơn phương thức truyền nhận dữ liệu (ví dụ như chuyển sang
truyền nhận bằng SMS) giúp bảo đảm kết nối được liên tục.
Trong trường hợp cần khảo sát vùng phủ sóng GPRS, có thể khởi tạo bằng
lệnh:
AT+CGREG=2<CR>
Ngoài thông tin về trạng thái sóng GPRS, khi lệnh trên được khởi tạo, khi
modem chuyển từ cell này sang cell khác, hoặc từ vùng phủ sóng này sang vùng phủ
sóng khác, chuỗi trả về sẽ có dạng:
<CR><LF>+CGREG:<stat>,<lac>,<ci><CR><LF>
Ngoài thông tin về trạng thái vùng phủ sóng GPRS, các thông tin khác như Cell
ID (<ci>) và vùng phủ sóng (<lac>) cũng được modem gửi về, cho kết quả khảo sát
chi tiết hơn.
4.2.3 Thiết lập kết nối
Bảng 4.4 Tập lệnh thiết lập cấu hình TCP
85
(1) AT+CIPSHUT<CR>
Hủy bỏ kết các nối trước đó, đưa trạng thái kết nối của module SIM548 về
trạng thái ban đầu (IP INITIAL).
Nếu lệnh trên được thực hiện thành công, chuỗi trả về sẽ có dạng:
<CR><LF>OK<CR><LF>
Trong trường hợp module trước đo đã ở trạng thái IP INITIAL, chuỗi trả về sẽ
có dạng:
<CR><LF>ERROR<CR><LF>
(2) AT+CIPSTART=”TCP”,”222.252.96.179”,”2505”<CR>
Thiết lập kết nối với Server có địa chỉ IP là“222.252.96.179”, port 2505 với
phương thức truyền nhận là TCP. Server này được thiết lập dựa trên phần mềm TCP
server đã đề cập ở trên.
Chuỗi trả về sẽ có dạng:
<CR><LF>OK<CR><LF>
Nếu kết nối được thực hiện thành công, trong khoảng từ 3 đến 4 giây, module
sẽ gửi về một chuỗi thông báo kết nối được thực hiện thành công:
<CR><LF>CONNECT OK<CR><LF>
Nếu sau khoảng thời gian trên mà không nhận được chuỗi thông báo kết nối
thành công, kết nối chắc chắn sẽ không thực hiện được, cần xem lại các trường hợp
sau trước khi bắt đầu khởi tạo lại kết nối từ bước 1:
Module đang ở trạng thái PDP Deactiviated: do không có dữ liệu truyền đi trên
một đường truyền đã được thiết lập trong một thời gian dài (khoảng vài giờ đồng hồ),
hệ thống mạng sẽ tự động hủy kết nối và đưa module trở về trạng thái PDP
Deactiviated. Trong trường hợp này cần reset lại module (dùng lệnh “AT+CFUN=0”
và “AT+CFUN=1”) trước khi bắt đầu thiết lập kết nối.
Chương trình ứng dụng Server chưa được kích hoạt.
Các chương trình bảo mật chạy trên máy tính đang chạy ứng dụng Server chưa
được tắt đi.
4.2.4 Truyền nhận gói
Bảng 4.5 Lệnh gửi dữ liệu qua GPRS
86
(1) AT+CIPSEND=18<CR>
Truyền một gói dữ liệu có số kí tự cần truyền đi là 18. Số kí tự tối đa có thể
truyền trong một gói là 160 kí tự. Nếu số kí tự cần truyền lớn hơn 160 kí tự, module sẽ
tự động tách thành hai hay nhiều gói dữ liệu và truyền đi.
Khi nhận được lệnh trên, module sẽ trả về chuỗi:
<CR><LF>>
Định dạng của chuỗi trả về là “>”, định dạng này có thể thay đổi bằng lệnh khởi
tạo “AT+CIPSPRT”.
Sau khi nhận được chuỗi trên, dữ liệu truyền đi cần được đưa vào, module sẽ tự
động truyền gói dữ liệu đi sau khi đã nhận đủ số kí tự cần truyền (không cần kí tự kết
thúc chuỗi). ( ở đây dữ liệu truyền là dòng Login, 29N1234,1234)
Thời gian truyền dữ liệu khoảng 1 đến 2 giây, tùy theo số byte cần truyền. Nếu
quá trình truyền dữ liệu được thực hiện thành công, chuỗi trả về sẽ có dạng:
<CR><LF>SEND OK<CR><LF>
(2) <CR><LF>RECV FROM:222.252.96.179:2505<CR><LF>
+IPD32:Socket 1 Already login 29N7890<CR>
Cấu trúc một chuỗi dữ liệu nhận được. Định dạng này có thể thay đổi bằng các
lệnh khởi tạo “AT+CIPHEAD” và “AT+CIPSRIP”.
Chuỗi dữ liệu được gửi đến từ địa chỉ IP “222.252.96.179”, port 2505 và có
tổng số byte dữ liệu là 32(+IPD32) và chứa nội dung: “Socket 1 Already login
29N7890<CR><LF>”. Lưu ý là có thêm 2 kí tự <CR> và <LF> đã được thêm vào
chuỗi ở phía Server trước khi Server gửi đi.
4.2.5 Hủy kết nối
87
Kết nối GPRS giữa module SIM548 và Server có thể bị ngắt do:
Module SIM548 chủ động hủy kết nối.
Server chủ động hủy kết nối.
Hệ thống mạng GPRS chủ động ngắt kết nối để tiếp kiệm tài nguyên mạng
Kết nối TCP yêu cầu sự chặt chẽ trong quá trình liên kết và truyền nhận dữ liệu,
đồng thời các đầu cuối phải nhận biết được trạng thái kết nối. Khi kết nối bị hủy, trạng
thái đường truyền được thể hiện trên module SIM548 qua các hiệu ứng sau.
Bảng 4.6 Tập lệnh hủy kết nối GPRS
(1) và (2): module GPRS chủ động hủy kết nối (nên dùng lệnh “AT+CIPSHUT”).
Trong thực tế ứng dụng, hai lệnh này có thể xem là tương đương nhau. Lệnh
“AT+CIPCLOSE” đưa kết nối GPRS trở về trạng thái “STATE: IP CLOSE”. Lệnh
“AT+CIPSHUT” đưa kết nối GPRS trở về trạng thái “STATE: IP INITIAL” (tham
khảo lệnh “AT+CIPSTART” để biết thêm chi tiết.
Khi một trong hai lệnh trên được thực thi, Server cũng sẽ nhận biết được trạng
thái kết nối, và hủy kết nối trên nhằm tiết kiệm tài nguyên đường truyền.
(3) <CR><LF>CLOSED<CR><LF>
Trường hợp này xảy ra khi Server hoặc hệ thống mạng GPRS chủ động hủy kết
nối. Module SIM548 sẽ nhận biết được trạng thái kết nối và gửi thông báo trên vệ phía
TE.
Cả ba trường hợp trên đều có thể sử dụng lệnh “AT+CIPSTART” để khởi tạo
lại một kết nối GPRS mới.
4.3. Lập trình cho vi điều khiển Atmega 128
88
Sau khi phân tích các yêu cầu của đề tài, vi điều khiển phải thực hiện các công
việc: nhận và xử lý dữ liệu GPS, gửi dữ liệu qua GPRS về server, xử lý các thông tin
phản hồi từ server. Do vậy, thuật toán của chương trình như sau:
Begin
Hiển thị dữ liệu
GPS lên LCD
Kiểm tra
Kết nối tới sever
End
Nhận và xử lý dữ liệu
GPS
Chương trình gửi dữ liệu
tới server
Y
N
Khởi tạo các giá trị ban
đầu
Chương trình nhận dữ
liệu từ server và thi hành
Hình 4.1 Lưu đồ thuật toán của vi điều khiển
89
Vì GPS gửi thông tin về là một chuỗi dữ liệu gồm rất nhiều thông tin khác nhau, bản
tin GPS gửi về có cấu trúc:
Hình 4.3 Cấu trúc chuỗi tin GPRMC
$GPRMC,123519,A,4807.038,N,11131.200,E,022.4,084.4,230910,003.1,W*6A
TThhờờii ggiiaann ::
1122 ggiiờờ
3355 pphhúútt
1199 ggiiââyy
((UUTTCC))
BBắắcc
ĐĐôônngg
TTốốcc ĐĐộộ ::
002222..44 KKnnoott
NNggààyy ::
2233//0099//22001100
KKiinnhh ĐĐộộ ::
11111100 3311..220000´
VVĩĩ ĐĐộộ ::
448800 0077..003388´
90
Từ cấu trúc của bản tin để lấy được những thông tin : thời gian, vĩ độ, kinh độ,
tốc độ ta có lưu đồ thuật toán sau:
BEGIN
Data=
“$GPRMC”
Bỏ qua 1 phần tử
Lấy giá trị giờ
Lấy thông số vĩ độ
Bỏ qua 3 phần tử
Bỏ đi 3 phần tử
Y
N
Lấy thông số kinh độ
Lấy ngày tháng năm
Bỏ qua 7 phần tử
Lấy thông số tốc độ
Bỏ qua 3 phần tử
END
Data có “A”N
1
1
Hình 4.4 Lưu đồ thuật toán chương trình con nhận dữ liệu GPS
91
CHƯƠNG 5: XÂY DỰNG PHẦN MỀM SERVER
5.1. Yêu cầu và mục đích của hệ thống phần mềm
Chức năng giám sát:
- Hiển thị vị trí chính xác các phương tiện trên bản đồ.
- Thường xuyên update vị trí của phương tiện.
- Quan sát được lộ trình của phương tiện.
Chức năng điều khiển, cảnh báo:
Thông qua kết nối GPRS, Server kết nối và nhận dữ liệu từ thiết bị, thông qua
dữ liệu nhận về Server thực hiện tính toán các giá trị như: Vị trí, tốc độ, tình trạng xe...
từ đó đưa ra những điều khiển, cảnh báo cho phương tiện.
- Các điều khiển: gửi thông tin tới các trạm chờ xe buýt, gửi thông tin về thời
gian sắp đến trạm kế của xe buýt...
- Các cảnh báo như: Quá tốc độ, cảnh báo khi xảy ra tắc đường và hướng dẫn
xe buýt tìm được đường đi nhanh nhất...
Chức năng quản lý thông tin:
- Bao gồm chức năng theo dõi thông tin vị trí, tốc độ, và các trạng thái khác
của phương tiện.
Phần mềm Server linh hoạt, dễ cài đặt, sử dụng.
92
Hình 5.1 Sơ đồ hệ thống
Hệ thống phần mềm bao gồm 3 phần chính:
- Phần mềm server quản lý kết nối giữa trung tâm và User - là các thiết bị
phần cứng đặt trên xe buýt và các trạm chờ xe buýt.
- Phần mềm hiển thị giao diện quản lý tuyến xe và trạm chờ : Hiển thị thông
tin xe buýt và trạm chờ.
- Hiển thị vị trí của xe buýt và trạm chờ trên bản đồ offline.
5.2.Cấu trúc và sơ đồ giải thuật
5.2.1. Cấu trúc
Phần mềm xây dựng trên sơ đồ 3 lớp:
Hình 5.2 Sơ đồ phần mềm theo lớp
93
5.2.2. Sơ đồ giải thuật
Dữ liệu thu nhận qua
server
Phân tích và xử lý dữ liệu
Quản lý thông
tin về buýt và
trạm buýt
Hiển thị lên
bản đồ buýt
và trạm
buýt
Gửi xuống
buýt và
trạm xe
buýt
Thông tin vị tríTính toán
khoảng cách
Lưu trữ thông
tin
Hình 5.3 Sơ đồ giải thuật
94
5.3. Xây dựng phần mềm server quản lý phương tiện, ứng dụng giao thức TCP/IP
5.3.1 Ứng dụng giao thức TCP/IP trong việc liên kết các user qua mạng
internet.
5.3.1.1. Sơ lược về TCP server.
Đây là chương trình trên máy tính dùng để truyền nhận các gói TCP giữa các
thiết bị và máy tính được kết nối với đường truyền internet công cộng. Phần mềm do
nhóm tự thiết kế và thực hiện.
Phần mềm này thực hiện bằng công cụ socket cho phép ta biết được địa chỉ của
server mà thiết bị cần kết nối, để thực hiện các thao tác sau này.
Trong quá trình truyền dữ liệu qua mạng internet có 2 giao thức là UDP và TCP
dùng để truyền nhận dữ liệu. TCP có ưu điểm hơn là: Đảm bảo độ tin cậy của gói dữ
liệu được truyền đi do quá trình kết nối và bắt tay chặt chẽ giữa client (trong trường
hợp này là module SIM548) và server. Tuy tốc độ chậm nhưng vẫn phù hợp với các
ứng dụng. Vì thế nhóm chọn giao thức TCP để kết nối trong hệ thống.
5.3.1.2. Đơn vị điều khiển socket
Đây là công cụ được lựa chọn để xây dựng ứng dụng server. Thực tế quá trình
khảo sát cho thấy một số hạn chế sau:
Số lượng socket hạn chế: Có thể tạm hiểu một socket là một liên kết. Khi một
client thiết lập một kết nối với server, chương trình ứng dụng sẽ phải mở một socket
(hay một liên kết) để thao tác với kết nối đó. Do số lượng socket có hạn (65535
socket), bên cạnh đó số lượng client trong hệ thống là rất lớn, do đó cần quản lí thật
chặt các liên kết, hủy bỏ các kết nối không hiệu quả, không truyền nhận dữ liệu sau
một khoảng thời gian ngắn.
Thời gian xử lí khá chậm: Do giao thức TCP/IP đòi hỏi một quy trình bắt tay
chặt chẽ, gói dữ liệu trước khi truyền nhận phải chờ thông tin phản hồi của gói dữ liệu
trước đó, nên thời gian xử lí một gói TCP/IP lên đến khoảng 200 ms. Do đó cần có sự
cân đối giữa thời gian truyền nhận và số lượng liên kết cho phép.
5.3.1.3. Quy trình tạo một server trên máy tính sử dụng socket
Tạo một phần mềm server có khả năng mở socket liên kết, khả năng trao đổi dữ
liệu giữa server và client, chức năng hiển thị các liên kết và điều khiển các client.
Sau khi có được phần mềm, ta phải tạo một ứng dụng chạy trên mạng NAT (
mạng ảo hóa nội bộ) chỉ đến server, bằng cách mở một Port trên modem chỉ đến máy
95
tính đang chạy phần mềm server. Port này chứa IP của máy tính chạy server trên mạng
LAN.
Sau đó thông báo địa chỉ IP của modem ADSL cho client được biết. Cách biết
được IP của một kết nối, truy cập vào website www.IP2location.com.
Client sẽ dùng địa chỉ IP này để kết nối đến server.
5.3.2 Giải pháp ứng dụng của module Sim548 trong việc kết nối server- client
5.3.2.1. Đối với server.
Đầu tiên, Server thực hiện thao tác lắng nghe yêu cầu kết nối. Khi có một yêu
cầu thực hiện kết nối, thì cho phép thực hiện kết nối.
Khi kết nối thành công thì cho phép truyền nhận dữ liệu, nhưng nếu user ngắt
kết nối, kết nối sẽ bị hủy nhằm tiết kiệm tài nguyên. Qua thực tế kiểm nghiệm các
mạng GPRS hiện hành, mặc dù kết nối đã bị hủy bởi hệ thống mạng, nhưng phía
module và Server vẫn không nhận biết được trạng thái đường truyền đã bị hủy. Thao
tác này giúp giảm bớt rủi ro của các liên kết truyền nhận dữ liệu trong quá trình vận
hành hệ thống.
Xây dựng giao thức liên kết dữ liệu: Tùy theo mục đích sử dụng của dữ liệu, ta
có thể xây dựng một giao thức phù hợp. Đây là giao thức được sử dụng trong quá trình
thử nghiệm ứng dụng GPRS login: UserID, password dùng cho thao tác login_data,
nội dung dữ liệu dùng cho quá trình truyền nhận dữ liệu. Có thể bổ sung thêm các cấu
trúc dùng cho các thao tác điều khiển, nhận biết.
5.3.2.2. Module Sim548
Chú ý thời gian thực thi của mỗi lệnh và đặt thời gian “time-out” hợp lí. Đặc
biệt chú ý các lệnh “AT+CIPSTART” và “AT+CIPSEND”. Nếu thời gian thực thi lâu
hơn thời gian khảo sát, kết quả thực thi các lệnh này chắc chắn thất bại.
Do phía server đã chủ động được các liên kết, nên khi nhận được chuỗi
“<CR><LF>CLOSED<CR><LF>”, nếu có nhu cầu tiếp tục truyền nhận thông tin, cần
khởi tạo kết nối với server và “login” trong khoảng thời gian 1 phút kể từ khi kết nối
được thực hiện.
Nếu quá trình khởi tạo kết nối gặp khó khăn, nên reset lại module (bằng lệnh
“AT+CFUN=0” và “AT+CFUN=1”) và bắt đầu khởi tạo lại kết nối.
Khi nhận được chuỗi “<CR><LF>+CGREG: 0<CR><LF>” thông báo vị trí
hiện tại của module không được hỗ trợ sóng GPRS, nên tạm thời ngắt kết nối GPRS
96
cho đến khi chuyển đến vị trí có sóng GPRS (nhận biết bằng chuỗi
<CR><LF>+CGREG: 1<CR><LF>), hoặc chuyển sang phương pháp truyền nhận dữ
liệu khác, chẳng hạn như SMS.
5.3.3 Khả năng và mức độ đáp ứng của Server
Trên lý thuyết mức độ hỗ trợ của server có thể lên đến hàng ngàn user một lúc.
Tuy nhiên trong điều kiện đồ án này, nhóm chưa thực nghiệm được cụ thể, hiện mới
chỉ thử nghiệm với 3 user thật và 2-3 user ảo và hệ thống hoàn toàn đáp ứng.
Để có thể duy trì hệ thống thì cần có kế hoạch trong việc truyền và nhận dữ
liệu. Đặt các cơ chế cập nhật thời gian một cách chính xác và tiết kiệm. Hiện nay các
dữ liệu của user được cập nhật liên tục.
Tốc độ truyền nhận dữ liệu giữa module và server là khá nhanh, đạt mức
20kbps.
5.3.4 Vấn đề bảo mật của hệ thống
Có thể hình dung GPRS như một mạng LAN sử dụng đường truyền vô tuyến
thay cho đường truyền bằng cáp mạng. Mọi kết nối với mạng internet bên ngoài đều
thông qua 1 Gateway. Do đó mạng internet bên ngoài không thể “nhìn thấy” được địa
chỉ IP của thiết bị bên trong (trong trường hợp này là module SIM548), mà chỉ “nhìn
thấy” được địa chỉ IP của Gateway của mạng GPRS của nhà cung cấp dịch vụ.
Như vậy, server không thể phân biệt được module nào vừa thực hiện kết nối với
Server nếu chỉ dựa vào địa chỉ IP. Muốn làm được điều đó, thì sau khi thực hiện được
liên kết, module user phải gửi các gói dữ liệu cung cấp thông tin về module đó cho
server. Khi xây dựng hệ thống, để phân biệt được thông tin nhận được từ module nào
gửi đến, phải qui định cho mỗi module một “ID”, chẳng hạn như mã xe mà module đó
đang được gắn lên. Công việc này đồng nghĩa với việc ta đang xây dựng một lớp ứng
dụng dựa trên lớp TCP. Quy trình cung cấp thông tin về module cho Server tương tự
như một quy trình “đăng nhập” thường thấy trong các ứng dụng liên quan đến mạng
internet như Yahoo.
Tuy nhiên, module Sim548 lại có thể “nhìn thấy” địa chỉ IP của Server. Khi
module SIM548 nhận được gói dữ liệu được truyền đi từ Server, địa chỉ IP của Server
được hiển thị trong phần header của gói dữ liệu đó. Thông tin này giúp module phân
biệt được các gói dữ liệu nhận được và có được phương thức xử lí phù hợp.
Về phía Server, nếu chỉ dừng lại ở việc quy định “ID” cho mỗi module SIM548
thì vẫn có nhiều chỗ hở trong vấn đề bảo mật, vì chỉ cần nắm được thông tin về ID,
97
một thiết bị bên ngoài hệ thống đang xây dựng vẫn có thể kết nối, đăng nhập vào
Server và gây ra những khó khăn cho hệ thống. Vì thế để tăng cường phương thức bảo
mật hệ thống, sản phẩm được áp dụng một số giải pháp sau:
- Xây dựng một “tường lửa” (firewall): Tức là chỉ cho phép một số địa chỉ IP
được thực hiện kết nối với Server, bao gồm địa chỉ IP của các gateway của
nhà cung cấp dịch vụ (địa chỉ IP của mạng Viettel là “203.113.138.98”, của
mạng Mobi Fone là “210.245.59.148”), một số địa chỉ IP có thể nhận biết
được và không cho phép các địa chỉ IP lạ đăng nhập vào hệ thống. Hạn chế
của “tường lửa” là không phân biệt được thiết bị có thuộc hệ thống hay
không, ví dụ như một “hacker” có thể sử dụng một module SIM548 và dùng
mạng GPRS của Viettel để đăng nhập vào hệ thống, khi đó “tường lửa” sẽ
không phân biệt được đâu là module của “hacker”, đâu là module của hệ
thống, vì cả hai đều có chung một địa chỉ IP mà “tường lửa” cho phép vượt
qua, đó là địa chỉ IP của gateway của mạng Viettel, và “hacker” đã vượt qua
được “tường lửa” một cách dễ dàng.
- Xây dựng cơ chế “login”: Đây là bước sàng lọc tiếp theo sau “tường lửa”.
Sau khi đã thực hiện được kết nối với Server, các module phải cung cấp ID
và password phù hợp để Server nhận diện, và có thể được mã hóa/giải mã
nếu cần thiết.
- Xây dựng một giao thức riêng cho lớp ứng dụng: Cơ chế này phục vụ cho
quá trình sàng lọc thông tin được gửi đến từ các module SIM548. Những gói
dữ liệu không phù hợp với giao thức sẽ bị loại bỏ, vì dữ liệu đó chắc chắn
không phải do các module SIM548 trong hệ thống gửi đến.
- Xây dựng cơ chế mã hóa và giải mã dữ liệu: Cơ chế này chỉ nên được sử
dụng trong những hệ thống yêu cầu tính bảo mật cao, vì sẽ tiêu tốn nhiều tài
nguyên, và tăng gánh nặng về xử lí thuật toán cho các hệ nhúng được sử
dụng trong hệ thống.
5.3.5 Giải pháp GPRS
Ứng dụng GPRS trong truyền nhận dữ liệu mang lại nhiều ưu thế hơn so với
SMS:
- Chi phí duy trì hệ thống thấp hơn rất nhiều lần so với SMS.
- Tốc độ nhanh, dung lượng thông tin cho phép truyền tải lớn.
- Độ tin cậy cao.
98
- Chủ động được trạng thái đường truyền.
- Tương thích với nhiều mô hình ứng dụng, từ đơn giản đến phức tạp.
Tuy nhiên trong thực tế, hạn chế của GPRS là vùng phủ sóng, độ ổn định,
nhưng hiện nay các mạng cung cấp dịch vụ GPRS tại Việt Nam phủ sóng GPRS ở hầu
hết các khu vực từ thành phố đến nông thôn. Phương thức này có khả năng mang lại
một giải pháp hoàn thiện cho ứng dụng.
GPRS là một công nghệ khá hoàn thiện và phổ biến hiện nay, việc lựa chọn sử
dụng GPRS hoàn phù hợp và đáp ứng được yêu cầu đặt ra cũng như yêu cầu công
nghệ hiện nay.
Ngoài ra, ta còn kết hợp sử dụng GPRS và SMS để làm toàn diện hơn ứng
dụng. Đôi khi do điều kiện trí hiện tại của module không được hỗ trợ sóng GPRS, môi
trường, lỗi mạng ta không thể kết nối và sử dụng GPRS có thể tạm thời thay thế đường
truyền dữ liệu GPRS bằng dịch vụ SMS. Giải pháp này vừa tiết kiệm chi phí duy trì hệ
thống, vừa hoàn thiện ứng dụng.
5.4. Xây dựng phần mềm Server dùng Java
5.4.1 Java và lịch sử phát triển
Java là ngôn ngữ lập trình hướng đối tượng (tựa C++) do sun Microsystem
đưa ra vào giữa thập niên 90. Chương trình viết bằng ngôn ngữ lập trình java có thể
chạy trên bất kỳ hệ thống nào có cài máy ảo java (Java Virtual achine).
Ngôn ngữ lập trình Java do James Gosling và các công sự của Công ty Sun
Microsystem phát triển. Đầu thập niên 90, Sun Microsystem tập hợp các nhà nghiên
cứu thành lập nên nhóm đặt tên là Green Team. Nhóm Green Team có trách
nhiệm xây dựng công nghệ mới cho ngành điện tử tiêu dùng. Để giải quyết vấn đề
này nhóm nghiên cứu phát triển đã xây dựng một ngôn ngữ lập trình mới đặt tên
là Oak tương tự như C++ nhưng loại bỏ một số tính năng nguy hiểm của C++ và
có khả năng chạy trên nhiều nền phần cứng khác nhau. Cùng lúc đó world wide
web bắt đầu phát triển và Sun đã thấy được tiềm năng của ngôn ngữ Oak nên đã đầu
tư cải tiến và phát triển. Sau đó không lâu ngôn ngữ mới với tên gọi là Java ra
đời và được giới thiệu năm 1995.
99
5.4.2 Các khối chức năng thực hiện yêu cầu đặt ra
Hiển thịHiển thị
Bản đồ offline
Hiển thị vị trí
thông tin xe
và trạm chờ
Nhận và xử
lý dữ liệu
Lắng nghe,
chờ yêu cầu
Kết nối
Điều khiển
Gửi tín hiệu
tới xe bus, trạm
chờ xe bus
Hình 5.4 Sơ đồ khối Server
Khối kết nối: Thực hiện thao tác lắng, chờ yêu cầu kết nối từ user và sau khi có
yêu cầu kết nối thì thực hiện thao tác kết nối Server với user.
Khối xử lý dữ liệu: Dữ liệu khi được các user gửi về Server sẽ được phân tích
và tách thành các mục riêng biệt nhờ vào các hàm tách và phân chia dữ liệu. Dữ liệu
về vị trí, tốc độ. .. Dữ liệu về vị trí được quy đổi thành các tọa độ bao gồm: Kinh độ và
vĩ độ. Sau đó các dữ liệu này được lưu lại sử dụng.
Khối hiển thị: Sẽ tự động cập nhật các thông tin của phương tiện và hiển thị.
Khối hiển thị thông tin, vị trí xe buýt và trạm chờ trên bản đồ.
Khối điều khiển: dữ liệu sau khi xử lý sẽ được tính toán khoảng cách rồi thông
báo cho xe buýt và trạm chờ xe buýt.
5.4.3. Các công việc thực hiện để xây dựng phần mềm Server
Server thực hiện thao tác lắng nghe, chờ yêu cầu kết nối từ user và sau khi có
yêu cầu kết nối thì thực hiện thao tác kết nối Server với user.
Sau khi Server đã được kết nối với user, Server thực hiện nhận và xử lý dữ liệu
từ user gửi về. Dữ liệu user gửi về là một chuỗi các thông tin, gồm có kinh độ, vĩ độ,
tốc độ,...ta thực hiện các thao tác để tách riêng từng dữ liệu cần thiết thành các mảng
riêng biệt. Dữ liệu này sẽ phục vụ cho các khối hiển thị và khối điều khiển.
100
5.4.3.1. Xây dựng bản đồ offline
Bản đồ offline là một bản đồ tĩnh, mỗi khu vực nhất định được hiển thị bằng
một bản đồ, trong đồ án chúng em thực hiện sử dụng khảo sát khu vực Trường ĐH Sư
phạm kỹ thuật Thành Phố Hồ Chí Minh.
Từ tọa độ thật của phương tiện để hiển thị chính xác vị trí của phương tiện trên
bản đồ ta phải dựa và thuật toán cụ thể.
Thuật toán xác định vị trí phương tiện trên bản đồ:
Im.Width
Im.H
eig
ht
(Lngmax,Latmax)
Longitude
Latitude
X
Y
Hình 5.5 Tọa độ của đối tượng trên bản đồ
Đầu tiên, xác định tọa độ của bốn vị trí trên góc bản đồ, khi biết được tọa độ
của đối tượng, sử dụng công thức sau để xác định vị trí:
. ( )* .. (5.1)
.
Im Width X Lngmin X Lngmin Map widthIm Width
Map Width Lngmax Lngmin Lngmax Lngmin
. ( )* .. (5.2)
.
Im Height Y Latmin Y Latmin Map HeightIm Height
Map Height Latmax Latmin Latmax Latmin
(X,Y) là tọa độ vị trí cần xác định trên bản đồ
101
Map.Width là chiều rộng của bản đồ, Map.Height là chiều dài của bản đồ
Với vị trí của bốn góc bản đồ được lấy thực tế có tọa độ như sau:
latmax = 10.853750, lngmin = 106.771320
latmin=10.850996, lngmax=106.774484
5.4.3.2. Xây dựng thuật toán tính khoảng cách
Điểm mốc
Điểm mốc được lấy như trên hình vẽ, được coi là điểm xuất phát của xe. Con
đường được chia ra thành nhiều đoạn bằng nhau,mỗi đoạn cách nhau 10m. Tọa độ của
mỗi đoạn được đi lấy thực tế bằng module GPS.Chiều dài bus đi được tính từ mốc
bằng chiều dài của số đoạn bus đã đi qua nhân cho 10.
Latitude, longitude là vị trí thực của xe buýt gửi về qua module sim548. Dùng
hàm tính khoảng cách từ vị trí thực của xe tới tọa độ của con đường. Khoảng cách
được so sánh nếu nhỏ hơn 5m thì sẽ lấy tọa độ đang xét là tọa độ của xe buýt.
Công thức tính khoảng cách hai điểm theo kinh độ và vĩ độ:
Dist=6378000*acos(sin(latA)*sin(latB)+cos(latA)*cos(latB)*cos(lonB-lonA))
Dist: là khoảng cách giữa hai điểm.
latA,lonA: Vĩ độ, kinh độ của điểm A.
latB,lonB: Vĩ độ, kinh độ của điểm B.
102
CHƯƠNG 6: KẾT QUẢ THỰC NGHIỆM
6.1. Thực nghiệm đánh giá sai số của hệ thống
Tiến hành thực nghiệm đánh giá sai số nhận tín hiệu định vị GPS từ module hệ
thống. Ta tiến hành lấy tọa độ và kiểm tra tại 7 điểm: điểm 1, điểm 2, điểm 3,điểm 4,
điểm 5, điểm 6, điểm 7. Tại mỗi điểm ta thực hiện lấy toạ độ 10 lần, các điểm lần lượt
cách nhau 40m và điểm 1 cách điểm gốc 40m. Tiến hành đo và tính toán quy đổi ta thu
được các kết quả
Bảng 6.1 Kết quả thống kê đo được khoảng cách của điểm 1 so với điểm gốc từ
thực tế
STT Khoảng cách thực tế (m) Khoảng cách đo được từ mạch (m) Sai số (m)
1 40 42.05 2.05
2 40 38.22 1.78
3 40 38.32 1.68
4 40 37.71 2.29
5 40 39.02 0.98
6 40 37.95 2.05
7 40 36.08 3.92
8 40 37.95 2.05
9 40 34.78 5.22
10 40 35.33 4.67
103
Bảng 6.2 Kết quả thống kê đo được khoảng cách của điểm 2 so với điểm 1 từ
thực tế
STT Khoảng cách thực tế (m) Khoảng cách đo được từ mạch (m) Sai số (m)
1 80 80.30 0.3
2 80 81.37 1.37
3 80 81.30 1.3
4 80 80.93 0.93
5 80 81.14 1.14
6 80 81.37 1.37
7 80 81.59 1.59
8 80 81.85 1.85
9 80 82.08 2.08
10 80 82.32 2.32
Bảng 6.3 Kết quả thống kê đo được khoảng cách của điểm 3 so với điểm 1 từ
thực tế
STT Khoảng cách thực tế (m) Khoảng cách đo được từ mạch (m) Sai số (m)
1 120 117.66 2.34
2 120 117.61 2.39
3 120 118.51 1.49
4 120 116.92 3.08
104
5 120 117.83 2.17
6 120 114.63 5.37
7 120 112.05 7.95
8 120 113.34 6.66
9 120 117.82 2.18
10 120 123.35 3.35
Bảng 6.4 Kết quả thống kê đo được khoảng cách của điểm 4 so với điểm 3 từ
thực tế
STT Khoảng cách thực tế (m) Khoảng cách đo được từ mạch (m) Sai số (m)
1 160 157.45 2.55
2 160 160.76 0.76
3 160 161.45 1.45
4 160 161.93 1.93
5 160 161.75 1.75
6 160 161.38 1.38
7 160 161.60 1.6
8 160 162.49 2.49
9 160 162.80 2.8
10 160 162.75 2.75
105
Bảng 6.5 Kết quả thống kê đo được khoảng cách của điểm 5 so với điểm 4 từ
thực tế
STT Khoảng cách thực tế (m) Khoảng cách đo được từ mạch (m) Sai số (m)
1 200 205.97 5.97
2 200 205.65 5.65
3 200 203.49 3.49
4 200 200.17 0.17
5 200 200.02 0.02
6 200 202.55 2.55
7 200 200.76 0.76
8 200 204.04 4.04
9 200 205.88 5.88
10 200 208.73 8.73
Bảng 6.6 Kết quả thống kê đo được khoảng cách của điểm 6 so với điểm 5 từ
thực tế
STT Khoảng cách thực tế (m) Khoảng cách đo được từ mạch (m) Sai số (m)
1 40 39.38 0.62
2 40 38.46 1.54
3 40 37.63 2.37
4 40 35.16 4.84
5 40 36.37 3.63
106
6 40 39.05 0.95
7 40 35.89 4.11
8 40 36.13 3.87
9 40 37.64 2.36
10 40 36.76 3.24
Bảng 6.7 Kết quả thống kê đo được khoảng cách của điểm 7 so với điểm gốc từ
thực tế
STT Khoảng cách thực tế (m) Khoảng cách đo được từ mạch (m) Sai số (m)
1 80 84.89 4.89
2 80 84.503 4.503
3 80 84.78 4.78
4 80 84.66 4.66
5 80 80.35 0.35
6 80 82.12 2.12
7 80 78.087 1.913
8 80 83.46 3.46
9 80 74.69 5.31
10 80 86.15 6.15
Từ bảng trên ta thấy sai số trung bình của mạch phần cứng: 2.92m
So với chiều dài của xe buýt thì sai số của hệ thống trên hoàn toàn chấp nhận
được.
107
6.2. Thực nghiệm đánh giá tính ổn định của hệ thống
Tiến hành thực nghiệm đánh giá độ ổn định của hệ thống trong điều kiện
chung: xe di chuyển với vận tốc 5km/h, quãng đường 820m và các điều kiện thời tiết
khác nhau, ta thu được biểu đồ thể hiện mối liên quan đến thời tiết của hệ thống.
010203040
50607080
lần
1
lần
2
lần
3
lần
4
lần
5
lần
6
lần
7
lần
8
lần
9
lần
10
số lần thử
số lầ
n t
ính
to
án đượ
c
thời tiết tốt thời tiết xấu
Hình 6.1 Biểu đồ tính ổn định của hệ thống
Dựa trên số lần mạch phần cứng kết nối và truyền dữ liệu kinh độ và vĩ độ về
phần mềm server ta rút ra nhận xét: khi thời tiết tốt ( trời nắng, ít mây…) hệ thống hoạt
động ổn định truyền nhận dữ liệu dễ dàng, số lần truyền dữ liệu là liên tục và hầu như
tuyệt đối. Do đó hệ thóng sẽ hoạt động tốt trong điều kiện thời tiết ít mây, trời nắng
đẹp
Nguyên nhân: Khi thời tiết xấu số vệ tinh GPS mà thiết bị thu GPS nhìn thấy sẽ
ít, từ đó tọa độ nhận được thiếu chính xác bị lệch, khoảng giá trị này rơi ra ngoài
khoảng sai số cho phép của việc tính toán của phần mềm. Do đó server sẽ không tính
toán được khoảng cách thực tế, số lần tính toán được sẽ ít hơn, không gửi được các
thông báo và lệnh điều khiển thường xuyên về module.
108
CHƯƠNG 7: CÁC KẾT QUẢ ĐẠT ĐƯỢC, KẾT LUẬN VÀ
HƯỚNG PHÁT TRIỂN
7.1. Các kết quả đạt được
7.1.1. Thiết kế chế tạo thành công mạch phần cứng, hiển thị các thông số.
Hình 7.1 Mạch sản phẩm hoạt động
Hoàn thiện mạch module GPS và GPRS, thu thập dữ liệu GPS, hiển thị chính
xác các thông tin vị trí. Nhận tín hiệu mạng GSM và kết nối GPRS.
Mạch hoàn chỉnh, nhỏ gọn và tiện dụng.
109
7.1.2. Xây dựng phần mềm server có chức năng giám sát và quản lý
Hình 7.2 Giao diện phần mềm server.
Các chức năng:
- Cơ chế trả lời và phúc đáp kết nối. Thực hiện kết nối với các client.
- Quản lý các kết nối với các user.
- Trao đổi dữ liệu hai chiều giữa server và user
- Mô tả các kết nối của hệ thống, thông tin về địa chỉ IP của server
- Phần mềm có giao diện trực quan. Có thể quan sát trực tiếp các phương tiện
trên các bản đồ .
- Hiển thị các thông tin về phương tiện ngay trên các thanh trạng thái.
110
7.1.3. Bản đồ offline
Hình 7.3 Giao diện bản đồ offline.
7.1.4. Ý nghĩa thực tiễn
Đối với nhà điều hành phương tiện công cộng, dễ dàng trong việc quản lý giám
sát các tuyến xe buýt, tiết kiệm nhân lực trong việc điều hành và người thông báo theo
xe buýt. Kết hợp với mạng lưới quản lý giao thông khác đưa ra thông báo dự đoán
chính xác cho người sử dụng xe buýt (ví dụ trường hợp kẹt xe có thể thông báo tới
trạm chờ để người sử dụng biết được)
Với người sử dụng xe buýt, các thông báo bằng quang báo và âm thanh rõ ràng
ở đầu và cuối trạm được thực hiện một cách tự động giúp người đi nhận được thông tin
hỗ trợ chính xác nhất, hướng dẫn người sử dụng lên xuống xe đúng cửa không gây lộn
xộn
111
7.2. Kết luận
7.2.1 Kết luận
Xây dựng được hệ thống trung tâm quản lý có khả năng giám sát và điều hành
được rất nhiều tuyến xe buýt. Ngoài các tính năng ban đầu, có khả năng tích hợp nhiều
ứng dụng khác nhau.
Thành công trong việc chế tạo phần cứng và phần mềm: Sản phẩm phần cứng
nhỏ gọn, đa chức năng, đáp ứng đầy đủ các yêu cầu về xử lý tín hiệu, truyền tải số
liệu, giao tiếp người dùng… Bên cạnh đó với phần mềm quản lý hoàn chỉnh, giao diện
trực quan, có tính ổn định cao giúp cho người sử dụng thao tác nhanh chóng, dễ dàng
Về cá nhân, nhóm cũng đã thu thập được lượng kiến thức lớn từ việc thiết kế,
chế tạo mạch đến việc thiết kế và viết ứng dụng phần mềm. Qua thực tế làm việc,
nhóm cũng đã hiểu sâu hơn về hệ thống thông tin di động, định vị GPS cũng như mạng
lưới thông tin, bên cạnh đó là các yếu tố liên quan giữa bài toán kỹ thuật và kinh tế,
hiệu quả và giá thành.
7.2.2. Các vấn đề còn chưa được giải quyết
Dữ liệu bản đồ số hóa là sản phẩm thương mại, hiện tại hệ thống chưa tích hợp
được đầy đủ các dữ liệu bản đồ.
Vấn đề quản lý cơ sở dữ liệu mới chỉ dừng lại ở mức đơn giản.
7.2.3. Đánh giá
Với khoảng thời gian hạn chế, nhóm đã phân tích và tìm hiểu về các kiến thức
liên quan đến hệ thống, bản thân đề tài có rất nhiều vấn đề cần giải quyết nên hẳn còn
nhiều thiếu sót.. Dù vậy, nhóm tự đánh giá quá trình thực hiện thành công trong việc
đưa ra một giải pháp hoàn chỉnh và giá thành hạ trong vấn đề quản lý hệ thống các
tuyến xe buýt, tạo sự thuận tiện thoải mái cho người sử dụng xe buýt
Đánh giá về khả năng ứng dụng thực tiễn, nhóm cho rằng sản phẩm hoàn toàn
có thể ứng dụng thực tế đuợc ngay. Tuy nhiên vấn đề chuẩn bị cơ sở vật chất phải chu
đáo, hạ tầng cơ sở mạng phải được đảm bảo. Với những ứng dụng phức tạp cần có thời
gian thử nghiệm và đo đạc một cách chính xác. Ngoài ra một số tính năng chưa hoàn
thiện cũng cần phải bổ sung để có thể đem lại nhiều giá trị ứng dụng hơn.
112
Cuối cùng, nhóm hy vọng những kết quả đã đạt được sẽ giúp ích một phần nào
đó cho những người nghiên cứu cùng lĩnh vực tham khảo và tiếp tục phát triển thành
các giải pháp hiệu quả, hoàn thiện và có tính ứng dụng cao hơn.
7.3. Hướng phát triển của đề tài
- Phát triển hệ thống quản lý nhiều xe: Hệ thống xe taxi, xe buýt, xe tải…
- Thực hiện điều khiển giám sát toàn diện hơn phương tiện trong hệ thống:
• Trạng thái tắt/mở máy
• Mô phỏng toàn bộ lộ trình của xe đã đi qua.
• Giám sát xe trên nền bản đồ 64 tỉnh thành Việt Nam.
• Thông báo về trung tâm khi xe có sự cố
• Đo mức nhiên liệu trong bình chứa
• Tích hợp camera theo dõi …
- Xây dựng trang web quản lý trực tuyến với hệ cơ sở dữ liệu hoàn thiện.
- Đưa sản phẩm vào ứng dụng trong thực tế và có tính thương mại cao.
113
TÀI LIỆU THAM KHẢO
[1] Wikipedia, Hệ thống định vị toàn cầu ( 10/07/2010), http://vi.wikipedia.org/
[2] Ted Van Sickle, Programming Microcontrolers in C, Second Edition, LLH
Technology Publishing, 2001
[3] Đoàn Văn Ban, Lập trình hướng đối tượng với JAVA, nhà xuất bản khoa học kỹ
thuật, Hà Nội, 2005
[4] Richard Barnett, Sarah Cox and Larry O’Cull, Embedded C programming And
the Atmel AVR, Second Edition, 2006
[5] Bill Dudney, Jonathan Lehr, Bill Willis, LeRoy Mattingly, Mastering JavaServer
Faces,Wiley Publishing, Canada, 2004