CAN (Controller Area Network)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:41, 16 мая 2016.
1f2cd9cc43.png

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

История

В середине 80 х Robert Bosch GmbH и Intel начали совместные работы над спецификацией и проектированием микросхем для блока,который бы обеспечивал последовательный протокол связи и поддерживал прикладные задачи с распределенным управлением в реальном масштабе времени. Основная цель этого проекта - разработка высокоскоростной сети с простым подключением узлов и бло ков к шине для автомобилей. Первоначально CAN предназначался для управления трансмиссией в реальном масштабе времени, системы антизаноса и замены всей радиальной проводки автомобиля.

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

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

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

Основные характеристики протокола

  • каждое сообщение имеет определенный приоритет
  • существуют гарантированные времена ожидания
  • гибкость конфигурации
  • групповой приём с временной синхронизацией
  • система непротиворечивости данных
  • multimaster
  • обнаружение и сигнализация ошибок
  • автоматическая ретрансляция разрушенных сообщений
  • различие между временными ошибками и постоянными отказами узлов и автономное отключение дефектных узлов

Передача сообщений

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

Типы кадров

  1. Кадр данных (data frame) — передаёт данные. Кадр данных состоит из 7 различных полей: "Начало кадра", "поле арбитража", "поле контроля", "поле данных", "поле CRC", "поле подтверждения", "конец кадра".
  2. Кадр удаленного запроса (remote frame) — служит для запроса на передачу кадра данных с тем же идентификатором. Узел может инициализировать передачу кадра данных другим узлом, посылая кадр удаленного запроса данных.Этот кадр состоит из 6 полей: "Начало кадра", "поле арбитража", "поле контроля", "поле CRC", "поле подтверждения", "конец кадра".В отличие от кадра данных , RTR бит = "1". Здесь нет поля данных, зависящего от значения "кода длины данных", внутри этого поля может быть записано любое из допустимых значений. Полярность RTR бита показывает, является ли передаваемый кадр кадром данных или кадром удаленного запроса данных
  3. Кадр перегрузки (overload frame) — обеспечивает промежуток между кадрами данных или запроса. Кадр перегрузки содержит два битовых поля: флаг перегрузки и разделитель перегрузки. Имеются два вида перегрузки, которые оба приводят к передаче кадра перегрузки. Внутреннее состояние приёмника, которое требует задержки следующего кадра данных или кадра удаленного запроса данных или обнаружение бита с лог. "0" в течение поля перерыва. Для больших задержек может быть послано несколько кадров перегрузки.
  4. Кадр ошибки (error frame) — передаётся узлом, обнаружившим в сети ошибку. Состоит из двух различных полей. Первое поле является суперпозицией флагов ошибки различных узлов, второе поле - поле разделителя ошибки.Для корректного завершения кадра ошибки, узлу в состоянии "пассивной ошибки" может быть необходим доступ к шине, поэтому шина должна быть свободной, по крайней мере, три времени передачи бита. Следовательно, шина не должна быть загружена на 100%.

Межкадровое пространство

Кадры данных и кадры удаленного запроса данных отделяются от предшествующих кадров любого типа (кадра данных, кадра удаленного запроса данных, кадра ошибки, кадра перегрузки). Это разделяющее битовое поле называется межкадровым пространством.

Кадрам перегрузки и кадрам ошибки не предшествует межкадровое пространство; несколько кадров перегрузки также не отделяются межкадровым пространством.

рис1

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

Рис2

Поле перерыва (Intermission) состоит из 3 бит с лог. "1". В течение перерыва никакому узлу нельзя начинать передачу кадра данных или кадра удаленного запроса данных. Единственно возможное действие - это сигнализация состояния перегрузки. Поле простой шины (Bus Idle) может иметь произвольную длину. Если шина опознана как свободная, любой узел, который имеет что - либо для передачи может начать передачу. Сообщение, которое было задержано для передачи другого сообщения, начинает передаваться в первом бите после поля перерыва. Узел в состоянии "пассивной ошибки", после передачи сообщения, посылает 8 бит с лог. "1" после поля перерыва, перед началом передачи дальнейших сообщений или определением занятости шины. Если тем временем началась передача (вызванная другим узлом), узел станет приёмником этого сообщения.

Кодирование битового потока

