Bối cảnh và vấn đề nghiên cứu
Trong quá trình phát triển của ngành công nghiệp ô tô từ đầu thập niên 1970, các hệ thống điều khiển điện tử bắt đầu xuất hiện, khởi đầu bằng mạch tích hợp (IC) cho hệ thống đánh lửa và tiếp nối bởi hộp điều khiển động cơ (ECM) vào đầu thập niên 1980. Khi các công nghệ như hệ thống cân bằng điện tử (ESP) và hệ thống mã hóa khóa động cơ (Immobilizer) ra đời trong thập niên 1990, mức độ phức tạp của mạng lưới điện trên phương tiện gia tăng nhanh chóng. Ban đầu, các cụm điều khiển giao tiếp với nhau bằng phương thức kết nối điểm - điểm (point-to-point). Cách tiếp cận này dẫn tới tình trạng quá tải về trọng lượng và kích thước bó dây dẫn: một chiếc ô tô hiện đại cần khoảng 1.500 dây dẫn riêng biệt, trong đó cụm dây điều khiển hệ thống cửa phía người lái có thể lên tới 50 dây. Số lượng đầu nối và dây dẫn tăng cao cũng làm tăng nguy cơ phát sinh lỗi kỹ thuật theo chu kỳ tăng gấp đôi sau mỗi 10 năm. Hiện nay, một mẫu xe thông thường tại châu Âu trang bị khoảng 30 bộ điều khiển điện tử (ECU), trong khi các dòng xe cao cấp có thể sở hữu hàng trăm ECU độc lập.
Để giải quyết vấn đề dây dẫn cồng kềnh và đáp ứng yêu cầu truyền thông dữ liệu tốc độ cao, chính xác và đồng bộ giữa các module (như mô-đun điều khiển hộp số TCM, mô-đun phanh chống bó cứng ABS, mô-đun động cơ ECM), giao thức mạng CAN (Controller Area Network) được hãng Robert Bosch GmbH giới thiệu vào năm 1986 theo đặt hàng từ Mercedes. Mạng CAN bus đóng vai trò nền tảng trong cấu trúc điện tử của phương tiện, cho phép các vi điều khiển và thiết bị ngoại vi trao đổi dữ liệu mà không cần máy tính chủ điều phối trung tâm.
Đề tài tốt nghiệp "Nghiên cứu về mạng CAN bus trên ô tô" (Research on CAN bus in Vehicle) được nhóm sinh viên ngành Công nghệ Kỹ thuật Ô tô, Khoa Đào tạo Quốc tế, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh thực hiện dưới sự hướng dẫn của TS. Lê Thanh Phúc, nhằm làm chủ việc giải mã và lưu trữ luồng dữ liệu phục vụ nghiên cứu phương tiện.
Nhiệm vụ và mục tiêu nghiên cứu của đề tài gồm 5 nội dung chính:
- Nắm vững cơ sở lý thuyết về giao tiếp mạng CAN và các phương thức truyền dữ liệu trên ô tô.
- Thiết kế và chế tạo bộ giải mã kết nối thông qua cổng chẩn đoán On-Board Diagnostics II (OBD-II).
- Lập trình vi điều khiển Arduino Nano để thu thập và xử lý tín hiệu ngoại vi từ mạng nội bộ xe.
- Lập trình giao diện đồ họa người dùng (GUI) bằng ngôn ngữ Python để giám sát các thông số vận hành theo thời gian thực.
- Thực hiện việc lưu trữ dữ liệu hiển thị từ giao diện người dùng dưới định dạng tệp văn bản (.txt) phục vụ công tác phân tích và nghiên cứu chuyên sâu.
Đối tượng nghiên cứu của đồ án bao gồm: vi điều khiển Arduino Nano, mô-đun giao tiếp CAN bus MCP2515, chuẩn mạng Controller Area Network, môi trường lập trình Arduino IDE, trình soạn thảo mã nguồn Visual Studio Code, và dòng xe thương mại Mazda CX-5 đời 2018.
Phạm vi nghiên cứu được xác định giới hạn trong khoảng thời gian 3 tháng thực hiện đồ án. Không gian nghiên cứu tập trung tại phòng thí nghiệm chuyên ngành và thực nghiệm trực tiếp trên xe Mazda CX-5 (2018), tập trung vào quá trình trích xuất, giải mã và hiển thị các bức điện dữ liệu vận hành từ cổng chẩn đoán OBD-II.
Cơ sở lý thuyết và phương pháp
Đồ án xây dựng dựa trên hệ thống cơ sở lý thuyết về mạng truyền thông nội bộ xe và các giao thức chẩn đoán tiêu chuẩn quốc tế:
- Tiêu chuẩn mạng CAN: Đặc tả kỹ thuật Bosch CAN 2.0 gồm chuẩn CAN 2.0A (sử dụng định danh Identifier 11-bit) và chuẩn mở rộng CAN 2.0B (sử dụng định danh 29-bit). Tầng vật lý được quy định theo tiêu chuẩn ISO 11898 đối với mạng CAN tốc độ cao (High-speed CAN lên tới 1 Mbit/s) và ISO 11519 đối với mạng CAN tốc độ thấp (Low-speed CAN lên tới 125 kbit/s). Tín hiệu mạng CAN sử dụng đường truyền vi sai gồm hai dây dẫn CAN-H (CAN High) và CAN-L (CAN Low), với điện trở đầu cuối 120 Ω tại hai cực của bus nhằm phối hợp trở kháng và chống phản xạ tín hiệu. Trạng thái bit trên đường truyền phân biệt giữa mức trội (Dominant - mức logic 0) và mức lặn (Recessive - mức logic 1) căn cứ theo hiệu điện thế giữa CAN-H và CAN-L. Cơ chế truy cập đường truyền sử dụng giao thức CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) kết hợp kỹ thuật phân xử không phá hủy (non-destructive bitwise arbitration). Cấu trúc bức điện bao gồm 4 loại khung chính: Khung dữ liệu (Data Frame), Khung yêu cầu truyền xa (Remote Frame), Khung báo lỗi (Error Frame), và Khung báo quá tải (Overload Frame).
- Tiêu chuẩn chẩn đoán On-Board Diagnostics (OBD): Lịch sử phát triển từ OBD-I (CARB áp dụng từ 1988) đến OBD-II bắt buộc tại Mỹ từ năm 1996, EOBD tại châu Âu (2001 cho động cơ xăng, 2004 cho động cơ diesel), và yêu cầu tiêu chuẩn hóa ISO 15765-4 (CAN bus) trên toàn bộ xe du lịch tại Mỹ từ năm 2008. Giắc kết nối 16 chân chuẩn SAE J1962 quy định vị trí các chân cấp nguồn 12V (chân 16), nối mass khung xe (chân 4), mass tín hiệu (chân 5), đường CAN-H (chân 6), và đường CAN-L (chân 14). Tiêu chuẩn SAE J1979 định nghĩa 10 chế độ dịch vụ chẩn đoán (Diagnostic Modes từ 01 đến 0A) cùng các mã định danh thông số (PIDs).
- Cơ chế giải mã tập tin DBC: Định dạng file DBC do Vector Informatik GmbH phát triển để mô tả cấu trúc dữ liệu mạng CAN dưới dạng văn bản thuần. Cú pháp bản tin bao gồm định danh thông điệp (
BO_), độ dài dữ liệu (DLC), tên nút gửi/nhận, và định nghĩa các tín hiệu thành phần (SG_) kèm vị trí bit bắt đầu, độ dài bit, quy ước thứ tự byte (Intel @1 - little-endian hoặc Motorola @0 - big-endian), dấu của giá trị (+ không dấu hoặc - có dấu), hệ số tỉ lệ (factor) và độ dời (offset).
Phương pháp nghiên cứu thực tế được triển khai thông qua:
- Phương pháp phân tích tài liệu kỹ thuật: Tổng hợp các sơ đồ chân, tiêu chuẩn giao thức và cấu trúc bức điện từ các hiệp hội kỹ thuật ô tô (SAE, ISO).
- Phương pháp thiết kế và tích hợp phần cứng - phần mềm: Xây dựng mạch ghép nối giữa vi điều khiển Arduino Nano và IC điều khiển MCP2515; lập trình mã nguồn điều khiển phần cứng trên Arduino IDE; xây dựng giao diện hiển thị đồ họa bằng ngôn ngữ Python.
- Phương pháp thực nghiệm: Thiết lập mô hình truyền nhận đối xứng giữa hai nút MCP2515 trong phòng thí nghiệm; sử dụng thiết bị đo dạng sóng xung điện áp tại các tần số 20 µs và 4 µs để kiểm tra tính ổn định của đường truyền; đấu nối trực tiếp với cổng OBD-II trên xe Mazda CX-5 2018 để bắt gói tin và phân tích dữ liệu thực tế.
Nguồn dữ liệu của nghiên cứu bao gồm luồng dữ liệu bức điện CAN phát ra từ cổng OBD-II của xe Mazda CX-5 2018 đang hoạt động, kết hợp với các thông số xung đo đạc thực nghiệm từ hệ thống vi mạch phần cứng.
| Tốc độ truyền (Bit rate) |
Chiều dài cáp tối đa quy định (m) |
| 1 Mbit/s |
40 |
| 500 kbit/s |
100 |
| 250 kbit/s |
200 |
| 125 kbit/s |
500 |
| 10 kbit/s |
6000 |
Thiết kế và triển khai
Hệ thống thu thập và xử lý dữ liệu được thiết kế theo cấu trúc ba khối chính: Khối chuyển đổi giao tiếp mạng CAN, Khối vi điều khiển trung gian, và Khối giao diện người dùng trên máy tính.
Khối chuyển đổi giao tiếp sử dụng mô-đun MCP2515, bao gồm IC điều khiển giao thức CAN độc lập MCP2515 kết hợp với IC thu phát (transceiver) chuyển đổi mức tín hiệu vi sai sang mức logic số. Mô-đun này kết nối với cổng chẩn đoán OBD-II của xe thông qua hai đường dây tín hiệu CAN High (chân 6) và CAN Low (chân 14), lấy điểm tham chiếu mass từ chân 4 và chân 5. Điện trở đầu cuối 120 Ω được tích hợp trên mạch để đảm bảo mức điện áp vi sai vận hành chuẩn xác (mức lặn xấp xỉ 2,5V trên cả hai dây; mức trội đạt 3,5V trên CAN-H và 1,5V trên CAN-L).
Khối vi điều khiển trung gian sử dụng bo mạch Arduino Nano (trang bị vi điều khiển ATmega328P). Arduino Nano giao tiếp với mô-đun MCP2515 qua chuẩn truyền thông nối tiếp nối tiếp SPI (Serial Peripheral Interface). Các chân kết nối phần cứng cụ thể: chân SCK nối với D13, MISO nối với D12, MOSI nối với D11, chân chọn chip CS nối với chân số D10, chân tín hiệu ngắt nhận dữ liệu INT nối với chân D2, chân VCC cấp nguồn 5V và chân GND nối mass chung. Chương trình nạp trên Arduino Nano có nhiệm vụ cấu hình tốc độ bus 500 kbit/s, chuyển đổi các khung dữ liệu CAN nhận được từ thanh ghi của MCP2515 sang chuỗi ký tự định dạng mã số thập lục phân (hexadecimal), sau đó truyền tiếp dữ liệu qua giao tiếp Serial UART lên máy tính với tốc độ baud tương thích.
Khối ứng dụng giám sát được phát triển trên máy tính trong môi trường Visual Studio Code, sử dụng ngôn ngữ lập trình Python. Phần mềm sử dụng thư viện pyserial để mở và giám sát cổng COM nối tiếp nhận dữ liệu từ Arduino. Thư viện giao diện đồ họa tkinter được dùng để thiết kế bảng điều khiển trực quan gồm các khối hiển thị đồ thị diễn biến tốc độ động cơ theo thời gian thực, đồng hồ tốc độ xe, chỉ số góc đánh lái và biểu đồ trạng thái bàn đạp ga. Dữ liệu sau khi trích xuất được giải mã theo các quy tắc chuyển đổi DBC và tự động ghi vào tệp văn bản (.txt) để lưu trữ vết vận hành.
Nội dung chính theo từng chương
Chương 1: Giới thiệu (CHAPTER 1: INTRODUCTION)
Chương mở đầu phân tích bối cảnh phát triển của ngành công nghiệp ô tô tại Việt Nam với sự tham gia của các hãng sản xuất toàn cầu (Toyota, Honda, Kia, Mazda, Mercedes-Benz) và thương hiệu nội địa VinFast. Đồ án chỉ ra sự chuyển dịch của phương tiện giao thông hướng tới các tính năng thông minh, hệ thống tự hành và an toàn chủ động, trong đó mạng CAN bus giữ vai trò cốt lõi. Tác giả xác định rõ mục tiêu đề tài, giới hạn phạm vi nghiên cứu trong khung thời gian 3 tháng, xác định đối tượng thực nghiệm chính là vi điều khiển Arduino Nano, mô-đun MCP2515 và dòng xe Mazda CX-5 (2018), đồng thời nêu tổng quan bố cục năm chương của khóa luận.
Chương 2: Cơ sở lý thuyết (CHAPTER 2: LITERATURE REVIEW)
Chương 2 trình bày chi tiết nền tảng lý thuyết của mạng Controller Area Network và hệ thống On-Board Diagnostics:
- Khái quát kiến trúc mạng CAN, cơ chế phân định mức logic dựa trên hiệu điện thế vi sai giữa CAN-H và CAN-L. Trình bày chi tiết cấu tạo một nút mạng (Node) gồm vi điều khiển (MCU), bộ điều khiển CAN (CAN controller) và bộ thu phát CAN (CAN transceiver).
- Phân tích định thời bit (CAN bit timing) gồm 4 phân đoạn: Phân đoạn đồng bộ (Synchronization segment), Phân đoạn truyền lan (Propagation segment), Phân đoạn pha 1 (Phase 1 segment), và Phân đoạn pha 2 (Phase 2 segment).
- Cấu trúc các trường trong bức điện chuẩn và mở rộng: Trường mở đầu (SOF - 1 bit logic 0), Trường phân xử trọng tài (Arbitration Field - 11 bit cho chuẩn 2.0A, 29 bit cho chuẩn 2.0B kèm các bit RTR, SRR, IDE), Trường điều khiển (Control Field gồm các bit dành riêng r0, r1 và DLC 4 bit xác định độ dài dữ liệu từ 0 đến 8 byte), Trường dữ liệu (Data Field), Trường kiểm tra lỗi (CRC Field gồm chuỗi 15 bit CRC và 1 bit CRC Delimiter), Trường xác nhận (ACK Field gồm 1 bit ACK Slot và 1 bit ACK Delimiter), và Trường kết thúc khung (EOF gồm 7 bit lặn).
- Lịch sử phát triển các tiêu chuẩn OBD, so sánh giữa OBD-I và OBD-II. Liệt kê các giao thức tín hiệu phổ biến: SAE J1850 VPW (10,4 kbit/s), SAE J1850 PWM (41,6 kbit/s), ISO 9141-2 (truyền không đồng bộ trên đường K/L, tốc độ 10,4 kbit/s), ISO 14230 KWP2000, và ISO 15765 CAN (250 hoặc 500 kbit/s).
- Tổng hợp sơ đồ chân của giắc cắm OBD-II chuẩn SAE J1962, cấu trúc gói tin yêu cầu/phản hồi thông số PID (Parameter IDs) theo tiêu chuẩn SAE J1979 qua 10 chế độ dịch vụ (Mode 01 đến Mode 0A).
- Trình bày cú pháp cấu trúc tệp dữ liệu DBC của hãng Vector Informatik dùng trong giải mã các thông số CAN thô thành đại lượng vật lý.
Chương 3: Tổng quan phần cứng và phần mềm (CHAPTER 3: HARDWARE AND SOFTWARE OVERVIEW)
Chương 3 thuyết minh thông số kỹ thuật và cách sử dụng các công cụ phần cứng, phần mềm trong dự án:
- Môi trường phát triển Visual Studio Code: Tổng quan tính năng, giao diện làm việc, bảng lệnh (Command Palette) và hệ sinh thái tiện ích mở rộng phục vụ lập trình đa ngôn ngữ.
- Ngôn ngữ lập trình Python: Tổng quan đặc điểm, cú pháp và các thư viện hỗ trợ giao tiếp cổng nối tiếp và thiết kế đồ họa.
- Môi trường lập trình Arduino IDE: Quy trình biên dịch (Compile) và tải mã nguồn (Upload) lên vi điều khiển ATmega328P trên bo mạch Arduino Nano.
- Mô-đun mạng CAN MCP2515: Nguyên lý giao tiếp SPI giữa vi điều khiển và chip điều khiển CAN, các chế độ pha xung đồng hồ SPI (CPOL và CPHA).
Chương 4: Thực nghiệm và kết quả (CHAPTER 4: EXPERIMENT AND RESULTS)
Chương 4 mô tả toàn bộ quá trình thử nghiệm và các kết quả thu được:
- Thiết kế giao diện đồ họa người dùng (GUI): Xây dựng cửa sổ chính, tích hợp logo, các khối màu trạng thái, nút nhấn chức năng, hộp thoại cảnh báo, danh sách chọn hãng xe và khung đồ thị hiển thị các thông số vận hành.
- Thử nghiệm mô phỏng truyền nhận giữa hai nút CAN MCP2515: Thiết lập mạch đo kiểm thực tế, đo dạng sóng xung điện áp tại nút phát và nút nhận ở chu kỳ 20 µs và 4 µs để kiểm tra tính toàn vẹn của tín hiệu.
- Đấu nối và thu thập dữ liệu thực tế trên cổng OBD-II của xe Mazda CX-5:
- Bắt bản tin mang ID 202 (
ENGINE_DATA), xác định vị trí byte chứa giá trị tốc độ động cơ (Engine speed), hiển thị đồ thị giá trị RPM.
- Trích xuất dữ liệu tốc độ xe (Vehicle speed) từ bản tin mang ID 202, xây dựng đồ thị tương ứng.
- Bắt bản tin mang ID 82 (
STEER), xác định byte dữ liệu góc đánh lái vô lăng (Steering angle) và thể hiện giá trị số góc lái.
- Bắt bản tin mang ID 215 (
WHEEL_SPEED), bóc tách byte dữ liệu tốc độ của 4 bánh xe riêng biệt: bánh trước trái (Front Left), bánh trước phải (Front Right), bánh sau trái (Rear Left), bánh sau phải (Rear Right). So sánh giá trị tốc độ giữa các bánh khi xe chuyển động thẳng (các bánh có tốc độ đồng đều) và khi xe thực hiện chuyển hướng rẽ phải (vận tốc bánh ngoài lớn hơn bánh trong).
- Trích xuất thông số vị trí bàn đạp ga (Pedal gas) từ bản tin mang ID 202 và hiển thị trực quan tỷ lệ phần trăm mở ga.
Chương 5: Kết luận và khuyến nghị (CHAPTER 5: CONCLUSION AND RECOMMENDATION)
Chương cuối tóm tắt toàn bộ khối lượng công việc đã hoàn thành: giải mã thành công các bức điện dữ liệu từ xe thực tế, xây dựng hoàn chỉnh giao diện GUI trên Python, ghi nhận và xuất file dữ liệu. Đề xuất các hướng phát triển tiếp theo nhằm mở rộng phạm vi áp dụng cho các dòng xe khác và nâng cao tính tiện dụng của hệ thống chẩn đoán.
Kết quả và đóng góp
Đồ án đã triển khai thành công hệ thống phần cứng và phần mềm phục vụ việc trích xuất, giải mã và hiển thị dữ liệu mạng CAN từ xe Mazda CX-5 2018 qua cổng OBD-II, thu được các kết quả thực nghiệm định lượng cụ thể:
| Mã định danh (ID) |
Tên thông điệp |
Thông số trích xuất |
Ý nghĩa vận hành thực tế ghi nhận |
| 202 (Hex/Dec) |
ENGINE_DATA |
Tốc độ động cơ (Engine speed) |
Đo đạc và vẽ đồ thị biến thiên vòng tua máy (RPM) |
| 202 (Hex/Dec) |
ENGINE_DATA |
Tốc độ xe (Vehicle speed) |
Xác định vận tốc di chuyển tức thời của xe |
| 202 (Hex/Dec) |
ENGINE_DATA |
Vị trí bàn đạp ga (Pedal gas) |
Đo tỷ lệ mở bàn đạp ga khi người lái tăng tốc |
| 82 (Hex/Dec) |
STEER |
Góc đánh lái (Steering angle) |
Đo góc xoay vô lăng sang trái hoặc sang phải |
| 215 (Hex/Dec) |
WHEEL_SPEED |
Tốc độ 4 bánh xe (FL, FR, RL, RR) |
Ghi nhận sự chênh lệch vận tốc bánh xe khi rẽ phải và đồng đều khi chạy thẳng |
Về mặt phần cứng, nhóm nghiên cứu đã kiểm chứng dạng sóng xung điện áp trên dao động ký tại các chu kỳ xung 20 µs và 4 µs giữa hai nút mạng CAN, xác nhận hệ thống mạch giao tiếp tự thiết kế hoạt động ổn định và chính xác theo đặc tính vi sai tiêu chuẩn.
Về mặt giải pháp, đồ án đề xuất quy trình trích xuất dữ liệu chi phí thấp kết hợp giữa vi điều khiển thương mại phổ thông (Arduino Nano) và mô-đun CAN MCP2515, thay thế cho các thiết bị chuyên dụng đắt tiền từ các hãng chẩn đoán. Việc ứng dụng cấu trúc tệp DBC của Vector giúp quá trình ánh xạ dữ liệu thô dạng byte sang giá trị vật lý diễn ra trực quan, có thể tùy biến linh hoạt cho nhiều hệ thống điều khiển khác nhau.
Hạn chế và hướng nghiên cứu tiếp
Khóa luận chỉ ra một số hạn chế gắn liền với phạm vi và điều kiện thực hiện đề tài:
- Thời gian nghiên cứu giới hạn trong 3 tháng, dẫn tới việc thực nghiệm giải mã mới chỉ thực hiện tập trung trên một dòng xe cụ thể (Mazda CX-5 đời 2018).
- Nhóm nghiên cứu chủ yếu trích xuất một số ID bản tin vận hành cơ bản (ID 202, ID 82, ID 215) phục vụ giám sát chuyển động, chưa khai thác toàn bộ tập hợp các bản tin điều khiển thân vỏ, hệ thống an toàn hoặc hệ thống tiện nghi trên xe.
- Định dạng lưu trữ dữ liệu hiện tại dừng lại ở tệp văn bản thô (.txt), chưa tích hợp cơ sở dữ liệu chuyên dụng để quản lý các tập dữ liệu dung lượng lớn theo thời gian dài.
Các hướng phát triển tiếp theo được đề xuất:
- Mở rộng nghiên cứu giải mã mạng CAN cho nhiều chủng loại và thương hiệu ô tô khác nhau nhằm so sánh cấu trúc định danh dữ liệu giữa các hãng sản xuất.
- Nghiên cứu sâu hơn về các giao thức mở rộng thế hệ mới như CAN FD (CAN with Flexible Data-rate) để đáp ứng yêu cầu truyền dữ liệu dung lượng lớn trên các mẫu xe thông minh hiện đại.
- Hoàn thiện tính năng truyền dữ liệu không dây từ bộ giải mã về máy tính hoặc thiết bị di động thông qua Wi-Fi hoặc Bluetooth.
- Tích hợp thêm các thuật toán tự động nhận diện mã lỗi chẩn đoán sự cố (DTC) và phân tích lỗi hệ thống theo chuẩn SAE J1979.
Giá trị tham khảo
Đồ án là tài liệu tham khảo hữu ích cho sinh viên, giảng viên và kỹ sư thuộc các chuyên ngành:
- Ngành Công nghệ Kỹ thuật Ô tô: Cung cấp tài liệu tra cứu có hệ thống về cấu trúc vật lý mạng CAN bus, chuẩn chẩn đoán OBD-I/OBD-II, sơ đồ phân bổ chân giắc SAE J1962 và các phương thức chẩn đoán điện tử trên xe.
- Ngành Kỹ thuật Cơ điện tử và Kỹ thuật Điều khiển & Tự động hóa: Cung cấp sơ đồ mạch ghép nối thực tế giữa vi điều khiển 8-bit với bộ điều khiển CAN chuyên dụng MCP2515 qua bus SPI, cùng phương pháp lập trình điều khiển thiết bị ngoại vi.
- Sinh viên thực hiện đồ án tốt nghiệp về xe thông minh và thiết bị chẩn đoán: Có thể tái sử dụng trực tiếp cấu trúc mã nguồn Python kết hợp
pyserial và tkinter để xây dựng giao diện hiển thị dữ liệu cảm biến ô tô theo thời gian thực, cũng như tham khảo phương pháp ánh xạ định dạng tệp DBC để giải mã các thông số vận hành.
Câu hỏi thường gặp
Khóa luận đã trích xuất và giải mã thành công những thông số vận hành nào trên xe Mazda CX-5 2018?
Nghiên cứu đã trích xuất thành công 5 thông số vận hành từ 3 mã định danh thông điệp chính: tốc độ động cơ (Engine speed), tốc độ xe (Vehicle speed) và độ mở bàn đạp ga (Pedal gas) từ bản tin ID 202 (ENGINE_DATA); góc đánh lái vô lăng (Steering angle) từ bản tin ID 82 (STEER); cùng vận tốc độc lập của 4 bánh xe (trước trái, trước phải, sau trái, sau phải) từ bản tin ID 215 (WHEEL_SPEED).
Hiệu điện thế trên hai đường dây CAN-H và CAN-L được xác định như thế nào ở mức logic 0 và mức logic 1?
Theo lý thuyết trong khóa luận, ở trạng thái nghỉ (mức lặn - logic 1), điện áp trên cả CAN-H và CAN-L duy trì ở mức xấp xỉ 2,5V, hiệu điện thế chênh lệch bằng 0V (hoặc dưới ngưỡng 0,5V). Khi phát tín hiệu (mức trội - logic 0), điện áp dây CAN-H tăng lên 3,5V và dây CAN-L giảm xuống 1,5V, tạo ra hiệu điện thế chênh lệch khoảng 2,0V (vượt ngưỡng 0,9V để nút nhận diện mức 0). Vùng hiệu điện thế từ 0,5V đến 0,9V được xem là vùng không xác định.
Chân kết nối nào trên cổng chẩn đoán OBD-II (SAE J1962) được sử dụng cho giao thức ISO 15765-4 CAN?
Theo bảng phân bố chân chuẩn SAE J1962 trong văn bản, giao thức ISO 15765-4 CAN sử dụng chân số 6 cho đường tín hiệu CAN High (CAN_H) và chân số 14 cho đường tín hiệu CAN Low (CAN_L), kết hợp với chân số 4 (mass khung vỏ), chân số 5 (mass tín hiệu) và chân số 16 (nguồn ắc quy 12V).
Trường mã độ dài dữ liệu (DLC) trong khung truyền CAN có kích thước bao nhiêu bit và giá trị quy định ra sao?
Trường DLC (Data Length Code) nằm trong trường điều khiển (Control Field) của khung dữ liệu CAN, có kích thước 4 bit. Trường này quy định số lượng byte dữ liệu trong trường dữ liệu (Data Field) với giá trị hợp lệ từ 0 đến 8 byte; các giá trị lớn hơn 8 không được phép sử dụng trong chuẩn CAN 2.0.
Tệp định dạng DBC của hãng Vector Informatik giữ vai trò gì trong quá trình xử lý dữ liệu của đề tài?
Tệp DBC là tệp văn bản quy chuẩn mô tả cấu trúc các bản tin CAN. Nó cho phép chuyển đổi các chuỗi byte dữ liệu thô dạng số thập lục phân nhận từ cổng OBD-II thành các đại lượng vật lý có ý nghĩa (như vòng/phút, km/h, độ) nhờ định nghĩa chính xác vị trí bit bắt đầu, độ dài bit, thứ tự byte, hệ số nhân và độ dời của từng tín hiệu.
Kết luận
Khóa luận "Nghiên cứu về mạng CAN bus trên ô tô" đã hoàn thành mục tiêu thiết kế và thử nghiệm hệ thống thu thập, giải mã dữ liệu mạng CAN bus thông qua cổng chẩn đoán OBD-II trên dòng xe Mazda CX-5 2018. Bằng việc kết hợp phần cứng vi điều khiển Arduino Nano, mô-đun MCP2515 và ứng dụng giao diện đồ họa Python, nhóm nghiên cứu đã trích xuất và hiển thị trực quan các thông số vận hành cốt lõi như tốc độ động cơ, vận tốc xe, góc lái và tốc độ từng bánh xe. Kết quả thực nghiệm khẳng định tính khả thi của giải pháp chế tạo bộ giải mã dữ liệu phương tiện chi phí thấp, tạo cơ sở thực tiễn vững chắc cho các nghiên cứu chuyên sâu về giám sát và chẩn đoán ô tô thông minh.