Controller Area Network — шина сети локальных контроллеров

CAN (англ. Controller Area Network — шина сети локальных контроллеров) — это стандарт промышленной сети, ориентированный прежде всего на объединение в единую сеть различных исполнительных устройств и датчиков для надёжной работы в режиме реального времени в условиях с повышенными уровнями электрических помех (бортовая сеть автомашины).

CAN разработан компанией Robert Bosch GmbH в середине 1980-х, в настоящее время протокол CAN стандартизирован Международной организацией по стандартизации (International Organization for Standardization, ISO) и получил название ISO 11898.

Данный стандарт получил широкое распространение в промышленной автоматизации, технологиях «умного дома», автомобильной промышленности и многих других областях. В мире уже установлено более 100 млн. узлов сетей CAN, ежегодный прирост составляет более 50%. Является стандартом для автомобильной автоматики. Во всех высокотехнологических системах современного автомобиля применяется CAN-протокол для связи электронного блока управления (далее ЭБУ) с дополнительными устройствам и контроллерами исполнительных механизмов и различных систем безопасности.

Непосредственно стандарт CAN от Bosch определяет передачу в отрыве от физического уровня — он может быть каким угодно, например, радиоканалом или оптоволокном. Но на практике под CAN-сетью обычно подразумевается сеть топологии «шина» с физическим уровнем в виде дифференциальной пары, определённым в стандарте ISO 11898. Передача ведётся кадрами, которые принимаются всеми узлами сети. Полезная информация в кадре состоит из идентификатора длиной 11 бит (стандартный формат) или 29 бит (расширенный формат, надмножество предыдущего) и поля данных длиной от 0 до 8 байт. Идентификатор говорит о содержимом пакета и служит для определения приоритета при попытке одновременной передачи несколькими сетевыми узлами. Максимальное количество станций: в теории – неограниченное, на практике – до 64, с возможностью работы в режиме реального времени. На практике максимальное количество станций определяется максимальным временем организации очереди для сообщений с высоким приоритетом.

Все узлы подключенные к шине CAN должны работать с одной скоростью. Стандарт CAN не определяет скоростей работы, но большинство как отдельных, так и встроенных в микроконтроллеры адаптеров позволяют плавно менять скорость в диапазоне по крайней мере от 20 килобит в секунду до 1 мегабита в секунду. Существуют решения, выходящие далеко за рамки данного диапазона.

Методы контроля ошибок, используемые в стандарте CAN, требуют, чтобы изменение бита при передаче успело распространиться по всей сети к моменту замера значения. Это ставит максимальную длину сети в обратную зависимость от скорости передачи: чем больше скорость, тем меньше длина. При скорости передачи 1 Мбит/с длина шины может достигать 40 метров. При меньших скоростях длину можно увеличить до километра. Использование оптопар для защиты устройств от высоковольтных помех в сети ещё больше сокращает предельную длину. Сильно разветвлённые сети (паутина) также снижают скорость из-за множества отражений сигнала и большей электрической ёмкости шины.

На сегодняшний день CAN-шина также используется как промышленная сеть в различных средах автоматизации, в первую очередь благодаря невысокой стоимости CAN-контроллеров и процессоров специально разработанных для работы с шиной.

 

См. также: