CAN
CAN (от англ. Controller Area Network — сеть контроллеров) — последовательная асинхронная шина, предназначенная для обмена данными между различными электронными блоками управления (ЭБУ) в реальном времени. Разработана компанией Robert Bosch GmbH в 1983—1985 годах для применения в автомобильной промышленности и впоследствии стандартизирована как ISO 11898. Отличается высокой помехоустойчивостью, отказоустойчивостью и детерминированностью задержек, что обусловило её широкое распространение не только в транспортных средствах, но и в промышленной автоматизации, медицинском оборудовании, авионике и робототехнике.
История
Разработка и стандартизация
К середине 1980-х годов автомобильная промышленность столкнулась с проблемой роста числа электронных систем (инжектор, ABS, подушки безопасности, кондиционер), каждая из которых требовала собственной проводки к датчикам и исполнительным механизмам. Это приводило к увеличению массы жгутов проводов, снижению надёжности и удорожанию сборки. Для решения этой задачи инженер Bosch Уве Клас (Uwe Kiencke) и его команда предложили концепцию единой цифровой шины.
Первый протокол CAN был официально представлен в 1986 году на конгрессе Общества автомобильных инженеров (SAE). В 1987 году появились первые микросхемы CAN-контроллеров производства Intel и Philips Semiconductors (ныне NXP). В 1993 году протокол был принят в качестве международного стандарта ISO 11898, который определяет как физический уровень (электрические характеристики), так и уровень передачи данных (формат кадра, арбитраж, обнаружение ошибок).
Внедрение в автомобилестроение
Первым серийным автомобилем, оборудованным шиной CAN, стал Mercedes-Benz W140 (1991 год). В нём сеть объединяла блоки управления двигателем, коробкой передач и кузовной электроникой. С начала 2000-х годов все выпускаемые в Европе и большинстве других регионов автомобили обязаны иметь шину CAN или её модификацию для соответствия требованиям бортовой диагностики (OBD-II/EURO). В течение 2000-х годов CAN 2.0B (с 29-битным идентификатором) и CAN FD (Flexible Data-Rate, 2012 год) стали доминирующими стандартами для автомобильных сетей.
Применение в промышленности
С 1990-х годов CAN начали активно использовать в промышленной автоматизации: в стандартах CANopen (CiA 301), DeviceNet (Rockwell Automation), J1939 (сельхозтехника и грузовики) и SAE J1939. Эти протоколы более высокого уровня надстраиваются поверх CAN и добавляют функции настройки, диагностики и конфигурирования устройств. CANopen стал особенно популярен в станкостроении, медицинской технике и робототехнике благодаря простоте реализации и открытой спецификации.
Классификация и версии протокола
CAN 2.0A / Basic CAN
- CAN 2.0A — базовая версия с 11-битным идентификатором. Обеспечивает до 2032 уникальных приоритетов кадров. Используется в простых сетях с ограниченным числом узлов (до 16—32). Обеспечивает максимальную пропускную способность 1 Мбит/с на коротких дистанциях (до 40 м).
CAN 2.0B / Extended CAN
- CAN 2.0B — расширенная версия с 29-битным идентификатором. Позволяет адресовать до 536 миллионов сообщений. Поддерживает до 64 узлов при штатной нагрузке. Используется в современных автомобилях, технике и промышленных сетях. Совместимость с 2.0A достигается за счёт того, что узлы 2.0A игнорируют кадры с 29-битным идентификатором.
CAN FD (Flexible Data-Rate)
- CAN FD — расширение CAN 2.0B, стандартизированное в 2012—2015 годах (ISO 11898-1:2015). Отличается возможностью передачи полезной нагрузки до 64 байт (против 8 байт у классического CAN) и переменной скоростью передачи в фазе данных (до 8—10 Мбит/с на коротких линиях). Обратно совместим с CAN 2.0B благодаря сохранению структуры арбитража и большинства полей кадра.
CAN XL (eXtended Length)
- CAN XL (2018—2020, ISO 11898-1:2024) — дальнейшее развитие, предложенное Bosch и Microchip. Позволяет передавать до 2048 байт данных на скорости до 10 Мбит/с и выше; базируется на CAN FD, но использует 32-битный идентификатор и модифицированный физический уровень, устойчивый к высоким скоростям.
Архитектура и принцип работы
Физический уровень (ISO 11898-2)
Шина CAN состоит из двух проводов: CAN_H (CAN High) и CAN_L (CAN Low). Сигналы передаются дифференциальным способом: разность напряжений между двумя линиями кодирует логические состояния. В доминантном состоянии (логический «0») напряжение на CAN_H повышается (до ~3,5 В) и на CAN_L понижается (до ~1,5 В), разность составляет ~2 В. В рецессивном состоянии (логическая «1») обе линии имеют напряжение ~2,5 В, разность близка к нулю.
Линии на концах шины должны быть подключены через резисторы 120 Ом к шине (терминирующие резисторы) для подавления отражений сигнала. Без корректной терминиации передача на высокой скорости невозможна. Длина сегмента шины зависит от скорости: при 1 Мбит/с — до 40 м; при 50 кбит/с — до 1000 м.
Уровень передачи данных (ISO 11898-1)
Кадры и арбитраж
Все узлы CAN имеют равный доступ к шине. Передача начинается с бита начала кадра (SOF). Затем следует поле арбитража, содержащее идентификатор сообщения (ID). Каждый узел, желающий начать передачу, вместе с другими выставляет свой ID побитно. Если узел передаёт рецессивный бит, а на шине оказывается доминантный, он проигрывает арбитраж и немедленно прекращает передачу. Этот механизм обеспечивает назначение приоритетов: сообщение с наименьшим двоичным значением ID получает наивысший приоритет и гарантированно проходит.
После арбитража следует поле управления (DLC — длина данных), поле данных (0—8 байт для CAN 2.0; 0—64 байта для CAN FD), поле CRC (контрольная сумма) и поле подтверждения (ACK). Кадр завершается последовательностью конца кадра (EOF) и межкадровым интервалом.
Типы кадров
- Кадр данных — содержит ID и полезную нагрузку.
- Кадр удалённого запроса (RTR) — запрос данных от другого узла; от кадра данных отличается только полем RTR.
- Кадр ошибки — передаётся узлом при обнаружении ошибки; состоит из 6 доминантных бит.
- Кадр перегрузки — сигнализирует о временной невозможности приёма данных.
Обнаружение и обработка ошибок
CAN имеет пять механизмов обнаружения ошибок: битовая ошибка (контроль при передаче), ошибка заполнения (stuff error), CRC-ошибка, ошибка формы (формат) и ошибка подтверждения. Каждый узел ведёт счётчики ошибок отправки и приёма. При превышении порога (127 для ошибок приёма, 255 для ошибок отправки) узел переходит в состояние «bus-off» — отключается от шины, чтобы не нарушать общую работу сети. Такой механизм делает CAN устойчивым к локальным неисправностям.
Скорость передачи
Скорость передачи (битрейт) выбирается разработчиком сети и должна быть одинаковой для всех узлов. Типичные значения:
- 1 Мбит/с — автомобильные системы управления;
- 500 кбит/с — CANopen, DeviceNet;
- 250 кбит/с — J1939 для грузовиков;
- 125—50 кбит/с — длинные линии (до 1 км) в промышленности.
Применение
Автомобильная промышленность
В современном автомобиле используется до 70 и более ЭБУ, объединённых несколькими CAN-сегментами: высокоскоростная CAN (powertrain) — для двигателя, коробки передач, ABS/ESP; среднескоростная CAN (body) — для стеклоподъёмников, центрального замка, освещения; низкоскоростная CAN (comfort) — для климат-контроля, аудиосистемы, сидений. Шина OBD-II (On-Board Diagnostics) также основана на CAN в версии 2.0B.
Промышленная автоматизация
Протокол CANopen (EN 50325-4) широко применяется в станках ЧПУ (ЧПУ — числовое программное управление), конвейерах, роботизированных ячейках, системах управления движением (сервоприводы, шаговые двигатели). DeviceNet (стандарт ODVA) используется в системах дискретного производства (автомобильная сборка, упаковка). SAE J1939 — стандарт для транспортных средств большой грузоподъёмности (грузовики, автобусы, тракторы).
Авионика и космос
В авиастроении (например, Airbus A380, Boeing 787) CAN применяется для некритичных систем: управление салоном, освещение, развлекательные системы. Для критических систем (полётные контроллеры, шасси) используют более строгие решения (AFDX, ARINC 429). В малых космических аппаратах (CubeSat) CANopen используется для связи бортовых компьютеров, систем ориентации и научных приборов.
Медицинская техника
CAN находит применение в больничном оборудовании (инфузионные насосы, мониторы пациента, аппараты ИВЛ) благодаря надёжности, низкой стоимости и стандартизации (CANopen). Многие производители (General Electric, Siemens, Dräger) используют шину для обмена данными между блоками и диагностики.
Сельское хозяйство и специальная техника
Стандарт ISO 11783 (ISOBUS) — специализированный протокол на базе CAN для сельскохозяйственных машин: тракторов, комбайнов, опрыскивателей. Позволяет подключать навесное оборудование разных производителей без дополнительной адаптации. В строительной и горной технике используется протокол SAE J1939.
Судоходство и железные дороги
CAN используется на судах для управления двигателями, рулевыми системами, баластной аппаратурой (стандарт NMEA 2000 — морская навигация). На железнодорожном транспорте (поезда, метро) применяются протоколы TCN (Train Communication Network) на базе CAN и CANopen для управления дверями, тормозами и вентиляцией.
Преимущества и недостатки
Преимущества
- Надёжность — высокая помехоустойчивость за счёт дифференциального сигнала; самодиагностика и автоматическое отключение неисправных узлов.
- Детерминизм — приоритетный арбитраж гарантирует доставку наиболее важных сообщений; все узлы имеют равные права доступа.
- Простота и низкая стоимость — дешёвые микроконтроллеры со встроенным CAN-контроллером (Cortex-M, AVR, PIC); не требуется сложных протоколов выше уровня данных.
- Распределённая архитектура — узел может быть добавлен в сеть без перенастройки общей логики (позволяет «горячую» замену устройств при поддержке со стороны протоколов верхнего уровня).
Недостатки
- Ограниченная длина данных — в классическом CAN 2.0 — не более 8 байт на кадр, что требует разбиения длинных сообщений.
- Максимальная скорость — 1 Мбит/с при длине до 40 м; на длинных линиях скорость падает до 50—125 кбит/с.
- Число узлов — без повторителей не более 64—110 (в зависимости от скорости и длины линии).
- Отсутствие встроенной аутентификации — сообщения передаются в открытом виде; уязвимость для кибератак (например, угон автомобиля через CAN). Современные системы шифрования (CANsec) внедряются только начиная с CAN FD.
- Сложность отладки — при большом количестве сообщений анализ трафика требует специализированного оборудования (анализатор CAN, осциллограф).
Законодательство и безопасность
В Российской Федерации шина CAN не подпадает под специальное регулирование, однако её использование в составе систем управления критической инфраструктуры (транспорт, энергетика) должно соответствовать требованиям Федерального закона от 26.07.2017 № 187-ФЗ «О безопасности критической информационной инфраструктуры Российской Федерации». Для автомобильной отрасли действует Технический регламент Таможенного союза «О безопасности колёсных транспортных средств» (ТР ТС 018/2011), нормирующий требования к бортовой электронике и диагностическим интерфейсам (включая CAN). За последние годы участились случаи кибератак на CAN-сети автомобилей (Metasploit, атаки через Bluetooth, USB и 4G). В ответ разработчики внедряют сегментацию сети, фильтрацию сообщений, аппаратные шлюзы с проверкой подлинности и системы мониторинга аномалий.
Исследователи и сообщества
Развитием протокола CAN занимается некоммерческая организация CiA (CAN in Automation) в Германии. CiA публикует спецификации CANopen, CAN FD, CAN XL, проводит тестирование устройств на совместимость, организует конференции и семинары. Крупные исследовательские работы по безопасности CAN ведутся в Университете Мичигана (США), Техническом университете Мюнхена (Германия), Калифорнийском университете в Сан-Диего (США) и в ряде российских вузов (МГТУ им. Н. Э. Баумана, СПбГЭТУ «ЛЭТИ»). Открытые инструменты для работы с CAN включают библиотеку SocketCAN в ядре Linux, сниферы (cansniffer, candump) и фреймворк для тестирования автомобильной безопасности «ICSim» (Vehicle End Simulator).
Источники
- ISO 11898-1:2015. Road vehicles — Controller area network (CAN) — Part 1: Data link layer and physical signalling.
- ISO 11898-2:2016. Road vehicles — Controller area network (CAN) — Part 2: High-speed medium access unit.
- Bosch. «CAN Specification Version 2.0», 1991.
- Gesellschaft für Informatik e.V. (GI). «CAN in Automation (CiA) — Standards and Applications», 2019.
- Кнапп, Б. «Шина CAN. Практическое руководство» (перевод с англ.), 2010.
- «The Controller Area Network (CAN) — A Tool for Automotive Networking» by U. Kiencke, R. Düster, 1995.
- Экспертный обзор ФГУП «НАМИ» — «Анализ бортовых автомобильных сетей и шин данных», 2022.
- Законодательство РФ: Федеральный закон № 187-ФЗ (2017), ТР ТС 018/2011.
- Статья «Automotive Network Security: A Survey of Vulnerabilities and Countermeasures» (Proceedings of the IEEE, 2018).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →