- Автор: Джонни Лю (генеральный директор Dowway Vehicle)
- Дата публикации: 30 июня 2026 г.
- Академическая ссылка и благодарности: Данная статья основана на технических выводах и данных, опубликованных 12 июня 2026 года Ли Куандангом (старшим инженером Научно-исследовательского института технологий новых энергетических транспортных средств).
- Время чтения: 8 минут
Table of Contents
Вкратце:
Шина контроллера (CAN Bus) — это система связи по общим проводам, позволяющая электронным блокам управления (ЭБУ) обмениваться данными друг с другом без центрального компьютера. Она использует дифференциальную сигнализацию для блокировки помех, плавно разрешает коллизии данных с помощью приоритетов идентификаторов сообщений и имеет встроенную аппаратную систему отслеживания ошибок, которая автоматически отключает неисправные узлы для обеспечения безопасности остальной части системы.
1. Что такое шина CAN?
Представьте, сколько датчиков и контроллеров сегодня работает в автомобиле или промышленном роботе. Если бы каждому датчику требовался отдельный провод для подключения к каждому компьютеру, транспортное средство было бы напичкано сотнями килограммов медных кабелей.
Вот тут-то и вступает в дело шина CAN. Разработанная компанией Bosch в 1980-х годах, шина CAN заменяет запутанную проводку между двумя точками общей «информационной магистралью».
В этой единой сети такие устройства, как блок управления двигателем (ЭБУ), ABS, приборная панель и система управления батареей (BMS), передают и принимают пакеты данных по одному и тому же набору проводов. Это упрощает проводку, снижает затраты и уменьшает вес системы.
2. Основные характеристики шины CAN
Ряд ключевых конструктивных особенностей делает CAN лучшим выбором для сложных условий эксплуатации в режиме реального времени.
А. Многомастерная конфигурация (без центрального хоста)
В сети CAN все узлы равны. Нет главного компьютера, который бы указывал другим устройствам, когда следует обмениваться данными. Когда линия свободна, любой узел может начать передачу данных. Если один узел выходит из строя, остальная часть сети продолжает работать без сбоев.
B. Адресация по идентификатору сообщения (содержимое по отношению к получателю)
В отличие от сетей Ethernet или IP, CAN не использует адреса устройств. Вместо этого каждое сообщение помечается уникальным идентификатором. Идентификатор сообщения Это описывает сами данные.
Все узлы получают сообщение. Они используют аппаратные фильтры, чтобы решить, читать его или игнорировать. Это означает, что одна передача может одновременно обновлять несколько частей системы.
| Идентификатор сообщения | Содержание данных | Пример практического применения |
| 0x100 | Скорость двигателя | Передает данные об оборотах двигателя в реальном времени на приборную панель и трансмиссию. |
| 0x101 | Скорость автомобиля | Передает данные о скорости на проекционный дисплей, ABS и усилитель рулевого управления. |
| 0x200 | Напряжение батареи | Система управления батареей (BMS) передает напряжение батареи на главный контроллер двигателя. |
| 0x300 | Температура | Передает показания температуры вентиляторам охлаждения батареи и системе отопления, вентиляции и кондиционирования воздуха. |
C. Бесконтактное (неразрушающее) арбитражное разбирательство
Когда несколько узлов пытаются одновременно обмениваться данными, CAN использует идентификаторы сообщений (Message ID), чтобы определить, кто отправит сообщение первым, не теряя при этом никаких данных.
В логике CAN:
- 0 — это доминирующий бит. (сильный).
- 1 — это рецессивный бит (слабый).
По мере того, как узлы передают данные побитно, они отслеживают линию связи. Если узел отправляет 1 (слабый сигнал), но считывает 0 (сильный сигнал), он понимает, что проходит сообщение с более высоким приоритетом. Он немедленно прекращает отправку и переключается в режим ожидания. Сообщение с меньшим идентификационным номером всегда имеет приоритет и проходит без задержек или искажений.
Пример арбитражного разбирательства:
| Узел | Попытка идентификации | Уровень приоритета | Исход |
| Узел C | 0x080 | Высший | Выигрывает; отправляет всё сообщение без задержки. |
| Узел А | 0x100 | Середина | Отступает на полпути; пытается снова позже. |
| Узел B | 0x200 | Самый низкий | Отступает на раннем этапе; пытается снова позже. |
D. Истинная скорость в реальном времени
Присваивая системам безопасности (например, тормозам или датчикам заряда батареи) наименьшие идентификационные номера, инженеры гарантируют им немедленный доступ к сети. Это делает CAN идеальным решением для контуров управления с быстрым реагированием.
E. Высокая помехоустойчивость (дифференциальная сигнализация)
В автомобилях и на заводских цехах много электрических помех. CAN-шина справляется с этим, используя всего два провода: CAN_H (Высокий) и CAN_L (Низкий).
Приёмник измеряет разницу напряжений между двумя проводами:
Если электромагнитный шум воздействует на кабель, он одинаково изменяет напряжение на обоих проводах. Поскольку приемник воспринимает только разницу между ними, шум полностью компенсируется.
F. Проверка ошибок на аппаратном уровне
В протоколе CAN предусмотрены встроенные процедуры проверки, в том числе:
- Контрольные суммы (CRC)
- мониторинг битов
- Проверка формата
- Автоматическая сигнализация подтверждения (ACK)
Если у узла возникает физическая проблема, он отслеживает собственные ошибки и отходит в сторону, прежде чем сможет нарушить работу остальной части шины.
3. Физический уровень: напряжения и резисторы
Для обеспечения бесперебойной передачи данных физические провода должны соответствовать определенным стандартам.
Уровни напряжения: доминантные и рецессивные
Физические состояния на проводе напрямую отображаются в двоичные данные:
| Логическое состояние | Битовое значение | Напряжение CAN_H | Напряжение CAN_L | Дифференциальное напряжение (Vdiff) |
| Рецессивный | 1 | |||
| Доминантный | 0 |
Он оконечные резисторы
Вы должны разместить резистор на двух крайних концах главной линии.
- Почему? Электрические сигналы распространяются быстро. Достигнув конца разомкнутого провода, они отражаются, как эхо, искажая последующие сигналы.
- Решение: Он
Резисторы соответствуют физическим свойствам витой пары проводов, поглощая энергию сигнала и обеспечивая бесперебойную работу линии.
- Примечание: Устанавливайте их только на двух концах сети — никогда не на отдельных узлах ответвлений, так как слишком большое количество резисторов будет потреблять слишком большой ток.
4. Проверка ошибок и самоизоляция
Высокая надежность CAN обусловлена тем, как она обрабатывает сбои и поломки узлов.
Пять способов, которыми CAN находит ошибки
- Ошибка CRC: Получатель пересчитывает контрольную сумму сообщения. Если она не совпадает с отправленным значением, он выдает ошибку.
- Битовая ошибка: Отправитель считывает данные с линии связи по мере передачи. Если он отправляет доминирующий бит, но считывает неуправляемый (или наоборот), он останавливается.
- Ошибка при заполнении: Для синхронизации часов CAN вставляет противоположный бит после 5 одинаковых битов подряд. Если узел обнаруживает 6 одинаковых битов подряд, он выдает ошибку.
- Ошибка формы: Поля фиксированного формата (например, разделители) должны быть рецессивными. Если они отображаются как доминантные, это ошибка форматирования.
- Ошибка ACK: Для подтверждения получения получатель должен активировать слот ACK. В противном случае отправитель выдает ошибку ACK.
Штаты, находящиеся на самоизоляции
Каждый узел имеет два внутренних счетчика: счетчик ошибок передачи (TEC) и счетчик ошибок приема (REC). В зависимости от этих значений узел работает в одном из трех состояний:
- Ошибка-активный (нормальный): Узел обменивается данными в обычном режиме. При обнаружении ошибки он отправляет флаг активной ошибки (6 основных битов), чтобы заставить всех отбросить некорректный кадр.
- Error-Passive (Restricted): Если ошибки накапливаются, узел переходит в это состояние. Он по-прежнему может обмениваться данными, но может отправлять только пассивные флаги ошибок (6 рецессивных битов), что означает, что он не может прерывать работу исправных узлов.
- Автобус-выезд (изолированный): Если узел продолжает выходить из строя (TEC превышает 255), контроллер полностью отключает узел от физического соединения, гарантируя, что физически поврежденный чип не сможет заблокировать остальную часть системы.
5. Плюсы и минусы классического CAN
Хорошее
- Высокая гибкость: Легко добавлять или удалять узлы без изменения всей конфигурации.
- Гарантированные сроки: Проектирование с учетом приоритетов обеспечивает быстродействие и предсказуемость систем безопасности.
- Жесткий: Встроенная защита от шума и автоматическое отключение узлов обеспечивают безопасность системы.
- Дешевый: Использует простую, легкую пару проводов.
Плохой
- Малый полезный груз: Классический CAN может перевозить только 8 байт данных на кадр.
- Ограничение скорости: Максимальная скорость 1 Мбит/с, которая снижается на более длинных дистанциях.
- Задержки движения: При высоких нагрузках сообщения с низким приоритетом откладываются.
- Зависит от расположения элементов: Требуется правильное подключение кабеля и аккуратная прокладка.
6. Где используется шина CAN?
- Автомобильная промышленность: Объединяет компоненты силового агрегата, системы безопасности, ADAS и бортовую электронику.
- Электромобили (EV): Обеспечивает соединение систем управления батареями (BMS) с контроллерами двигателей и зарядными портами.
- Заводы и робототехника: Координирует работу двигателей, датчиков и исполнительных механизмов манипулятора.
- Тяжелая техника: Обучает работе систем на строительных грузовиках, тракторах и морских судах.
7. Следующий шаг: CAN FD (гибкая скорость передачи данных)
Поскольку современные автомобили и «умные» заводы требуют все больше данных, классический CAN-шина достигает своих пределов. Чтобы не отставать, инженеры используют… CAN FD.
Ключевые улучшения
- Дополнительные данные: Размер полезной нагрузки увеличивается с 8 байт до 64 байта за кадр, что позволяет сократить накладные расходы на упаковку.
- Две скорости: Во время арбитража используется стандартная скорость (до 1 Мбит/с) для предотвращения коллизий, но затем часто переключается на высокоскоростной режим. 5 Мбит/с или более) для отправки фактической полезной нагрузки данных.
Классическая рама CAN:
┌─────────────────┬──────────────────┬──────────────┐
│ Арбитраж 1 Мбит/с │ Данные (8 байт) │ CRC / ACK │ < — Все по 1 Мбит/с
└─────────────────┴──────────────────┴─────────────┘
Рамка CAN FD:
┌─────────────────┬────────────────────── ──────────────────────────┬──────────────┐
│ Арбитраж 1М │ Данные (до 64 байт) со скоростью 5 Мбит/с │ CRC / ACK │
└─────────────────┴─────────────────────── ───────────────────────────┴─────────────┘
▲────────────────────────────────────────────▲
Фаза высокоскоростной полезной нагрузки
Типичные области применения CAN FD
- Аккумуляторные батареи для электромобилей: Помогает передавать данные с датчиков высокой плотности от тысяч элементов батареи.
- Обновления ЭБУ: Ускоряет процесс прошивки микропрограммы во время производства или обслуживания.
- ADAS: Обеспечивает координацию работы быстродействующих радиолокационных, лидарных и камерных сенсорных систем.
8. Итог
CAN Bus остается предпочтительным стандартом не просто так. Сочетая простую схему с общим проводом, интеллектуальные правила приоритета, шумоподавление и автоматическое отключение в целях безопасности, он обеспечивает дешевую, надежную и работающую в режиме реального времени связь.
Классический CAN по-прежнему отлично справляется с базовыми задачами, в то время как CAN FD переходит на высокоскоростные режимы, демонстрируя, что это семейство протоколов останется с нами надолго.
Часто задаваемые вопросы (FAQ)
В1: Зачем шине CAN нужны оконечные резисторы?
Краткий ответ: Для поглощения эхо-сигналов электрического тока и предотвращения искажения данных.
Подробнее: Без На каждом конце шины установлен резистор, сигналы отражаются обратно по проводу, когда достигают конца кабеля, создавая шум, который искажает входящие данные.
В2: В чем разница между доминантными и рецессивными битами?
Краткий ответ: Доминирующие биты (0) переопределяют рецессивные биты (1) в сети.
Подробнее: Доминирующий бит использует активную разность напряжений. поперек линий, тогда как рецессивный бит находится в состоянии покоя, когда обе линии находятся в плавающем состоянии.
. Если два узла одновременно передают разные биты, то побеждает доминирующий бит (0).
В3: Как протокол CAN разрешает конфликты данных?
Краткий ответ: Путем сравнения идентификаторов на основе приоритетов.
Подробнее: Узлы отслеживают состояние шины, передавая свой идентификатор сообщения. Если узел отправляет рецессивный бит, но считывает доминирующий бит, он понимает, что передачу ведет узел с более высоким приоритетом (с меньшим идентификационным номером), и отходит в сторону.
Вопрос 4: Могут ли классические узлы CAN и CAN FD использовать один и тот же физический провод?
Краткий ответ: Нет, они не могут разговаривать по одной линии без моста.
Подробнее: Если классический контроллер CAN услышит высокоскоростную фазу данных кадра CAN FD, он воспримет это как ошибку формата и отправит флаг ошибки, что может нарушить или привести к сбою всей сети.