Следующие поля: "начало кадра", "поле арбитража", "поле контроля", "поле данных" и "поле CRC" кодированы методом разрядного заполнения. Всякий раз, когда передатчик передает пять последовательных бит идентичной величины в битовом потоке, он автоматически вставляет дополняющий бит противоположного значения в фактически передаваемый битовый поток. Оставшиеся битовые поля кадра данных или кадра удаленного запроса данных ("разделитель CRC", "поле подтверждения" и "конец кадра") имеют фиксированную форму и не кодируются. Кадр ошибки и кадр перегрузки также имеют фиксированную длину и не кодируются методом разрядного заполнения.

Обработка ошибок

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

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

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

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

Максимальная скорость CAN шины, согласно стандарта, 1Мбод. При этой скорости может использоваться максимальная длина кабеля около 40 метров. Соотношение величины длины кабеля и скорости работы CAN:

Скорость длина
1000 кбит/сек 40 метров
500 кбит/сек 130 метров
250 кбит/сек 270 метров
125 кбит/сек 530 метров
100 кбит/сек 620 метров
50 кбит/сек 1300 метров
20 кбит/сек 3300 метров
10 кбит/сек 6700 метров
5 кбит/сек 10000 метров

Теоретически возможная максимальная скорость CAN 1,6 Мбит/сек. на 10 метрах (величина в стандарт не входит). Некоторые CAN контроллеры поддерживают скорости выше 1 Мбит/сек.

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

CAN протокол получил всемирное признание как очень универсальная, эффективная, надежная и экономически приемлемая платформа для почти любого типа связи данных в передвижных системах, машинах, техническом оборудовании и индустриальной автоматизации. Основанная на базе протоколов высокого уровня CAN-технология успешно конкурирует на рынке распределенных систем автоматизации. Под терминами "CAN стандарт" или "CAN протокол" понимаются функциональные возможности, которые стандартизированы в ISO 11898. Этот стандарт объединяет физический уровень (Physical Layer) и уровень канала данных (Data Link Layer) в соответствии с 7-ми уровневой OSI моделью. Таким образом, "CAN стандарт" соответствует уровню сетевого интерфейса в 4-х уровневой модели TCP/IP. Однако, практическая реализация даже очень простых распределенных систем на базе CAN показывает, что помимо предоставляемых сервисов уровня канала данных требуются более широкие функциональные возможности : передача блоков данных длинной более чем 8 байтов, подтверждение пересылки данных, распределение идентификаторов, запуск сети и функции супервизора узлов. Так как эти дополнительные функциональные возможности непосредственно используются прикладным процессом, вводится понятие уровня приложений (Application Layer) и протоколов высокого уровня. Обычно их и называют термином "CAN протоколы".

Из-за широко использования CAN сетей с различными целями и требованиями существуют несколько главных стандартов CAN-протоколов высокого уровня : CAL (CAN Application Layer), OSEK/VDX, SAE J1939, CANopen, DeviceNet, SDS (Smart Distribution Systems), CAN-Kingdom.

Применение CAN

В настоящее время CAN находит применение в различных областях.

Движущийся транспорт

  • Пассажирские автобусы
  • Трейлеры и грузовики
  • Вагон платформы и тепловозы
  • Легковые автомобили
  • Планеры и самолеты
  • Поезда, электрички и метро
  • Морские суда и паромы
  • Яхты и моторные лодки
  • Сельхоз. машины (комбайны и др.)
  • Экскаваторы
  • Дорожные машины
  • Лесные машины
  • Экскаваторы

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

  • ПЛК (PLC)
  • Роботы и манипуляторы
  • Серводвигатели
  • Интеллектуальные сенсоры и механизмы
  • Гидравлика
  • Датчики расхода воды и электричества
  • Текстильная промышленность
  • Медицинские приборы
  • Охранно пожарная сигнализация
  • Лифты
  • Стиральные машины
  • Системы доступа и др.

Объекты с контурным управлением

  • Системы кондиционирования воздуха(СКВ)
  • Системы автоматического регулирования давления (САРД)
  • Системы автоматического регулирования температуры (САРТ)
  • Мониторинг работы турбин
  • Управление паровыми котлами
  • Симуляторы кабины пилота

Военные системы

  • Крылатые ракеты и беспилотные планеры
  • Истребители
  • Военно морской флот
  • Управление в танках
  • Подводные лодки
  • Самоходный транспорт
  • Спутники и космические станции

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

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

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

Недостатки

  • Небольшое количество данных, которое можно передать в одном пакете (до 8 байт).
  • Большой размер служебных данных в пакете (по отношению к полезным данным).

Источники

  1. Controller Area Network (CAN) - локальная сеть контроллеров«Электроника»,No9 и No10/98, Минск, Беларусь
  2. Introduction to the Controller Area Network (CAN) Texas Instruments