CAN CSMA-CD и арбитраж - PullRequest
       37

CAN CSMA-CD и арбитраж

0 голосов
/ 21 февраля 2020

У меня есть сомнения. Я работаю над протоколом CAN, который использует CSMA-CD и механизм арбитража для передачи сообщений. Я планирую реализовать один серверный узел и несколько клиентских узлов.

  • Сервер предоставлен ID of 0 (11-bit Identifier).
  • Когда узел включен, он должен получить идентификатор для связи в сети, поэтому он запрашивает его у сервера. Узел использует Remote Frame для запроса идентификатора с сервера, который включает ID = 0 (Server ID), DLC = 2

Я сомневаюсь, что на шине CAN имеется несколько узлов, поэтому каждый узел запрашивает идентификатор у сервера. И все узлы используют ID = 0 (Server ID), DLC = 2 as Remote Frame. Теперь предположим, что 2 или более узлов одновременно отправляют сообщение на сервер, и механизм арбитража не будет работать, поскольку оба узла получают контроль над шиной CAN. Так что, CSMA-CD предотвратит это и позволит только одному узлу взаимодействовать в данный момент времени?

1 Ответ

0 голосов
/ 04 марта 2020

Если устройство не имеет ID, CSMA-CD не поможет, потому что каждому узлу требуется ID для участия в CSMA-CD разновидности протокола шины CAN . Затем, если он не может получить доступ к шине, он не может запросить ID. Как вы видите, это проблема типа «куриное яйцо».

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

Может быть, будет полезно узнать об арбитражном механизме в протоколе CAN . Короче говоря: ниже ID означает более высокий приоритет.

...