CAN (Controller Area Network) — это шина обмена данными между электронными блоками автомобиля (ECU), в которой нет центрального управляющего устройства.
Все участники сети подключены к общей линии и работают на равных правах. Любой блок может инициировать передачу, а сообщение распространяется сразу на всю сеть.
Сообщения в CAN не адресуются конкретному получателю. Каждый ECU самостоятельно анализирует входящий поток и решает, обрабатывать данные или игнорировать их.
CAN описан в семействе стандартов ISO 11898 и используется как базовый механизм обмена данными в большинстве современных автомобилей.
Важно: не всякая автомобильная шина является CAN. Существуют и другие протоколы (например, LIN, J1708, VAN), которые имеют иную архитектуру и принципы работы.
Типичная CAN-сеть представляет собой общую линию (шину), к которой параллельно подключены все блоки управления.

Физически это два провода:
Передача данных осуществляется дифференциальным сигналом, что обеспечивает устойчивость к помехам.
На концах шины устанавливаются два терминатора сопротивлением 120 Ом. Они необходимы для согласования линии и предотвращения отражений сигнала.
Внутри сети может работать множество ECU:
Все они получают один и тот же поток сообщений независимо от своей функции.
Обмен данными в CAN построен по широковещательному принципу.
Когда один блок отправляет сообщение:
Отправитель не знает, кто именно использует его данные.
Пример:
блок двигателя передает обороты. Эти данные могут одновременно использовать:
В CAN нет понятия «главного» устройства. Сеть полностью децентрализована, и любой узел имеет право начать передачу в произвольный момент времени.
Однако физически шина может передавать только один сигнал в каждый момент времени. Это означает, что при одновременной попытке передачи несколькими устройствами возникает конфликт за доступ к шине. В CAN этот конфликт не приводит к коллизиям в классическом смысле — он разрешается встроенным механизмом арбитража.
Арбитраж в CAN основан на идентификаторе сообщения: чем меньше значение ID, тем выше приоритет сообщения в сети.
Если несколько устройств начинают передачу одновременно, они участвуют в побитовой процедуре сравнения. Каждый узел передает свой идентификатор и одновременно считывает состояние шины. Если устройство передает рецессивный бит (логическая 1), но на шине фиксируется доминантный (логический 0), оно немедленно прекращает передачу.
Таким образом, узел с наименьшим значением ID выигрывает арбитраж и продолжает передачу, а остальные просто откладывают отправку до освобождения шины. Важная особенность заключается в том, что при этом не возникает искажений данных: победившее сообщение передается корректно, а проигравшие узлы не мешают процессу.
Этот механизм гарантирует, что сообщения с высоким приоритетом получают минимальную задержку даже при высокой загрузке сети.
Пример:
| ID | Приоритет |
|---|---|
| 0x0F | выше |
| 0x10 | ниже |
→ сообщение с ID 0x0F будет передано первым.
| Начало бит |
10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Узел 15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
| Узел 16 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Прекратил передачу | |||
| ДАННЫЕ CAN | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
При работе с реальным автомобилем важно учитывать, что CAN-шина редко существует в единственном экземпляре. Обычно в автомобиле присутствует несколько независимых сегментов, которые могут работать на разных скоростях и обслуживать разные системы.
На практике это означает, что успешное подключение к шине зависит не только от физического доступа, но и от правильного выбора скорости и точки подключения. Если подключение выполнено к другому сегменту или с неверным битрейтом, обмен данными не будет наблюдаться.


Пуск. В окне Сообщения появятся данные.
Если у вас скрыто окно Сообщения, включите его во вкладке Вид.
Отсортируйте сообщения по идентификатору и проанализируйте периодичность их передачи.
При этом важно учитывать, что сам идентификатор не задаёт период передачи. Частота определяется логикой работы конкретного блока управления, а ID влияет только на приоритет доступа к шине и не связан напрямую с частотой передачи сообщения.
CAN следует рассматривать как общую среду обмена данными без центрального управления, в которой все устройства работают с единым потоком сообщений. Каждое устройство самостоятельно интерпретирует этот поток, а доступ к шине регулируется механизмом арбитража.
Эта модель является фундаментом для дальнейшего анализа логов и понимания принципов декодирования.