Контроллер сопряжения персонального компьютера с бортовой системой самодиагностики OBD II по протоколам стандартов SAE (PWM и VPW) и ISO 9141-2
|
Стандарту VPW отвечают модели производства компании GM, стандарту PWM - Ford, стандарту ISO 9141-2 - азиатские и европейские модели. |
Общие данные
Рассматриваемое устройство представляет собой микроконтроллер, выполненный по технологии КМОП (CMOS).
Контроллер не предназначен подключения к бортовым системам самодиагностики первого поколения (OBD I)! |
Устройство выполняет роль простейшего сканера и предназначено для считывания диагностических кодов и данных системы OBD II (обороты двигателя, температура охлаждающей жидкости и всасываемого воздуха, нагрузочные характеристики, расход поступающего в двигатель воздуха и т.п.) в рамках стандарта SAE J1979 через шину любого исполнения (PWM, VPW и ISO 9141-2).
Основное предназначение
Для подключения к компьютеру достаточно 3-жильного провода, подключение к диагностическому разъёму осуществляется 6-жильным проводом. Напряжение питания подается на контроллер через 16-контактный диагностический разъём OBD. Принципиальная схема контроллера представлена на иллюстрации.
Рекомендации по применению
ПОРЯДОК ВЫПОЛНЕНИЯ |
|
|
Общие принципы обмена данными
Если противное не оговорено особо, все числа приведены в 16-ричном формате (hex). |
Десятичный формат обозначается меткой dec.
Обмен данными идёт по трёхпроводному последовательному соединению, без применения инициализационного обмена служебными сообщениями (handshaking). Устройство прослушивает канал на наличие сообщений, выполняет принимаемые команды и передаёт результаты на персональный компьютер (PC), после чего немедленно возвращается в режим прослушивания. Входящие в контроллер и исходящие из него данные организованы в виде цепочки последовательно идущих друг за другом байтов, первый из которых является контрольным. Обычно контрольный байт представляет собой число от 0 до 15 dec (или 0-F hex), описывающее количество следующих далее информационных байтов. Так, например, 3-байтная команда будет выглядеть следующим образом: 03 (контрольный байт), 1-й байт, 2-й байт, 3-й байт. Подобный формат используется как для входящих команд на опрос бортовой системы самодиагностики, так и для исходящих сообщений, содержащих запрошенную информацию. Следует заметить, что в контрольном байте используются лишь четыре младших бита, - старшие биты зарезервированы под некоторые специальные команды и могут быть использованы PC при инициализации соединения с контроллером и согласовании протокола передачи данных, а также контроллером для контроля ошибок передачи. В частности, в случае ошибки при передаче, контроллер производит установку старшего значащего бита (MSB) контрольного байта в единицу. При успешной передаче все четыре старших бита устанавливаются в ноль.
Существуют отдельные исключения из правил использования контрольного байта. |
Инициализация контроллера и бортовой системы самодиагностики
Для начала обмена данными PC должен произвести установку соединения с контроллером, затем инициализировать контроллер и канал данных OBD II.
Установка соединения
После подсоединения контроллера к PC и диагностическому разъёму OBD должна быть произведена его инициализация с целью предотвращения «зависаний», связанных с шумами в последовательных линиях в случае если их подсоединение было произведено до включения питания контроллера. Одновременно производится простейшая проверка активности интерфейса. В первую очередь посылается однобайтовый сигнал 20 (hex), воспринимаемый контроллером как команда на установку соединения. В ответ контроллер вместо контрольного высылает единственный байт FF hex (255 dec) и переходит в режим ожидания приёма данных. Теперь PC может переходить к инициализации канала данных.
Данный случай является одним из немногих, когда контроллер не использует контрольный байт. |
Инициализация
На данном этапе производится инициализация протокола, по которому будет производиться обмен данными, а в случае протокола ISO – инициализация бортовой системы. Обмен данными производится по одному из трёх протоколов: VPW (General Motors), PWM (Ford) и ISO 9141-02 (азиатские/европейские производители). Замечание: Существует множество исключений: так, например, при опросе некоторых моделей автомобилей Mazda может использоваться фордовский протокол PWM. Таким образом, при возникновении проблем передачи следует в первую очередь попытаться воспользоваться каким-либо другим протоколом. Выбор протокола производится передачей комбинации, состоящей из контрольного байта 41(16-ричн.) и следующего непосредственно за ним байта, определяющего тип протокола: 0 = VPW, 1 = PWM, 2 = ISO 9141. Так, например, по команде 41(hex) 02(hex) производится инициализация протокола ISO 9141.
В ответ контроллер высылает контрольный байт и байт состояния. Установка MSB контрольного байта говорит о наличии проблем, при этом следующий за ним байт состояния будет содержать соответствующую информацию. При успешной инициализации высылается контрольный байт 01(hex), указывающий на то, что далее следует верификационный байт состояния. В случае протоколов VPW и PWM верификационный байт представляет собой простое эхо байта выбора протокола (0 или 1, соответственно), при инициализации протокола ISO 9141 это будет цифровой ключ, возвращаемый бортовым процессором OBD и определяющий, какая именно из двух незначительно отличающихся друг от друга версий протокола будет использоваться.
Цифровой ключ имеет чисто информационное назначение. |
Следует заметить, что инициализация протоколов VPW и PWM происходит значительно быстрее, так как требует лишь передачи соответствующей информации контроллеру. На моделях, отвечающих стандарту ISO, инициализация занимает порядка 5 секунд, затрачиваемых на обмен контроллера информацией с бортовым процессором, производимый со скоростью 5 бод. Следует обратить внимание читателя, что на некоторых моделях автомобилей семейства ISO 9141 инициализация протокола приостанавливается, если запрос на выдачу данных не будет передан в течение 5-секундного интервала, - сказанное означает, что PC должен производить автоматическую выдачу запросов каждые несколько секунд, даже в холостом режиме.
После установки соединения и инициализации протокола начинается штатный обмен данными, состоящими из поступающих от PC запросов и выдаваемых контроллером ответов.
Порядок обмена данными
Функционирование контроллера при использовании протоколов семейства ISO 9141-2 и SAE (VPW и PWM) происходит по несколько различным сценариям.
Обмен по протоколам SAE (VPW и PWM)
При обмене данными по данным протоколам происходит буферизация лишь одного кадра данных, что означает необходимость конкретизации подлежащего захвату или возврату кадра. В некоторых (редких) случаях бортовой процессор может передавать пакеты, состоящие более чем из одного кадра. В такой ситуации запрос должен повторяться до тех пор, пока все кадры пакета не будут приняты.
Запрос всегда формируется следующим образом: [Контрольный байт], [Запрос по стандарту SAE], [Номер кадра]. Как уже упоминалось выше, контрольный байт обычно представляет собой число, равное полному количеству следующих за ним байтов. Запрос оформляется в соответствии со Спецификациями SAE J1950 и J1979 и состоит из заголовка (3 байта), последовательности информационных байтов и байта контроля ошибки (CRC) . Заметим, что в то время как информация по запросу формируется в строгом соответствии со Спецификациями SAE, потребителем контрольного байта и номера кадра является интерфейсный чип.
При успешном завершении процедуры ответное сообщение всегда имеет следующий формат: [Контрольный байт], [Ответ по стандарту SAE]. Контрольный байт, как и ранее, определяет количество следующих за ним информационных байтов. Ответ в соответствии с требованиями стандарта SAE состоит из заголовка (3 байта), цепочки информационных байтов и байта CRC.
При сбое высылается 2-байтное ответное сообщение: [Контрольный байт], [Байт состояния]. При этом в контрольном байте производится установка MSB. Четыре младших бита формируют число 001, свидетельствующее о том, что за контрольным следует единственный байт, - байт состояния. Данная ситуация может возникать достаточно часто, так как Спецификации допускают возможность невыдачи бортовым процессором данных, а также передачу неверных данных в случае, когда запрос не соответствует поддерживаемому производителями автомобиля стандарту. Возможна также ситуация, когда запрашиваемые данные отсутствуют в оперативной памяти процессора в текущий момент времени. Когда чип не получает ожидаемого ответа, или получает повреждённые данные, производится установка MSB контрольного байта, а следом за контрольным выдается байт состояния.
При коллизиях в шине интерфейс вырабатывает единственный байт 40 (hex), являющийся контрольным байтом с обнуленным младшим битом. Подобная ситуация может возникать достаточно часто при загрузке автомобильной шины сообщениями более высокого чем у диагностических данных приоритета, - вычислительное устройство должно повторить исходный запрос.
Обмен по протоколам ISO 9141-2
Стандарт ISO 9141-2 используется большинством азиатских и европейских производителей автомобильной техники. Структура формируемого PC запроса мало чем отличается от используемой в стандартах SAE с той лишь разницей, что чип не нуждается в информации о номере кадра и соответствующая информация присутствовать в пакете не должна. Таким образом, запрос всегда состоит из контрольного байта и следующей за ним цепочки информационных байтов, включающих в себя контрольную сумму. В качестве ответного сообщения чип просто ретранслирует сформированные бортовым процессором сигналы. Контрольный байт в ответном сообщении отсутствует, поэтому PC воспринимает поступающую информацию непрерывно до тех пор, пока цепочка не прерывается паузой длиной 55 миллисекунд, сообщающей о завершении информационного пакета. Таким образом, ответное сообщение может состоять из одного или более кадров в соответствии с требованиями Спецификаций SAE J1979. Чип не производит анализ кадров, не отбрасывает недиагностические кадры и т.д. PC должен собственными силами производить обработку поступающих данных с целью вычленения отдельных кадров путем анализа заголовочных байтов.
Ответы на большинство запросов состоят из единственного кадра. |
Модификации, произведенные в интерфейсных контроллерах последних версий
Ниже приведены основные отличия процесса передачи данных по протоколам SAE и ISO 9141, характерные для интерфейсных контроллеров последних версий, а также порядок передачи данных по протоколу ISO 14230:
1) Стандарт ISO 9141: Добавлен адресный байт;
2) Стандарт ISO 9141: Осуществляется возврат не одного, а обоих ключевых байтов; (дополнительный байт возвращается также в режимах SAE, однако здесь он не используется).
3) Добавлена поддержка протокола ISO 14230.
Все информационные байты передаются в 16-ричном
формате.
|
Установка соединения
Порядок установки соединения не изменился:
Отправка: 20
Приём: FF
Выбор протокола
VPW:
Отправка: 41, 00
Приём: 02, 01, XX
PWM:
Отправка: 41, 01
Приём: 02, 01, XX
ISO 9141:
Отправка: 42, 02, adr, где: adr - адресный байт (обычно 33 hex)
Приём: 02, К1, К2, где К1,
К2 - ключевые байты ISO
Или: 82, XX, XX (ошибка инициализации ISO 9141)
ISO 14230 (быстрая инициализация):
Отправка: 46, 03, R1, R2, R3, R4, R5, где: R1 ÷ R5 - сообщение о начале запроса ISO 14230 на установку соединения, обычно R1 ÷ R5 = С1, 33, F1, 81, 66
Приём: S1, S2, ……… - сообщения о начале ответа ISO 14230 на установку соединения
Могут передаваться последовательно более одного ECU. В качестве ответа может использоваться отрицательный код ответа. |
Типичный положительный ответ выглядит следующим образом:
S1, S2, ……. = 83, F1, 10, С1, Е9, 8F, BD
ISO 14230 (медленная инициализация):
Аналогично ISO 9141
Замечание и комментарии
Если планируется использование контроллера для передачи данных лишь по какому-либо
одному или двум из протоколов, лишние компоненты могут быть исключены (см. схему).
Например, при организации схемы под протокол VPW (GM) в проводе подключения
контроллера к автомобилю потребуются лишь три жилы электропроводки (клеммы 16,
5 и 2).
Если не используется протокол PWM, могут быть исключены элементы R4, R6, R7,
R8, R9, R10, Т1, Т2 и D1.
При отказе от обмена по протоколу ISO исключению подлежат элементы: R15, R16,
R17, R18, R19, R21, Т4 и Т5.
Отказ от использования протокола VPW позволяет исключить следующие элементы:
R13, R14, R23, R24, D2, D3 и Т3.
Применены угольно-пленочные резисторы с 5-процентным допуском сопротивления.
Обратите внимание на отсутствие кнопки аварийной перезагрузки (RESET), в случае
необходимости такая перезагрузка может быть произведена путем отсоединения контроллера
от автомобильного разъёма (перезагрузка интерфейсного процессора произойдёт
автоматически). Перезапуск программного обеспечения на PC приводит к новой инициализации
интерфейса.