Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Микропроцессорные средства автоматизации энергетических систем. Сети автоматизации

.pdf
Скачиваний:
5
Добавлен:
12.11.2023
Размер:
20.13 Mб
Скачать

Multimaster. Шина мультимастерная, т.е. сразу несколько устройств могут управлять ею. Когда шина свободна, любой узел может начать передачу сообщения. Доступ к шине получает узел, передающий кадр с наивысшим приоритетом.

Арбитраж. Когда шина свободна, любой узел может начать передачу сообщения. Если два узла или больше начинают передавать сообщения в одно и то же время, конфликт при доступе к шине будет решен поразрядным арбитражем с использованием идентификатора и RTR-бита. Механизм арбитража гарантирует, что ни время, ни информация не будут потеряны. Если кадр данных и кадр удаленного запроса данных начинают передаваться в одно время, то кадр данных имеет более высокий приоритет, чем кадр удаленного запроса данных. В течение арбитража каждый передатчик сравнивает уровень переданного бита с уровнем, считываемым с шины. Если эти уровни одинаковы, узел может продолжать посылать данные дальше. Если был послан уровень логической единицы (recessive), а с шины считан уровень логического нуля (dominant), то узел теряет право дальнейшей передачиданныхидолженпрекратитьпосылкуданныхнашину.

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

Обнаружение ошибок. Для обнаружения ошибок приняты следующие меры:

текущий контроль (передатчики сравнивают уровни битов, которые переданы, с уровнями на шине);

побитовое заполнение;

проверка кадра сообщения.

Эффективность обнаружения ошибок. Механизмы обна-

ружения ошибок имеют следующие возможности:

обнаружение всех глобальных ошибок;

обнаружение всех локальных ошибок передатчиков;

обнаружение до пяти случайно распределенных ошибок

всообщении;

341

обнаружениепоследовательнойгруппыошибокдлинойдо15;

обнаружение любого числа нечетных ошибок в сообщении. Общая остаточная вероятность ошибки для необнаруженных,

разрушенных сообщений меньше чем 4,7·10–11.

Сигнализация об ошибке и время восстановления. Разрушен-

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

Типизация ошибок. Узлы CAN способны отличить временные ошибки от постоянных отказов. Дефектные узлы будут отключены.

Соединения. Линия связи по протоколу CAN – это шина, к которой может быть подключен ряд узлов. Количество узлов не имеет никакого теоретического предела. Фактически количество узлов будет ограничено временем задержек и/или электрической нагрузкой на линии шины. Способ, с помощью которого выполнена шина, не установлен в данной спецификации. Например, это могут быть одиночный провод (+ «земля»), два дифференциальных провода, оптическое стекловолокно.

Теоретически число подсоединяемых к шине устройств не ограничено, практически – до 64.

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

Далее считается, что recessive = 1, а dominant = 0.

Подтверждение. Все приемники проверяют непротиворечивость принимаемого сообщения и подтверждают непротиворечивое сообщение.

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

342

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

7.5.МЕТОДЫ ДОСТУПА К СРЕДЕ ПЕРЕДАЧИ

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

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

ется неразрушающий (non-destructive) поразрядный арбитраж.

Приоритет CAN-сообщения определяется двоичным значением его идентификатора. Идентификатор в сети является уникальным (например, «Нагрев до 240», «Отказ нагрева», «Бункер загружен» и т.д.) и определяет тип и приоритет сообщения.

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

343

Если сообщение имеет отношение к данному узлу, то оно обрабатывается, в противном случае – игнорируется. CAN-контроллер каждого из устройств может обрабатывать одновременно несколько идентификаторов (например, контроллеры Siemens и Intel могут обрабатывать до 15 идентификаторов). Таким образом, в каждом из устройств можно легко организовать несколько «виртуальных» каналов обмена информацией с различными устройствами, включая каналы одновременного получения сообщений.

Числовое значение каждого идентификатора сообщения назначается в начальной фазе проектирования системы и динамически изменяться не может. В сети CAN каждый 11-битный (или 29-бит- ный) идентификатор уникален. Никакая пара узлов сети не может послать сообщения с одинаковыми идентификаторами. Аналогичным образом никакой узел не может принять сообщения разных типов, но с одинаковыми идентификаторами. Это особенно важно при распределении шины между несколькими конкурирующими за доступ к шине станциями.

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

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

344

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

Рис. 7.1. Передача данных тремя узлами одновременно

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

Шина по схеме «ИЛИ» устанавливается в доминантный уровень, если есть хотя бы один доминантный уровень передатчиков.

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

345

В отличиe, например, от Ethernet, в CAN не происходит непроизводительнойпотерипропускной способностиканалаприколлизиях.

Информация в кадре CAN-сообщения имеет поле данных длиной от 0 до 8 байт и поле арбитража (рис. 7.2). Поле арбитража включает идентификатор длиной 11 бит (стандартный формат) или 29 бит (расширенный формат, надмножество предыдущего).

Рис. 7.2. Поле арбитража

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

На рис. 7.3 представлен арбитраж шины.

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

346

Рис. 7.3. Использование свойств элемента «монтажное И» при арбитраже сообщений в CAN

Идентификатор с самым низким значением выигрывает арбитраж:

приоритетным является не передающий или приемный узел,

асообщение, имеющее меньшее значение идентификатора;

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

Вторая возможность, которую дает механизм арбитража, использована в прикладном протоколе сети DeviceNet. В этой сети

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

На рис. 7.4 представлена процедура передачи сообщений узлам в сети.

347

Рис. 7.4. Передача сообщений всем узлам в сети

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

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

Если центральный процессор (ЦП) какой-либо станции решает послать сообщение другой станции или станциям, то сначала он передает эти данные и свой идентификатор в соответствующую ему CAN-микросхему. На рис. 7.4 это обозначено состоянием «Готово» (Make Ready). После этого CAN-схема конструирует сообщение и пересылает его по шине (когда она доступна). Это состояние на рис. 7.4 обозначено как «Послать сообщение» (Send Message). Второй узел передает свое сообщение всем узлам в сети. Все другие станции становятся приемниками этого сообщения (состояние «Получить сообщение» / Receive Message). Каждый приемник определяет, предназначено ли это сообщение ему (состояние «Выбрать» / Select). На рис. 7.4 принимают данные, например, только станции 1 и 4. Станция3 принимает сообщение, но игнорирует его как ненужное.

348

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

фиксированные – фильтры, которые требуют, чтобы биты соответствовали точно, один к одному (one-for-one);

маскируемые – фильтры, которые применяют маску к полю идентификатора, прежде чем он сравнивается с приемным регист-

ром кода (mask-and-match).

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

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

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

Принятоесообщение

 

 

 

 

 

 

 

Рис. 7.5. Фильтрация типа mask-and-match: mm – код маски; х – произвольный код (1 или 0)

349

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

Остановка всей системы из-за перегрузок, что может случиться с сетями, в которых конфликты разрешаются методом CSMA/CD (например, Ethernet), в CAN невозможна.

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

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

350

Соседние файлы в папке книги