Протокол KWP2000 стал стандартом де-факто в автомобильной диагностике. Он стандартизирован как ISO 14230-3. KWP2000 описывает реализацию различных диагностических услуг, которые могут быть получены через протокол. Вы можете запустить KWP2000 на нескольких транспортных уровнях, таких как K-line (последовательный) или CAN.

Транспортный протокол

Поскольку KWP2000 использует сообщения с переменной длиной байтов, протокол необходим на уровнях с четко определенными (короткими) длинами сообщений, таких как CAN. Транспортный протокол разделяет длинное сообщение KWP2000 на части, которые могут быть отправлены по сети, и повторно собирает эти части, чтобы восстановить исходное сообщение.

KWP2000 работает по CAN для различных транспортных протоколов, таких как ISO TP (ISO 15765-2), TP 1.6, TP 2.0 (Volkswagen) и SAE J1939-21. Для KWP2000 набор команд диагностики автомобиля поддерживает только ISO TP (стандартизированный в ISO 15765-2) и специфичные для производителя транспортные протоколы VW TP 2.0.

Диагностические Услуги

Диагностические службы, доступные в KWP2000, сгруппированы в функциональные блоки и помечены однобайтовым кодом (ServiceId). Стандарт не определяет все коды; для некоторых кодов стандарт относится к другим стандартам SAE или ISO, а некоторые зарезервированы для расширений, специфичных для производителя. Набор команд диагностики автомобиля поддерживает следующие сервисы:

• Диагностическое управление

• передача данных

• Записанная передача данных (диагностические коды неисправностей)

• Контроль ввода / вывода

• Дистанционная рутинная активация

Загрузка / выгрузка и расширенные сервисы не входят в набор команд диагностики автомобиля.

Диагностический сервис формата

Диагностические службы имеют общий формат сообщений. Каждый сервис определяет сообщение запроса, сообщение с положительным ответом и сообщение с отрицательным ответом. Сообщение запроса имеет ServiceId в качестве первого байта плюс дополнительные параметры, определенные службой. Сообщение с положительным ответом имеет эхо-код ServiceId с битом 6, установленным в качестве первого байта, плюс параметры ответа, определенные службой.

Интересное по теме:  Классический Volkswagen Estate - это все еще практичный повседневный водитель?

Сообщение с отрицательным ответом обычно представляет собой трехбайтовое сообщение: первый байт имеет отрицательный ответ ServiceId, эхо-код исходного ServiceId — второй байт, а код ответа — третий байт. Единственным исключением из этого формата является отрицательный ответ на сервис EscapeCode; здесь третий байт является эхом пользовательского сервисного кода, а четвертый байт является кодом ответа. Стандарт KWP2000 частично определяет коды ответов, но есть место для расширений, специфичных для производителя. Для некоторых кодов ответов KWP2000 определяет процедуру обработки ошибок. Поскольку как положительные, так и отрицательные ответы повторяют запрошенную услугу, вы всегда можете назначить ответы на соответствующий запрос.

Подключить / отключить

KWP2000 ожидает, что диагностический сеанс будет запущен с помощью StartDiagnosticSession и завершен с помощью StopDiagnosticSession. Однако StartDiagnosticSession имеет параметр DiagnosticMode, который указывает тип диагностического сеанса. В зависимости от этого типа ECU может поддерживать другие диагностические службы или может не работать в ограниченном режиме, в котором доступны не все функции ECU. Значения параметров DiagnosticMode зависят от производителя и не определены в стандарте. Чтобы сеанс диагностики оставался активным, он должен периодически выполнять службу TesterPresent, если никакая другая служба не выполняется. Если служба TesterPresent отсутствует в течение некоторого времени, сеанс диагностики прекращается, и ЭБУ возвращается к нормальной работе.

GetSeed / Unlock

Механизм GetSeed / Unlock может защитить некоторые диагностические службы. Однако соответствующие услуги предоставлены производителю и не определены в стандарте. Вы можете запустить механизм GetSeed / Unlock через службу SecurityAccess. Это определяет несколько уровней безопасности, но производитель назначает эти уровни некоторым сервисам.

Память чтения / записи

Используйте сервисы Read / WriteMemoryByAddress для отправки / загрузки данных по определенным адресам памяти в ECU. Адрес — это трехбайтовое количество в KWP2000 и пятибайтовое количество (четырехбайтовый адрес и одно байтовое расширение) в протоколах калибровки. Сервисы функциональных модулей загрузки / выгрузки тесно зависят от производителя и не очень хорошо определены в стандарте, поэтому они не являются хорошим способом обеспечения общего механизма выгрузки / выгрузки.

Интересное по теме:  Части VW делают GTi Porsche

измерение

Используйте службы ReadDataByLocal / CommonIdentifier для доступа к данным ECU аналогично списку DAQ. Local / CommonIdentifier описывает список количеств ECU, которые затем передаются из ECU в тестер. Передача может быть однозначной или периодической, с медленной, средней или быстрой скоростью передачи. Скорость передачи зависит от производителя; вы можете использовать сервис SetDataRates, чтобы установить их, но этот параметр зависит от производителя. Набор команд диагностики автомобиля поддерживает измерения в одной точке.

Диагностические коды неисправностей

Основной диагностической функцией является считывание диагностических кодов неисправностей (DTC). KWP2000 определяет несколько сервисов, которые получают доступ к кодам DTC, основываясь на их группе или статусе.

Контроль ввода / вывода

KWP2000 определяет сервисы, которые изменяют внутренние или внешние сигналы ECU. Одним из примеров является перенаправление входных сигналов датчика ECU на стимулированные сигналы. Параметры управления этими командами зависят от производителя и не определены в стандарте.

Удаленная активация процедуры

Эти сервисы аналогичны функциям CCP ActionService и DiagService. Вы можете вызвать внутреннюю процедуру ECU, определенную по Local / CommonIdentifier или адресу памяти. В отличие от случая CCP, эта процедура может быть асинхронной; это означает, что существуют отдельные службы Start, Stop и RequestResult. Параметры управления этими командами зависят от производителя и не определены в стандарте.

Внешние ссылки

Для получения дополнительной информации о стандарте KWP2000 см. ISO 14230-3.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *