2017-02-18 9 views
0

Что я хочу сделать, это запросить все нужные идентификаторы PID через файл .dbc, созданный в Vector db Editor ++.Возможно ли запросить все требуемые идентификаторы ODB II через файл .dbc?

Я достаточно хорошо понимаю связь с CAN, чтобы иметь возможность сделать это с помощью 1 или 2 PID, потому что DLC позволяет до 8 байтов данных на сообщение CAN. Я также знаком с этим ресурсом по запросам и ответам PID https://en.wikipedia.org/wiki/OBD-II_PIDs#CAN_.2811-bit.29_bus_format

У меня возникли проблемы с пониманием того, как диагностические инструменты могут запрашивать каждый PID, который производитель конкретного транспортного средства решает сделать доступным, поэтому я чувствую, что это возможно. Тем не менее, если я использую идентификатор запроса $ 7DF, я могу использовать только этот идентификатор сообщения для моего запроса, поэтому я в настоящее время могу установить только два PID (сигнала) в этом сообщении CAN.

ответ

0

Как диагностические инструменты могут запрашивать каждый PID, который производитель конкретного транспортного средства решает сделать доступным?

Вы не можете запрашивать все, что хотите, от ECU (по крайней мере, обычным способом!). Только связанные с OBD PID, которые вы можете запросить. Все идентификаторы PID OBD II и их определения, масштабирование и т. Д. Доступны в рамках стандарта ISO 15031, часть 5. Это означает, что все PID определены заранее. Поэтому любой регистратор должен сначала запросить mode 01 pid 00, чтобы получить все доступные PID для этого транспортного средства, а затем начинает сканировать его.

Если я использую идентификатор запроса $ 7DF, я могу использовать только этот идентификатор сообщения для моего запроса.

Это неправильная причина. 0x7DF не имеет ничего общего с DLC и содержанием сообщения. Только заголовок сообщения должен сообщить ECU, у которого у вас есть этот запрос. 0x7DF - это запросы OBD, и даже вы можете напрямую запросить у разных контроллеров их доступные данные.

Каждое сообщение может содержать 8 байтов. Первый байт - это режим запроса. Второй байт сообщает ECU количество входящих байтов, а затем вы отправляете 6 байтов. Из-за этого они говорят, что вы можете запросить до 6 PID одновременно. ваша проблема может заключаться в получении нескольких данных из OBD, которые могут быть немного сложными с использованием сообщений Flow Control и First Frame. Here вы можете найти информацию о том, как получить сообщение, если оно длиннее 8 байтов.

связи,