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

CAN (Controller Area Network)

CAN (Controller Area Network) — это последовательная шина данных, предназначенная для объединения в единую сеть различных электронных блоков управления (ЭБУ) в реальном времени. CAN-интерфейс обеспечивает высокую помехоустойчивость, отказоустойчивость и детерминированную передачу сообщений, что делает его основным стандартом для бортовых сетей автомобилей, а также для промышленной автоматизации, авионики, медицинского оборудования и робототехники. Протокол был разработан компанией Robert Bosch GmbH в 1983 году, а в 1993 году стандартизирован как ISO 11898.

История

Разработка CAN началась в начале 1980-х годов в компании Bosch под руководством инженера Уве Кирхгофа. Основной целью было создание единой сети, которая заменила бы громоздкие и ненадёжные жгуты проводов, соединявшие каждый датчик и исполнительный механизм с отдельным блоком управления. Первая версия протокола была представлена в 1986 году на конгрессе SAE (Society of Automotive Engineers) в Детройте. Серийное внедрение началось в 1988 году на модели BMW 8 Series (E31), где CAN использовалась для управления двигателем и трансмиссией.

В 1991 году Bosch выпустил спецификацию CAN 2.0, которая разделила протокол на два формата: стандартный (11-битный идентификатор, CAN 2.0A) и расширенный (29-битный идентификатор, CAN 2.0B). В 1993 году Международная организация по стандартизации (ISO) приняла CAN как стандарт ISO 11898, который охватывает физический и канальный уровни модели OSI. В 2003 году была опубликована версия ISO 11898-2, описывающая высокоскоростной CAN (до 1 Мбит/с), а в 2006 году — ISO 11898-3 для низкоскоростного CAN с отказоустойчивостью (до 125 кбит/с).

В 2011 году компания Bosch представила CAN FD (Flexible Data-Rate), который увеличил скорость передачи данных до 8 Мбит/с и размер полезной нагрузки до 64 байт. CAN FD обратно совместим с классическим CAN на физическом уровне, но требует поддержки со стороны контроллеров. С 2015 года CAN FD стандартизирован как ISO 11898-1:2015.

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

Физический уровень

CAN использует дифференциальную передачу сигнала по двум проводам: CAN High (CANH) и CAN Low (CANL). В состоянии доминантного бита (логический 0) напряжение на CANH повышается (например, до 3,5 В), а на CANL понижается (до 1,5 В), создавая разность потенциалов около 2 В. В рецессивном состоянии (логическая 1) оба провода имеют одинаковое напряжение (около 2,5 В). Такая схема обеспечивает высокую помехоустойчивость и возможность работы в условиях сильных электромагнитных помех, характерных для автомобильной среды.

Сеть строится по топологии «шина» (multi-drop) с терминаторами (резисторами 120 Ом) на обоих концах линии. Максимальная длина сегмента зависит от скорости передачи: при 1 Мбит/с — до 40 м, при 50 кбит/с — до 1 км. Количество узлов ограничено электрической нагрузкой шины и обычно не превышает 30–40 на один сегмент, хотя с использованием повторителей может достигать 200.

Канальный уровень

Передача данных осуществляется в виде кадров (frames). Основные типы кадров:

  • Кадр данных (Data Frame): содержит идентификатор, поле данных (от 0 до 8 байт для классического CAN, до 64 байт для CAN FD), контрольную сумму (CRC) и биты подтверждения (ACK).
  • Кадр запроса (Remote Frame): используется для запроса данных от другого узла; не содержит поля данных.
  • Кадр ошибки (Error Frame): генерируется узлом при обнаружении ошибки, разрушает текущий кадр.
  • Кадр перегрузки (Overload Frame): сигнализирует о том, что узел не готов к приёму данных.

Идентификатор кадра определяет приоритет: чем меньше числовое значение идентификатора, тем выше приоритет. Арбитраж доступа к шине реализован на основе доминантных и рецессивных битов: если два узла начинают передачу одновременно, узел с более высоким приоритетом (меньшим идентификатором) выигрывает, а узел с низким приоритетом автоматически прекращает передачу и переходит в режим приёма.

Методы обнаружения ошибок

CAN обеспечивает пять механизмов обнаружения ошибок:

  1. Битовое заполнение (Bit Stuffing): после пяти последовательных одинаковых битов вставляется противоположный бит; нарушение правила считается ошибкой.
  2. Контроль битов (Bit Monitoring): передатчик сравнивает отправленный бит с фактическим состоянием шины.
  3. Контрольная сумма (CRC): 15- или 17-битная последовательность для проверки целостности данных.
  4. Формат кадра (Frame Check): проверка правильности полей кадра.
  5. Подтверждение (ACK): каждый узел, успешно принявший кадр, отправляет доминантный бит в поле ACK.

При обнаружении ошибки узел генерирует кадр ошибки, что приводит к перезапуску передачи. После нескольких ошибок узел может перейти в состояние «пассивной ошибки» или «отключения от шины» (Bus Off) для предотвращения блокировки сети.

Виды и стандарты

