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

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

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

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

Чтобы понять это, вам нужно понять CSMA/CA .

Ответы (2)

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

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

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

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

Кроме того, шина CAN использует проводное И... И в операции И 0 будет «доминировать» над 1.
это хороший ярлык, чтобы помнить
Это более правильный ответ, чем отмеченный. Доминантные и рецессивные состояния используются во многих шинных протоколах или логике, а не только в LIN или CAN. Выходы с открытым коллектором обычно используются для создания этих состояний.
Отличается ли это «плавание» к рецессивному состоянию от того, как подтягивающий/понижающий резистор используется для выбора уровня напряжения по умолчанию (неуправляемого) (и, следовательно, логического уровня) шины? Например, на некоторых шинах по умолчанию устанавливается высокий логический уровень посредством подтягивания, если они не снижаются. Означает ли это, что высокий логический уровень является рецессивным, а низкий логический уровень доминантным?
@NickMiller: это то же самое (см. также комментарий Свонанда) - просто потому, что CAN является дифференциальным, есть два провода, которые нужно тянуть на рецессивный уровень (или, в случае CAN, «вместе» к одному и тому же напряжению)