Tải bản đầy đủ (.pdf) (173 trang)

NGHIÊN CỨU, THIẾT KẾ HỆ THỐNG HIỂN THỊ THÔNG TIN SỬ DỤNG GIAO TIẾP CAN – MÁY CHẨN ĐOÁN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.27 MB, 173 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU, THIẾT KẾ HỆ THỐNG HIỂN THỊ THÔNG
TIN SỬ DỤNG GIAO TIẾP CAN – MÁY CHẨN ĐỐN
SVTH:
MSSV:
SVTH:
MSSV:
KHĨA: 2017
NGÀNH: CƠNG NGHỆ KỸ THUẬT Ơ TƠ
GVHD:
Tp.Hồ Chí Minh, tháng 8 năm 2021


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU, THIẾT KẾ HỆ THỐNG HIỂN THỊ THÔNG
TIN SỬ DỤNG GIAO TIẾP CAN – MÁY CHẨN ĐỐN

SVTH:
MSSV:
SVTH:
MSSV:
KHĨA: 2017
NGÀNH: CƠNG NGHỆ KỸ THUẬT Ơ TƠ


GVHD:
Tp.Hồ Chí Minh, tháng 8 năm 2021


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập – Tự do – Hạnh phúc

Tp. Hồ Chí Minh, tháng 8 năm 2021

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên:
Họ và tên sinh viên:
Ngành: Cơng Nghệ Kỹ Thuật Ơ Tô
Giảng viên hướng dẫn:
Ngày nhận đề tài:

MSSV:
MSSV:
Lớp:
Sđt:
Ngày nộp đề tài:

1. Tên đề tài: Nghiên cứu, thiết kế hệ thống hiển thị thơng tin sử dụng giao
tiếp CAN – Chẩn đốn lỗi
2. Các số liệu, tài liệu ban đầu:
3. Nội dung thực hiện đề tài:
4. Sản phẩm:

TRƯỞNG NGÀNH


GIÁO VIÊN HƯỚNG DẪN

i


CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh Phúc

*******
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên Sinh viên:
Họ và tên Sinh viên:

MSSV:
MSSV:

Ngành: Cơng Nghệ Kỹ Thuật Ơ Tơ
Tên đề tài: Nghiên cứu, thiết kế hệ thống hiển thị thông tin sử dụng giao tiếp CAN
– Chẩn đoán lỗi
Họ và tên Giáo viên hướng dẫn:
NHẬN XÉT
1. Về nội dung đề tài & khối lượng thực hiện:
.................................................................................................................................................
.................................................................................................................................................
.................................................................................................................................................
.................................................................................................................................................

2. Ưu điểm:
.................................................................................................................................................

.................................................................................................................................................

3. Khuyết điểm:
.................................................................................................................................................
.................................................................................................................................................
.................................................................................................................................................

4. Đề nghị cho bảo vệ hay không?
.................................................................................................................................................

5. Đánh giá loại: .................................................................................................................
6. Điểm: .............................

Bằng chữ: .................

Tp. Hồ Chí Minh, ngày tháng năm 2021
Giáo viên hướng dẫn
(Ký & ghi rõ họ tên)

ii


CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh Phúc

*******
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên:
Họ và tên Sinh viên:


MSSV:
MSSV:

Ngành: Cơng Nghệ Kỹ Thuật Ơ Tơ
Tên đề tài: Nghiên cứu, thiết kế hệ thống hiển thị thông tin sử dụng giao tiếp CAN –
Chẩn đoán lỗi
Họ và tên Giáo viên phản biện:
NHẬN XÉT
1. Về nội dung đề tài & khối lượng thực hiện:
.................................................................................................................................................
.................................................................................................................................................
.................................................................................................................................................
.................................................................................................................................................

2. Ưu điểm:
.................................................................................................................................................
.................................................................................................................................................
.................................................................................................................................................

3. Khuyết điểm:
.................................................................................................................................................
.................................................................................................................................................
.................................................................................................................................................

4. Đề nghị cho bảo vệ hay không?
.................................................................................................................................................

5.
Đánh giá loại: .............................................................................................................
6. Điểm:……………….(Bằng chữ:...................................................................................)

Tp. Hồ Chí Minh, ngày tháng năm 2021
Giáo viên phản biện
(Ký & ghi rõ họ tên)

