Mã PIDs trong hệ thống OBD 2

Prox271109
Bình luận: 16Lượt xem: 2,171

Prox271109

Tài xế O-H
- Chào các cụ, hiện nay em có một vấn đề muốn hỏi như sau:
- Em đang làm báo cáo thực tập và đã thiết kế một thiết bị có thể kết nối với ECU động cơ thông qua mạng CAN trên xe. <Em sử dụng vi điều khiển và module để kết nối với chiếc xe>
- Hoạt động của thiết bị là khi gửi một mã PIDs xuống mạng CAN (các mã chuẩn như ở đây: https://en.wikipedia.org/wiki/OBD-II_PIDs), khi ECU nhận được các mã PIDs đó nó sẽ phản hồi về một khung tín hiệu mang dữ liệu yêu cầu trùng với PIDs đã gửi.
- Mục đích của em là gửi mã PIDs xuống để lấy về dữ liệu Tốc độ động cơ, tốc độ của xe.
= Vấn đề ở đây là không phải các hãng xe nào cũng hỗ trợ hoặc sử dụng chung một loại PIDs thông dụng đó, nên khi em thực hiện việc lấy các giá trị tốc độ xe và vòng tua máy trên xe Toyota Vitz 2008 bằng các thông số PIDs trên thì không nhận được dữ liệu gì cả. Theo em là do xe này sử dụng một mã riêng theo tiêu chuẩn của Toyota.
- Tóm lại: Các cụ có tài liệu nào của hãng Toyota về và hệ thống chẩn đoán OBD-II quy định các mã PIDs trên thì cho em xin link với ạ. Em xin cảm ơn và đổ xăng đầy đủ cho mọi người ạ.!

T_T em đã lục tung google lên nhưng không có tài liệu, nên đành lên đây hỏi mong các cụ, các anh, các chị, các bạn bốn phương giúp đỡ ạ. êm cảm ơn nhiều lắm.
 

Prox271109

Tài xế O-H
Bác đã gửi những Command Request là gì rồi?
Dạ em gửi 2 thông số PIDs tốc độ xe và tốc độ vòng tua máy (0x0C và 0x0D). Em sử dụng con arduino mới module CAN bus. định dạng khung dữ liệu gửi là (0x7DF, 0, 8, stmp); với stmp kiểu char, stmp[8] = {0x02,0x01,0x0D,0x00,0x00,0x00,0x00,0x00}; 0x7DF là ID khung truyền dữ liệu trong CAN bus (sẽ có ID phản hồi từ ECU là 0x7E8).
Em tham khảo thêm về dữ liệu gửi đi và phản hồi về tương tự như ví dụ ở đây: https://www.csselectronics.com/screen/page/obd-ii-pid-examples
 

Prox271109

Tài xế O-H
stmp[8] = {0x02,0x01,0x0D,0x00,0x00,0x00,0x00,0x00}; (là gói tin yêu cầu tốc độ xe).
stmp[8] = {0x02,0x01,0x0C,0x00,0x00,0x00,0x00,0x00}; (là gói tin yêu cầu tốc độ vòng tua máy).
 

AutoLink

Tài xế O-H
stmp[8] = {0x02,0x01,0x0D,0x00,0x00,0x00,0x00,0x00}; (là gói tin yêu cầu tốc độ xe).
stmp[8] = {0x02,0x01,0x0C,0x00,0x00,0x00,0x00,0x00}; (là gói tin yêu cầu tốc độ vòng tua máy).
upload_2018-4-23_10-7-57.png

Bác có gửi cái 01 00 chưa?, và ECU trả về là gì?
 

AutoLink

Tài xế O-H
Dạ em gửi 2 thông số PIDs tốc độ xe và tốc độ vòng tua máy (0x0C và 0x0D). Em sử dụng con arduino mới module CAN bus. định dạng khung dữ liệu gửi là (0x7DF, 0, 8, stmp); với stmp kiểu char, stmp[8] = {0x02,0x01,0x0D,0x00,0x00,0x00,0x00,0x00}; 0x7DF là ID khung truyền dữ liệu trong CAN bus (sẽ có ID phản hồi từ ECU là 0x7E8).
Em tham khảo thêm về dữ liệu gửi đi và phản hồi về tương tự như ví dụ ở đây: https://www.csselectronics.com/screen/page/obd-ii-pid-examples
Bác nhận được phản hồi từ ECU là những message gì?
 

Prox271109

Tài xế O-H
View attachment 78332
Bác có gửi cái 01 00 chưa?, và ECU trả về là gì?
upload_2018-4-23_10-52-10.png

Em hiểu ý bác rồi. hóa ra là xe đó không hỗ trợ mặc dù ID bản tin CAN phản hồi từ ECU (0x7E8) có gửi về nhưng chỉ bao gồm PIDs 0x01 mà thôi.
ECU gửi về cho các thông số: CAN ID: 7E8; PIDs: 0x01; <thông số này em lấy toàn bộ dữ liệu gửi về từ ECU và lọc ra CAN ID 0x7E8>
 

AutoLink

Tài xế O-H
View attachment 78335
Em hiểu ý bác rồi. hóa ra là xe đó không hỗ trợ mặc dù ID bản tin CAN phản hồi từ ECU (0x7E8) có gửi về nhưng chỉ bao gồm PIDs 0x01 mà thôi.
ECU gửi về cho các thông số: CAN ID: 7E8; PIDs: 0x01; <thông số này em lấy toàn bộ dữ liệu gửi về từ ECU và lọc ra CAN ID 0x7E8>
Bác đưa lên em xem ECU trả lời là gì 7E8 ....rồi gì nữa
 

AutoLink

Tài xế O-H
View attachment 78335
Em hiểu ý bác rồi. hóa ra là xe đó không hỗ trợ mặc dù ID bản tin CAN phản hồi từ ECU (0x7E8) có gửi về nhưng chỉ bao gồm PIDs 0x01 mà thôi.
ECU gửi về cho các thông số: CAN ID: 7E8; PIDs: 0x01; <thông số này em lấy toàn bộ dữ liệu gửi về từ ECU và lọc ra CAN ID 0x7E8>
Xe này nhiều khả năng không chạy theo chuẩn OBD2 mà theo chuẩn riêng của Toyota bác à
 

Prox271109

Tài xế O-H
Vậy xe này theo chuẩn OBD 2 đấy bác, giờ thì dễ rồi
Dạ vâng. vậy để cháukiểm tra lại nó có hỗ trợ 2 thông số kia không, chứ lúc em lọc ra cái ID 0x7e8 thì nó chỉ có 1 PID duy nhất và không đổi thôi nên cháu đang hoang mang lắm cụ ạ. Xe thì lên trường mượn mới có nên có gì cho cháu hỏi cụ sau nhé. Cảm ơn cụ nhiều lắm.
 

Bạn hãy đăng nhập hoặc đăng ký để phản hồi tại đây nhé.

Bên trên