Стаття була корисною?
ISO-TP (ISO 15765-2): як довгі діагностичні повідомлення йдуть по CAN
Кадр CAN несе вісім байтів. VIN має сімнадцять символів. ISO-TP — рівень, що це вирішує, і його розуміння пояснює кілька інакше незрозумілих поведінок адаптерів.
CAN проєктували для коротких частих керувальних повідомлень — швидкість колеса, положення дроселя, оберти двигуна. Класичний кадр CAN несе максимум вісім байтів даних.
Діагностиці ж треба передавати значно більші об’єкти: VIN із 17 символів, список підтримуваних PID, контрольну суму калібрування, повний перелік збережених кодів. ISO 15765-2, який усі звуть ISO-TP, — це транспортний рівень, що робить це можливим.
Проблема в одному рядку
Вісім байтів на кадр. VIN — сімнадцять символів. Хтось має розбити повідомлення і зібрати його назад.
Одиночні кадри
Коли навантаження вміщається, ISO-TP використовує одиночний кадр. Перший байт кодує тип кадру і довжину, лишаючи сім байтів даних.
Цього вистачає для більшості звичних запитів. Запитати оберти двигуна й отримати відповідь — це по одному кадру в кожен бік, і саме тому прості живі дані швидкі.
Багатокадрова передача і рукостискання керування потоком
Усе, що довше за сім байтів, стає багатокадровою передачею, і послідовність варто знати, бо її режими відмови видно користувачам.
- Перший кадр — відправник повідомляє загальну довжину і надсилає першу порцію.
- Кадр керування потоком — отримувач відповідає трьома речами: чи продовжувати, розміром блоку (скільки кадрів слати до наступної паузи) і часом розділення (мінімальний проміжок між послідовними кадрами).
- Послідовні кадри — решта, кожен із наскрізним номером, щоб пропуски були виявлені.
Те, що темп задає отримувач, — важлива деталь. Повільний модуль може попросити прилад зачекати між кадрами, і прилад, який цей запит ігнорує, змушує модуль скинути передачу.
Чому це пояснює реальні проблеми адаптерів
Кілька знайомих скарг — це насправді проблеми ISO-TP в іншому вбранні.
«VIN не читається.» Отримання VIN через режим 09 — це багатокадрова передача. Адаптер зі зламаною або частковою реалізацією ISO-TP охоче віддає прості одиночні значення і провалюється на всьому довшому. Це один із найнадійніших способів виявити неякісний клон — див. як розпізнати підробку ELM327.
«Читає частину даних, але відвалюється на списку кодів.» Читання багатьох збережених кодів одразу — багатокадрове. Причина та сама.
«У друга працює, у мене ні.» Різні модулі просять різний час розділення. Адаптер, що передає надто швидко, працює з терпимими модулями і провалюється зі строгими.
«Працювало, тепер відвалюється.» Завади або граничний контакт псують один послідовний кадр; перевірка порядкового номера провалюється, і вся передача скасовується. Тут важлива цілісність шини — основи CAN.
Адресація
ISO-TP визначає, як прилад і модуль ідентифікують одне одного. У стандартній схемі OBD-II:
- Прилад надсилає запит на функціональну адресу, зазвичай
0x7DF. - Кожен ECU відповідає на власній фізичній адресі в діапазоні
0x7E8–0x7EF.
Саме через цей діапазон авто може мати кілька відповідальних модулів, і саме тому прилад здатен показати, хто саме відповів. Фізична адресація дозволяє звертатися до одного конкретного модуля, і саме так заводські прилади дістаються окремих контролерів.
Де це в стеку
| Рівень | Що робить |
|---|---|
| Прикладний | Режими OBD-II або сервіси UDS |
| Транспортний — ISO-TP | Розбиває і збирає довгі повідомлення |
| Мережевий — ISO 15765-4 | Параметри CAN, специфічні для OBD-II |
| Канальний — CAN | Кадри, арбітраж, обробка помилок |
| Фізичний | Два скручені дроти, термінування 120 Ом |
Стандартний OBD-II сидить поверх ISO-TP. UDS теж. Розуміння транспорту пояснює поведінку обох.
Ширший контекст: протоколи OBD-II.
CAN FD змінює арифметику
CAN FD піднімає навантаження з 8 до 64 байтів і дозволяє швидшу фазу даних. Багатокадрові передачі стають значно рідшими, а великі об’єкти рухаються набагато швидше.
Це також означає, що адаптер, зроблений лише під класичний CAN, узагалі не зможе говорити з шиною CAN FD. На авто приблизно з 2020 року це справжній критерій при покупці — CAN FD простими словами і як обрати адаптер ELM327.
А DoIP замінює це повністю
На діагностиці через Ethernet уся задача сегментації зникає, бо TCP/IP її вже вирішив. Див. DoIP простими словами.
Що це означає на практиці
Ви ніколи не налаштовуватимете ISO-TP руками. Знання дає вам тлумачення: коли адаптер ідеально читає оберти й не може отримати VIN — це конкретне діагностоване обмеження, а не загадка, і зазвичай воно означає адаптер, а не авто.
Спробуйте на безкоштовному тарифі застосунку — підключіть адаптер ELM327 і першим тестом запитайте VIN. Він задіює багатокадрову передачу від початку до кінця, тож адаптер, що повернув його правильно, довів те, чого просте читання обертів ніколи б не довело.
Коментарі …
Завантаження…