¿Qué es exactamente "dominante" y "recesivo"?

Respuestas:

13

Dominante es 0. Recesivo es 1. Dominante se aplica a 0 porque si dos ID de arbitraje se transmiten al mismo tiempo y los primeros 4 bits son iguales y el quinto es 0 para uno de ellos y 1 para el otro, el ID con el 0 terminará siendo transmitido. La transmisión del mensaje con la ID de arbitraje más grande se volverá a intentar una vez que se haya completado el otro mensaje.

Solitz
fuente
11

Además de la respuesta perfectamente precisa dada en otra parte, también puede ser útil considerar los significados de nivel inferior de las frases dominantes y recesivas . Tanto en CAN como en LIN en la capa física, el bus "flota" a un estado particular cuando no hay nodos en comunicación. Este es el estado recesivo . Cualquier nodo que maneje un bit dominante anulará este estado (de ahí la palabra " dominante ").

Esto se usa dentro del protocolo para permitir que ocurra un arbitraje no destructivo, donde el nodo con la identificación más baja "gana". Esto se debe a la decisión de significar una lógica baja por un bit dominante .

(Los estándares podrían haberse escrito al revés. No hay nada que exija que un bit dominante se interprete como cero en ningún otro contexto).

Martin Thompson
fuente
66
Además, el bus CAN está conectado mediante AND ... Y en la operación AND, 0 "dominará" el 1.
Swanand
eso es un buen atajo para recordar
poseid
Esta es una respuesta más correcta que la marcada. Los estados dominantes y recesivos se utilizan en muchos protocolos o lógica de bus, no solo en LIN o CAN. Las salidas de colector abierto se usan comúnmente para crear estos estados.
Max Kielland
¿Es esto "flotante" al estado recesivo diferente de cómo se usa una resistencia pull-up / down para elegir el nivel de voltaje predeterminado (no controlado) (y, por lo tanto, el nivel lógico) del bus? Por ejemplo, algunos buses pasarán a nivel lógico alto mediante pull-ups si no se los baja. ¿Significaría esto que la lógica alta es recesiva y la lógica baja es dominante?
Nicholas Miller
1
@NickMiller: es lo mismo (vea el comentario de Swanand también), solo porque CAN es diferencial, hay dos cables que deben ser tirados al nivel recesivo (o en el caso de CAN "juntos" al mismo voltaje)
Martin Thompson