2014-11-18 2 views
0

Как контроллер шины CAN решает на основе идентификатора сообщения, которому принадлежит это конкретное сообщение? Это похоже на то, что получатель уже знает, что если идентификатор имеет значение 5, то это для меня. И мы программируем приемник, чтобы сказать ему, что вы должны быть заинтересованы в стоимости 5?Как работает адресация шины CAN?

ответ

0

На уровне протокола CAN все узлы сети CAN равны и принимают решение о том, обрабатывать сообщение или нет. «Контроллер CAN» представляет собой концепцию более высокого уровня; он все равно должен проверить идентификатор сообщения, как и любой другой узел.

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

Update:

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

Например, если вы хотите обработать все сообщения с 5 (двоичным кодом 0101) в четырех разрядах младшего порядка, ваша маска будет равна 15 (двоичный код 1111), вы будете бинарно, а это с принятым идентификатором сообщения, а затем сравните результат с пятью.

Например:

(msg_id & 15) == 5 

это способ кодирования, что тест. Какие биты вам интересны, а ваши детали реализации зависят от многих других факторов.

+0

Мой вопрос в том, как узел принимает решение о том, обрабатывать сообщение или нет. – Waqas

0

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^