
✅ Tại sao giao tiếp CAN thường xảy ra lỗi?
Giao tiếp CAN (Controller Area Network) là chuẩn truyền thông phổ biến trong các hệ thống nhúng, ô tô, công nghiệp… Tuy nhiên, nhiều kỹ sư và kỹ thuật viên gặp lỗi như không gửi/nhận được dữ liệu, dù đã kết nối đúng. Vậy nguyên nhân do đâu?
⚠️ Trường hợp 1: Chỉ một thiết bị CAN gửi dữ liệu nhưng vẫn báo lỗi
Dù chỉ có một thiết bị CAN phát dữ liệu và chưa nối dây vào mạng CAN, bạn vẫn có thể gặp lỗi “Gửi thất bại”. Lý do là do cơ chế xác nhận ACK đặc trưng của giao tiếp CAN:
- Sau khi gửi xong gói dữ liệu, thiết bị gửi cần nhận lại tín hiệu ACK từ thiết bị nhận.
- Nếu không có bất kỳ thiết bị nào phản hồi ACK, thiết bị gửi sẽ đánh giá là truyền lỗi.
Lưu ý quan trọng: Nếu thiết bị nhận đang ở chế độ chỉ nghe (listen-only) thì nó sẽ không phản hồi ACK, gây ra lỗi này.
⚠️ Trường hợp 2: Hai thiết bị CAN kết nối nhưng không giao tiếp được
Ngay cả khi:
- Cả hai thiết bị đã kết nối trực tiếp
- Cài đặt tốc độ truyền (baud rate) trùng khớp
… thì vẫn có thể lỗi giao tiếp nếu bạn bỏ qua yếu tố phần cứng.
➤ Nguyên nhân chính:
- Không có điện trở đầu cuối (termination resistor) hoặc chỉ gắn 1 đầu
- Chiều dài dây CAN quá dài
- Sử dụng tốc độ baud cao (250k – 1Mbps)
Điều này sẽ khiến tín hiệu phản xạ (ringing), gây nhiễu dữ liệu. Sóng CAN không còn vuông vức mà bị “gợn sóng”, không đảm bảo tính chính xác.
➤ Cách xử lý:
- Gắn điện trở 120Ω ở cả hai đầu đường truyền CAN.
- Giữ tổng chiều dài đường truyền ngắn nhất có thể.
- Với mạng phức tạp, nên đo tín hiệu bằng máy hiện sóng (oscilloscope) để kiểm tra chất lượng tín hiệu.
🎯 4 Yếu tố quan trọng để giao tiếp CAN ổn định
1. Dây nối đúng cách
Đảm bảo dây CAN_H và CAN_L không bị đảo, lỏng hoặc ngắn mạch.
2. Tốc độ truyền (Baud Rate) giống nhau
Nếu baud rate khác nhau, dữ liệu sẽ không thể giải mã chính xác.
3. Thiết bị nhận cần có phản hồi ACK
Không sử dụng chế độ “listen-only” nếu muốn thiết bị gửi thành công.
4. Kết nối điện trở đầu cuối phù hợp
Luôn gắn điện trở 120Ω tại 2 đầu mạng CAN để tránh phản xạ tín hiệu.

📌 Kết luận
Việc giao tiếp CAN thất bại thường đến từ các yếu tố cấu hình nhỏ nhưng quan trọng. Bằng cách kiểm tra 4 yếu tố cốt lõi: kết nối đúng, tốc độ phù hợp, có ACK phản hồi và điện trở đầu cuối chuẩn, bạn hoàn toàn có thể khắc phục hầu hết các sự cố.