Что именно является «доминантным» и «рецессивным»?


9

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

Что означает «рецессивный» и «доминирующий», например, http://hw-server.com/products/rs_optika/prevodniky_optika.html ?

Как соотносить эти термины с «низким» и «высоким» или 0 и 1?


1
Для того , чтобы понять это, вы должны понимать , CSMA / CA .
Лундин

Ответы:


13

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


11

В дополнение к совершенно точному ответу, данному в другом месте, также может быть полезно рассмотреть значения фраз более низкого уровня доминантный и рецессивный . И в CAN, и в LIN на физическом уровне шина «плавает» в определенное состояние, когда ни один узел не связывается. Это рецессивное состояние. Любой узел, который управляет доминирующим битом, переопределит это состояние (отсюда и слово « доминантный »).

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

(Стандарты могли быть написаны наоборот. Нет ничего, что требовало бы доминирующего бита, интерпретируемого как ноль в любом другом контексте.)


6
Кроме того, шина CAN подключена по проводам ... И в операции И 0 будет "доминировать" над 1.
Swanand

это хороший
способ

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

Отличается ли это «плавание» в рецессивном состоянии от того, как резистор повышающего / понижающего напряжения используется для выбора уровня напряжения по умолчанию (не развернутого) (и, следовательно, логического уровня) шины? Например, некоторые шины по умолчанию устанавливают высокий логический уровень посредством подтягиваний, если они не приводятся в движение вниз. Означает ли это, что логика высокого уровня рецессивна, а логика низкого доминирует?
Николас Миллер

1
@NickMiller: это то же самое (см. Также комментарий Свонанда) - просто потому, что CAN является дифференциальным, есть два провода, которые необходимо подтянуть к рецессивному уровню (или в случае CAN «вместе» к одному и тому же напряжению)
Мартин Томпсон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.