Введение в протокол CAN. AN228 - рассмотрение физического уровня CAN

Сетевой интерфейс CAN (Controller Area Network) был разработан в 1987г. (версия 1.0) фирмами BOSCH и INTEL для создания бортовых мультипроцессорных систем реального времени. Последняя спецификация интерфейса 2.0, разработанная фирмой BOSCH в 1992г., является дополнением предыдущей версии. В международной организации по стандартизации зарегистрирован ISO 11898 (для высокоскоростных приложений) и ISO 11519-2 (для низкоскоростных приложений).

Принцип работы

CAN является высокоинтегрированным сетевым интерфейсом передачи данных со скоростью до 1 Мбит/сек. Устройства в CAN-системе соединяются по шине, состоящей из 3-х проводов (2 сигнальных и один общий) (см. рис.).

Сообщения данных, передаваемые из любого узла по CAN-шине, могут содержать от 1 до 8 байт. Каждое сообщение помечено идентификатором, который в сети является уникальным (например: "Нагрев до 240", "Отказ нагрева","Бункер загружен", и т.д.). При передаче другие узлы сети получают сообщение и каждый из них проверяет идентификатор. Если сообщение имеет отношение к данному узлу, то оно обрабатывается, в противном случае - игнорируется. CAN-контроллер каждого из устройств может обрабатывать одновременно несколько идентификаторов (например, контроллеры SIEMENS и INTEL могут обрабатывать до 15). Таким образом, в каждом из устройств можно легко организовать несколько "виртуальных" каналов обмена информацией с различными устройствами, включая каналы одновременного получения сообщений.

Рис. 1. Соединение устройств по CAN-шине

Идентификаторы

Идентификатор определяет тип и приоритет сообщения. Более низкому числовому значению идентификатора соответствует более высокое значение приоритета. Сообщение, имеющее более высокий приоритет, передается раньше сообщения, имеющего более низкий приоритет. После сообщения с высоким приоритетом передается сообщение с более низким приоритетом, если во время передачи не появится сообщение с более высоким приоритетом, затем передается сообщение с еще более низким приоритетом и т. д.

Физическая шина

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

Высокая надёжность

Для обеспечения безотказной работы в тяжёлых условиях по стандарту ISO11898 CAN-контроллер обеспечивает работу в сети в следующих случаях:

  • любой из 3-х проводов в шине оборван,
  • любой провод - закорочен на питание,
  • любой провод - закорочен на общий провод.

При обрыве 2-х проводов часть функций основной системы может быть реализована в каждой из подсистем, созданных обрывом.

Сетевая гибкость и лёгкость расширения

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

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

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

Арбитраж CAN-шины

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

Узлы CAN-сети являются равноправными при обмене, и каждый из них в любой момент времени может иметь сообщение, требующее безотлагательной передачи. Вероятность одновременного требования передачи от различных устройств не является чем-то необычайным, а случается регулярно. Для разрешения подобного конфликта требуется быстродействующий механизм распределения очередности передачи сообщений. Для этого в CAN-системе используется Неразрушающий Поразрядный Арбитраж .

Приоритет CAN-сообщения определяется двоичным значением его идентификатора.

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

Рис. 2. Соединение устройств по CAN-шине

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

CAN содержит 5-ступенчатый механизм обнаружения ошибок:

  • циклический контроль по избыточности (CRC),
  • контроль передаваемого поля битов,
  • контроль сигнала "Подтверждение Приема",
  • текущий контроль логического уровня битов,
  • контроль заполнения битов.

Циклический контроль по избыточности (CRC)

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

Текущий контроль логического уровня битов

Любой передатчик автоматически контролирует и сравнивает фактический логический уровень битов на шине с уровнем, который он передает. Если уровни не совпадают, помечается ошибка логического уровня битов.

(Примечание: этот механизм также используется при арбитраже шины для определения приоритета сообщения, однако ошибка в этом случае, естественно, не возникает).

Контроль передаваемого поля битов

