Открыть сервис

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.0B / Extended CAN

CAN FD (Flexible Data-Rate)

CAN XL (eXtended Length)

Архитектура и принцип работы

Физический уровень (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) и межкадровым интервалом.

Типы кадров

Обнаружение и обработка ошибок

CAN имеет пять механизмов обнаружения ошибок: битовая ошибка (контроль при передаче), ошибка заполнения (stuff error), CRC-ошибка, ошибка формы (формат) и ошибка подтверждения. Каждый узел ведёт счётчики ошибок отправки и приёма. При превышении порога (127 для ошибок приёма, 255 для ошибок отправки) узел переходит в состояние «bus-off» — отключается от шины, чтобы не нарушать общую работу сети. Такой механизм делает CAN устойчивым к локальным неисправностям.

Скорость передачи

Скорость передачи (битрейт) выбирается разработчиком сети и должна быть одинаковой для всех узлов. Типичные значения:

Применение

Автомобильная промышленность

В современном автомобиле используется до 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 не подпадает под специальное регулирование, однако её использование в составе систем управления критической инфраструктуры (транспорт, энергетика) должно соответствовать требованиям Федерального закона от 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).

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →