Можно ли запросить все желаемые PID ODB II через файл .dbc?

Я хочу запросить все нужные PID через файл .dbc, созданный в Vector db Editor++.

Я достаточно разбираюсь в связи 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.


person SE Student    schedule 18.02.2017    source источник


Ответы (1)


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

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

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

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

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

С уважением,

person WonderfulMe    schedule 23.02.2017