logo
АИУС / АИУС / Лекция 11

Поле данных - содержит до 8-ми байт данных.

CRC – 15 бит контрольной суммы, обеспечивающие высокий уровень достоверности передачи сообщений.

Поле АСК - поле подтверждения правильного приема сообщения.

EOF – поле конца фрейма. В нем передаются 7 рецессивных бит.

Int и BI - соответственно обязательный интервал между фреймами и уровень свободной шины.

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

2) Структура и назначение служебных фреймов: Удаленный фрейм предназначен для выполнения запроса удаленной передачи от одного узла на передачу данных другим узлам сети. Его структурное отличие от фрейма данных состоит в отсутствии поля данных. Фрейм ошибок и фрейм перегрузки содержат по два поля: в первом располагаются флажки ошибок и служебная информация, а во втором передаются восемь рецессивных битов разграничения.

3) Организация достоверной передачи сообщений в сети CAN

Контроль достоверности приема сообщения осуществляется в поле подтверждения АСК (acknowlegment – подтверждение), которое содержит два участка: ACK-Slot и ACK –Delimiter (рис.11.5.):

СRC-поле АСК- поле Область конца фрейма

Сегмент подтверждения ACK- Slot Сегмент разграничителя ACK- Delimiter

Рис. 11.5. Структура поля АСК

Принцип подтверждения состоит в том, что передающий узел посы-лает в обоих сегментах АСК рецессивные биты и одновременно отслежи-вает состояние сигнала на шине. Приемник анализирует СКС принимае-мого фрейма: если будет установлено, что сообщение недостоверно, то состояние приемник не изменяет уровень сигнала в АСК-Slot, но если будет установлен достоверный прием сообщения, то приемник в секторе АСК-Slot выставляет доминирующий бит. При наложении рецессивного бита передатчика и доминирующего бита приемника в линии установится доминирующий бит, подтверждающий передающему узлу, что сообщение принято и повтор не требуется. Таким образом, если низкий уровень сигнала принять за логическую «1», а высокий – за логический «0», то в поле АСК будут передаваться сигналы: 10 – если подтверждение получено или 11 если подтверждение не получено.

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

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

- Ошибка подтверждения возникает, когда передатчик определяет, что сообщение не было подтверждено.

- Ошибка заполнения появляется, когда узел обнаруживает шесть (6) последовательных битов одного и того же значения. В процессе нормаль-ной работы, когда передатчик обнаруживает, что послано пять (5) последо-вательных битов одного и того же значения, то он заполняет следующий бит противоположным значением (это называется заполнением бита). Все приемники удаляют заполненные биты до вычисления CRC (контрольного кода). Таким образом, когда узел обнаруживает шесть (6) последова-тельных битов того же значения, возникает ошибка заполнения.

- CRC ошибка выявляется, когда вычисленное приемником значение CRC принятого сообщения не соответствует значению CRC, указанному в сообщении.

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

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

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

Любое CAN-устройство может начать передачу фрейма только тог-да, когда линия связи не занята передачей сигнала. Если CAN-устройство начало передачу сообщения, то оно будет владеть шиной до завершения этой передачи. Если два или больше CAN-устройств одновременно попы-таются начать передачу сообщения, то возникает конфликт, решение кото-рого осуществляется арбитражным путем с использованием 11-битного идентификатора стандартного фрейма или 29-битного идентификатора расширенного фрейма: право на передачу фрейма получит тот узел, кото-рый передает сообщение с более высоким приоритетом.

Механизм арбитража состоит в следующем. В течение передачи по-ля арбитража биты идентификатора последовательно передаются в линию связи, начиная от старшего значещего к младшему. В процессе выполне-ния передачи CAN-устройство одновременно и формирует в линию связи сигнал требуемого уровня (CAN_L/CAN_H), и контролирует состояние си-гнала в линии связи, сравнивая: соответствует текущее значение сигнала в линии связи сформированному значению?

Если CAN-устройство сформировало в линию связи сигнал высо-кого уровня CAN_H и в линии связи установился сигнал CAN_H, то уст-ройство продолжает передачу фрейма. Если CAN-устройство сформиро-вало в линию связи сигнал высокого уровня CAN_H, а в линии связи бу-дет установлен сигнал низкого уровня CAN_L, устройство должно пре-кратить передачу в линию связи своего сигнала. При одновременном фор-мировании в линию связи сигналов с высоким и с низким уровнями сигнал низкого уровня «давит» сигнал высокого уровня. По этой причине арбитраж выигрывает то CAN-устройство, у которого идентифика-тор имеет самое низкое значение!

Пример поразрядного арбитража:

Поле арбитража, 11 бит

CAN-устройство 1

1

0

1

1

0

1

1

0

1

0

0

CAN-устройство 2

1

0

1

1

0

1

1

1

х

х

х

На этом бите устройство 2 проигрывает арбитраж и останавливает передачу

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

5) В каждом приемном узле устанавливается идентификатор CAN-устройства путем настройки входных фильтров (маскирование). Сущест-вуют два типа входных фильтров: фиксированные фильтры или маскиру-емые (Mask and Match), которые применяют маску к полю идентифи-катора, прежде чем он сравнивается с приемным регистром кода. Пример поразрядного маскирования:

Фильтрация типа Mask-and- Match

10

9

8

7

6

5

4

3

2

1

0

Разряды идентификатора

1

1

1

1

0

0

0

0

1

1

1

Принятое значение идентификатора

mm

mm

mm

mm

mm

X

X

X

X

X

X

Регистр маски

1

1

1

1

0

0

0

0

0

0

0

Регистр кода после фильтрации

mm- код маски, Х произвольное значение кода, которое значения не имеет

В приведенном примере регистр маски сконфигурирован так, что по-лученные биты 10….6 идентификатора должны соответствовать битам 10…6 в приемном регистре кода. В этом примере биты 10…6 идентифи-катора должны быть установлены в 11110, а остальные не имеют значения. Если биты 10…6 в регистре маски установлены в 11110, то все сообще-ния, поступающие из линии связи, принимаются независимо от значений битов 5…0. Значения же битов 5… 0 могут в каждом CAN-устройстве об-рабатываться по-разному: игнорироваться или определяться как команда.

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

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

В процессе применения CAN-протокола разработано несколько вари-антов решения для прикладного (седьмого) уровня, поддерживаемых Асс-оциацией CiA (CAN in Automation): CAN Kingdom, DeviceNet, CAN-open и SDS (Smart Distributed System). Рассмотрим особенности двух подходов.

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

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

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

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

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

Максимальное количество устройств в сети CAN Kingdom- до 255. Допустимая скорость передачи сигнала составляют до 1Мбит/с. Но пер- воначальная инициализация должна выполняться на скорости 125 кбит/с. Обеспечивается защита от некорректной скорости передачи.

2) DeviceNet имеет дополнения стандарта, начиная с физического уро-вня. Физической средой передачи является 4-х жильный кабель, в котором по двум жилам стандартно передается информационный сигнал: CAN_H, CAN_L, а по двум другим – Vcc, GND - напряжение питания (24В). Определены два типа кабеля: толстый,12.2мм, обеспечивающий передачу тока нагрузки до 8А, и тонкий 6,9 мм, для токов нагрузки до 3А.

DeviceNet определены только три скорости передачи сигнала –125, 250 и 500 кбит/с. Длина линии связи в зависимости от скорости и типа ка-беля может составлять до 100 или до 500 м. Топология линии связи – маги-стрального типа с ответвлениями.

При передаче данных в сети DeviceNet эффективно используется при-нцип адресации CAN –протокола с ориентацией на потребителя и узлы выбирают «свои» передаваемые в сети данные по их идентификаторам.

Всего определены два типа сообщений:

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

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

При необходимости передачи данных длиной более 8 байт приме-няется механизм фрагментации: одно длинное сообщение разбивается на фрагменты и передается фреймами.

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

В DeviceNet поддерживается только стандартный формат фрейма. Максимальное количество CAN-узлов в DeviceNet - до 64 ( 6-разрядный идентификатор). Однако общее количество адресуемых устройств может достигать 2040 ( по 32 на узел).

.