DoIP (Diagnostics over Internet Protocol) — протокол диагностики автомобиля по Ethernet: доступ к электронным системам автомобиля по сети или удалённо, диагностика и прошивка Ethernet-контроллеров. DoIP — одна из ключевых функций TSMaster. В статье — работа с диагностическими сервисами модуля DoIP, настройка транспортного уровня и типовые сценарии.

Ключевые слова: DoIP, диагностика по Automotive Ethernet, базовая диагностика, автоматический диагностический процесс, Ethernet.

1. Подготовка Ethernet-оборудования TOSUN для DoIP

Реализация DoIP в TSMaster опирается на Ethernet-аппаратуру TOSUN. Для DoIP подходят TE1051, TE1054 (в планах) и TE1021.

TE1051 — интерфейс Ethernet → USB: передаёт данные стандартного Ethernet (100Base-Tx/1000Base-T) или автомобильного (100/1000Base-T1) на ПК по USB, а TSMaster выполняет симуляцию, анализ и тестирование, включая DoIP и SOME/IP. Устройство компактное, в прочном корпусе, без внешнего питания — подходит для DoIP-диагностики и прошивки в любых условиях (рис. 1-1).

TE1051
Рис. 1-1. Аппаратура TE1051

TE1021 — медиаконвертер автомобильного Ethernet в обычный (100/1000Base-T1 → 100Base-Tx/1000Base-T). Подходит для DoIP-сценариев с разными Ethernet-интерфейсами; компактный, удобен в полевых условиях (рис. 1-2).

TE1021
Рис. 1-2. Аппаратура TE1021

2. Начало работы с модулем DoIP

  1. Шаг 1. DoIP находится в главном меню: «Приложение» → «DoIP» (рис. 2-1).
  2. Шаг 2. Добавьте модуль DoIP — модулей может быть несколько (рис. 2-2).
  3. Шаг 3. Настройте параметры транспортного уровня Automotive Ethernet под ЭБУ: тип тестера, канал, IP-адрес тестируемого устройства и алгоритм Security Access (подробно — в разделе 3).
  4. Шаг 4. После настройки транспортного уровня и алгоритма запустите проект и нажмите «Connect DUT» для подключения к контроллеру. При успехе окно базовой диагностики и системные сообщения сообщат о подключении (рис. 2-3), а в области ISO 15765-2 видны сервисные сообщения подключения (рис. 2-4).
  5. Шаг 5. Когда сервисы и процессы настроены, запустите диагностический процесс кнопкой в «Автоматическом диагностическом процессе» (рис. 2-5).
Меню DoIP
Рис. 2-1. DoIP в главном меню
Добавление модуля DoIP
Рис. 2-2. Добавление модуля DoIP
Подключение к DUT
Рис. 2-3. Подключение к тестируемому устройству по Ethernet
Сообщения ISO 15765-2
Рис. 2-4. Сообщения ISO 15765-2
Запуск автопроцесса
Рис. 2-5. Выполнение автоматического диагностического процесса

3. Настройка сетевого IP-интерфейса тестера в TSMaster

  1. Шаг 1. Главное меню: «Аппаратное обеспечение» → «TCP/IP Stack» (рис. 3-1).
  2. Шаг 2. Правой кнопкой по Eth CH1 выберите «Add Network Card» (рис. 3-2).
  3. Шаг 3. В «General Setting» выберите «Пользовательский MAC» и введите MAC-адрес (рис. 3-3).
  4. Шаг 4. Включите IPv4, нажмите «Добавить» и введите IP-адрес и маску диагностического тестера (рис. 3-4).
TCP/IP Stack
Рис. 3-1. TCP/IP Stack
Добавление сетевой карты
Рис. 3-2. Добавление сетевого интерфейса
Пользовательский MAC
Рис. 3-3. Пользовательский MAC-адрес
Добавление IP-адреса
Рис. 3-4. Добавление IP-адреса

4. Настройка транспортного уровня DoIP-диагностики

Транспортный уровень DoIP настраивается под задачу: тип тестера, канал, IP-адреса и порты, ID запроса/ответа, алгоритм безопасности. Конфигурация зависит от типа тестера: устройства серии TE или системный TCP/IP.

4.1.1. Устройства серии TE

На примере TE1051 (Ethernet → USB). Транспортный уровень ISO TP включает Ethernet-параметры тестируемого устройства и тестера, а также диагностические ID (рис. 4-1):

Настройка ISO TP для TE
Рис. 4-1. Настройка DoIP ISO TP
  • Тип шины — для DoIP выбирается Ethernet (рис. 4-2).
  • Тип тестера — при подключении через USB выбирается «Устройство серии TE»; при классическом подключении по сетевому кабелю — «Системный TCP/IP» (рис. 4-3).
  • Канал — логический канал диагностического модуля; модулей может работать несколько одновременно (рис. 4-4).
  • Маска IP-адреса и IP тестируемого устройства — задаются по топологии сети.
  • Порт тестируемого устройства — по ISO 13400 для DoIP зарезервирован порт 13400.
  • IP тестера — адрес тестового устройства (например TE1051); ПК и тестируемое устройство должны быть в одной подсети (настройка — в разделе 3).
  • Порт тестера — фиксированного правила нет: задайте свой или используйте автоназначенный.
  • ID запроса / ответа / функциональный ID — диагностические идентификаторы со стороны ПК.
Тип шины Ethernet
Рис. 4-2. Тип шины — Ethernet
Тип тестера
Рис. 4-3. Выбор типа тестера
Выбор канала
Рис. 4-4. Выбор канала Ethernet

4.1.2. Системный TCP/IP

На примере TE1021, подключаемого через сетевой порт ПК. Набор параметров тот же (рис. 4-5), отличия: тип шины — Ethernet (рис. 4-6); тип тестера — «Системный TCP/IP» (рис. 4-7); канал по умолчанию — System Ethernet Interface (рис. 4-8). IP тестера — это адрес сетевого порта ПК: настройте его в одной подсети с устройством через «Параметры → Сеть и Интернет → Ethernet → Свойства → назначение IP → изменить», вручную включив IPv4 (рис. 4-9).

ISO TP для системного TCP/IP
Рис. 4-5. Настройка DoIP ISO TP (системный TCP/IP)
Тип шины Ethernet
Рис. 4-6. Тип шины — Ethernet
Системный TCP/IP
Рис. 4-7. Тип тестера — системный TCP/IP
System Ethernet Interface
Рис. 4-8. Выбор канала
Настройка IP на ПК
Рис. 4-9. Настройка IP-адреса на ПК

4.2. Сервисный уровень диагностики

Параметры сервисного уровня: активация маршрутизации (Routing Activation), таймеры S3 и P2, загрузка Seed&Key (рис. 4-10).

Параметры сервисного уровня
Рис. 4-10. Параметры сервисного уровня

4.2.1. Активация маршрутизации

  • Автоматически выполнять Routing Activation после подключения к DUT — после установления сетевого соединения команда активации маршрутизации выполняется автоматически.
  • Таймаут инициализации TCP — максимальное время от установления TCP_Data-соединения до активации маршрутизации; если за это время активация не выполнена, модуль DoIP закрывает сокет TCP_Data. По спецификации — 2000 мс.
  • Тип активации — 5 вариантов: Default (базовый режим со стандартной аутентификацией), WWH-OBD (диагностика по требованиям глобальной гармонизированной OBD с дополнительной проверкой), ISO/SAE Reserved (зарезервировано), Central Security (централизованная безопасность — только для авторизованных устройств), Additional OEM-Specific Use (зарезервировано под OEM-режимы).

4.2.2. Таймеры P2

P2 timeout — таймаут ожидания ответа ЭБУ на запрос. P2 extended — расширенное ожидание после кадра 7F XX 78 (response pending). Схемы — через кнопку «Подробнее» (рис. 4-11).

Таймеры P2
Рис. 4-11. Настройка таймеров P2

4.2.3. Tester Present

S3 server — таймаут возврата ЭБУ в Default Session; S3 client — интервал отправки TesterPresent тестером (рис. 4-12). Команду «тестер онлайн» можно включить в модуле (рис. 4-13): появится переключатель, кадры отправляются с интервалом S3 client. Байты: стандартные 0x3E 0x80, из базовой конфигурации или пользовательские.

Таймеры S3
Рис. 4-12. Настройка таймеров S3
Tester Present
Рис. 4-13. Настройка «тестер онлайн»

4.2.4. Seed&Key

Как и в UDS по CAN, доступны два способа: загрузка DLL с алгоритмом (поддерживаются C/C++, Delphi и .NET — C#, VB.Net) со встроенным проверщиком DLL (рис. 4-14, 4-15) и встроенный редактор исходного кода SeedKey с экспортом в DLL (рис. 4-18). Шаблонные проекты в каталоге установки: GenerateKeyEx, GenerateKeyExOpt, ASAP1A_CCP_ComputeKeyFromSeed. Свою DLL с другой сигнатурой можно подключить через вторичную упаковку (LoadLibrary + GetProcAddress), не забыв скопировать исходную DLL рядом с обёрткой (рис. 4-16, 4-17). Подробный разбор сигнатур и примеров — в первой части руководства по UDS.

Загрузка DLL
Рис. 4-14. Загрузка DLL
Проверщик SeedKey
Рис. 4-15. Проверщик SeedKey
Вторичная упаковка
Рис. 4-16. Процесс вторичной упаковки
Пример упаковки GenerateKeyEx
Рис. 4-17. Пример вторичной упаковки GenerateKeyEx
Встроенный редактор
Рис. 4-18. Встроенный редактор алгоритмов
return с кодом возврата
Рис. 4-19. return с кодом возврата

5. Базовая конфигурация диагностики

Модуль базовой диагностики для DoIP совпадает с UDS по CAN: базовые сервисы для независимых команд и составные сервисы ($34/$36/$37) для скачивания файлов — общая конфигурация (hex/bin/s19/mot/srec/vdf, TSHexViewer, CRC в том числе пользовательский через DLL, контрольные суммы как системные переменные), стирание Flash, передача данных, завершение передачи, расширенные и вспомогательные настройки. Поддерживаются 7 типов параметров: UInt, Int, Single, Double, HexArray, ASCII, SystemVar.

Детальный разбор со скриншотами — в части 1 руководства по UDS (раздел «Базовая конфигурация диагностики»). Ниже ключевые иллюстрации применительно к DoIP:

Базовая конфигурация
Рис. 5-1. Базовая конфигурация диагностики
Параметры сервиса
Рис. 5-3. Настройка параметров базовой диагностики
Общая конфигурация скачивания
Рис. 5-7. Общая конфигурация составного сервиса
Checksum в параметрах сервиса
Рис. 5-12. Системная переменная контрольной суммы в параметрах сервиса

6. Диагностическая консоль

Консоль — отладчик диагностических команд: выбор сервисной команды из списка (по базовой конфигурации или базе ODX/PDX), ручной ввод произвольных сообщений (физическая или функциональная адресация), область отправки/ответа с проверкой ответа ЭБУ и область диагностической информации (сервисный уровень + поток ISO 15765-2 с разбором сырых данных в физические сигналы).

Подробно консоль разобрана в части 2 руководства по UDS. Иллюстрации для DoIP:

Области консоли
Рис. 6-1. Рабочие области консоли
Выбор сервисной команды
Рис. 6-2. Область выбора сервисных команд
Поток ISO 15765-2
Рис. 6-7. Поток данных ISO 15765-2

7. Автоматические диагностические процессы и системные переменные

Управление процессами на уровне проекта: группы процессов, сценарии, шаги четырёх типов (обычный, выбор существующей конфигурации, Seed&Key, Tester Present), паузы между шагами, обработка ошибок, циклы, регистрация сценариев как системных переменных Имя_Start/Имя_Result для запуска из панелей и программ. Встроенные переменные модуля: BusType (0 — CAN, 1 — CAN FD, 2 — LIN, 3 — DoIP), Chn, ReqID/ResID/FunctionalID и их типы, STMin, FiledByte, UDSProgress, SeedAndKeyDLL, таймеры P2/S3 и др.

Полный разбор механики процессов — в части 2 руководства по UDS. Иллюстрации для DoIP:

Панель конфигурации процессов
Рис. 7-3. Панель инструментов конфигурации
Системные переменные
Рис. 7-15. Системные переменные диагностического модуля
Кнопка панели и переменная
Рис. 7-20. Связь кнопки панели с системной переменной

8. Типовое применение: Flash Bootloader по DoIP

Соберём процесс Flash Bootloader на модуле DoIP.

Настройка процесса прошивки. [1] Создайте UDS-процесс — редактор должен быть разблокирован (рис. 8-1). [2] Переходы по сессиям (default → extended → OEM-сессия) настройте заранее в базовой конфигурации (рис. 8-2) и добавьте в процесс через «выбрать существующую конфигурацию» (рис. 8-3). [3] Шаг Seed&Key — разблокировка ЭБУ (рис. 8-4). [4] Чтение данных по ID F080: обычным шагом (рис. 8-5) или существующей конфигурацией (рис. 8-6). [5] Запись данных 20 11 20 00 00 00 00 00 00 в ID F086 (рис. 8-7). [6] Проверка предусловий прошивки (рис. 8-8). [7] Файлы FlashDriver и приложения: добавьте в базовую конфигурацию (рис. 8-9) и выберите в процессе составной сервис скачивания (рис. 8-10). [8] Стирание Flash через Routine Control: команда стирания настраивается в базовой конфигурации с передачей адреса и длины системными переменными (рис. 8-11) и добавляется в процесс (рис. 8-12).

Разблокировка редактора
Рис. 8-1. Разблокировка редактора
Сервисы сессий
Рис. 8-2. Сервисы сессий в базовой конфигурации
Переходы по сессиям
Рис. 8-3. Переходы default / extended / OEM-сессия
Seed&Key
Рис. 8-4. Шаг Seed&Key
Чтение DID обычным шагом
Рис. 8-5. Обычный шаг чтения DID
Чтение DID F080
Рис. 8-6. Чтение DID F080 существующей конфигурацией
Запись в F086
Рис. 8-7. Запись данных в ID F086
Проверка предусловий
Рис. 8-8. Проверка предусловий прошивки
Добавление файлов прошивки
Рис. 8-9. Добавление файлов FlashDriver/приложения
Сервис скачивания
Рис. 8-10. Выбор составного сервиса скачивания
Команда стирания
Рис. 8-11. Команда стирания с системными переменными
Стирание Flash
Рис. 8-12. Стирание Flash через Routine Control

Запуск одной кнопкой. Итоговый процесс — на рис. 8-13. После подключения к устройству по Ethernet процесс выполняется одной кнопкой; шаги с положительным ответом подсвечиваются зелёным (рис. 8-14). Полный обмен DoIP виден в сообщениях Ethernet, а трассировку можно сохранить в BLF (рис. 8-15).

Готовый процесс
Рис. 8-13. Готовая конфигурация Flash Bootloader
Выполнение процесса
Рис. 8-14. Выполнение автопроцесса одной кнопкой
Сообщения Ethernet
Рис. 8-15. Сообщения диагностического процесса Ethernet

На модуле DoIP в TSMaster разработка процессов диагностики по Ethernet выполняется без кода — быстро и наглядно.