Embedded HandbookПриложения
Все разделы › 0. О справочнике
STM32F103, STM32F407 · уровень средний · 6 мин чтения
Открыть в интерактивном справочнике

0б. Маршруты по темам: CAN и диагностика автомобиля

Маршруты А–Г из раздела 0 идут по частям справочника, маршрут новичка (0а) — к первому прибору. Здесь маршруты другого рода: задача уже есть, и нужно пройти все разделы одной темы по порядку, не собирая их по оглавлению.

Первый такой маршрут — Д: CAN и диагностика автомобиля. Тема разложена по справочнику широко: шина, надстройки над ней, файлы описания сообщений, стенд на компьютере и пять мини-проектов. По порядку она читается за десять шагов — от кадра на шине до своего блока, который живёт на шине наравне с заводскими.

Опоры: раздел 0 — уровни и платы (0.1, 0.2); если микроконтроллер ещё не в руках, сначала маршрут новичка (0а) или маршрут А (0.3) до UART и прерываний.

Как это называется в документации

Оригинал Перевод
learning path маршрут: разделы по порядку под одну задачу
silent mode (SILM) режим «только слушать»: узел не подтверждает кадры и не ставит кадры ошибок
bus load загрузка шины: доля времени, занятая кадрами
rest-bus simulation имитация остальных блоков шины на стенде

0б.1 Как идти по тематическому маршруту

Правила те же, что у маршрута новичка (0а.1): один шаг — один раздел, из раздела выносится столбец «Что вынести», а подразделы из «Что пока пропустить» откладываются до второго прохода.

Своё у тематического маршрута одно: машина — не первый стенд. Первые шесть шагов проходят на столе — две платы или плата и адаптер USB-CAN на коротком отрезке шины с двумя терминаторами. К машине прибор подключается на седьмом шаге, и первые подключения — только в режиме «слушать» (198с.2).

Уровень маршрута — средний → продвинутый: шина CAN (19), UDS (19д) и свой блок (198у) — продвинутые разделы, остальные семь — средние.


0б.2 Маршрут Д: CAN и диагностика автомобиля

Уровень маршрута: средний → продвинутый. Десять шагов: шина, расшифровка сообщений, стенд, первый прибор, диагностика в два слоя и три прибора для машины.

Шаг Раздел Что вынести Что пока пропустить
1 19 кадр и арбитраж, трансивер и два терминатора по 120 Ом, точка выборки около 87,5 %, фильтр приёма обязателен; режим самопроверки работает без трансивера 19.7 ошибки и уход с шины — к шагу 10
2 19е что такое DBC: сообщение, сигнал, множитель и смещение; порядок байт Intel и Motorola 19е.3–19е.5: мультиплексор, счётчики и CRC, генератор кода — к шагам 9 и 10
3 19ж стенд на компьютере: адаптер USB-CAN, SocketCAN, candump и cansend — компьютер становится узлом шины 19ж.2–19ж.3: устройство gs_usb побайтно
4 198е первый прибор: сниффер SLCAN на F103, режим «только слушать», кольцо в прерывании; почему строки идут через UART, а не USB 198е.6 сверка ядра с моделью
5 19в длинное сообщение поверх кадров по 8 байт: SF, FF, CF и управление потоком FC; тайм-ауты 19в.4 адреса в машине и дополнение кадра
6 19г OBD-II: общий запрос 0x7DF и ответы 0x7E8…0x7EF, ответ = служба + 0x40, PID и формулы, коды ошибок; имитатор на STM32 — машина пока не нужна 19г.5 ELM327
7 198р сканер для машины: разъём и питание через защиту, фильтр на восемь адресов ответов, опрос по кругу —
8 19д UDS: тот же путь, другой словарь — сеансы и TesterPresent, данные по DID, коды неисправностей, прошивка через диагностику на F407 19д.5 seed и ключ — при первом чтении достаточно идеи
9 198с, 198т приборная панель — только слушать, фильтр-список и сигналы по DBC; регистратор — метки времени, кольцо и запись на карту один из двух — второй к повторному проходу
10 198у свой блок на шине: сообщение в DBC со счётчиком и CRC, свои коды неисправностей, отключение от шины, прошивка по шине —

Маршрут Д: десять шагов змейкой — шина, DBC, стенд, сниффер, ISO-TP, OBD-II, сканер, UDS, панель или регистратор, свой блок — и семь развилок после него; цвет блока — уровень самого сложного раздела в нём

Порядок держится на одном: каждый следующий шаг пользуется предыдущим. Сниффер (4) читает шину, расшифрованную по DBC (2), и проверяется на стенде (3); OBD-II (6) едет поверх ISO-TP (5); UDS (8) — поверх того же ISO-TP с тем же способом ответа и отказа; свой блок (10) собирает всё сразу: DBC, коды неисправностей, UDS и прошивку по шине.


0б.3 Что нужно на столе


0б.4 Куда дальше: развилки после маршрута Д


0б.5 Грабли

Начать с машины. Узел с неверной скоростью на шине машины не молчит: он ставит кадры ошибок и мешает блокам. Сначала стенд (шаг 3) и имитатор (19г.6), в машине первые подключения — только в режиме «слушать» (0б.1).

Один узел на шине. Кадр без подтверждения повторяется без конца — одинокий узел не уходит с шины, а остаётся пассивным. Для отладки без второго узла есть режим самопроверки (19.7).

Ждать приёма без фильтра. Без явно настроенного фильтра bxCAN не принимает ничего (19.5).

USB и CAN на F103 одновременно. Они делят одну память и вместе недоступны (19.8) — поэтому сниффер отдаёт строки через UART (198е).

Путать OBD-II и UDS. Дорога одна — ISO-TP и тот же способ ответа и отказа, — а словарь разный: OBD-II — общий для всех машин, UDS — заводской (19д.1).


0б.6 Итоги


Дальше: раздел 0в «Маршруты по темам: от макета к изделию» — второй маршрут по теме: путь от работающего макета до прибора, который можно отдать в серию.

Открыть в интерактивном справочнике