Controller Area Network

Материал из Википедии — свободной энциклопедии
(перенаправлено с «ISO 11898»)
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 6 июня 2022 года; проверки требуют3 правки.
Перейти к навигацииПерейти к поиску
У этого термина существуют и другие значения, см.Can.

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

CAN разработан компаниейRobert Bosch GmbH в середине1980-х и в настоящее время широко распространён в промышленной автоматизации, технологияхдомашней автоматизации («умного дома»), автомобильной промышленности и многих других областях. Стандарт для автомобильной автоматики.

Содержание

Описание стандарта

[править |править код]

Непосредственностандарт CAN компании Bosch определяет передачу в отрыве от физического уровня — он может быть каким угодно, например, радиоканалом илиоптоволокном. Но на практике под CAN-сетью обычно подразумевается сеть топологии «шина» сфизическим уровнем в видедифференциальной пары, определённым в стандартеISO 11898. Передача ведётся кадрами, которые принимаются всеми узлами сети. Для доступа к шине выпускаются специализированные микросхемы —драйверы CAN-шины.

Общие сведения

[править |править код]

CAN является синхронной шиной с типом доступа Collision Resolving (CR, разрешение коллизии), который, в отличие от Collision Detect (CD, обнаружение коллизии) сетей (Ethernet), детерминировано (приоритетно) обеспечивает доступ на передачу сообщения, что особо ценно для промышленных сетей управления (fieldbus).Передача ведётсякадрами. Полезнаяинформация в кадре состоит изидентификатора длиной 11 бит (стандартный формат) или 29 бит (расширенный формат, надмножество предыдущего) и поля данных длиной от 0 до 8 байт. Идентификатор говорит о содержимом пакета и служит для определения приоритета при попытке одновременной передачи несколькими сетевыми узлами.

Рецессивные и доминантные биты

[править |править код]

Дляабстрагирования от среды передачи спецификация CAN избегает описывать биты данных как «0» и «1». Вместо этого применяются термины «рецессивный» бит и «доминантный» бит, при этом подразумевается, что при передаче одним узлом сети рецессивного бита, а другим доминантного принят будет доминантный бит. Например, при реализации физического уровня на радиоканале отсутствие сигнала означает рецессивный бит, а наличие — доминантный; тогда как в типичной реализации проводной сети рецессив бывает при наличии сигнала, а доминант, соответственно, при отсутствии. Стандарт сети требует от «физического уровня», фактически, единственного условия: чтобы доминантный бит мог подавить рецессивный, но не наоборот. Например, в оптическом волокне доминантному биту должен соответствовать «свет», а рецессивному — «темнота». В электрическом проводе может быть так: рецессивное состояние —высокое напряжение на линии (от источника с большимвнутренним сопротивлением), доминантное — низкое напряжение (доминантный узел сети «подтягивает» линию на землю). Если линия находится в рецессивном состоянии, перевести её в доминантное может любой узел сети (включив свет в оптоволокне или закоротив высокое напряжение). Наоборот — нельзя (включить темноту нельзя).

Виды кадров

[править |править код]
  • Кадр данных (data frame) — передаёт данные;
  • Кадр удаленного запроса (remote frame) — служит для запроса на передачу кадра данных с тем же идентификатором;
  • Кадр перегрузки (overload frame) — обеспечивает промежуток между кадрами данных или запроса;
  • Кадр ошибки (error frame) — передаётся узлом, обнаружившим в сети ошибку.

Кадры данных и запроса отделяются от предыдущих кадровмежкадровым промежутком.

Формат кадра

[править |править код]

Базовый формат кадра данных

[править |править код]
ПолеДлина (в битах)Описание
Начало кадра (SOF)1Сигнализирует начало передачи кадра
Идентификатор11Уникальный идентификатор
Запрос на передачу (RTR)1Должен быть доминантным
Бит расширения идентификатора (IDE)1Должен быть доминантным (определяет длину идентификатора)
Зарезервированный бит (r0)1Резерв
Длина данных (DLC)4Длина поля данных в байтах (0-8)
Поле данных0-8 байтПередаваемые данные (длина в поле DLC)
Контрольная сумма (CRC)15Контрольная сумма всего кадра
Разграничитель контрольной суммы1Должен быть рецессивным
Промежуток подтверждения (ACK)1Передатчик шлёт рецессивный, приёмник вставляет доминанту
Разграничитель подтверждения1Должен быть рецессивным
Конец кадра (EOF)7Должен быть рецессивным

Первые 7 бит идентификатора не должны быть все рецессивными.

Расширенный формат кадра данных

[править |править код]
ПолеДлина (в битах)Описание
Начало кадра (SOF)1Сигнализирует начало передачи кадра
Идентификатор A11Первая часть идентификатора
Подмена запроса на передачу (SRR)1Должен быть рецессивным
Бит расширения идентификатора (IDE)1Должен быть рецессивным (определяет длину идентификатора)
Идентификатор B18Вторая часть идентификатора
Запрос на передачу (RTR)1Должен быть доминантным
Зарезервированные биты (r1 и r0)2Резерв
Длина данных (DLC)4Длина поля данных в байтах (0-8)
Поле данных0-8 байтПередаваемые данные (длина в поле DLC)
Контрольная сумма (CRC)15Контрольная сумма всего кадра
Разграничитель контрольной суммы1Должен быть рецессивным
Промежуток подтверждения (ACK)1Передатчик шлёт рецессивный, приёмник вставляет доминанту
Разграничитель подтверждения1Должен быть рецессивным
Конец кадра (EOF)7Должен быть рецессивным