iii


LỜI CẢM ƠN
Được sự phân công của Khoa Đào tạo chất lượng cao - Trường Đại học Sư phạm
Kỹ thuật TP.HCM, cùng với sự đồng ý của giảng viên hướng dẫn và giảng viên trưởng
ngành ơ tơ. Nhóm thực hiện xin chân thành cảm ơn tất cả Quý Thầy Cô khoa Cơ khí
Động lực trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh đã tận tình giảng dạy và
truyền đạt kiến thức cũng như những kinh nghiệm quý báu trong suốt thời gian học tập.
Nhóm đặc biệt gửi lời cảm ơn chân thành đến, khoa Cơ khí Động lực, Trường Đại
học Sư phạm Kỹ thuật TP. Hồ Chí Minh – người đã tận tình hướng dẫn và truyền đạt
kiến thức, giúp nhóm hoàn thành đồ án một cách tốt nhất.
Nhóm thực hiện cũng xin chân thành cảm ơn tập thể thầy cô trường Đại học Sư
phạm Kỹ thuật Tp. Hồ Chí Minh nói chung, các thầy cơ trong khoa Cơ Khí Động Lực
nói riêng đã truyền đạt các kiến thức đại cương cũng như chuyên ngành, giúp nhóm có
được cơ sở lý thuyết vững vàng và tạo điều kiện giúp đỡ trong suốt quá trình học tập.
Xin chúc Quý thầy cô luôn dồi dào sức khoẻ để tiếp tục cống hiến cho sự nghiệp
giáo dục của nước nhà nói chung và trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh
nói riêng!

iv


TÓM TẮT
Với sự phát triển của nước ta hiện nay việc sở hữu ô tô riêng là một nhu cầu thiết
yếu đối với mỗi gia đình trong thời kỳ hội nhập. Chính vì lẽ đó lượng tiêu thụ các loại

xe ô tô từ các hãng trong và ngoài nước đã ngày một tăng cao. Báo cáo của Hiệp hội các
nhà sản xuất ô tô Việt Nam (VAMA), thị trường ô tơ Việt Nam đã đón nhận con số bán
xe kỷ lục từ trước đến nay, đạt 47.865 xe, tăng 31.6% so với tháng trước đó và tăng 45%
so với tháng 12/2019.
Trên thực tế rất nhiều xe đời mới đã được bán ra thị trường đồng nghĩa với việc người
dùng hoàn tồn có thể tự theo dõi, chẩn đốn tình trạng và những hư hỏng cơ bản của
phương tiện bằng các thiết bị bán chun nhưng vẫn vơ cùng hữu ích. Thơng qua mạng
CAN (Control Area Network) có mặt trên các phương tiện ơ tơ đời mới thì việc này trở
nên dễ dàng hơn bao giờ hết.
Đề tài này được thực hiện từ tháng 3/2021 đến tháng 7/2021. Nội dung về cơ sở lý
thuyết và phương pháp nghiên cứu của đề tài chủ yếu là lý thuyết về mạng CAN, về Hệ
thống chẩn đốn lỗi trên ơ tơ (OBD) và về ngơn ngữ lập trình Python ứng dụng trên
Raspberry Pi.
Nội dung đồ án đã trình bày một cách đầy đủ về việc xây dựng phần mềm chẩn đoán
bán chuyên với các tính năng theo dõi, đọc và xóa các lỗi được hệ thống báo về.

v


MỤC LỤC
ĐỒ ÁN TỐT NGHIỆP .....................................................................................................
ĐỒ ÁN TỐT NGHIỆP .....................................................................................................
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ..............................................................................i
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN.............................................ii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN .............................................. iii
LỜI CẢM ƠN ................................................................................................................iv
TÓM TẮT ....................................................................................................................... v
MỤC LỤC ......................................................................................................................vi
DANH MỤC CÁC TỪ VIẾT TẮT ..............................................................................ix
DANH MỤC CÁC BẢNG BIỂU .................................................................................. x

DANH MỤC HÌNH ẢNH ...........................................................................................xii
CHƯƠNG 1: ĐẶT VẤN ĐỀ ......................................................................................... 1
1.1.

Lý do chọn đề tài ............................................................................................... 1

1.2.

Mục tiêu chọn đề tài ......................................................................................... 2

1.3.

Phương pháp nghiên cứu ................................................................................. 2

1.4.

Phạm vi nghiên cứu .......................................................................................... 2

1.5.

Bố cục của đề tài ............................................................................................... 2

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT ............................................................................. 3
2.1.

Phần mềm .......................................................................................................... 3

2.1.1.

Mạng CAN .................................................................................................. 3


2.1.1.1.

Ưu điểm của CAN ............................................................................... 3

2.1.1.2.

Hoạt động và nguyên tắc .................................................................... 5

2.1.1.3.

Các loại CAN Frame và giao thức CAN ........................................... 6

2.1.1.4.

Các tính năng và chuẩn CAN ............................................................ 8

2.1.2.

Python ....................................................................................................... 10

2.1.2.1.

Khái niệm ........................................................................................... 10

vi


2.2.


2.1.2.2.

Tính năng của Pyhton ....................................................................... 12

2.1.2.3.

Các ứng dụng của Python ................................................................ 13

Phần cứng ........................................................................................................ 15

2.2.1.

OBD (On – Board Diagnostics) – Hệ thống chẩn đốn lỗi trên xe ...... 15

2.2.1.1.

Mục đích ra đời ................................................................................. 15

2.2.1.2.

Nguyên lý hoạt động và cấu tạo chung............................................ 15

2.2.2.

Giắc chẩn đoán OBD ............................................................................... 18

2.2.3.

ELM327 Định nghĩa, lịch sử ra đời, ứng dụng ..................................... 21


2.2.4.

Các loại cảm biến thông dụng................................................................. 22

2.2.4.1.

Cảm biến Oxy - Oxygen Sensor ....................................................... 23

2.2.4.2.

Cảm biến vị trí trục khuỷu – Crankshaft Sensor .......................... 25

2.2.4.3.

Cảm biến vị trí trục cam – Camshaft Sensor ................................. 27

2.2.4.4.

Cảm biến vị trí bướm ga – TPS Sensor........................................... 29

2.2.4.5.

Cảm biến áp suất đường ống nạp – Map Sensor ........................... 31

2.2.4.6.
Sensor

Cảm biến nhiệt độ nước làm mát – Engine Coolant Temperature
32


2.2.4.7.

Cảm biến đo khối lượng khí nạp – MAF Sensor............................ 34

2.2.4.8.

Cảm biến kích nổ – Knock sensor ................................................... 35

2.2.5.

Raspberry ................................................................................................. 36

2.2.5.1.

Khái niệm ........................................................................................... 36

2.2.5.2.

Cấu hình phần cứng .......................................................................... 37

2.2.5.3.

Thiết bị đi kèm với Raspberry ......................................................... 38

2.2.5.4.

Hệ điều hành Raspbian..................................................................... 40

CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG VÀ LẬP TRÌNH ..................................... 42
3.1.


Phần cứng ........................................................................................................ 42

3.2.

Phần mềm – code chương trình..................................................................... 44

3.2.1.

Kết nối (Bluetooth hoặc cổng USB): obd_utils.py ................................ 45

3.2.2.

Dữ liệu: obd2_codes.py; obd_sensors.py ............................................... 45

3.2.3.

Thu thập dữ liệu: obd_capture ............................................................... 50
vii


3.2.4.

Giao tiếp: obd_io ...................................................................................... 51

3.2.5.

Hiển thị giá trị: obd_gui .......................................................................... 56

3.2.6.


Tính năng thêm: debug; recorder .......................................................... 59

CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM, SO SÁNH ........................................... 61
4.1. Mục đích ........................................................................................................... 61
4.2. Kết quả thực nghiệm ....................................................................................... 62
4.3. So sánh với kết quả thực tế ............................................................................. 65
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .......................................... 69
5.1. Kết luận ................................................................................................................ 69
5.2. Khó khăn tồn đọng .............................................................................................. 69
5.3. Kiến nghị .............................................................................................................. 69
TÀI LIỆU THAM KHẢO ........................................................................................... 70
PHỤ LỤC ...................................................................................................................... 72

viii


DANH MỤC CÁC TỪ VIẾT TẮT
OBD

On Board Diagnostics

DLC

Diagnostic Link Connector

DTC

Diagnostic Troube Code


PID

Proportional Integral Derivative

USB

Universal Serial Bus

UART

Universal Asynchronous Receiver Transmitter

VAMA

Vietnam Automobile Manufacturers Association

ix


DANH MỤC CÁC BẢNG BIỂU
Bảng 2. 1: Giá tri CAN ISO 11898 .................................................................................. 8
Bảng 2. 2: Giá trị CAN ISO 11519 .................................................................................. 8
Bảng 2. 3: Độ dài Bus CAN và tốc độ Bit ....................................................................... 9
Bảng 2. 4: Tính năng BasicCAN...................................................................................... 9
Bảng 2. 5: Tính năng FullCAN ...................................................................................... 10
Bảng 2. 6: Mã lỗi cảm biến Oxy .................................................................................... 24
Bảng 2. 7: Mã lỗi cảm biến trục khuỷu .......................................................................... 26
Bảng 2. 8: Mã lỗi cảm biến vị trí trục cam .................................................................... 28
Bảng 2. 9: Mã lỗi cảm biến vị trí bướm ga .................................................................... 30
Bảng 2. 10: Mã lỗi cảm biến MAP ................................................................................ 32

Bảng 2. 11: Mã lỗi cảm biến nhiệt độ nước làm mát ..................................................... 33
Bảng 2. 12: Mã lỗi cảm biến MAF ................................................................................ 34
Bảng 2. 13: Mã lỗi cảm biến kích nổ ............................................................................. 35

Bảng 3. 1: Thư viện mã lỗi............................................................................................. 47
Bảng 3. 2: Ý nghĩa dữ liệu mà ECU gửi về khi ta gửi các tín hiệu điều khiển.............. 47
Bảng 3. 3: Dịch giá trị dạng HEX về số thập phân ........................................................ 49
Bảng 3. 4: Thu thập dữ liệu ............................................................................................ 51
Bảng 3. 5: Các tính năng cổng OBDPort ....................................................................... 51
Bảng 3. 6: Gửi các câu lệnh cho ELM327 và ECU để lấy dữ liệu ................................ 52
Bảng 3. 7: Các chệ độ mô tả chản đoán dưới dạng mã HEX ......................................... 52
Bảng 3. 8: Mô tả các cảm biến dưới dạng PID .............................................................. 53
Bảng 3. 9: Ý nghĩa các câu lệnh ..................................................................................... 53
Bảng 3. 10: Xem các mã lỗi ........................................................................................... 56
Bảng 3. 11: Xóa các mã lỗi ............................................................................................ 56

x


Bảng 3. 12: Tính năng Debug ........................................................................................ 60
Bảng 3. 13: Tính năng ghi nhật ký ................................................................................. 60

Bảng 4. 1: So sánh các lỗi chẩn đoán ............................................................................. 65
Bảng 4. 2: So sánh các giá trị cảm biến ......................................................................... 66
Bảng 4. 3: So sánh các giá trị tải động cơ ...................................................................... 67

xi


DANH MỤC HÌNH ẢNH

Hình 1. 1: Biểu đồ bán hàng theo tháng cho thấy tháng cuối năm thị trường ô tơ Việt
Nam đã đạt kỷ lục. ........................................................................................................... 1

Hình 2. 1: Dữ liệu CAN dưới dạng các khung ( Frame ) ................................................. 6
Hình 2. 2: Giao thức CAN 2.0A ...................................................................................... 7
Hình 2. 3: Giao thức CAN 2.0B ....................................................................................... 8
Hình 2. 4: Biểu tượng ngơn ngữ lập trình Python .......................................................... 10
Hình 2. 5: Các tính năng của Python ............................................................................. 12
Hình 2. 6: Ứng dụng của Python .................................................................................... 14
Hình 2. 7: Thành phần cơ bản hệ thống OBD................................................................ 16
Hình 2. 8: Hộp ECU (Electronic Control Unit) ............................................................. 17
Hình 2. 9: Đèn cảnh báo hư hỏng .................................................................................. 17
Hình 2. 10: Các vị trí cắm giắc chẩn đốn OBD............................................................ 18
Hình 2. 11: Giắc chẩn đốn OBD I ................................................................................ 18
Hình 2. 12: Giắc chẩn đốn OBD II ............................................................................... 19
Hình 2. 13: Bộ điều khiển và nhận tín hiệu hệ thống ABS ............................................ 20
Hình 2. 14: ELM327 và bo mạch ................................................................................... 21
Hình 2. 15: Cảm biến Oxy ............................................................................................. 23
Hình 2. 16: Cảm biến vị trí trục khuỷu .......................................................................... 25
Hình 2. 17: Cảm biến vị trí trục cam.............................................................................. 27
Hình 2. 18: Cảm biến vị trí bướm ga ............................................................................. 29
Hình 2. 19: Cảm biến áp suất đường ống nạp ................................................................ 31
Hình 2. 20: Cảm biến nhiệt độ nước làm mát ................................................................ 32
Hình 2. 21: Cảm biến khối lượng khí nạp ...................................................................... 34
Hình 2. 22: Cảm biến kích nổ ........................................................................................ 35

xii


Hình 2. 23: Một số loại cảm biến khác trên xe .............................................................. 36

Hình 2. 24: Cấu hình của Raspberry Pi .......................................................................... 37
Hình 2. 25: Các thiết bị cần thiết để sử dụng Raspberry Pi ........................................... 39
Hình 2. 26: Hệ điều hành Raspbian ............................................................................... 41

Hình 3. 1: Các vị trí cổng OBD II trên xe ...................................................................... 42
Hình 3. 2: Cổng kết nối USB và Bluetooth của ELM.................................................... 42
Hình 3. 3: Kết nối Raspberry với LCD Waveshare ....................................................... 43
Hình 3. 4: Lưu đồ thuật tốn .......................................................................................... 44
Hình 3. 5: Cơ cấu bộ WxWindow .................................................................................. 58

Hình 4. 1: ELM 327 kết nối với ECU qua cổng OBDII ................................................ 61
Hình 4. 2: Giao diện Raspberry hiển thị thơng tin 1 ...................................................... 62
Hình 4. 3: Giao diện Raspberry hiển thị thơng tin 2 ...................................................... 63
Hình 4. 4: Giao diện Raspberry hiển thị thông tin 3 ...................................................... 64

xiii


CHƯƠNG 1: ĐẶT VẤN ĐỀ
1.1. Lý do chọn đề tài
Với sự phát triển của nước ta hiện nay việc sở hữu ô tô riêng là một nhu cầu thiết
yếu đối với mỗi gia đình trong thời kỳ hội nhập. Chính vì lẽ đó lượng tiêu thụ các loại
xe ơ tơ từ các hãng trong và ngoài nước đã ngày một tăng cao. Báo cáo của Hiệp hội các
nhà sản xuất ô tô Việt Nam (VAMA), thị trường ô tô Việt Nam đã đón nhận con số bán
xe kỷ lục từ trước đến nay, đạt 47.865 xe, tăng 31.6% so với tháng trước đó và tăng 45%
so với tháng 12/2019.

Hình 1. 1: Biểu đồ bán hàng theo tháng cho thấy tháng cuối năm thị trường ô tô Việt
Nam đã đạt kỷ lục.
Số người sử dụng xe ô tô trên nước chúng ta ngày càng tăng, một trong những số

đó muốn tự bản thân mình biết được xe mình cần gì và hư hỏng của xe như thế nào để
đảm bảo một cách tốt nhất tại nhà hơn là đưa xế cưng của mình vào các ga-ra sửa chữa
hay các trung tâm bảo hành. Với những như cầu thiết yếu này và với đề tài đồ án tốt
nghiệp này để nhóm hướng tới việc có thể tự thiết lập một cái cơng cụ để có thể tự mình
kiểm tra được chiếc xe với các mục tiêu như hiển thị các dữ liệu của xe cũng như đọc
các lỗi mà xe mình mắc phải.

1