В составе CAN-сообщения передаются предопределенные битовые комбинации, которые контролируются при приёме. Если приемник обнаруживает недопустимый бит в одной из этих комбинаций, то устанавливается флаг ошибки формата.

Контроль заполнения битов

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

Контроль сигнала "Подтверждение Приема"

Каждое переданное сообщение подтверждается приемником, и если этого не произошло, тогда устанавливается флаг ошибки подтверждения приема.

Флаг ошибки

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

С учетом действия всех механизмов контроля, реальное значение возникновения необнаруженной ошибки в CAN-системе - 10-11 .

Формат CAN-сообщения

Стандартный CAN-протокол (версия 2.0A) поддерживает формат сообщения с 11-разрядными идентификаторами (Стандартное сообщение).

Расширенный CAN-протокол (версия 2.0B) поддерживает 11-битовый и 29-битовый форматы идентификаторов (Расширенное сообщение).

Большинство контроллеров версии 2.0A передают и принимают только сообщения стандартного формата, хотя часть из них могут только получать сообщения расширенного формата.

Контроллеры версии 2.0B могут посылать и получать сообщения в обоих форматах.

Различия форматов

В версии 2.0B поле битов идентификатора состоит из двух частей.

Первая часть (основная часть идентификатора) имеет длину одиннадцать битов для совместимости с версией 2.0A, вторая часть - восемнадцать битов (расширение идентификатора), что дает общую длину идентификатора в двадцать девять бит.

Для различения форматов используются биты Identifier Extension (IDE) и Substitute Remote Request (SRR) в Поле Арбитража.

ENG 192Kb Control Area Network Rus CAN 2.0 A Rus CAN 2.0 В CAN протоколы высокого уровня Шины для бортовых автомобильных систем

CAN (Control Area Network) - последовательная магистраль, обеспечивающая увязку в сеть "интеллектуальных" устройств ввода/вывода, датчиков и исполнительных устройств некоторого механизма или даже предприятия. Характеризуется протоколом, обеспечивающим возможность нахождения на магистрали нескольких ведущих устройств, обеспечивающим передачу данных в реальном масштабе времени и коррекцию ошибок, высокой помехоустойчивостью. Система CAN обеспечена большим количеством микросхем, обеспечивающих работу подключенных к магистрали устройств, разработку которых начинала фирма BOSH для использования в автомобилях, и в настоящее время широко используемых в автоматизации промышленности. Цеколёвка разема приведена на рисунке.

  • Предназначен для организации высоконадежных недорогих каналов связи в распределенных системах управления. Интерфейс широко применяется в промышленности, энергетике и на транспорте. Позволяет строить как дешевые мультиплексные каналы, так и высокоскоростные сети.
  • Скорость передачи задается программно и может быть до 1 Мбит/с. Пользователь выбирает скорость, исходя из расстояний, числа абонентов и емкости линий передачи.
Расстояние, м 25 50 100 250 500 1000 2500 5000
Скорость, Кбит/с 1000 800 500 250 125 50 20 10
  • Максимальное число абонентов, подключенных к данному интерфейсу фактически определяется нагрузочной способностью примененных приемопередатчиков. Например, при использовании трансивера фирмы PHILIPS PCA82C250 она равна 110.
  • Протокол CAN использует оригинальную систему адресации сообщений. Каждое сообщение снабжается идентификатором, который определяет назначение передаваемых данных, но не адрес приемника. Любой приемник может реагировать как на один идентификатор, так и на несколько. На один идентификатор могут реагировать несколько приемников.
  • Протокол CAN обладает развитой системой обнаружения и сигнализации ошибок. Для этих целей используется поразрядный контроль, прямое заполнение битового потока, проверка пакета сообщения CRC-полиномом, контроль формы пакета сообщений, подтверждение правильного приема пакета данных. Хемминговый интервал d=6. Общая вероятность необнаруженной ошибки 4.7x10 -11 .
  • Система арбитража протокола CAN исключает потерю информации и времени при "столкновениях" на шине.
  • Интерфейс с применением протокола CAN легко адаптируется к физической среде передачи информации. Это может быть дифференциальный сигнал, оптоволокно, просто открытый коллектор и т.п. Несложно делается гальваническая развязка.
  • Элементная база, поддерживающая CAN, широко выпускается в индустриальном исполнении.

Валюта магазина рубли у.е.

Поиск

CAN шина. Часть 1.

1. Локальная сеть контроллеров (CAN)

Области применения.

Электронные распределители, Автомобили, Морские суда, Гидравлическое оборудование, Текстильная Промышленность, Перерабатывающая промышленность, Медицинское оборудование, Железная дорога, Строительная автоматизация, Авиационная радиоэлектроника, Бытовые приборы, Вооруженные силы, Обработка материалов, Сельское хозяйство, Телекоммуникация, Грузовики, Строительные Машины и Транспортные средства, Индустриальная автоматизация.

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

Локальная сеть контроллеров CAN это стандарт серийной шины, разработанный в 80-х годах Robert Bosch GmbH, для соединения электронных блоков управления. CAN был специально разработан для устойчивой работы в насыщенной помехами окружающей среде с применением разносторонне сбалансированной линии, такой как RS-485. Соединение может быть более устойчивым к помехам при использовании витой пары. Первоначально создавалась для автомобильного назначения, но в настоящее время используется в разнообразных системах управления, в т.ч. индустриальных, работающих в насыщенной помехами окружающей среде.
Скорость обмена данными до 1Mbit/s возможна в сетях протяженностью не более 40м. Снижение скорости обмена позволяет увеличить протяженность сети, например - 250 Kbit/s при 250м.
CAN протокол связи стандартизирован согласно ISO 11898-1 (2003). Этот стандарт главным образом описывает слой обмена данными состоящий из подраздела логического контроля (LLC) и подраздела контроля доступа (MAC), и некоторых аспектов физического слоя ISO/OSI модели. Остальные слои протокола оставлены на усмотрение разработчика сети.

CAN сети и их разновидности

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

Общая характеристика

Интегрированная серийная коммуникационная шина для приложений работающих в режиме реального времени.
. Сеть работоспособна при скорости обмена данными до 1Mbit/s.
. Обладает превосходными возможностями обнаружения и проверки ошибок и неисправностей.
. Изначально CAN шина разработана для применения в автомобилях
. Используется в различных автоматических системах и системах управления.
. Международный стандарт: ISO 11898

Определение CAN

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

Свойства CAN

CAN система на серийной шине с мультифункциональными возможностями, все CAN узлы способны передавать данные и некоторые CAN узлы могут запрашивать шину одновременно. Передатчик передает сообщение всем CAN узлам. Каждый узел, на основании полученного идентификатора, определяет, следует ли ему обрабатывать сообщение или нет. Идентификатор так же определяет приоритет, который имеет сообщение при доступе к шине. Простота определяет стоимость оборудования и затраты на обучение персонала. CAN микросхемы могут быть относительно просто запрограммированы. Вводные курсы, функциональные библиотеки, наборы для начинающих, различные интерфейсы, I/O модули и инструменты в широком разнообразии представлены в открытой продаже по доступным ценам. С 1989 года CAN микросхемы могут быть свободно и просто соединены с микроконтроллерами. В настоящее время в наличии около 50 CAN микросхем для микроконтроллеров более чем 15 производителей.
CAN применяется в большинстве Европейских легковых автомобилях, а так же решение производителей грузовиков и внедорожников в дальнейшем применять CAN, определили развитие более чем на 10 лет. В других областях применения, таких как, бытовая сфера и индустриальный сектор наблюдается рост продаж CAN оборудования, и будет продолжаться в будущем. К весне 1997 года уже насчитывалось более чем 50 миллионов установленных CAN узлов. Одна из выдающихся особенностей CAN протокола высокая надежность обмена данными. CAN контроллер регистрирует ошибки и обрабатывает их статистически для проведения соответствующих измерений, CAN узел, являющийся источником неисправности, в результате будет отстранен от соединения.
Каждое CAN сообщение может содержать от 0 до 8 бит пользовательской информации. Конечно, возможна передача более продолжительных данных с применением фрагментации. Максимальная специфицированная скорость обмена 1 Mbit/s. Это возможно при протяженности сети не более 40м. Для более длинной коммуникации скорость обмена должна быть снижена. Для дистанции до 500 м скорость 125Kbit/s, и для передачи более чем на 1 км допускается скорость 50 Kbit/s.