Классический CAN (CAN 2.0)

  • CAN 2.0A: 11-битный идентификатор, до 2048 узлов (теоретически), скорость до 1 Мбит/с.
  • CAN 2.0B: 29-битный идентификатор, до 536 миллионов узлов (теоретически), обратно совместим с CAN 2.0A.

CAN FD (Flexible Data-Rate)

Введён в 2011 году. Отличается от классического CAN:

  • Переменная скорость передачи: в фазе арбитража — до 1 Мбит/с, в фазе данных — до 8 Мбит/с.
  • Увеличенный размер данных: до 64 байт на кадр.
  • Улучшенная CRC (17 или 21 бит) для защиты больших пакетов.
  • Обратная совместимость на физическом уровне: CAN FD-узлы могут работать в сети с классическими CAN-узлами, но при этом не могут использовать режим FD.

CANopen

Высокоуровневый протокол прикладного уровня, построенный на базе CAN. Разработан в 1995 году организацией CAN in Automation (CiA). Используется в промышленной автоматизации, медицинском оборудовании, железнодорожном транспорте. Определяет профили устройств, объектный словарь и механизмы синхронизации.

J1939

Протокол, разработанный SAE для тяжёлой коммерческой техники (грузовики, автобусы, сельхозтехника). Использует 29-битный идентификатор и скорость 250 кбит/с. Определяет стандартизированные сообщения для управления двигателем, трансмиссией, тормозами и другими системами.

DeviceNet

Протокол, разработанный компанией Allen-Bradley (Rockwell Automation) для промышленной автоматизации. Использует CAN на физическом уровне и поддерживает до 64 узлов. Широко применяется в системах управления производственными линиями.

Применение

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

CAN является основой бортовых сетей в большинстве современных автомобилей. С его помощью соединяются блоки управления двигателем (ECU), трансмиссией, антиблокировочной системой (ABS), системой стабилизации (ESP), подушками безопасности, климат-контролем, мультимедиа и другими системами. В одном автомобиле может быть до 70–100 ЭБУ, объединённых несколькими CAN-шинами (например, шина силового агрегата, шина комфорта, шина информационно-развлекательной системы).

Промышленная автоматизация

В системах управления технологическими процессами CAN используется для связи программируемых логических контроллеров (ПЛК), датчиков, исполнительных механизмов и панелей оператора. Протоколы CANopen и DeviceNet обеспечивают стандартизированную интеграцию оборудования от разных производителей.

Медицинское оборудование

CAN применяется в аппаратах МРТ, КТ, ультразвуковых сканерах, системах жизнеобеспечения и хирургических роботах. Высокая надёжность и отказоустойчивость критически важны для медицинских устройств.

Авионика и космическая техника

В авиации CAN используется для управления системами самолёта (шасси, закрылки, топливная система). В космических аппаратах CAN применяется в системах телеметрии и управления научными приборами.

Робототехника

CAN широко применяется в промышленных роботах, сервоприводах и мобильных роботах. Позволяет синхронизировать движения нескольких осей и передавать данные с датчиков в реальном времени.

Преимущества и недостатки

Преимущества

  • Высокая помехоустойчивость: дифференциальная передача и встроенные механизмы обнаружения ошибок.
  • Детерминированность: приоритетный доступ к шине гарантирует, что критически важные сообщения будут переданы без задержек.
  • Отказоустойчивость: при выходе из строя одного узла остальные продолжают работу.
  • Низкая стоимость: двухпроводная шина и простые контроллеры.
  • Масштабируемость: возможность добавления новых узлов без изменения существующей сети.

Недостатки

  • Ограниченная скорость: классический CAN — до 1 Мбит/с, что недостаточно для современных мультимедийных систем (например, передача видео).
  • Ограниченная длина кадра: 8 байт данных в классическом CAN (CAN FD решает эту проблему частично).
  • Сложность диагностики: при большом количестве узлов и сообщений требуется специализированное оборудование для анализа сети.
  • Отсутствие встроенной безопасности: протокол не предусматривает шифрования или аутентификации, что требует дополнительных мер защиты.

Интересные факты

  • Первым автомобилем с CAN-шиной стал BMW 8 Series (E31) в 1988 году.
  • CAN используется в Международной космической станции (МКС) для управления некоторыми системами.
  • В 2018 году компания Bosch представила CAN XL (Extended Length), который увеличивает скорость до 10 Мбит/с и размер данных до 2048 байт.
  • Протокол CAN является основой для стандарта ISO 11783 (ISOBUS), используемого в сельскохозяйственной технике.
  • В России CAN применяется в системах управления железнодорожным транспортом, в том числе на локомотивах и вагонах метро.

Источники

  • Bosch CAN Specification 2.0 (1991)
  • ISO 11898-1:2015 — Road vehicles — Controller area network (CAN)
  • CAN in Automation (CiA) — CANopen Application Layer and Communication Profile
  • SAE J1939 — Recommended Practice for Serial Control and Communications Heavy Duty Vehicle Network
  • Robert Bosch GmbH — CAN FD: The flexible data-rate extension
  • National Instruments — CAN Physical Layer and Data Link Layer Overview
  • Kvaser AB — CAN Protocol Tutorial

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

На главную BFOmetr →