Автомобильный Ethernet - DoIP

1. Что может делать DoIP?f2adf6936e9aef84fef6d1065dde7eee

Ethernet впервые был внедрен в автомобили компанией BMW, сценарий применения которой заключался в прошивке/программировании, чтобы обеспечить обновление данных программного обеспечения для таких компонентов, как жидкокристаллические панели приборов. По сравнению с традиционной автомобильной диагностикой, DoIP означает передачу данных протокола UDS через Ethernet, т.е. диагностическую связь по интернет-протоколу. Поскольку DoIP может передавать большие объемы данных с высокой скоростью отклика и осуществлять удаленную диагностику через Ethernet, DoIP стал неизбежной тенденцией для автомобильной диагностики. По сравнению с традиционными автомобильными системами, все современные системы автомобильной диагностики включают в себя уровень протокола DoIP поверх TCP/IP. Чтобы лучше поддерживать диагностику OBD, удаленную диагностику, FOTA и другие технологии, общая автомобильная архитектура была скорректирована, с использованием коммутаторов для подключения MPU, MCU и других ECU Ethernet через Ethernet, изолируя при этом внешние и внутренние сети.

2. Состав протокола DoIP

Этот протокол работает поверх TCP/IP. Для получения сообщений протокола DoIP спецификация протокола требует прослушивания специального порта с номером 13400, выделенного для стека протоколов DoIP. И UDP, и TCP должны слушать этот порт приема, а порт отправки - случайное значение в диапазоне [49152~65535].Формат протокола:Сообщения DoIP состоят из заголовка (8 байт) + полезной нагрузки (N байт)Заголовок протокола [8 байт] состоит из четырех полей:

  • Версия протокола [1 байт]
  • Версия инверсного протокола [1 байт]
  • Тип полезной нагрузки [2 байта]
  • Длина полезной нагрузки [4 байта]

Полезная нагрузка [N байт] - данные полезной нагрузки варьируются в зависимости от фактического типа полезной нагрузки. Обычно версия протокола равна 0x02, а значения выше 0x02 в настоящее время находятся в статусе зарезервированных. Инверсная версия протокола - это инвертированное значение версии протокола; в данном примере инверсия 0x02 становится 0xFD. В спецификации протокола специально упоминается, что версия протокола может быть 0xFF. Это значение служит для того, чтобы клиенты и серверы с несовпадающими версиями протоколов могли обойти случай, когда запросы отклоняются из-за несоответствия версии заголовка протокола.

Тип полезной нагрузки:

Тип полезной нагрузки представляет собой функции, которые может поддерживать стек протоколов DoIP.

Тип полезной нагрузки ЗначениеИмяПротокол
0x0000Общее отрицательное подтверждение заголовка DoIPTCP/UDP
0x0001Сообщение запроса идентификации транспортного средстваUDP
0x0002Сообщение запроса идентификации транспортного средства с EIDUDP
0x0003Сообщение запроса идентификации транспортного средства с VINUDP
0x0004Сообщение об объявлении транспортного средства / Ответное сообщение об идентификации транспортного средстваUDP_Discovery / UDP_test_request
0x0005Запрос на активацию маршрутизацииTCP
0x0006Ответ на активацию маршрутизацииTCP
0x0007Запрос на проверку работоспособностиTCP
0x0008Ответ на проверку работоспособностиTCP
0x4001Запрос статуса сущности DoIPUDP
0x4003Запрос информации о режиме питания при диагностикеUDP
0x8001Диагностическое сообщениеTCP
0x8002Диагностическое сообщение положительное подтверждениеTCP
0x8003Негативное подтверждение диагностического сообщенияTCP

Длина полезной нагрузки здесь составляет 4 байта, что означает, что сообщения DoIP могут передавать максимум 4 ГБ (0xFFFFFFFF).

Два метода обнаружения транспортных средств:

(1) После запуска устройства DoIP оно сначала передает сообщение DoIP (сообщение об объявлении транспортного средства, тип полезной нагрузки 0x0004) по протоколу UDP всем другим узлам сети, включая диагностические приборы, с портом назначения 13400. Это сообщение содержит информацию о версии DoIP устройства, VIN, логическом адресе и т. д. Это сообщение отправляется три раза, и диагностические инструменты, ранее слушавшие порт 13400, получают эту информацию и узнают основные сведения о DoIP-устройстве.(2) Если диагностический инструмент не получает ее, существует другой метод: диагностический инструмент активно запрашивает, транслируя сообщение DoIP request (Payload Type 0x0001) через UDP с портом назначения 13400. Устройство DoIP, которое прослушивает порт 13400 с момента запуска, получает это сообщение и отвечает на него ответом, содержащим собственную информацию для диагностического инструмента.

 

Предыстория: Следующий:

Enter the result

Verification failed