UDS — диагностический протокол¶
UDS (Unified Diagnostic Services, ISO 14229-1) — стандартизированный диагностический протокол для автомобильной электроники, определяющий набор сервисов (команд) и формат обмена данными между диагностическим устройством и электронным блоком управления (ЭБУ). Протокол описывает только верхний уровень взаимодействия — прикладные сервисы, — не затрагивая нижние уровни модели OSI, что позволяет работать поверх различных транспортных протоколов (CAN, LIN, Ethernet, K-Line).
¶Область применения
UDS применяется в автомобилестроении для:
- диагностики неисправностей и чтения кодов ошибок (DTC);
- чтения и записи параметров (Data Identifier, DID);
- прошивки и обновления прошивок ЭБУ (Flashing);
- проверки электронных блоков после ремонта или перепрошивки;
- калибровки датчиков и исполнительных механизмов;
- идентификации блока (версия ПО, серийный номер).
Протокол стал промышленным стандартом для большинства автопроизводителей, включая российские предприятия (АвтоВАЗ, «КАМАЗ», «ГАЗ»), которые используют UDS в диагностических стендах и переносных сканерах.
¶История
До появления UDS автопроизводители использовали собственные закрытые протоколы диагностики (например, KWP2000 — Keyword Protocol 2000, ISO 14230). Европейский стандарт OBD-II (обязательный для легковых автомобилей в США и ЕС) ограничивался контролем выбросов и не покрывал полный набор производственных и сервисных операций.
В 2006 году Международная организация по стандартизации опубликовала стандарт ISO 14229-1, определивший UDS как унифицированный диагностический протокол. Стандарт заменил собой KWP2000 и стал основой для большинства современных диагностических систем.
¶Архитектура и модель взаимодействия
UDS реализует клиент-серверную модель: клиент — диагностический инструмент (сканер, стенд, эмулятор), сервер — электронный блок управления. Обмен ведётся по запрос-ответ: клиент отправляет запрос (Request), сервер возвращает ответ (Response).
Протокол не зависит от транспортного слоя. Для работы поверх CAN используется ISO 15765-2 (ISO-TP), который фрагментирует и собирает длинные сообщения; для Ethernet — DoIP (ISO 13400); для LIN — ISO 17987. Физические уровни (CAN, LIN, DoIP) определяются отдельными стандартами, а UDS задаёт только содержание сообщений.
¶Основные сервисы
UDS определяет более 25 сервисов, нумерация которых задаётся в шестнадцатеричном виде. Наиболее часто используемые:
| Сервис | Название | Назначение |
|---|---|---|
| 0x10 | DiagnosticSessionControl | Переключение сеанса диагностики (обычный, расширенный, программный) |
| 0x11 | ECUReset | Перезагрузка блока |
| 0x14 | ClearDiagnosticInformation | Очистка кодов неисправностей |
| 0x19 | ReadDTCInformation | Чтение кодов неисправностей |
| 0x22 | ReadDataByIdentifier | Чтение данных по идентификатору (DID) |
| 0x23 | ReadMemoryByAddress | Чтение памяти блока |
| 0x27 | SecurityAccess | Получение доступа (защита паролем/ключом) |
| 0x28 | CommunicationControl | Управление коммуникацией |
| 0x2E | WriteDataByIdentifier | Запись данных по идентификатору |
| 0x31 | RoutineControl | Запуск диагностических операций |
| 0x34–0x37 | RequestDownload / TransferData | Загрузка прошивки в блок |
| 0x3E | TesterPresent | Поддержание активного сеанса |
Ответ сервера содержит либо подтверждение (SID + 0x40), либо код отказа (Negative Response Code, NRC). Коды NRC, например, 0x13 (некорректный формат), 0x22 (условия не выполнены), 0x33 (нет доступа по безопасности), 0x78 (запрос принят, обрабатывается), позволяют диагностическому инструменту определить причину отказа.
¶Безопасность
Сервис 0x27 SecurityAccess реализует двухэтапную аутентификацию: клиент запрашивает «seed» (случайное число), вычисляет по нему «key» по секретному алгоритму и отправляет обратно. Алгоритм вычисления ключа является проприетарным и определяется производителем ЭБУ. Более новые реализации (Secure Diagnostic Access, ISO 14229-2) используют асимметричную криптографию.
¶UDS в России
В российской автомобильной промышленности UDS применяется в диагностическом оборудовании для коммерческого транспорта и легковых автомобилей. Российские производители ЭБУ (например, «Элкар», «Форвард Автоматика») реализуют UDS-серверы в своих блоках. Протокол включён в ряд отраслевых стандартов и технических регламентов Таможенного союза, касающихся диагностики транспортных средств.
¶См. также
- OBD-II
- CAN (шина)
- ISO 15765
- KWP2000
¶Источники
- ISO 14229-1:2020 Road vehicles — Unified diagnostic services (UDS) — Part 1: Application layer
- ISO 14229-2:2013 Unified diagnostic services (UDS) — Part 2: Session and communication management
- ISO 15765-2:2016 Road vehicles — Diagnostic communication over Controller Area Network (DoCAN)
- ISO 13400-2:2019 Road vehicles — Diagnostic communication over Internet Protocol (DoIP)
- Kostic, R. Unified Diagnostic Services (UDS) on CAN — implementation and testing. — IEEE, 2015