1.2. Mục tiêu chọn đề tài
Sử dụng ngôn ngữ lập trình Python trên RaspberryPi để thiết kế, lập trình một
cơng cụ chẩn đoán cơ bản phục vụ nhu cầu học tập, phát triển với các khả năng sau đây:
Kết nối với xe thơng qua cổng chẩn đốn OBDII.
Đọc, giải mã các thông số của các cảm biến thông qua mạng CAN.
Đọc mã lỗi (DTC) trên ECU.
1.3. Phương pháp nghiên cứu
Vận dụng các kiến thức đã được học, nghiên cứu, phát triển để thiết kế hệ thống
chẩn đoán mã lỗi và thu thập dữ liệu thu được từ phương tiện.
Thu thập, tính tốn các dữ liệu thu được từ ECU cũng như các cảm biến trên xe để
phục vụ cho mục đích làm việc, chẩn đốn, nghiên cứu.
Tham khảo các nguồn, tài liệu học tập nghiên cứu khác nhau để tối ưu các chức
năng của đồ án.
1.4. Phạm vi nghiên cứu
Hệ thống chẩn đoán lỗi (On Board Diagnostics - OBD) trên các mẫu xe phổ biến
trên thị trường hiện nay (Toyota, Honda,...)
Hệ thống giao tiếp CAN được áp dụng trên các ô tô hiện đại để giao tiếp, lưu trữ,
xử lý thơng tin xe.
Áp dụng tính tốn, kết hợp giữa thiết kế phần cứng và phần mềm lập trình Python
để thiết kế và tối ưu ứng dụng cho phép giao tiếp với cổng đọc lỗi OBD2.

1.5. Bố cục của đề tài
Chương 1: Đặt vấn đề
Chương 2: Cơ sở lý thuyết
Chương 3: Thiết kế phần cứng và lập trình
Chương 4: Kết quả thực nghiệm
Chương 5: Kết luận và hướng phát triển

2


CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. Phần mềm
2.1.1. Mạng CAN
CAN được phát triển lần đầu tiên bởi Robert Bosch GmbH, Đức vào năm 1986 khi
họ được Mercedes yêu cầu phát triển một hệ thống liên lạc giữa ba ECU (bộ điều khiển
điện tử) trên xe. Họ nhận thấy rằng UART khơng cịn phù hợp trong tình huống này vì
nó được sử dụng trong giao tiếp điểm – điểm. Nhu cầu về một hệ thống liên lạc đa chủ
trở nên cấp thiết. Bởi vậy, mạng CAN đầu tiên đã xuất hiện vào năm 1987 bởi Intel chế
tạo.
Về mặt lý thuyết, CAN có thể liên kết tới 2032 thiết bị (giả sử một nút với một mã
ID) trên một mạng duy nhất. Nó cung cấp tốc độ truyền thơng tốc độ cao lên đến 1 Mbits
/ giây do đó cho phép điều khiển thời gian thực. Ngoài ra, tính năng hạn chế lỗi và phát
hiện lỗi làm cho nó đáng tin cậy hơn trong môi trường nhiễu nghiêm trọng.
Dựa trên đặc điểm thông số kỹ thuật của Bosch. Phiên bản 2.0 của CAN được chia
thành hai phần:
CAN tiêu chuẩn (Phiên bản 2.0A): sử dụng ID (Identifier) 11 bit.
CAN mở rộng (Phiên bản 2.0B): sử dụng ID 29 bit.
Hai phần được định nghĩa bởi các ID khác nhau của thông điệp, với sự khác biệt
chính là độ dài mã ID.
Có hai tiêu chuẩn ISO cho CAN. Sự khác biệt là ở lớp vật lý: ISO 11898 xử lý các

ứng dụng tốc độ cao lên đến 1Mbit / giây và ISO 11519 có giới hạn trên là 125kbit /
giây.
2.1.1.1. Ưu điểm của CAN
Đơn giản, chi phí thấp: bus CAN chỉ có 2 dây giúp kết nối các module điều khiển
với nhau dễ dàng hơn khi so sánh với cách làm truyền thống. Kèm theo đó là nhiều lợi
ích về việc dễ lắp đặt và dễ sửa chữa, bảo trì khi có sự cố.

3


Tạo ra một giao thức chung: để nhiều nhà cung cấp khác nhau có thể phát triển các
module điều khiển tương thích với nhau
Tính ưu tiên của thơng điệp (Prioritization of messages): mỗi thông điệp được
truyền ra từ một nút (node) hay trạm (station) trên bus CAN đều có mức ưu tiên. Khi
nhiều thông điệp được truyền ra bus cùng lúc thì thơng điệp có mức ưu tiên cao nhất sẽ
được truyền. Cá thơng điệp có mức ưu tiên thấp hơn sẽ tạm dừng và được truyền lại khi
bus rảnh. Việc xác định mức ưu tiên của thông điệp dựa trên cấu tạo (cấu trúc) thông
điệp và cơ chế phân xử quy định trong chuẩn chuẩn CAN.
Cấu hình linh hoạt: cho phép thiết lập cấu hình thời gian bit, thời gian đồng bộ, độ
dài dữ liệu truyền, dữ liệu nhận, …
Nhận dữ liệu đa điểm với sự đồng bộ thời gian: một thơng điệp có thể được nhận
bởi nhiều node khác nhau trong bus cùng lúc. Tất cả các node trên bus đều có thể thấy
thơng điệp đang truyền trên bus, tùy vào cấu hình ở mỗi node mà node sẽ quyết định có
chấp nhận thơng điệp này hay khơng.
Nhiều master (multimaster)
Phát hiện và báo hiệu lỗi: Mỗi thông điệp có kèm theo mã CRC (Cyclic
Redundancy Code) để thực hiện kiểm tra lỗi. Nếu lỗi xuất hiện, node nhận sẽ bỏ qua
thông điệp lỗi và truyền khung báo lỗi (error frame) lên bus CAN. Mỗi node trong bus
có bộ đếm quản lý lỗi truyền nhận riêng để xác định trạng thái lỗi của chính nó. Nếu lỗi
xuất hiện q nhiều, một node có thể tự động ngắt khỏi bus. Ngồi ra cịn một số dạng

lỗi khác có thể được phát hiện với chuẩn CAN.
Tự động truyền lại các thông điệp bị lỗi khi bus rảnh: Một thông điệp được truyền
ra bus nếu bị lỗi thì sẽ khơng mất đi mà node truyền thơng điệp này sẽ giữ nó lại và tự
động phát lại thông điệp này khi bus CAN rảnh cho đến khi thành cơng. Điều này giúp
đảm bảo tính toàn vẹn dữ liệu trong bus.

4


2.1.1.2. Hoạt động và nguyên tắc
CAN sử dụng CSMA / CD + AMP (Carrier Sense Multiple Access / Collision
Detection with Arbitration on Message Priority). Trước khi gửi thông điệp, nút CAN sẽ
kiểm tra xem bus có bận khơng. Nó cũng sử dụng để phát hiện khả năng trùng lặp. Những
phương thức này cũng tương tự như Ethernet. Tuy nhiên, khi một mạng Ethernet phát
hiện xung đột, cả hai nút gửi sẽ ngừng truyền. Sau đó, nó đợi một khoảng thời gian trễ
ngẫu nhiên trước khi thử gửi lại. Điều này làm cho mạng Ethernet rất nhạy cảm với tải
bus cao. Có thể giải quyết vấn đề này với nguyên tắc xác định quyền ưu tiên rất thông
minh trong mạng CAN.
Thông điệp dữ liệu được truyền từ bất kỳ nút nào trên bus CAN không chứa địa chỉ
của nút truyền hoặc của bất kỳ nút nhận dự kiến nào.
Thay vào đó, nội dung của thông điệp được gắn nhãn bởi một số nhận dạng (ID) là
duy nhất trên toàn mạng. Tất cả các nút khác trên mạng đều nhận được thông điệp và
mỗi nút thực hiện kiểm tra sự chấp nhận trên mã ID để xác định xem thơng điệp có liên
quan đến nút đó hay khơng. Nếu thơng điệp có liên quan, nó sẽ được xử lý; nếu khơng
thì nó bị bỏ qua.

5


2.1.1.3. Các loại CAN Frame và giao thức CAN

Dữ liệu CAN được truyền dưới dạng các Frame (khung). Có 4 loại Frame khác
nhau, đó là:
Data Frame (khung dữ liệu): là khung mang dữ liệu từ một bộ truyền dữ liệu đến
các bộ nhận dữ liệu. Khung này có vùng để mang các byte dữ liệu.

Hình 2. 1: Dữ liệu CAN dưới dạng các khung ( Frame )
Remote Frame (khung yêu cầu hay điều khiển): là khung được truyền từ một Node
bất kỳ để yêu cầu dữ liệu từ Node khác. Khi Node khác đó nhận được yêu cầu sẽ truyền
lại dữ liệu có ID (Identifier) trùng với ID được gửi trong Remote Frame.
Error Frame (khung lỗi): là khung được truyền bởi bất kỳ Node nào khi Node đó
phát hiện lỗi từ Bus.

6


Overflow Frame (khung báo tràn): mỗi Node trong CAN Bus có thể truyền bất kỳ
khi nào nếu phát hiện Bus rảnh. Hoặc nếu một Node nhận quá nhiều dữ liệu và khơng
xử lý kịp, nó sẽ gửi Frame này để các Node khác khơng gửi thêm dữ liệu cho nó.
Data Frame và Remote Frame làm việc theo cơ chế phân xử quyền ưu tiên của tín
hiệu vì thế cấu trúc của chúng có vùng phân xử quyền ưu tiên, nơi chứa ID của khung.
Và chúng có hai định dạng khác nhau là định dạng chuẩn (Standard) và định dạng mở
rộng (Extended):
Định dạng khung chuẩn sử dụng ID có độ dài 11 bit.
Định dạng khung mở rộng sử dụng ID có độ dài 29 bit.
Giao thức CAN hiện có: CAN 2.0, CAN FD. Sự khác biệt giữa các loại giao thức
CAN nằm trong cấu trúc của các loại khung (Frame).
CAN 2.0A

Hình 2. 2: Giao thức CAN 2.0A


7


CAN 2.0B

Hình 2. 3: Giao thức CAN 2.0B
2.1.1.4. Các tính năng và chuẩn CAN
ISO 11898
Signal

Recessive state

Dominant State

Unit

Min

Norminal

Max

Min

Norminal

Max

CAN-H


2.0

2.5

3.0

2.75

3.5

4.5

Volt

CAN-L

2.0

2.5

3.0

0.5

1.5

2.25

Volt


Bảng 2. 1: Giá tri CAN ISO 11898
ISO 11519
Signal

Recessive state

Dominant State

Unit

Min

Norminal

Max

Min

Norminal

Max

CAN-H

1.6

1.75

1.9


3.85

4.0

5.0

Volt

CAN-L

3.1

3.25

3.4

0

1.0

1.15

Volt

Bảng 2. 2: Giá trị CAN ISO 11519

8


Các độ dài bus khác nhau và tốc độ bit tối đa tương ứng

Chiều dài Bus (m)

Tốc độ Bit rate tối đa (bit/s)

40

1 Mbit/s

100

500 kbit/s

200

250 kbit/s

500

125 kbit/s

6km

10 kbit/s
Bảng 2. 3: Độ dài Bus CAN và tốc độ Bit

Các tính năng BasicCAN
Truyền

Ứng dụng điền vào thanh ghi Tx hoàn chỉnh bao gồm ID, RTR,
datalength, data -> mọi ID đều có thể được truyền


Nhận

Mọi thơng điệp CAN đều có thể được nhận
Thơng thường có hai bộ đệm nhận trong cấu trúc FIFO
Lọc thông điệp. Thông thường không thể thiết lập bộ lọc để chỉ
những thông điệp đặc biệt được cho qua -> ứng dụng phải thực hiện
lọc lần cuối

Xử lý Remote
Frame

Remote Frame được ứng dụng để phản hồi

Ghi đè

Giữ lại thông điệp cũ nhất (thông điệp mới hơn sẽ bị mất)
Bảng 2. 4: Tính năng BasicCAN

9


Tính năng FullCAN
Truyền

Truyền hộp thư được khởi tạo một lần
Chỉ các byte dữ liệu được ghi trước khi truyền

Nhận


Chỉ những thư có ID được xác định trong hộp thư nhận mới có thể
nhận được
Khơng có bộ đệm kép cho hộp thư
Lọc chấp nhận hoàn toàn (chỉ những ID thư chính xác mới được
thông qua)

Xử lý Remote
Frame

Remote Frame được trả lời tự động bởi bộ điều khiển

Ghi đè

Giữ lại thông điệp mới nhất (các thơng điệp cũ có cùng ID sẽ bị mất)
Bảng 2. 5: Tính năng FullCAN

2.1.2. Python
2.1.2.1. Khái niệm

Hình 2. 4: Biểu tượng ngơn ngữ lập trình Python
Python là một ngôn ngữ khá cũ được tạo ra bởi Guido Van Rossum. Thiết kế bắt
đầu vào cuối những năm 1980 và được phát hành lần đầu tiên vào tháng 2 năm 1991.
Qua quá trình phát triển xuyên suốt bao năm nay, Python đã trở thành một trong những
ngôn ngữ hàng đầu với những tính năng chính sau đây:

10


×