Средства управления доступом к шине в CAN протоколе


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

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

Если два или больше узла начинают передавать в одно и то же время, конфликт решается при помощи неразрушающего (non-destructive) поразрядного алгоритма арбитража, использующего поле арбитража.

Поле арбитража, включенное во все фреймы данных и состоит из:

· 11–битового поля идентификатора;

· RTR–бита.

RTR– бит указывает тип фрейма – фрейм данных или удаленный фрейм.

11– битовое поле идентификатора передается от старшего к младшему значащему биту.

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

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

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

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

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

  Рисунок 3.35 – Поразрядный арбитраж

 

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

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

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



Дата добавления: 2020-04-12; просмотров: 509;


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

Воспользовавшись поиском можно найти нужную информацию на сайте.

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

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.