Bối cảnh và vấn đề nghiên cứu
Trong nền công nghiệp sản xuất ô tô hiện đại, sự gia tăng nhanh chóng của các hệ thống điều khiển điện tử (ECU) đòi hỏi việc kết nối và trao đổi dữ liệu giữa các bộ phận phải đạt độ chính xác, tính thời gian thực và khả năng chống nhiễu cao. Mạng truyền thông Controller Area Network (CAN) đã trở thành chuẩn giao tiếp nền tảng trên phương tiện giao thông. Tuy nhiên, các tài liệu kỹ thuật chuyên sâu bằng tiếng Việt về cơ chế hoạt động chi tiết của mạng CAN, chuẩn giao tiếp và phương pháp triển khai trên xe vẫn còn hạn chế đối với người học.
Tại Trường Đại học Sư phạm Kỹ thuật TP.HCM, môn học "Ứng dụng điều khiển tự động trên ô tô" dành cho sinh viên năm thứ 3 ngành Công nghệ Kỹ thuật Ô tô cung cấp các kiến thức cốt lõi về điều khiển tự động. Mặc dù vậy, quá trình giảng dạy thực tế còn thiếu các thiết bị thực nghiệm và ví dụ trực quan về hệ thống mạng truyền thông CAN. Xuất phát từ nhu cầu thực tiễn đó, đề tài được thực hiện nhằm nghiên cứu, xây dựng và hoàn thiện một mô hình mạng CAN thu nhỏ với chi phí hợp lý, phục vụ trực tiếp cho công tác đào tạo và nghiên cứu kỹ thuật.
Mục tiêu nghiên cứu của đề tài được xác định bao gồm 6 nhiệm vụ cụ thể:
- Hiểu và nắm vững kiến thức lý thuyết về giao thức CAN.
- Tìm hiểu các thiết bị ngoại vi và hướng dẫn sử dụng board ARM STM32F103C8T6 dùng trình biên dịch Keil C.
- Lập trình hệ thống giao tiếp CAN giữa các vi điều khiển Arduino Uno R3 và STM32F103C8T6.
- Đọc dữ liệu và truyền dữ liệu điều khiển sáng/tắt đèn báo trên cụm đồng hồ hiển thị của ô tô.
- Đọc dữ liệu từ hộp điều khiển động cơ (ECU).
- Hoàn thiện mô hình phần cứng hệ thống mạng CAN.
Đối tượng nghiên cứu của đề tài là giao thức truyền thông mạng CAN, các vi điều khiển nhúng ARM STM32F103C8T6, Arduino Uno R3, mạch chuyển đổi CAN MCP2515, cùng các thiết bị ngoại vi trên ô tô như hộp ECU và cụm đồng hồ táp-lô. Phạm vi nghiên cứu tập trung vào việc lập trình giao tiếp giữa các nút vi điều khiển, phân tích khung truyền thông điệp, điều khiển hiển thị cụm đồng hồ và thu thập thông số chẩn đoán qua cổng OBD-II.
Cơ sở lý thuyết và phương pháp
Đề tài xây dựng nền tảng dựa trên lý thuyết mạng truyền thông công nghiệp và mô hình mạng trên ô tô:
- Mô hình tham chiếu OSI (ISO 7498-1): Phân tích chức năng 7 tầng mạng từ Lớp Vật lý (Physical), Lớp Liên kết dữ liệu (Data Link), Lớp Mạng (Network), Lớp Vận chuyển (Transport), Lớp Giao dịch (Session), Lớp Trình bày (Presentation) đến Lớp Ứng dụng (Application).
- Cấu trúc liên kết mạng (Topology): Khảo sát các dạng cấu trúc mạng Bus, Sao (Star), Vòng (Ring), Lưới (Mesh) và mạng lai (Sao - Bus, Sao - Vòng).
- Phương thức truy cập đường truyền và định địa chỉ: Đánh giá các phương thức truy cập ngẫu nhiên CSMA/CA, CSMA/CD, phương thức tiền định TDMA và Chủ - Tớ (Master - Slave); so sánh phương thức định địa chỉ hướng đăng ký (node-based) và định địa chỉ hướng nội dung (content-based/Message ID) của giao thức CAN.
- Bảo toàn dữ liệu và mã hóa đường truyền: Cơ chế kiểm tra lỗi Parity, mã đa thức kiểm tra vòng CRC (Cyclic Redundancy Check), kỹ thuật nhồi bit (Bit Stuffing - chèn 1 bit đảo dấu sau 5 bit liên tiếp có cùng trạng thái logic), mã hóa đường truyền NRZ (Non-Return to Zero) và truyền dẫn chênh lệch điện áp vi sai trên 2 dây
CAN_H và CAN_L với điện trở kết thúc 120 $\Omega$.
| Giao thức |
Loại Bus |
Tốc độ truyền tối đa |
Cấu trúc liên kết |
Cơ chế điều khiển |
Tiêu chuẩn phân loại |
| LIN |
Bus thông thường |
Tối đa 20 kbit/s |
Tuyến Bus |
Dựa theo thời gian và tác động |
Lớp A (SAE) / LIN |
| CAN-B (Low-Speed) |
Bus thông thường |
Tối đa 125 kbit/s |
Tuyến Bus |
Dựa theo tác động |
Lớp B / ISO 11519-2 |
| CAN-C (High-Speed) |
Bus thông thường |
125 kbit/s – 1 Mbit/s |
Tuyến Bus |
Dựa theo tác động |
Lớp C / ISO 11898 |
| FlexRay |
Bus thông thường |
Tối đa 10 Mbit/s (lý thuyết 20 Mbit/s) |
Tuyến Bus / Sao |
Dựa theo thời gian và tác động |
Drive-by-wire / FlexRay |
| MOST |
Bus quang học |
Tối đa 22.5 Mbit/s |
Vòng |
Dựa theo thời gian và tác động |
Lớp D / Phương tiện đa phương tiện |
Phương pháp nghiên cứu được triển khai thông qua:
- Phân tích - tổng hợp tài liệu: Nghiên cứu lý thuyết giao thức CAN (chuẩn CAN 2.0A 11-bit ID và CAN 2.0B 29-bit ID), thư viện phần mềm Standard Peripheral Libraries (SPL) cho vi điều khiển STM32.
- Thiết kế cơ khí và mô phỏng không gian: Sử dụng phần mềm CATIA V5-R26 để thiết kế mô hình khung giá đỡ 3D cho toàn bộ hệ thống.
- Thực nghiệm và đo kiểm: Hàn lắp ráp mạch điện phần cứng; lập trình vi điều khiển trên Keil C $\mu$Vision 5 và Arduino IDE; kết nối giao tiếp SPI giữa vi điều khiển và module MCP2515; trích xuất dữ liệu thực tế từ hộp ECU và cụm đồng hồ táp-lô qua cổng chẩn đoán On-Board Diagnostics (OBD-II).
Thiết kế và triển khai
Hệ thống mô hình thực nghiệm được xây dựng từ các khối phần cứng và công cụ phần mềm chuyên dụng:
1. Kiến trúc phần cứng
- Khối xử lý trung tâm: Sử dụng board mạch ARM STM32F103C8T6 (vi điều khiển 32-bit lõi ARM Cortex-M3) kết hợp board vi điều khiển Arduino Uno R3.
- Khối điều khiển và chuyển đổi CAN: Module MCP2515 tích hợp bộ điều khiển CAN (CAN Controller) giao tiếp với vi điều khiển qua chuẩn nối tiếp SPI (Serial Peripheral Interface), kết hợp các dòng IC Transceiver (TJA1050, MCP2551, SN65HVD2301-2) để chuyển đổi tín hiệu logic sang tín hiệu vi sai trên đường truyền
CAN_H và CAN_L.
- Thiết bị ngoại vi ô tô: Cụm đồng hồ hiển thị táp-lô ô tô thực tế; hộp điều khiển động cơ (ECU); giắc cắm chẩn đoán tiêu chuẩn OBD-II (sử dụng các chân tín hiệu CAN theo chuẩn SAE).
- Hạ tầng đường truyền: Cáp đôi xoắn vi sai với 02 điện trở đầu cuối 120 $\Omega$ (nằm trong dải chuẩn 108 $\Omega$ - 132 $\Omega$ theo ISO 11898) nhằm triệt tiêu sóng phản xạ.
2. Công cụ phần mềm và thiết kế mô hình
- Môi trường lập trình: Trình biên dịch Keil C $\mu$Vision 5 dành cho vi điều khiển ARM Cortex-M3 (sử dụng thư viện SPL) và Arduino IDE.
- Thiết kế kết cấu 3D: Phần mềm CAD/CAM CATIA V5-R26 dùng để thiết kế toàn bộ giá đỡ mô hình, bố trí không gian cho các board mạch, cụm đồng hồ và giắc kết nối trước khi gia công chế tạo.
3. Giải thuật điều khiển và quy trình thử nghiệm
- Thiết lập bộ lọc (Filter) và mặt nạ (Mask): Cấu hình thanh ghi của bộ điều khiển CAN để chấp nhận hoặc loại bỏ các Message ID tương ứng với từng nút mạng.
- Quy trình truyền nhận: Vi điều khiển đóng gói dữ liệu (Data Frame) gồm trường phân xử (Arbitration Field), trường điều khiển (Control Field với mã độ dài dữ liệu DLC), trường dữ liệu (Data Field 0-8 byte), trường mã kiểm tra lỗi CRC và trường phản hồi ACK.
- Thực nghiệm kết nối: Hệ thống thực hiện gửi thông điệp điều khiển để bật/tắt các đèn chỉ thị (MIL, cảnh báo, đèn báo rẽ) trên cụm đồng hồ hiển thị; đồng thời kết nối vào mạng CAN của xe qua cổng OBD-II để đọc các khung dữ liệu thời gian thực và mã lỗi chẩn đoán từ hộp ECU.
Nội dung chính theo từng chương
Chương 1: Tổng quan đề tài
Chương này phân tích tình hình nghiên cứu mạng truyền thông trên ô tô trong và ngoài nước. Tác giả chỉ ra tính cấp thiết của việc xây dựng thiết bị thực nghiệm giảng dạy cho sinh viên năm 3 ngành Công nghệ Kỹ thuật Ô tô tại Trường Đại học Sư phạm Kỹ thuật TP.HCM. Chương 1 xác định rõ mục tiêu nghiên cứu, phạm vi ứng dụng (lập trình STM32F103C8T6, Arduino Uno R3, giải mã OBD-II và điều khiển cụm đồng hồ táp-lô), cùng các phương pháp luận kỹ thuật được triển khai.
Chương 2: Tổng quan về mạng truyền thông
Chương 2 trình bày hệ thống lý thuyết toàn diện về mạng truyền thông công nghiệp và mạng trên ô tô:
- Cơ sở truyền dẫn: Phân tích nguyên lý truyền dữ liệu số nối tiếp, chế độ truyền đồng bộ/không đồng bộ, truyền hai chiều gián đoạn/toàn phần, mã hóa đường truyền NRZ/RZ, đặc tính kháng nhiễu và vai trò của trở đầu cuối 120 $\Omega$ trên đường truyền vi sai.
- Bảo toàn dữ liệu: Mô tả chi tiết thuật toán mã đa thức kiểm tra CRC (chia đa thức nhị phân với đa thức phát $G$), cơ chế kiểm tra Parity và phương pháp nhồi bit (Bit Stuffing với $n=5$).
- Cấu trúc mạng và mô hình lớp: Khảo sát các topology Bus, Sao, Vòng, Lưới, Lai và chức năng 7 lớp của mô hình OSI (ISO 7498-1).
- Định địa chỉ và truy cập bus: So sánh phương thức định địa chỉ theo trạm và theo Message ID; phân tích các cơ chế truy cập bus CSMA/CA, CSMA/CD, TDMA và Chủ - Tớ.
- Tổng quan mạng trên ô tô và giao thức CAN: Phân loại các vùng ứng dụng trên ô tô (Class A, B, C, C+, D); so sánh các giao thức LIN, CAN-B, CAN-C, MOST, FlexRay; phân tích các cơ chế điều khiển theo tác động và theo bộ định thời; trình bày lịch sử hình thành mạng CAN (Bosch 1983, SAE 1986, Mercedes-Benz W140) cùng cấu trúc khung dữ liệu CAN tiêu chuẩn (CAN 2.0A - 11 bit ID) và khung mở rộng (CAN 2.0B - 29 bit ID).
Chương 3: Mô hình mạng CAN
Chương 3 tập trung vào quá trình hiện thực hóa mô hình thực nghiệm:
- Khảo sát phần cứng: Chi tiết cấu trúc phần cứng của vi điều khiển ARM STM32F103C8T6, Arduino Uno R3, vi điều khiển CAN MCP2515, các IC Transceiver (TJA1050, MCP2551, SN65HVD2301-2), sơ đồ chân giắc cắm chẩn đoán OBD-II và nguyên lý hoạt động của hộp ECU.
- Thiết kế và lập trình phần mềm: Hướng dẫn cấu hình môi trường Keil C $\mu$Vision 5; thiết kế không gian giá đỡ mô hình 3D trên CATIA V5-R26.
- Triển khai giải thuật và kết quả: Trình bày sơ đồ mạch điện, giải thuật giao tiếp SPI giữa vi điều khiển và module CAN; phân tích cấu trúc khung dữ liệu truyền trên Bus; trích xuất và hiển thị dữ liệu nhận được từ hộp ECU và cụm đồng hồ xe thực tế.
Chương 4: Kết luận và định hướng phát triển
Chương 4 tổng kết các kết quả kỹ thuật đã đạt được của đề tài, đánh giá mức độ hoàn thành so với các mục tiêu ban đầu, đồng thời chỉ ra các điểm hạn chế về phần cứng, phần mềm và đề xuất các hướng phát triển mở rộng trong tương lai.
Kết quả và đóng góp
Đề tài đã hoàn thành các nội dung kỹ thuật thực nghiệm cụ thể:
- Chế tạo mô hình phần cứng hoàn chỉnh: Thiết kế và gia công cơ khí mô hình thực nghiệm dựa trên bản vẽ 3D từ CATIA V5-R26, tích hợp vi điều khiển STM32F103C8T6, Arduino Uno R3, module MCP2515 và các transceiver TJA1050/MCP2551.
- Thiết lập mạng giao tiếp vi điều khiển: Lập trình truyền nhận dữ liệu thành công qua giao thức CAN giữa board STM32F103C8T6 và Arduino Uno R3, bảo đảm tính toàn vẹn tín hiệu trên đường truyền vi sai có trở kết thúc 120 $\Omega$.
- Giao tiếp ngoại vi ô tô thực tế: Đọc và giải mã thành công các gói tin từ hộp ECU động cơ thông qua cổng chẩn đoán OBD-II; truyền thông điệp CAN theo đúng Message ID định trước để điều khiển sáng/tắt chính xác các đèn báo chỉ thị trên cụm đồng hồ hiển thị táp-lô ô tô.
- Đóng góp học thuật và ứng dụng: Hệ thống hóa cơ sở lý thuyết chuyên sâu về mạng truyền thông trên ô tô và giao thức CAN bằng tiếng Việt; cung cấp một mô hình thực hành trực quan, chi phí thấp phục vụ trực tiếp cho công tác giảng dạy môn "Ứng dụng điều khiển tự động trên ô tô" cho sinh viên Trường Đại học Sư phạm Kỹ thuật TP.HCM.
Hạn chế và hướng nghiên cứu tiếp
Căn cứ vào phạm vi nghiên cứu được trình bày trong văn bản:
- Hạn chế: Mô hình tập trung chủ yếu vào giao thức mạng CAN (CAN-C tốc độ cao) trên quy mô mô phỏng thu nhỏ với các chức năng cơ bản (đọc tín hiệu ECU, điều khiển đèn táp-lô), chưa tích hợp đầy đủ các hệ thống mạng khác trên ô tô như LIN, FlexRay hoặc MOST vào một kiến trúc Gateway tổng thể.
- Hướng nghiên cứu tiếp:
- Mở rộng mô hình để kết nối liên mạng giữa CAN và các chuẩn giao tiếp khác (LIN, FlexRay) thông qua bộ điều khiển trung tâm (Gateway).
- Nghiên cứu lập trình đọc và điều khiển thêm nhiều cụm cảm biến và cơ cấu chấp hành chuyên sâu khác trên hệ thống khung gầm và thân xe.
- Phát triển giao diện giám sát, phân tích lỗi và hiển thị dữ liệu thời gian thực trên máy tính phục vụ công tác giảng dạy chuyên sâu.
Giá trị tham khảo
Đồ án có giá trị tham khảo thực tiễn đối với:
- Đối tượng sử dụng: Giảng viên, sinh viên chuyên ngành Công nghệ Kỹ thuật Ô tô, Kỹ thuật Cơ điện tử, Kỹ thuật Điều khiển & Tự động hóa và Kỹ thuật Hệ thống Nhúng.
- Nội dung tham khảo giá trị:
- Phần phân tích lý thuyết về định thời bit (Bit Timing), cơ chế phân xử tranh chấp bus CSMA/CA, thuật toán tính toán mã kiểm tra lỗi CRC và cơ chế nhồi bit trong mạng CAN.
- Sơ đồ nguyên lý kết nối giữa vi điều khiển STM32F103C8T6/Arduino với IC CAN MCP2515 và Transceiver.
- Quy trình phân tích khung thông điệp chẩn đoán OBD-II và phương pháp điều khiển cụm đồng hồ táp-lô ô tô thông qua mạng CAN.
Câu hỏi thường gặp
1. Đề tài sử dụng những vi điều khiển và linh kiện phần cứng nào để xây dựng mô hình mạng CAN?
Mô hình sử dụng vi điều khiển ARM 32-bit STM32F103C8T6 (lập trình trên Keil C $\mu$Vision 5) và board vi điều khiển Arduino Uno R3. Khối giao tiếp CAN sử dụng IC/Module điều khiển MCP2515 (giao tiếp SPI) kết hợp với các IC Transceiver như TJA1050, MCP2551 hoặc SN65HVD2301-2, kết nối với cụm đồng hồ hiển thị và hộp ECU qua giắc OBD-II.
2. Tại sao mạng CAN lại sử dụng phương thức định địa chỉ theo nội dung (Content-based addressing) thay vì định địa chỉ theo trạm?
Phương thức định địa chỉ theo nội dung gán cho mỗi thông điệp một định danh (Message ID). Các nút trên bus sẽ dựa vào ID này để lọc và quyết định nhận hoặc bỏ qua gói tin. Cơ chế này giúp hệ thống linh hoạt, cho phép thêm hoặc bớt các nút mạng mà không cần nạp lại cấu hình toàn bộ hệ thống, rất phù hợp với môi trường mạng phức tạp trên ô tô.
3. Cơ chế bảo toàn dữ liệu và phát hiện lỗi của giao thức CAN trong đề tài gồm những phương pháp nào?
Giao thức CAN sử dụng kết hợp nhiều phương pháp: mã đa thức kiểm tra vòng CRC (Cyclic Redundancy Check) với đa thức phát $G$, kỹ thuật nhồi bit (Bit Stuffing - chèn 1 bit 0 sau 5 bit 1 liên tiếp ở phía phát và tách bit ở phía thu), kiểm tra chẵn lẻ Parity, cùng cơ chế giám sát khung truyền (Frame Check) và xác nhận ACK.
4. Vai trò của điện trở đầu cuối 120 $\Omega$ trên đường dây CAN là gì?
Trong mạng CAN tốc độ cao (ISO 11898), hai điện trở 120 $\Omega$ (nằm trong dải chuẩn 108 $\Omega$ - 132 $\Omega$) được lắp ở hai đầu bus truyền dẫn vi sai nhằm hấp thụ tín hiệu phản xạ khi lan truyền đến cuối đường dây, ngăn chặn hiện tượng phản xạ sóng gây xung đột và suy giảm chất lượng dữ liệu.
5. Đề tài đã thực hiện việc kiểm tra và giao tiếp thực nghiệm với những thiết bị ngoại vi nào trên ô tô?
Đề tài đã thực nghiệm giao tiếp thành công với cụm đồng hồ táp-lô ô tô thực tế (gửi khung dữ liệu CAN để điều khiển bật/tắt các đèn báo) và hộp điều khiển động cơ ECU (đọc và phân tích các khung dữ liệu chẩn đoán thời gian thực thông qua cổng OBD-II).
Kết luận
Đồ án đã hoàn thành việc nghiên cứu toàn diện cơ sở lý thuyết mạng truyền thông và giao thức CAN trên ô tô, đồng thời thiết kế và chế tạo thành công mô hình mạng CAN thực nghiệm sử dụng vi điều khiển STM32F103C8T6 và Arduino Uno R3. Hệ thống đã triển khai hiệu quả việc đọc dữ liệu từ hộp ECU và điều khiển hiển thị cụm đồng hồ táp-lô qua đường truyền vi sai chuẩn ISO 11898. Đây là tài liệu kỹ thuật có giá trị ứng dụng cao, đáp ứng trực tiếp nhu cầu giảng dạy và thực hành trong môn học Ứng dụng điều khiển tự động trên ô tô.