CAN приложения

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

Лицензия CAN

CAN протокол разработан Robert Bosch GmbH и защищен патентами.

Основные стандарты CAN

Далее перечислены некоторые международные CAN стандарты
. CAN стандарты:
o ISO 11898-1 - CAN протокол
o ISO 11898-2 - CAN высокоскоростная физическая структура
o ISO 11898-3 - CAN низкоскоростная физическая структура совместимая с ошибками
o ISO 11898-4 - CAN запуск
o ISO 11898-5 - Высокоскоростное низковольтное устройство (в разработке).
o ISO 11519-2 - заменен на 11898-3.
. ISO 14230 - "Keyword Protocol 2000" - диагностический протокол использующий серийную линию, не CAN
. ISO 15765 - Диагностический протокол по CAN bus - Keyword 2000 на CAN bus.
. J1939 - Основной CAN протокол для грузовиков и автобусов определенный SAE
. ISO 11783 - J1939 и дополнение для сельхоз машин
. ISO 11992 - определяет интерфейс тягачей и прицепов
. NMEA 2000 - Протокол основанный на J1939 для судов, определен NMEA.

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

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

- Доступность для потребителя.
CAN протокол успешно применяется на протяжении более 15 лет, с 1986 года. Существует богатый выбор CAN продуктов и устройств в открытой продаже.

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

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

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

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

2. CAN шина

Введение

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

CAN протокол

CAN определен стандартом ISO 11898-1 и включает следующие основные сведения.
. На физическом уровне, сигнал передается, используя витую пару.
. Для контроля к доступу шины применяются правила арбитража.
. Блоки данных небольшие по размеру (в большинстве случаев 8 байт) и защищены чексуммой.
. Блоки данных не имеют адресации, вместо того каждый блок содержит числовое значение, которое определяет приоритет передачи по шине, так же может нести идентификатор содержания блока данных.
. сложная схема обработки ошибок, которая приводит к повторной передаче данных, которые должным образом не получены.
. Эффективные действия по изоляции неисправностей и отключение источника неисправности от шины.

Протоколы высшего порядка (HLP)

CAN протокол определяет безопасную передачу небольших пакетов данных из пункта А в пункт Б используя общую линию коммуникации. Протокол не содержит средств контроля потока, адресацию, не предоставляет передачу сообщений более чем 8 бит, не осуществляет установку соединения и т.д. Перечисленные свойства определяются HLP(Higher layer protocol) или Протокол Высшего Порядка. Условия HLP получены и состоят из семи порядков OSI модели.

Назначение HLP
. Стандартизация процедур запуска и установка скорости передачи
. Распределение адресации устройств и разновидности сообщений.
. Определение порядка сообщений
. обеспечивает механизм определения неисправностей системного уровня

CAN продукты

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

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

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

Действующие протоколы высшего порядка (HLP)

CAN протокол определяет безопасную передачу небольших пакетов данных из пункта А в пункт Б используя общую линию коммуникации. Протокол не содержит средств контроля потока, адресацию, не предоставляет передачу сообщений более чем 8 бит, не осуществляет установку соединения и т.д. Перечисленные свойства определяются HLP, higher layer protocol (Протоколами Высшего Порядка). Условия HLP получены и состоят из семи порядков

OSI модели (Open Systems Interconnect Model)
CanKingdom
CANopen/CAL
DeviceNet
J1939
OSEK
SDS

HLP обычно определяет
. Параметры запуска
. Распределение идентификатора сообщения среди различных устройств в системе
. Интерпретация содержимого блоков данных
. Статус взаимодействия в системе

Характеристика SDS, DeviceNet and CAN Kingdom.

И различия между CAN Kingdom and CANopen. В настоящее время насчитывается более 50 HLP. Применение HLP обязательно, в противном случае придется изобрести свой, собственный HLP.

CAnKingdom

CanKingdom поддерживается организацией CanKingdom International полная спецификация доступна на сайте организации.
CanKingdom обычно упоминается как CAN (Controller Area Network) протокол высшего порядка. В реальности наиболее упорядоченный протокол. Модули в системе соединены сетью, в которой один из модулей является главным (King). Например: для организации plug & play системы, главный модуль определяет какое устройство и при каких обстоятельствах может быть добавлено, разрешено добавление только специфицированных устройств. CanKingdom обеспечивает простую уникальную идентификацию устройств в системе, для этого используется стандарт идентификации EAN/UPC, индивидуальный идентификатор устройства определяется серийным номером устройства.
CanKingdom предоставляет разработчику все потенциальные возможности CAN.
Дизайнер не ограничен мультимастер протоколом CSMA/AMP и может создавать виртуальные системы управления шинами всевозможных разновидностей и топологии. Предоставляет возможность создания общих модулей без учета обстоятельств таких как, зависимость от HLP и свойств системы. Дизайнер может определить использование только специфических модулей, совмещая тем самым ценности открытой системы с преимуществами системы с ограниченным и безопасным доступом.

Потому как идентификатор в CAN сообщениях не только идентифицирует сообщение, но так же управляет доступом к шине, ключевое значение имеет нумерация сообщений. Другой важный фактор - это идентичность структуры данных в поле данных, как в передающем, так и принимающем модулях. Введением небольших, простых правил, указанные факторы полностью контролируемы и коммуникации оптимизированы для любой системы. Это выполняется во время короткой фазы установки при инициализации системы. Так же возможно включение устройств, не следующих CanKingdom правилам, в CanKingdom систему.
CanKingdom сопровождается соответствующей документацией по модулям и системам.

CAL and CANopen

CAL сокращенно от "CAN Application Layer" Порядок или слой CAN приложений, протокол поддерживается CiA. CAL разделен на несколько составных частей:
. CMS (CAN-based Message Specification) определяет протоколы передачи данных между CAN устройствами
. NMT (Network Management Service) определяет протоколы запуска и выключения, определения неисправностей, и т.д.
. DBT (Distributor Service) определяет протокол распределения идентификаторов различных устройств в системе
- CAL протокол отличный от OSI модели (Open Systems Interconnect (OSI) Model)
- CANopen является подразделом CAL, и скомпонован как набор профилей, которые не завершены окончательно.
- CAL/CANopen один из HLP действующих протоколов, поддерживаемых CiA.
- CAL и CANopen спецификации в полном объеме доступны и поддеживаются CiA

DeviceNet

Протокол развивается “Rockwell Automation nowadays”, определен организацией ODVA (Open DeviceNet Vendor Association). DeviceNet один из четырех протоколов, которые поддерживает CiA.

SAE J1939

J 1939 высокоскоростная сетевая коммуникация класса С разработанная для поддержки функций управления в режиме реальногго времени между контроллерами, которые физически расположены в различных местах автомобиля.
Jl708/Jl587 предыдущий, широко распространенный тип сети класса B с возможность обмена простой информацией, включая диагностические данные, между контроллерами. J1939 обладает всеми свойствами J1708/J1587.
J1939 использует CAN протокол с позволяет любому устройству передавать сообщение по сети в момент когда шина не загружена. Каждое сообщение включат в себя идентификатор, который определяет приоритет сообщения, информацию об отправителе данных, об информации, заключенной в сообщении. Конфликты избегаются благодаря механизму арбитража, который активизируется с передачей идентификатора (используется безопасная схема арбитража). Это позволяет сообщениям с наивысшим приоритетом передаваться с наименьшими задержками, по причине равного доступа к шине любым из устройств сети.
J1939 организован из нескольких частей основанных на (Open Systems Interconnect (OSI) Model). OSI модель определяет семь коммуникационных порядков (слоев), каждый представляет различные функции. В то время как есть документ J1939, ассигнованный каждому слою, не все они явно определены в пределах J1939. Другие слои выполняют вторичные функции, описанные в другом месте. Физический Слой описывает электрический интерфейс коммуникаций (витая экранированная пара проводов, который может также быть упомянут как шина). Слой Канала связи описывает протокол или управляет структурой сообщения, получая доступ к шине, и обнаруживая ошибки передачи. Слой приложения определяет специфические данные, содержащиеся в каждом сообщении, посылаемом по сети.
Полный комплект спецификации можно приобрести в SAE, ниже приведен перечень документов
J1939 дополняется следующими документами:
J1939 Практические рекомендации по Контролю серийной передачи и коммуникационная сеть транспортного средства
J1939/11 Физический порядок (слой) - 250k bits/s, экранированная витая пара
J1939/13 Диагностические разъемы
J1939/21 Данные слоя связи
J1939/31 Слой сети
J1939/71 Слой приложений
J1939/73 Диагностика
J1939/81 Управление сетью

OSEK/VDX

OSEK/VDX является совместным проектом в автомобильной индустрии. Создан как промышленный стандарт открытой оконечной архитектуры для распределенных контроллеров транспортных средств. Операционная система в режиме реального времени, интерфейсы программных средств и задачи управления сетью специфицированы совместно. OSEK" (Open systems and the corresponding interfaces for automotive electronics.) Открытые системы и информационные интерфейсы для автомобильной электроники. VDX “Whicule Distributed eXecutive" Распределенные исполнители транспортного средства.
Компании совместно участвующие в разработке: Opel, BMW, DaimlerChrysler, IIIT - University of Karlsruhe, PSA, Renault, Bosch, Siemens, Volkswagen.
Официальный сайт: www.osek-vdx.org

Smart Distributed System (SDS)

SDS система, на основе шины для интеллектуальных датчиков и исполнительных устройств, с упрощенным процессом установки, предоставляет широкие возможности управления вводом - выводом. Посредством одного четырехпроводного кабеля SDS система может быть оборудована до 126 приборами с индивидуальным адресом. Дополнительная информация и спецификация по SDS доступна на сайте разработчика Honeywell. SDS один из действующих четырех протоколов поддерживаемых CiA.

Сравнительная характеристика основных HLP протоколов
Общие сведения

DeviceNet, SDS и CAN Kingdom основаны на ISO 11898 CAN коммуникационном протоколе и функционируют согласно требований CAN спецификации. Каждый CAN модуль, следующий определенному протоколу может быть подключен к CAN шине следующей тому же протоколу. В любом случае при подключении модулей, которые действуют по различными протоколам, в большинстве случаев проблемы возникают по причине конфликта интерпретации сообщений на уровне приложений. CAN Kingdom отличается от SDS и DeviceNet основным принципом: CAN Kingdom организуется главным узлом коммуникации (“King”) при запуске, в отличии от SDS и DeviceNet. Такая организация позволяет упростить разработку комплекса систем реального времени и сокращает необходимое количество модулей координирующих спецификации, часто обозначаемые как профили.
SDS эффективен при подключении I/O устройств, различных выключателей и датчиков к PLC , фактически представляет собой соединение между основным модулем и удаленными I/O устройствами.
DeviceNet открытая система, в которой все модули имеют равные права по пользованию шиной, и порядок пользования шиной определяется небольшим набором инструкций. Разработчик модулей системы может передать полномочия по управлению коммуникацией другим модулям, например основному модулю в предопределенном режиме Главный/подчиненный, но DeviceNet не имеет возможности передать полномочия другим модулям. Характеристики SDS с использованием I/O устройств и DeviceNet в режиме Главный/подчиненный сходны.
Can Kingdom протокол ориентированный на системы продуцирования, соединения и контроля и не поддерживает профили для цифровых и аналоговых устройств. Основная особенность протокола заключается в том что модуль, подключенный к системе только ожидает инструкции от главного устройства. Все CAN приоритеты и идентификаторы принадлежат и предоставляются главным устройством. Во время запуска каждый модуль конфигурируется основным устройством, определяются приоритеты и идентификаторы объектов продуцирующих и потребляющих. Основное устройство является главным, но только в период конфигурирования системы. Главное устройство не может быть внедрено в период коммуникационной сессии между работающими приложениями различных модулей. Основное устройство может быть удалено после конфигурирования и проверки комплектности, при том каждый модуль запоминает полученные инструкции в памяти.


Входящий в МК STM32 CAN-контроллер является полнофункциональным CAN-узлом, отвечающий требованиям к активным и пассивным устройствам CAB 2.0A и 2.0B и поддерживающий передачу данных на скорости не более 1 Мбит/сек. CAN-контроллер оснащен также дополнительными возможностями для организации детерминистической передачи данных по специальному CAN-протоколу передачи в реальном времени TTCAN. После активизации функции TTCAN будет поддерживаться автоматическая повторная передача сообщений и автоматическая вставка в CAN-пакет двух дополнительных байт с зафиксированным моментом времени передачи сообщения. Все эти возможности необходимы в системах управления через CAN-интерфейс в масштабе реального времени.

Полное наименование CAN-контроллера - модуль bxCAN, где bx указывает на поддержку модулем дополнительных возможностей. Обычный модуль CAN использует один буфер приема и передачи, а у расширенного модуля CAN используется несколько буферов приема и передачи. Модуль bxCAN является гибридом двух архитектур модулей CAN. У него имеется три почтовых ящика для передаваемых сообщений и два почтовых ящика для принимаемых сообщений. Каждый из принимающих почтовых ящиков имеет буфер FIFO для помещения в него трех сообщений. Данная архитектура является компромиссной с точки зрения производительности передачи данных и занимаемого места в кристалле ИС.


Модуль CAN оснащен тремя почтовыми ящиками для передачи сообщений и имеет возможность автоматической вставки в сообщение текущего времени по протоколу TTCAN

Следующая важная функция CAN-контроллера - фильтрация получаемых сообщений. Поскольку CAN является широковещательной шиной, каждое переданное сообщение принимается всеми узлами шины. В CAN-шине любой разумной степени сложности передается достаточно большое число сообщений. Задачей каждого подключенного к CAN-узлу ЦПУ является реагирование на CAN-сообщения. Таким образом, чтобы избавить CAN-контроллер от проблемы приема в буфер нежелательных сообщений, необходима их фильтрация. У CAN-контроллера микроконтроллеров STM32 имеется 14 банков фильтров, которые можно использовать для блокировки всех CAN-сообщений, кроме избранных сообщений или групп сообщений.


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

Каждый банк фильтров состоит из двух 32-битных регистров и может работать в одном из четырех режимов. При использовании базового метода в каждый регистр банка фильтров записывается идентификатор сообщения. После поступления сообщения проверяется его идентификатор и, исходя из этого, принимается решение о приеме или отклонении сообщения. Данный режим поддерживает две конфигурации. В первой конфигурации регистры банков фильтров являются 3-битными и могут использоваться для фильтрации 11- и 29-битных полей идентификаторов сообщения, а также бит RTR и IDE в 16-битном режиме.

Во второй конфигурации, в первый 32-битный регистр записывается идентификатор сообщения, во второй - маска сообщения. Регистр маски маркирует биты регистра идентификатора, как "важный" или "неважный". Благодаря этому, появляется возможность принимать группу сообщений с помощью одного банка фильтров. Если принимающие фильтры пропускают сообщение, то вместе с ним принимающий буфер FIFO будет записан указатель на определивший совпадение фильтр. Это позволит прикладной программе ускорить идентификацию сообщения без необходимости считывания и дешифрации идентификатора пакета сообщения.

Все CAN-контроллеры поддерживают два режима работы: нормальный режим для приема и передачи пакетов сообщений и режим инициализации для задания параметров связи. Как уже говорилось, МК STM32 могут работать в экономичном режиме SLEEP. В этом режиме синхронизация модуля bxCAN отключена, однако доступ к регистрам почтовых ящиков остается возможным. Модуль bxCAN имеет возможность активизации работы при обнаружении активности на шине CAN. Его работу можно также реактивировать прикладной программой. Работая в нормальном режиме, поддерживаются два дополнительных подрежима. Первый подрежим - режим SILENT. В нём CAN-контроллер может принимать сообщения, но не может передавать и не генерирует бит ошибок в посылке и подтверждения сообщения. Данный режим рассчитан на CAN-шины с пассивным мониторингом. Второй подрежим - режим LOOPBACK. В этом режиме, передаваемые сообщения сразу же принимаются в приемный буфер. Он необходим для реализации диагностических функций и также полезен на фазе отладки кода программы. Оба рассмотренных режима можно комбинировать. Они идеальны для выполнения функций самотестирования при подключении к работающей шине.

Интерфейс CAN был разработан в конце 80-х годов фирмой Bosch для связи электронных устройств, применяемых в автомобилях.

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

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

На рис. приведена структура CAN-сети. Обычно в качестве контроллера используется микроконтроллер, имеющий CAN-модуль, который имеет выход передатчика TxD последовательного кода и вход приемника RxD кода. Трансивер преобразует логические сигналы, то есть логические 0 и 1, в дифференциальное напряжение, поступающее на два провода шины, обозначенные CAN_H и CAN_L.

Согласно стандарту линия должна иметь волновое сопротивление в пределах 108-132 Ом. Для уменьшения отражений сигналов на каждом конце шины должны быть подключены согласующие резисторы RС сопротивлением 120 Ом. Для повышения надежности передачи и повышения помехоустойчивости иногда используют третий провод – общий, обозначаемый как GND. Питающее напряжение UCC (или UDD) по стандарту равно +5 В относительно GND.

Для абстрагирования от физической среды передачи спецификация CAN определяет два логических состояния (то есть логические 0 и 1) как рецессивное (recessive) и доминантное (dominant). При этом предполагается, что при передаче одним узлом сети рецессивного бита, а другим доминантного, принят будет доминантный бит.

В рецессивном состоянии (то есть логическая 1 на входе TxD трансивера) дифференциальное напряжение UDIFF =UCANH – UCANL меньше минимального порога (0,5 В на входе приемника или 0,05 В на выходе передатчика).

В доминантном состоянии (то есть логический 0 на входе TxD трансивера) дифференциальное напряжение UDIFF больше минимального порога (0,9 В на входе приемника или 1,5 В на выходе передатчика).

Сообщения в CAN. Интерфейс использует короткие сообщения: максимальный размер – 94 бита. Содержимое данных в CAN-сообщении как бы неявно определяет адрес источника этого сообщения и адреса приемников, кому эта информация необходима.

Например. один CAN-узел выдает на шину сообщение «Температура масла двигателя 80». Все другие узлы принимают это сообщение, но используют эту информацию только те узлы, кому она необходима.

Сообщения, передаваемые по CAN-шине, именуются кадрами или фреймами. В зависимости от инициатора передачи и ее цели существуют 4 типа кадров:

1) кадр данных, используется для передачи данных;

2) кадр запроса данных, используется для дистанционного запроса данных от удаленного узла;

3) кадр ошибки, когда обнаруживаются ошибки на шине;

4) кадр перегрузки, передается для задержки передачи пакетов кадр данных и кадр запроса, например, при неготовности приемника.

Вид стандартного формата сообщения кадр данных приведен на рис. Он состоит из семи различных битовых полей:

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

    Поле арбитража содержит 11-битный идентификатор ID и бит RTR – (запрос передачи данных). Для кадра данных этот бит должен иметь доминантный уровень.

    Управляющее поле состоит из шести битов. Два самых старших бита в настоящее время не используются. Четырехбитный код длины данных указывает число байтов в поле данных.

    Поле данных содержит от нуля до восьми байтов данных.

    Поле контрольной суммы включает в себя контрольную сумму сообщения (15 бит) и бит-разделитель рецессивного уровня.

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

    Поле конца кадра состоит из семи битов рецессивного уровня.

После конца кадра (EOF) следует поле промежутка, состоящее из трех битов рецессивного уровня. После этого промежутка шина считается свободной.