Унифицированные диагностические услуги

Диагностический протокол связи

Унифицированные диагностические службы ( UDS ) — это диагностический протокол связи, используемый в электронных блоках управления (ЭБУ) в автомобильной электронике, который указан в ISO 14229-1. [1] Он получен из ISO 14230-3 ( KWP2000 ) и ныне устаревшего ISO 15765 -3 (Диагностическая связь по сети контроллеров (DoCAN) [2] ). «Унифицированный» в этом контексте означает, что это международный, а не специфичный для компании стандарт. К настоящему времени этот протокол связи используется во всех новых ЭБУ, производимых поставщиками первого уровня производителей оригинального оборудования (OEM), и включен в другие стандарты, такие как AUTOSAR . ЭБУ в современных транспортных средствах управляют практически всеми функциями, включая электронный впрыск топлива (EFI), управление двигателем , трансмиссией, антиблокировочной тормозной системой, дверными замками, торможением, работой окон и многим другим.

Диагностические инструменты способны связываться со всеми блоками управления, установленными в автомобиле, в котором включены службы UDS. В отличие от протокола шины CAN , который использует только первый и второй уровни модели OSI , UDS использует пятый и седьмой уровни модели OSI. Идентификатор службы (SID) и параметры, связанные со службами, содержатся в полезной нагрузке кадра сообщения.

Современные автомобили имеют диагностический интерфейс для диагностики вне бортовой сети, что позволяет подключать компьютер (клиент) или диагностический инструмент, который называется тестером, к системе связи автомобиля. Таким образом, запросы UDS могут быть отправлены контроллерам, которые должны предоставить ответ (он может быть положительным или отрицательным). Это позволяет опрашивать память неисправностей отдельных блоков управления, обновлять их новой прошивкой, иметь низкоуровневое взаимодействие с их оборудованием (например, включать или выключать определенный выход) или использовать специальные функции (называемые процедурами), чтобы попытаться понять среду и условия работы ЭБУ, чтобы иметь возможность диагностировать неисправное или иным образом нежелательное поведение.

UDS использует транспортный уровень ISO-TP (ISO 15765-2). Американский стандарт OBD-II также использует ISO-TP. Поскольку OBD-II использует сервисные номера 0x01-0x0A, UDS использует сервисные номера, начинающиеся с 0x10, чтобы избежать перекрытия.

Услуги

SID (идентификатор службы)

Группа функцийЗапросить SIDОтвет SIDУслугаОписание
Диагностика и управление коммуникациями0x100x50Диагностический контроль сеансаUDS предлагает уровни доступа, называемые «сессиями». Различные сессии обычно предлагают разные уровни доступа к службам и/или подфункциям. При нормальном использовании (при запуске) сессия должна быть 0x01 Default Session .

Эта служба «Управление диагностическим сеансом» позволяет пользователю переключаться между доступными сеансами, специфичными для ЭБУ. Некоторые сеансы могли быть не реализованы. Другие могут иметь меры контроля доступа, требующие авторизации через такие службы, как 0x27 Security Access или 0x29 Authentication . Кроме того, сеансы могут требовать соблюдения определенных условий эксплуатации, таких как «предварительные» или «загрузочные режимы» производителя, которые отделены от UDS.

Стандартными являются следующие сеансы, но сеансы, специфичные для производителей и поставщиков транспортных средств, часто проводятся совместно:

  • 0x01 Сеанс по умолчанию , который обычно имеет самый низкий уровень доступа к службам и/или подфункциям. Обычно это позволяет 0x14 Очистить диагностическую информацию , определенные 0x22 Чтение данных по идентификатору "Идентификаторы данных" и многое другое.
  • 0x02 Сеанс программирования , который предоставляет доступ к службам « Загрузка/Скачка » и « Передача данных », а иногда и расширенный доступ к другим службам и/или подфункциям, таким как .
  • 0x03 Расширенный сеанс диагностики , который обычно предлагает дополнительные услуги «Управление диагностикой и связью», «Передача данных», «Управление вводом/выводом» и «Удаленная активация рутины».
  • 0x04 Safety System Diagnostic Session предлагает в основном то же самое, что и 0x03 Extended Diagnostic Session, но не всегда предлагает чувствительные или не связанные службы и/или подфункции. Он может предлагать дополнительные процедуры и подфункции передачи данных.
0x110x51Сброс ЭБУСлужба "ECU reset" используется для перезапуска блока управления (ECU). В зависимости от аппаратного обеспечения блока управления и его реализации могут использоваться различные формы сброса:
  • 0x11 01 Hard Reset имитирует отключение питания.
  • 0x11 02 Сброс выключения-включения ключа имитирует слив и включение зажигания ключом.
  • 0x11 03 Мягкий сброс позволяет инициализировать определенные программные блоки и их структуры хранения.

Опять же, существуют зарезервированные значения, которые могут быть определены для конкретного использования производителями и поставщиками транспортных средств.

0x140x54Очистить диагностическую информациюОчищает диагностические коды неисправностей (DTC) из памяти ЭБУ. Группировка DTC используется для приблизительного определения мест неисправностей в недокументированных ЭБУ.
  • 0x14 00 00 00 до FF FF FF очищает определенные коды неисправностей силового агрегата
  • 0x14 40 00 00 до 7F FF FF очищает определенные коды неисправностей шасси
  • 0x14 80 00 00 в BF FF FF очищает определенные коды неисправностей кузова
  • 0x14 C0 00 00 до FF FF FF очищает определенные коды неисправностей, связанные с сетью.
  • 0x14 FF FF 33 очищает все коды неисправностей, связанные с выбросами
  • 0x14 FF FF FF очищает все коды неисправностей.

Как и другие подфункции в этом списке, существуют зарезервированные значения, специфичные для производителя, которые предлагают уникальные и/или особые функциональные возможности.

0x270x67Безопасность доступаПроверка безопасности доступна для включения наиболее критичных для безопасности служб. Для этой цели генерируется "Seed" и отправляется клиенту блоком управления. Из этого "Seed" клиент должен вычислить "Key" и отправить его обратно блоку управления, чтобы разблокировать критичные для безопасности службы.
0x280x68Контроль связиС помощью этой услуги можно отключить как отправку, так и получение сообщений в блоке управления.
0x290x69АутентификацияОбновление (2020) стандарта добавило эту службу для обеспечения стандартизированного подхода к более современным методам аутентификации, чем те, которые разрешены службой Security Access (0x27), включая двунаправленную аутентификацию с обменом сертификатами на основе PKI .
0x3E0x7EТестер присутствуетЕсли в течение длительного времени не происходит обмена сообщениями с клиентом, блок управления автоматически выходит из текущего сеанса и возвращается к «Сеансу по умолчанию» и может перейти в спящий режим. Поэтому существует дополнительная служба, цель которой — подать сигнал устройству о том, что клиент все еще присутствует.
0x830xC3Параметры времени доступаВ коммуникации между контроллерами и клиентом должны соблюдаться определенные временные интервалы. Если они превышены, но сообщение не отправлено, следует предположить, что соединение было прервано. Эти временные интервалы можно вызвать и изменить.
0x840xC4Защищенная передача данных
0x850xC5Настройки DTC управленияВключает, отключает или иным образом управляет передачей кодов неисправностей. Это полезно при выполнении работ по техническому обслуживанию или модификации транспортного средства, чтобы избежать аномального или раздражающего поведения, например, звукового сигнала на панели приборов или активации систем безопасности в ответ на внешний код неисправностей. Как и большинство настроек UDS, это обычно не сохраняется после перезагрузки.
  • 0x01 Вкл разрешает передачу кодов неисправностей.
  • 0x02 Off отключает передачу кодов неисправностей.
0x860xC6Ответ на событие
0x870xC7Контроль ссылокService Link Control используется для установки скорости передачи данных диагностического доступа. Обычно он реализуется только на центральном шлюзе.
Передача данных0x220x62Чтение данных по идентификаторуС помощью этой службы можно получить одно или несколько значений блока управления. Это может быть информация всех видов и разной длины, например, номер детали или версия программного обеспечения. Можно запросить динамические значения, такие как текущее состояние датчика. Каждое значение связано с идентификатором данных (DID) от 0 до 65535; например, DID VIN — это 61840d (0xF190). Обычные сигналы CAN предназначены для информации, которую некоторые ЭБУ используют в своей функциональности. Данные DID отправляются только по запросу и предназначены для информации, которую не использует ни один ЭБУ, но которую может использовать сервисный инструмент или тестер программного обеспечения.
0x230x63Чтение памяти по адресуПрочитать данные из физической памяти по указанному адресу. Эта функция может использоваться инструментом тестирования для чтения внутреннего поведения программного обеспечения.
0x240x64Чтение данных масштабирования по идентификатору
0x2A0x6AЧтение данных по идентификатору ПериодическиС помощью этой службы значения периодически отправляются блоком управления. Отправляемые значения должны быть определены только с использованием "Dynamically Define Data Identifier".
0x2С0x6СДинамически определить идентификатор данныхЭта услуга предлагает возможность исправления для указанного устройства пула идентификаторов данных (DID) для настройки другого идентификатора данных. Обычно это комбинация частей разных DID или просто конкатенация полных DID.

Запрашиваемые данные могут быть сконфигурированы или сгруппированы следующим образом:

  • Исходный DID, позиция, длина (в байтах), байт подфункции: defineByIdentifier
  • Длина адреса памяти (в байтах), байт подфункции: defineByMemoryAddress
  • Комбинации двух вышеперечисленных методов посредством множественных запросов.
0x2E0x6EЗапись данных по идентификаторуС тем же идентификатором данных (DID) значения также могут быть изменены. В дополнение к идентификатору отправляется новое значение.
0x3D0x7DЗапись памяти по адресуУслуга «Запись памяти по адресу» позволяет внешнему диагностическому инструменту записывать информацию в ЭБУ в одну или несколько смежных ячеек памяти.
Передача сохраненных данных0x140x54Очистить диагностическую информациюУдалить все сохраненные коды неисправностей
0x190x59Прочитать информацию о DTCDTC означает « Диагностические коды неисправностей ». Каждый код неисправности, обработанный неисправностью блока управления, сохраняется со своим собственным кодом в памяти ошибок и может быть прочитан в любое время. В дополнение к ошибке будет сохранена дополнительная информация, которую также можно прочесть.
Управление входом/выходом0x2F0x6FУправление входом и выходом по идентификаторуЭта услуга позволяет осуществлять внешнее вмешательство в работу системы по внутренним/внешним сигналам через диагностический интерфейс.

Указав так называемые байты опций, можно задать дополнительные условия для запроса, указаны следующие значения:

ReturnControlToECU : Устройство должно вернуть себе управление указанными сигналами.

ResetToDefault : Тестер предлагает сбросить сигналы до общесистемного значения по умолчанию.

Зафиксировать текущее состояние : устройство зафиксирует текущее значение сигнала.

ShortTermAdjustment : Устройство будет использовать предоставленное значение для сигнала

Удаленная активация рутины0x310x71Рутинный контрольМогут быть выполнены все виды рутинных услуг управления. Существует три различных типа сообщений:
  • С помощью сообщения start-message можно инициировать службу. Его можно определить для подтверждения начала выполнения или для уведомления о завершении службы.
  • С помощью сообщения «Стоп» текущая услуга может быть прервана в любой момент.
  • Третий вариант — сообщение для запроса результатов работы сервиса.

Можно указать параметры сообщения запуска и остановки. Это позволяет реализовать все возможные услуги, специфичные для проекта.

Загрузить / Скачать0x340x74Запросить загрузкуЗагрузка нового программного обеспечения или других данных в блок управления осуществляется с помощью «Запроса на загрузку». Здесь указывается местоположение и размер данных. В свою очередь, тестер указывает, насколько большими могут быть пакеты данных.
0x350x75Запросить загрузкуУслуга "запросить загрузку" практически идентична услуге "запросить загрузку". С помощью этой услуги программное обеспечение из блока управления передается в тестер. Местоположение и размер должны быть указаны. Опять же, размер блоков данных указывается тестером.
0x360x76Передача данныхДля фактической передачи данных используется услуга «Передача данных». Эта услуга используется как для загрузки, так и для скачивания данных. Направление передачи заранее уведомляется услугой «Запрос на загрузку» или «Запрос на загрузку». Эта услуга должна попытаться отправить пакеты максимальной длины, как указано в предыдущих услугах. Если набор данных больше максимального, услугу «Передача данных» необходимо использовать несколько раз подряд, пока все данные не будут получены.
0x370x77Запросить трансфер ВыходПередача данных может быть «завершена» при использовании сервиса «Transfer Exit». Этот сервис используется для сравнения между блоком управления и тестером. Когда он запущен, блок управления может ответить отрицательно на этот запрос, чтобы остановить запрос на передачу данных. Это будет использоваться, когда объем данных (установленный в «Request Download» или «Upload Request») не был передан.
0x380x78Запросить передачу файлаЭта служба используется для инициирования загрузки файла с клиента на сервер или загрузки с сервера на клиент. Кроме того, эта служба предоставляет информацию о файловой системе.
0x7FОтрицательный ответЭтот ответ дается, когда запрос на обслуживание не может быть выполнен, например, из-за неподдерживаемого идентификатора данных. Будет включен отрицательный код ответа.

Коды отрицательного ответа

Отрицательный ответ от ECU содержит SID 0x7F и два полезных байта: SID запроса и код ошибки. Эти коды можно найти в свободном доступе (например, BusMaster), а также в самом ISO.

НРЦОписание
0x10Общий отказ
0x11Услуга не поддерживается
0x12Подфункция не поддерживается
0x13Неправильная длина сообщения или неверный формат
0x14Ответ слишком длинный
0x21Занято, повторите запрос
0x22Условия неверны
0x24Ошибка последовательности запроса
0x25Нет ответа от компонента подсети
0x26Ошибка препятствует выполнению запрошенного действия
0x31Запрос вне диапазона
0x33Доступ по соображениям безопасности запрещен
0x34Аутентификация не удалась
0x35Неверный ключ
0x36Превышено количество попыток
0x37Требуемое время задержки не истекло
0x38Требуется безопасная передача данных
0x39Безопасная передача данных не допускается
0x3AБезопасная проверка данных не удалась
0x50Проверка сертификата не пройдена, неверный период времени
0x51Проверка сертификата не пройдена, недействительная подпись
0x52Проверка сертификата не пройдена, недействительная цепочка доверия
0x53Проверка сертификата не пройдена, недопустимый тип
0x54Проверка сертификата не удалась, неверный формат
0x55Проверка сертификата не пройдена, недопустимое содержимое
0x56Проверка сертификата не пройдена, недопустимая область действия
0x57Проверка сертификата не удалась, недействительный сертификат
0x58Проверка права собственности не удалась
0x59Расчет задачи не удался
0x5АНе удалось установить права доступа
0x5БНе удалось создать/вывести сеансовый ключ
0x5СНе удалось использовать данные конфигурации
0x5DДеаутентификация не удалась
0x70Загрузить загрузку не принято
0x71Передача данных приостановлена
0x72Общий сбой программирования
0x73Неправильный порядковый номер блока
0x78Запрос получен правильно, ответ ожидается
0x7EПодфункция не поддерживается в активном сеансе
0x7FСлужба не поддерживается в активном сеансе
0x81Слишком высокие обороты
0x82Слишком низкие обороты
0x83Двигатель работает.
0x84Двигатель не работает.
0x85Слишком малое время работы двигателя
0x86Температура слишком высокая
0x87Температура слишком низкая
0x88Скорость автомобиля слишком высокая
0x89Скорость автомобиля слишком низкая
0x8AДроссель/педаль слишком высоко
0x8БДроссель/педаль слишком низко
0x8СДиапазон передач не в нейтральном положении
0x8DДиапазон передач не включен
0x8FТормозной выключатель не замкнут
0x90Рычаг переключения передач не в положении парковки
0x91Муфта гидротрансформатора заблокирована
0x92Напряжение слишком высокое
0x93Напряжение слишком низкое
0x94Ресурс временно недоступен

Смотрите также

Ссылки

  1. ^ «Iso 14229-1:2020 Унифицированные диагностические службы (UDS) Часть 1: Прикладной уровень».
  2. ^ «Iso 15765-3:2004 Диагностика в сетях контроллеров (CAN). Часть 3: Реализация унифицированных диагностических служб (UDS в CAN)».
  • Унифицированные диагностические службы - ISO 14229 (постер softing.com)
  • Описание API PCAN-UDS 2.x
Взято с "https://en.wikipedia.org/w/index.php?title=Unified_Diagnostic_Services&oldid=1267089450"