Сеть CAN-контроллерная местная сеть (Controller Area Network).

 

CAN(Controller area network) - название последовательного интерфейса, который был разработан компанией BOSCH - ведущим поставщиком автоэлек­троники, в начале 90х годов, первоначально для использования в ав­томобильных приложениях. Сегодня на рынке можно найти более сотни реализаций протоколов CAN в нескольких модификациях (версиях) в виде отдельных микросхем или интерфейсов, интегрированных в оборудование, оснащенное мик­роконтроллерами.

Ныне CAN рассматривается как стандартный последовательный интерфейс - стандартная контроллерная сеть для распределенных систем управления в различных отраслях техники, в том числе в ав­томобильной, аэрокосмической, медицинской отраслях, а также в роботизированных промышленных установках. Рассматривается версия CAN2А

Массовое производство компонентов CAN десятками известных производителей тиражами в десятки миллионов штук сделала тех­нологию достаточно дешевой.

В качестве международного стандарта протокол CAN был при­знан в 1993г - ISO 11898.

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

- Распределенный доступ абонентов в сеть с неразрушающим арбитражем,

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

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

- Одно и тоже сообщение по CAN может быть принято несколькими абонентами ,настроенными на прием данного типа сообщений.

- Количество узлов на шине не ограничено логически ,так как нет почтового адреса у абонента (ограничения только по электрической нагрузке).

Протокол CAN обеспечивает пользователю два коммуникацион­ных сервиса: посылку сообщений (передача кадра данных) и за­прос сообщения (удаленный запрос на передачу или remote transmission request , RTR).

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

В CAN четко просматривается физиче­ский и канальный уровни семиуровневой OSI. Верхние уровни OSI объединены и программируются пользователем.

 

Физический уровень сети CAN

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

Скорость передачи информации до 1 Мбит/с, при дли­не линии 50 - 60 м. С увеличением длины линии допустимая скорость передачи падает. При длине линии 1000 метров скорость передачи 50 - 60 кбит/с поэтому CAN допускает программирование скорости обмена от 10 кбит/с до 1 Мбит/с. Наилучшая помехозащищенность достигается при волновом сопротивлении линии 120 ом.

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

 

Формат кадров сети CAN

Обмен информацией между узлами осуществляется кадрами переменного размера до 108 бит. При этом кадр начинается стар­товым битом и идентификатором в 11 бит, длина поля данных может варьироваться от 0 до 8 байт. Сегмент контрольной суммы CRS за­нимает 15 бит.

Обращает на себя внимание само поле данных - не более 8 байт. Это обеспечивает малое время задержки при пере­даче (сообщение короткое) с одной стороны, а с другой стороны является достаточным для тех задач управления, которые решает сеть CAN. При необходимо­сти передать по CAN длинного сообщения оно может быть фрагментировано на несколь­ко коротких до 64 бит.

Общее количество CAN узлов в сети логически не ограничивает­ся ( нет адреса узла и соответственно нет поля для размещения адреса ограниченного размера и имеются только ограничения, связанные с числом нагрузок на электронику передатчиков. Для передатчиков одного из типов число узлов в сети может достигать значения 110.

0-64 бит поля данных

Бит RTR 6 бит поля управления 3 бит поля подтверждения

.                   .   .       .     ...                 .  

 


Стартовый бит 15 бит поле CRS

11 бит идентификатора 7 бит поле конца кадра

 

Распределенный доступ абонентов в сети CAN. Арбитраж при возникновении столкновений сообщений

 

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

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

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

2. Код идентификатора типа сообщения несет в себе информацию о приоритете сообщения. Чем меньше номер идентификатора сообщения т. е. больше нулей в старших битах идентификатора, тем более приоритетным является тип сообщения.

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

Как только одним из передающих узлов будет обна­ружено, что он передал лог.1 ,а на шине этот бит превратился в лог.0, он поймет, что его «перешибло» более приоритетное сообщение и ему надо уступать – сразу же прекращать свою передачу, так как его сооб­щение во первых исказилось и во вторых имеет меньший приоритет из двух сообщений, столкнувшихся на ЛПИ.

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

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

 

Рассмотрим коллизию узла1 и узла 2.

 

Узел 1 0 1 0 1 1 0 1 1 0 1 0 0 Это идентификатор+RTR

Узел 2 0 1 0 1 1 0 1 1 1 . . .Узел 2 прекратил передачу

На линии 0 1 0 1 1 0 1 1 0 1 0 0 Узел1 передает до конца

 

Таким образом, приоритетным в сети при столкновениях сообщений является сообщение с наименьшим номером. Чем больше нулей в старших разрядах иден­тификатора, тем выше приоритет сообщения.

После освобождения шины попытка передачи менее приори­тетного сообщения может быть повторена.

 

Обеспечение надежности передачи в сети CAN

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

появление кадра с ошиб­кой передачи, причем специальным сообщением об ошибке ,

факт, что хотя бы один узел сообщение при­нял.

Для этого используется упомянутый кадр сообщения об ошибке, а также бит подтверждения ( в ASK поле) принятия сообщения. ASK поле - поле подтверждения передачи работает следующим образом. Передающий узел всегда посылает в этом поле рецессивный бит - логическую 1. Ес­ли приемник принял сообщение правильное (подтверждается кон­трольной суммой), то он успевает в рамках этой передачи сразу установить в это поле бит доминирующего уровня - логический 0, который по определению «перешибает» рецессивный уровень.

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

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

Таким образом, философия линии более «эгоистична» , чем , например ,в 1553 В.

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

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

Необходимость резервирования элементов и ЛПИ определяется разработчиком сети и осуществляется, при необходимости, вне рамок протокола CAN.

 

Адресация сообщений в CAN

 

В протоколе CAN отсутствует прямая адресация сообщений по уникальному адресу абонента.

Имеется идентификатор сообщения, который определяет при­оритет и тип информации сообщения. При передаче сообщение получают все абоненты и проверяют тип сообщения. Абонент берет в обработку только тот тип сообщения, идентификатор которого «зашит» у него в памяти. Каждый абонент может обрабатывать до 15ти типов сообщений.

Таким образом, в CAN имеется возможность одновременной передачи сообщений нескольким абонентам, в том числе синхро­сигналов для всех.

Кроме того новые узлы, добавленные в сеть, не меняют ПО существующих узлов, если они являются потребителями или производи­телями имеющихся в сети типов сообщений.

 

Вопросы для самопровераки

Физический уровень сети MILSTD 1553B

Централизованный метод доступа абонентов в сеть MILSTD1553B

 

Типы и форматы сообщений сети MILSTD 1553B

Защита информации в сети MILSTD1553B








Дата добавления: 2017-11-04; просмотров: 204;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.015 сек.