Hệ thống thông tin di động toàn cầu (Global System for Mobile Communications) là một công nghệ chuẩn dùng cho mạng thông tin di động. Các mạng thông tin di động GSM cho phép có thể chuyển vùng với nhau do đó những máy điện thoại di động của các mạng GSM khác nhau ở có thể sử dụng được nhiều nơi trên thế giới. Các mạng di động GSM hoạt động trên 4 tần số. Hầu hết thì hoạt động ở tần số 900 MHz và 1800 MHz.
Nó được xem như là một hệ thống ĐTDĐ thế hệ thứ hai (second generation, 2G). GSM là một chuẩn mở, hiện tại nó được phát triển bởi 3rd Generation Partnership Project (3GPP) Đứng về phía quan điểm khách hàng, lợi thế chính của GSM là chất lượng cuộc gọi tốt hơn, giá thành thấp và dịch vụ tin nhắn. Thuận lợi đối với nhà điều hành mạng là khả năng triển khai thiết bị từ nhiều người cung ứng. GSM cho phép nhà điều hành mạng có thể sẵn sàng dịch vụ ở khắp nơi, vì thế người sử dụng có thể sử dụng điện thoại của họ ở khắp nơi trên thế giới.
22 1.10.3 Tìm hiểu về GPRS
Dịch vụ vô tuyến gói tổng hợp (General Packet Radio Service) là một dịch vụ dữ liệu di động truy cập đến GSM và IS-136 điện thoại người dùng di động. GPRS giúp bạn truy cập giao thức ứng dụng như:
• Truy cập internet (WAP), • Tin nhắn SMS,
• Tin nhắn đa phương tiện (MMS) • Email
GPRS là giao thức kết nối internet cũ trước khi mạng 3G ra đời. Nó cung cấp dữ liệu ở tốc độ từ 56 đến 114 kbps.
Khi người dùng muốn dùng các thiết bị di động truy cập vào internet thì họ buộc phải đăng kí với nhà mạng để kết nối GPRS. GPRS kết hợp cùng mạng 2G (mạng điện thoại nghe, gọi, nhắn tin thông thường nhất hiện nay) sẽ tạo thành mạng 2.5G (xuất hiện biểu tượng kết nối chữ G nằm cạnh biểu tượng sóng trên điện thoại), một thế hệ trung gian giữa 2G và 3G.
Lợi ích của GPRS là giúp người dùng tiết kiệm chi phí kết nối, liên lạc. Vì dữ liệu được truyền qua GPRS được tính theo từng megabyte, trong khi cách thức kết nối truyền thống tính theo từng phút kết nối. Có nghĩa là, khi dùng dịch vụ GPRS bạn sẽ chỉ trả phí cho dung lượng bạn đăng tải cao hay thấp chứ không phải bạn đã kết nối trong bao lâu.
1.11 GIỚI THIỆU NODE JS
NodeJS là một mã nguồn được xây dựng dựa trên nền tảng JavaScript V8 Engine, nó được sử dụng để xây dựng các ứng dụng web như các trang video clip, các forum và đặc biệt là trang mạng xã hội phạm vi hẹp. NodeJS là một mã nguồn mở được sử dụng rộng bởi hàng ngàn lập trình viên trên toàn thế giới. NodeJS có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ Window cho tới Linux, OS X nên đó cũng là một lợi thế. NodeJS cung cấp các thư viện phong phú ở dạng Javascript Module khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian ở mức thấp nhất.
Khi nói đến NodeJS thì phải nghĩ tới vấn đề Realtime. Realtime ở đây chính là xử lý giao tiếp từ client tới máy chủ theo thời gian thực. Vì vậy Nodejs thích hợp để làm web server cho việc đưa dữ liệu thu thập từ xe và hiển thị thông tin thông qua mạng internet .
23
CHƯƠNG 2. NGHIÊN CỨU LÝ THUYẾT
2.1 LỰA CHỌN MODULE GSM GPRS GPS BDS A9G
Sau khi tìm hiểu và khảo sát nhiều loại module GPS/GSM/GPRS ở trong và ngoài nước, nhóm em quyết định chọn module GSM/GPRS/GPS A9G để nghiên cứu về lấy tọa độ GPS và GSPRS ( gửi dữ liệu qua mạng) với một số lý do như sau:
• Hỗ trợ điện thoại cơ bản / SMS, kết nối mạng GPRS, định vị GPS / BDS hai chế độ.
• Hỗ trợ GPRS (tối đa: upload 42.8Kbps, download:85.6Kbps)
• Hỗ trợ các tiêu chuẩn GSM07.07,07.05 AT command và mở rộng lên command Ai-Thinker
• Hai cổng Serial, một cho download và một cho AT command • Sử dụng với tập lệnh AT và giao thức TCP/IP
• Có một bộ sạc pin lithium, micrô, giao diện loa, giao tiếp USB, nhiều phím cho người dùng / led, khe cắm thẻ TF, cảm biến gia tốc, giao diện SPI, giao diện I2C2, giao diện ADC.
• Hoạt động ổn định và tiết kiệm năng lượng, mạch có thiết kế nhỏ gọn. • Giá thành rẻ, dễ tìm mua.
2.2 GIAO TIẾP UART
UART là viết tắt của Universal Asynchronous Receiver – Transmitter. Thường là một mạch tích hợp được sử dụng trong việc truyền dẫn dữ liệu nối tiếp giữa máy tính và các thiết bị ngoại vi. Rất nhiều vi điều khiển hiện nay đã được tích hợp UART, vì vấn đề tốc độ và độ điện dụng của UART không thể so sánh với các giao tiếp mới hiện nay nên các dòng PC & Laptop đời mới không còn tích hợp cổng UART. Như các bạn đã biết giao tiếp SPI và I2C có 1 dây truyền dữ liệu và 1 dây được sử dụng để truyền xung clock (SCL) để đồng bộ trong giao tiếp. Với UART thì không có dây SCL, vấn đề được giải quyết khi mà việc truyền UART được dùng giữa 2 vi xử lý với nhau, đồng nghĩa với việc mỗi vi xử lý có thể tự tạo ra xung clock cho chính nó sử dụng.
24
Hình 2.1 Cấu tạo UART
❖ Các thông số cơ bản trong truyền nhận UART:
• Band rate (tốc độ band ): Khoảng thời gian dành cho 1 bit được truyền. Phải được cài đặt giống nhau ở gửi và nhận.
• Frame ( khung truyền): Khung truyền quy định về số bit trong mỗi lần truyền. • Start bit: là bit đầu tiên được truyền trong 1 Frame. Báo hiệu cho thiết bị nhận
có một gói dữ liệu sắp được truyền đến (bit bắt buộc).
• Actual data: dữ liệu cần truyền. Bít có trọng số nhỏ nhất LSB được truyền trước sau đó đến bit MSB
• Parity bit : kiểm tra dữ liệu truyền có đúng không.
• Stop bit : là 1 hoặc các bit báo cho thiết bị rằng các bit đã được gửi xong. Thiết bị nhận sẽ tiến hành kiểm tra khung truyền nhằm đảm bảo tính đúng đắn của dữ liệu (bit bắt buộc).
❖ Cách thức kết nối giao tiếp UART
25
Muốn kết nối giao tiếp UART ta phải nối chân TxD (Device-1) với RxD (Device-2), RxD (Device-1) với TxD (Device-2) và nối GND của 2 thiết bị chung với nhau.
2.3 PHÂN TÍCH DỮ LIỆU GPS
Tất cả các dữ liệu GPS gửi về từ vệ tinh đều theo một tiêu chuẩn nhất định. Đó là chuẩn NMEA. Vậy chuẩn NMEA là gì? Hiệp hội Điện tử Hàng hải Quốc gia (National Marine Electronics Association) viết tắt NMEA là một định nghĩa tổng hợp điện tử và dữ liệu cho việc giao tiếp giữa các thiết bị như máy đo vận tốc và hướng gió, la bàn, autopilot, máy thu GPS, .v.v. Đây chính là chuẩn giao tiếp cho các chip thu GPS trả ra toạ độ cho các thành phần khác, như là chip xử lý để tính ra toạ độ, hay thiết bị khác đang cần thông tin chuẩn này, …. Để hiểu nhau, tất cả phần tử trong một hệ thống phải thống nhất với nhau.
❖ Giới thiệu chung
Tất cả các thông điệp NMEA đều có dạng:
$AACCC, data_messages*hh<CR><LR> Bảng 2.1: Mô tả tổng quan thông điệp NMEA
Đối tượng Mô tả
“$” Dùng để bắt đầu thông điệp
AACCC Tên thông điệp. “AA” đại điện cho GPS, “CCC” xác định loại thông điệp
“,” Dấu tách dữ liệu data_messages Dữ liệu của thông điệp “*” Dấu tách để kiểm tra
hh Trường kiểm tra
<CR><LF> Kết thúc thông điệp
Note: hh gồm hai ký tự và được biểu hiện bằng số hex Bảng 2.2: Cấu trúc của thông điệp NMEA
Bắt đầu thông điệp
Tên thông điệp Dữ liệu của thông điệp Trường kiểm tra Kết thúc thông điệp $ AACCC data_messages *< hh > <CR><LF>
26
❖ Ý nghĩa tên thông điệp
Bảng 2.3: Mô tả của Tên thông điệp
Tên thông điệp Mô tả
$GNGGA Thời gian, vị trí, và sửa dữ liệu liên quan đến phần nhận $GPGSA
$BDGSA
Sử dụng để đại diện cho địa chỉ IP của vệ tinh. $GPGSA là thông điệp của vệ tinh GPS, $BDGSA là thông điệp của vệ tinh Beidou.
$GPGSV $BDGSV
Thông tin của vệ tinh đang được theo dõi về độ cao, góc phương vị, CNR. $GPGSV là thông điệp của vệ tinh GPS, $BDGSV là thông điệp của vệ tinh Beidou.
$GNRMC Thời gian, ngày, vị trí, hướng và tốc độ dữ liệu $GNVTG Hướng và tốc độ tương đối với mặt đất
$GNACC
❖ Phân tích “CCC” của Tên thông điệp
Mục đích của việc phân tích này là đọc và chuyển đổi được vị trí GPS từ chuẩn NMEA sang tọa độ có thể đưa lên được Google Map. Vì vậy chúng em sẻ tập trung phân tích vào phần “GGA” của tên thông điệp vì đây là nơi có chứ thông tin GPS.
• GGA: Global Positioning System Fix Data
$--GGA,hhmmss.ss,llll.lll,a,yyyyy.yyy,a,x,uu,v.v,w.w,M,x.x,M,,zzzz*hh<CR><LF>
Bảng 2.4: Mô tả “GGA” của Tên thông điệp
Đối tượng Tên Mô tả
Hhmmss.ss UTC Time Thể hiện thời gian theo UTC, (000000.000- 235959.999)
Llll.lll Vĩ độ Vĩ độ theo dạng ddmm.mmmm A Hiển thị N/S “N”= North, “S”= South
Yyyyy.yyy Kinh độ Kinh độ theo dạng dddmm.mmmm A Hiện thị E/W “E”= East, “W”= West
X Hiện thị chất lượng GPS
0: GPS không cần sửa lỗi
27
2: GPS được sửa đổi hợp lệ, chế độ GPS vi sai 4: RTK Fix coordinate ( chính xác centi-mét) 5: RTX Float (chính xác deci-mét)
Uu Vệ tinh sữ dụng Số vệ tinh sử dụng
v.v HDOP Chính xác theo phương ngang (00.0-99.9)
w.w Độ cao Độ cao trung bình mực nước biển (-9999.9 – 17999.9) đơn vị mét
x.x Phân tách địa lí Đơn vị mét Zzzz DGPS ID trạm
hiểu chỉnh
ID trạm điều khiển, 0000-1023, Null khi DGPS không được sữ dụng
Hh Trường kiểu tra Ví dụ:
$GNGGA,082544.091,1051.1419,N,10646.4537,E,0,1,,0.1,M,2.8,M,,*68
• 082544.091: 08 giờ, 25 phút 44.091 giây theo giờ UTC, chuyển sang múi giờ Việt Nam : 15h, 25 phút , 44.091 giây
• 1051.1419: vĩ độ, 10 + (51.1419/60=0.852365) = 10.852365 là tọa độ đưa lên google map
• N: North, hướng Bắc
• 10646.4537: kinh độ, 106 + (46.4537/60 = 0.774228) =106,774228 là tọa độ đưa lên google map
• E: East, hướng Đông • 0: GPS không cần sửa lỗi • 1: sử dụng 1 vệ tinh
• 0.1: chính xác theo phương ngang (m) • 2.8: phân tách địa lý (m)
28
• GSA: GNSS DOP and Active Satellites
$--GSA,a,x,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,u.u,v.v,z.z*hh<CR><LF> Bảng 2.5: Mô tả “GSA” của Tên thông điệp
Đối tượng Tên Mô tả
A Chế độ “M”: Thủ công, buộc phải hoạt động ở 2D hoặc 3D
“A”: Tự động, được phép tự động chuyển 2D/3D X Chế độ 1: sửa lỗi không khả dụng
2: 2D 3: 3D
Xx’s ID vệ tinh 01-32: GPS, 33-64: SBAS, 65-96: GLONASS, 193-197: QZSS, 1-37: Beidou. Tối đa 12 vệ tinh ở mỗi GSA
u.u PDOP Chính xác của vị trí (00.0-99.9)
v.v HDOP Chính xác theo phương ngang (00.0-99.9) z.z VDOP Chính xác theo phương dọc (00.0-99.9) Hh Trường kiểm tra
• GSV: GNSS Satellites in View
$--GSV,x,u,xx,uu,vv,zzz,ss,uu,vv,zzz,ss,…,uu,vv,zzz,ss*hh<CR><LF> Bảng 2.6: Mô tả “GSV” của Tên thông điệp
Đối tượng Tên Mô tả
X Số lượng thông điệp
Tổng số thông điệp của GSV được truyền đi
U Số thứ tự Số thứ tự của thông điệp GSV
xx Vệ tinh Tổng số vệ tinh trong tầm nhìn (00-12)
Uu ID vệ tinh 01-32: GPS, 33-64: SBAS, 65-96: GLONASS, 193-197: QZSS, 1-37: Beidou. Tối đa 12 vệ tinh ở mỗi GSA
29
Zzz Góc phương vị Góc phương vị của vệ tinh theo độ (000-359)
Ss SNR C/N0 dB (00-99)
Hh Trường kiểm tra
• RMC: Recommended Minimum Specific GNSS Data
$--RMC,hhmmss.sss,x,llll.lll,a,yyyyy.yyy,a,x.x,u.u,xxxxxx,,,v*hh<CR><LF> Bảng 2.7: Mô tả “RMC” của Tên thông điệp
Đối tượng Tên Mô tả
Hhmmss.ss UTC Time Thể hiện thời gian theo UTC, (000000.000- 235959.999)
X Trạng thái “V”: cảnh báo điều hướng “A”: dữ liệu hợp lệ
Llll.lll Vĩ độ Vĩ độ theo dạng ddmm.mmmm A Hiển thị N/S “N”= North, “S”= South
Yyyyy.yyy Kinh độ Kinh độ theo dạng dddmm.mmmm A Hiện thị E/W “E”= East, “W”= West
x.x Tốc độ trên mặt đất
Đo bằng hải lí (000.0-999.9) u.u Hướng trên mặt
đất
Đo theo độ (000.0-359.9)
Xxxxxx UTC ngày Ngày được sửa theo UTC, dạng ddmmyy V Chế độ hiện thị “N”: dữ liệu không hợp lệ
“A”: chế độ tự động “D”: chế độ khác “E”: chế độ ước tính
Hh Trường kiểm
30
• VTG: Course Over Ground and Ground Speed
$--VTG,x.x,T,y.y,M,u.u,N,v.v,K,m*hh<CR><LF> Bảng 2.8: Mô tả “VTG” của Tên thông điệp
Đối tượng Tên Mô tả
x.x Hướng Hướng trên mặt đất, độ True (000.0-359.9) y.y Hướng Hướng trên mặt đất, độ Magnetic (000.0-359.9)
Độ nhiễu của thiết bị
u.u Tốc độ Tốc độ trên mặt đất, đơn vị Hải lý (000.0-1800.0) v.v Tốc độ Tốc độ trên mặt đất, đơn vị Km/h (000.0-1800.0) m Chế độ “N”: không hợp lệ “A”: chế độ tự động “D”: chế độ khác “E”: chế độ ước tính Hh Trường kiểm tra
2.4 TÌM HIỂU VỀ JACK OBD-II 2.4.1 Giới thiệu chung 2.4.1 Giới thiệu chung
Có hai loại giắc cấm: loại A va loại B
Loại A Loại B
31
Loại A thì sữ dụng điện áp nguồn là 12V, trong khi đó loại B lại sữ dụng điện áp nguồn là 24V.
Hình 2.4 Chân của jack OBD
2.4.2 Cấu tạo của Jack OBD-II
Bảng 2.9 Bảng mô tả chân Jack OBD
Số chân Ý nghĩa Số chân Ý nghĩa
1 Nhà sản xuất qui định: _GM: J2411 GMLAN/ SWC/Single-Wire CAN _Ford, FIAT: Thông tin giải trí CAN High
9 Nhà sản xuất qui định:
_BMW: TD (Tachometer Display) tín hiệu RPM
_GM: 8192 bit/s ALDL được lắp đặt
2 SAE J1850 Bus + 10 SAE J1850 Bus -
3 Nhà sản xuất qui định: _GM: Phát hiện đối tượng CAN bus + _Ford: Tốc độ trung bình CAN-High _Chrysler: CCD Bus + _BMW: Ethernet RX+ 11 Nhà sản xuất qui định:
_GM: Phát hiện đối tượng CAN bus -
_Ford: Tốc độ trung bình CAN Low
_Chrysler: CCD Bus - _BMW: Ethernet RX - 4 Chassis 12 Nhà sản xuất qui định:
_GM: Chassis high-speed CAN bus +
_BMW: Ethernet TX+
32
_GM: Chassis high-speed CAN bus -
_BMW: Ethernet TX-
6 CAN High 14 CAN Low
7 K-Line theo ISO 9141-2 và ISO 14230-4
15 L-Line theo ISO 9141 và ISO 14230-4
8 Nhà sản xuất qui định: _Ford, FIAT: Thông tin giải trí CAN-Low
_BMW: Ethernet kích hoạt thông qua 510 Ohm, 0.6W
16 Nguồn
_Loại A: 12V/4A _Loại B: 24V/2A
2.5 TÌM HIỂU VỀ OBD-II PID
OBD-II PIDs ( chẩn đoán tham số IDs ) là mã được sử dụng để yêu cầu dữ liệu từ một chiếc xe, được sử dụng như một công cụ chẩn đoán.
Tiêu chuẩn SAE J / 1979 định nghĩa nhiều PID, nhưng các nhà sản xuất cũng xác định nhiều PID hơn cho xe của họ. Tất cả các loại xe tải nhẹ (tức là ít hơn 8.500 pounds) được bán ở Bắc Mỹ từ năm 1996, cũng như các loại xe tải hạng trung (tức là 8.500-14.000 bảng Anh) bắt đầu từ năm 2005 và các xe hạng nặng (lớn hơn 14.000 bảng Anh) bắt đầu từ năm 2010, [1] được yêu cầu hỗ trợ chẩn đoán OBD-II, sử dụng đầu nối liên kết dữ liệu tiêu chuẩn và một tập hợp con của các SAE J / 1979 được xác định PID (hoặc SAE J / 1939 áp dụng cho xe hạng trung / hạng nặng), kiểm tra khí thải.
Thông thường, một kỹ thuật viên ô tô sẽ sử dụng PID với một thiết bị chuẩn đoán được kết nối với đầu nối OBD-II của xe.
• Kỹ thuật viên nhập mã PID.
• Thiết bị chuẩn đoán sẽ gửi đến mạng bộ điều khiển của xe (CAN) -bus, VPW, PWM, ISO, KWP (sau năm 2008, chỉ CAN)
• Thiết bị trên xe nhận dạng PID và chịu trách nhiệm phản hồi lại giá trị PID đó tới xe
33
• Thiết bị chuẩn đoán đọc phản hồi và hiển thị nó cho kỹ thuật viên.
❖ Các chế độ của OBD-II PIDs
Có 10 chế độ hoạt động được mô tả trong tiêu chuẩn OBD-II SAE J1979 mới nhất. Bảng 2.10: Mô tả chế độ của OBD-II PIDs
Chế độ
(hex) Mô tả
01 Hiển thị dữ liệu hiện tại
02 Hiển thị dữ liệu khung cố định
03 Hiển thị mã lỗi chẩn đoán được lưu trữ
04 Xóa mã lỗi chẩn đoán và giá trị được lưu trữ
05 Kết quả kiểm tra, giám sát cảm biến oxy (không chỉ CAN)
06 Kết quả kiểm tra, giám sát thành phần / hệ thống khác (Kết quả kiểm tra, giám sát cảm biến oxy cho chỉ CAN)