CAN-протоколы низкого уровня | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Авторы: ,

Рубрика: Технические науки

Опубликовано в Молодой учёный №28 (266) июль 2019 г.

Дата публикации: 13.07.2019

Статья просмотрена: 127 раз

Библиографическое описание:

Жуковский, П. А. CAN-протоколы низкого уровня / П. А. Жуковский, М. К. Авсеенок. — Текст : непосредственный // Молодой ученый. — 2019. — № 28 (266). — С. 31-36. — URL: https://moluch.ru/archive/266/61592/ (дата обращения: 17.12.2024).



Первые прототипы шины CAN (Controller Area Network) разрабатывались немецкой фирмой BOSCH совместно с Intel, начиная с 80-х годов. Основной целью проекта было создание сети высокой скорости с незамысловатым присоединением узлов к автомобильной шине. Данная система способна организовать ступенчатый протокол связи, а также возможность решать прикладные заданий в данный момент времени с помощью управляющих узлов. Первые версии CAN систем задумывались как устройство для управления подвеской и трансмиссией автомобиля в реальный момент времени: ранних ESP (Electronic Stability Program) систем антизаноса и т. д. Презентация состоялась в Детройте, штат Мичиган в 1986 на конференции SAE (Society of Automotive Engineers) — сообщества инженеров автомобилестроения [1, с. 16].

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

CAN сеть основана на протоколе CSMA/CD+AMP (Carrier Sense Multiple Access With Collision Detection and Arbitration on Message Priority) с децентрализованным доступом. Протокол при передаче данных обеспечивает синхронизацию по битам, выполняет передачу этих данных, проводит идентификацию сообщения, битстаффинг, регулирует правильный прием всеми блоками шины. По характеристикам CAN интерфейс удовлетворяет требованиям выполнения задач в реальном времени, а также реализует высокую степень выявления ошибок с последующим исправлением.

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

– Детерминированность;

– Распределенная сеть связи с безграничным числом одинаково доступных узлов;

– Возможность изменения числа сетевых узлов, не требующего изменения настроек конфигурации нетронутых узлов;

– Широковещательный приём сигналов с временной синхронизацией;

– Эффективные алгоритмы выявления ошибок и повторная отправка искаженных сообщений;

– Приоритетная система для каждого из передаваемых сигналов;

– Автоматическая диагностика сбоев системы с возможностью выключения поврежденных модулей.

Стандарт 11898 охватывает первый и второй уровни OSI модели (Рис. 1) (канальный и физический). Эти уровни именуются нижними. В свою очередь высокие OSI представлены HLP-протоколами (Higher Level Protocol).

http://piclist.ru/AN-MC-228-RUS/i/001.png

Рис. 1. Ступени модели ISO/OSI

Первая ступень модели OSI (физический) отвечает за передачу битов информации, при этом игнорируя содержание передаваемого сообщения. Линии передачи — одно из основных понятий физического уровня. Обычно в качестве таких линий используют витую пару (дифференциальная пара), хотя разработчик может выбирать между средой передачи приёмниками (к примеру радиоканал, оптоволоконный кабель), но только если выполняется соответствие требованиям PS (Physical Signaling) подуровня [2, с. 15].

Сейчас определено несколько стандартов для физуровней. В международной организации стандартизации зафиксированы ISO 11898 и ISO 11519, по списку ассоциации автоинженеров (SAE) SAE J2411. Будем рассматривать на примере 11898-го, так как именно он в сравнении с иными считается самым распространенным в мире.

ISO 11898 — документ международной организации, описывающий местную контроллерную CAN-сеть, применяемую в ТС, использующий в виде среды дифференциальную пару с импедансом 120 Ом.

http://piclist.ru/AN-MC-228-RUS/i/004.png

Рис. 2. Номинальные уровни шины по ISO-11898

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

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

Это сделано чтобы минимизировать влияние среды передачи на сигнал в CAN-системе.

По сути высокий сигнал на выходе системы определяется как доминантный бит, низкий сигнал принимают за рецессивный бит. Отсутствие сигнала именуют рецессивом, а если сигнал имеется, то это доминант. От сети, созданной по данному стандарту требуется фактически соблюдение одного условия: бит-доминант должен подавлять бит-рецессив, причем только в одностороннем порядке. Логическое значение для бита доминанта это «1», из чего следует, что для рецессивного это «0».

Любая сеть CAN состоит из шины и узлов (контроллеры и трансиверы). Трансивер (он же приемопередатчик) служит соединителем между контроллером и шиной и обеспечивает обмен данными между сетевыми узлами (Рисунок 3).

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

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

Предназначение таймера в этой системы состоит в защите шины от сбоя CAN контроллеров путём ограничения состояния доминанта по времени.

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

Рис. 3 Шина по стандарту ISO-11898

Драйвер шины управляет парой транзисторов, которые формируют различные состояния на линиях CAN-L и CAN-H. В момент доминантного состояния эти транзисторы открываются, устанавливая на L, H соответственно высокий и низкий уровень.

Схема термозащиты оберегает микросхему от перегрева и последующего выхода из строя, деактивируя передающие устройства при повышении температуры 160°C и выше.

Контроллер взаимодействует с шиной, отвечая за инкапсуляцию/декапсуляцию информации, битовую синхронизацию и ресинхронизацию, битстаффинг, работу с ошибками, подсчет CRC, локализацию отказов и другие.

Контроллер содержит в себе:

– память получаемых и отправляемых сообщений;

– формирователь прерывающих сигналов контроллера;

– маски и фильтры для определенных сообщений, приоритетов;

– АЦП, ЦАП и сигналы ШИМ для связи с датчиками и индикаторами.

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

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

Длина кабеля имеет ограничение, связанное с устройством арбитража бит и конечности скорости света.

Таблица 1

Зависимость скорости передачи от длины кабеля

Скорость передачи (Кбит/сек)

Максимальная длина сети (метры)

1000

40

500

100

250

200

125

500

10

6000

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

В теории сеть по CAN формату может содержать неограниченное число узлов, на практике же максимум подключаемых модулей равен 127.

В CAN спецификации канальный уровень определен двумя подуровнями:

управления логической связью (LLC);

управления контролем доступа ксреде (MAC).

Первый подуровень (LCC) описывает верхние компоненты уровня ISO/OSI. Данный подуровень описывает те части протокола, которые отвечают за информирование о наличии перегрузки и управление ей, выборку сообщений, управление восстановлением.

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

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

Стандарт выделяет два вида:

– основной формат кадра (формат использует одиннадцать идентификаторов для битов);

– расширенный формат (использующий двадцать девять идентификаторов).

В стандарте для CAN сети имеется определение четырёх различных типов: кадр данных (data frame), кадр удаленного запроса (remote frame), кадр перегрузки (overload frame), кадр ошибки (error frame) [3].

Рис. 4 Структура датафрейма для CAN ver. 2.0

Чаще всего используют первый тип. Датафрейм содержит следующие основные части (Рисунок 4):

Начало кадра (start of frame) — первый бит кадра данных;

Поле арбитража (arbitration field) — используется в CAN для разрешения коллизий доступа к шине;

Флаг расширенного идентификатора (Identifier Extension Flag) — флаг-указатель способа интерпретации последующих бит.

Управляющее поле (control field) — содержит данные о кадре;

Поле данных (data field) — содержит до восьми байт передаваемой информации.

Поле контрольной суммы (Cyclic Redundancy Check) — средство работы с выявленными ошибками.

Поле подтверждения ACK (acknowledge field) — содержит биты подтверждения и его разделителя.

Конец кадра (End Of Frame) — конец кадра, содержит семь последовательных бит-рецессивов.

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

Третий тип — кадры перегрузки. Данный тип сигнализирует о перегрузке системы. Используется, когда узел перегружен и неспособен обработать поступивший на него сигнал. Узел не способен справиться за раз и запрашивает через Overload-кадр повторную отправку. Сейчас кадры перегрузки не очень востребованы для использования.

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

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

Рис. 5. Процесс арбитража по битам в CAN-шине

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

Если часть контроллеров одновременно начинают передавать кадры в сеть, то все эти контроллеры начинают сравнение бита, передаваемого контроллером на шину с битом конкурирующего за позицию контроллера.

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

Литература:

  1. Карпенко Е. Возможности CAN-протокола // «Современные технологии автоматизации». — 1998. — № 4. — С. 16–20.
  2. Третьяков С. А. CONTROLLER AREA NETWORK (CAN) — локальная сеть контроллеров // «Электроника». — 1998. — № 9. — С. 3–21.
  3. Сеть CAN: популярные прикладные протоколы // Рынок микроэлектроники. URL: http://catalog.gaw.ru/index.php?page=document&id=1428 (дата обращения: 11.04.2019).
Основные термины (генерируются автоматически): CAN, ISO, OSI, SAE, MAC, бит, длина кабеля, кадр перегрузки, сеть, кадр.


Задать вопрос