Как избежать конфликта на шине CAN при отправке кадров данных с одинаковым идентификатором кадра? - PullRequest
0 голосов
/ 10 апреля 2019

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

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

Обновление

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

  1. Каждый датчик или двигатель должен быть определен как узел с уникальным идентификатором.Но кажется неудобным перемещать компоненты между различными печатными платами, поскольку фильтры соответствующих печатных плат должны обновляться каждый раз.
  2. Каждая из печатных плат должна определять больше фильтров, чтобы принимать все идентификаторы узлов на ней.
  3. ТОЛЬКО используйте удаленный кадр для запроса данных от датчика.

1 Ответ

1 голос
/ 10 апреля 2019

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

В противном случае обычно используется идентификатор узла, чтобы различать узлы. Например, если ваши данные имеют идентификатор 0x100, то узел A может отправить идентификатор 0x100 и идентификатор узла B 0x101. Затем получатель может обрабатывать их так же.

...