Идентификатор получается объединением частей A и B.

Формат кадра удаленного запроса

[править |править код]

Совпадает с кадрами данных стандартного или расширенного формата, за двумя исключениями:

  • В поле RTR рецессив вместо доминанты.
  • Отсутствует поле данных.

Арбитраж доступа

[править |править код]

При свободной шине любой узел может начинать передачу в любой момент. В случае одновременной передачи кадров двумя и более узлами проходитарбитраж доступа: передавая идентификатор, узел одновременно проверяет состояние шины. Если при передаче рецессивного бита принимается доминантный — считается, что другой узел передаёт сообщение с большим приоритетом, и передача откладывается до освобождения шины. Таким образом, в отличие, например, отEthernet, в CAN не происходит непроизводительной потери пропускной способности канала при коллизиях. Цена этого решения — возможность того, что сообщения с низким приоритетом никогда не будут переданы.

Контроль ошибок

[править |править код]

CAN имеет несколько механизмов контроля и предотвращения ошибок:

  • Контроль передачи: при передаче битовые уровни в сети сравниваются с передаваемыми битами.
  • Дополняющие биты (bit stuffing): после передачи пяти одинаковых битов подряд автоматически передаётся бит противоположного значения. Таким образом кодируются все поля кадров данных или запроса, кроме разграничителя контрольной суммы, промежутка подтверждения и EOF.
  • Контрольная сумма: передатчик вычисляет её и добавляет в передаваемый кадр, приёмник считает контрольную сумму принимаемого кадра в реальном времени (одновременно с передатчиком), сравнивает с суммой в самом кадре и в случае совпадения передаёт доминантный бит в промежутке подтверждения.
  • Контроль значений полей при приёме.

Разработчики оценивают вероятность невыявления ошибки передачи как 4,7×10−11.

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

[править |править код]

Диапазон скоростей

[править |править код]

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

Предельная длина сети

[править |править код]

Приведённые выше методы контроля ошибок требуют, чтобы изменение бита при передаче успело распространиться по всей сети к моменту замера значения. Это ставит максимальную длину сети в обратную зависимость от скорости передачи: чем больше скорость, тем меньше длина. Например, для сети стандартаISO 11898 предельные длины составляют приблизительно:

1 Мбит/с40 м
500 кбит/с100 м
125 кбит/с500 м
10 кбит/с5000 м

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

Протоколы верхнего уровня

[править |править код]

Базовой спецификации CAN не достаёт многих возможностей, требуемых в реальных системах: передачи данных длиннее 8 байт, автоматического распределения идентификаторов между узлами, единообразного управления устройствами различных типов и производителей. Поэтому вскоре после появления CAN на рынке начали разрабатываться протоколы высокого уровня для него. В число распространённых на данный момент протоколов входят:

Применение CAN в автомобилестроении

[править |править код]
CAN-контакты в стандарте зарядки электромобилей «ChaoJi»:
S- — Signalling CAN_Low
S+ — CAN_High

Во всех высокотехнологичных системах современного автомобиля применяется CAN-протокол для связиЭБУ с дополнительными устройствами и контроллерами исполнительных механизмов и различных систем безопасности. В некоторых автомобилях CAN связываетIMMO, приборные панели,SRS блоки и т. д.

Также протокол CAN ISO 15765-4 вошел в состав стандартаOBD-II.

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

[править |править код]

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

[править |править код]
  • Возможность работы в режиме жёсткогореального времени.
  • Простота реализации и минимальные затраты на использование.
  • Высокая устойчивость к помехам.
  • Арбитраж доступа к сети без потерь пропускной способности.
  • Надёжный контроль ошибок передачи и приёма.
  • Широкий диапазон скоростей работы.
  • Большое распространение технологии, наличие широкого ассортимента продуктов от различных поставщиков.

Недостатки

[править |править код]
  • Небольшое количество данных, которое можно передать в одном пакете (до 8 байт).
  • Большой размер служебных данных в пакете (по отношению к полезным данным).
  • Отсутствие единого общепринятого стандарта на протокол высокого уровня, однако это - и достоинство. Стандарт сети предоставляет широкие возможности для практически безошибочной передачи данных между узлами, оставляя разработчику возможность вложить в этот стандарт всё, что туда сможет поместиться. В этом отношении CAN подобен простому электрическому проводу. Туда можно «затолкать» любой поток информации, который сможет выдержать пропускная способность шины. Известны примеры передачи звука и изображения по шине CAN (Россия). Известен случай создания системы аварийной связи вдоль автодороги длиной несколько десятков километров (Германия) (в первом случае нужна была большая скорость передачи и небольшая длина линии, во втором случае — наоборот). Изготовители, как правило, не афишируют, как именно они используют полезные байты в пакете.

См. также

[править |править код]

Ссылки

[править |править код]


Перейти к шаблону «Промышленные сети»
Системные шины систем управления
Распределённая периферия
Приводная техника
Полевые устройства
Автоматизация зданий
Перейти к шаблону «Микроконтроллеры»
Архитектура
8 бит
16 бит
32 бита
Микросхемы фирмы ST в DIP14 корпусе
Производители
Компоненты
Периферия
Интерфейсы
ОС
Программирование
Источник —https://ru.wikipedia.org/w/index.php?title=Controller_Area_Network&oldid=135716240
Категории: