Разъем Obd Ii
В OBDII разъёме по стандарту J1962M присутствуют три стандартных интерфейса: MS_CAN, K/L-Line, 1850, там же плюс аккумулятора и две земли (сигнальная и просто масса). Это по стандарту, остальные 7 из 16 выводов – ОЕМ, то есть каждый производитель эти выводы использует как ему заблагорассудится. Но и стандартизованные выводы зачастую имеют расширенные, продвинутые функции. Например, MS_CAN может быть HS_CAN, HS_CAN может быть на других пинах (неоговоренных стандартом) наряду со стандартным MS_CAN., Пин №1 может быть: у форда – SW_CAN, у WAGов – IGN_ON, у КИА – check_engene. И т.д. Все интерфейсы также не были стационарны в своём развитии: тот же интерфейс K –Line изначально был однонаправленным, сейчас он двунаправленный., Бодрейт CAN интерфейса также растёт. Вообще, подавляющее большинство европейских автомобилей 90-х и начала нулевых вполне себе можно было продиагностировать имея только K –Line, а большинство американских – только SAE1850. В настоящее время общий вектор развития – это всё более широкое применение CAN, повышение скорости обмена., всё чаще видим и однопроводный SW_CAN.
Существует мнение, что англоязычный программист сидя на профильных(англоязычных же) форумах, закопавшись в тексты стандартов, может за “максимум 4-5 месяцев” построить универсальный движок, который со всем этим разнообразием справится. На практике это не так. Всё равно возникает потребность сниферить каждую новую машину., иногда даже одну и ту же машину, но в разных комплектациях. И получается, что заявляют о 800-900 типах поддерживаемых автомобилей, а на практике 10-20 реально оттестированных. И это система, –в РФ автору известны, по-крайней мере, 3 команды разработчиков, пошедших по этому тернистому пути и все с одинаково плачевным результатом: нужно сниферить/кастомизировать каждую модель автомобиля, а ресурсов/средств на это нет. И причина этого вот в чем: стандарт-стандартом, а каждый производитель когда вынужденно, а когда и преднамеренно вносит в свою реализацию что-то своё, стандартом не описанное. Кроме того, не все данные по-умолчанию присутствуют на разъёме. Есть данные, появление которых нужно инициировать (дать тому или иному блоку автомобиля команду передать нужные данные).