Che cosa è esattamente "dominante" e "recessivo"?


Risposte:


13

Il dominante è 0. Il recessivo è 1. Il dominante si applica a 0 perché se due ID di arbitrato vengono trasmessi contemporaneamente e i primi 4 bit sono uguali e il quinto è 0 per uno di essi e 1 per l'altro, l'ID con lo 0 finirà per essere trasmesso. La trasmissione del messaggio con l'ID di arbitrato più grande verrà riprovata dopo che l'altro messaggio è stato fatto.


11

Oltre alla risposta perfettamente accurata fornita altrove, può anche essere utile considerare i significati di livello inferiore delle frasi dominanti e recessive . Sia in CAN che in LIN a livello fisico il bus "fluttua" in uno stato particolare quando nessun nodo comunica. Questo è lo stato recessivo . Qualsiasi nodo che guida un bit dominante sovrascriverà questo stato (da cui la parola " dominante ").

Questo viene utilizzato all'interno del protocollo per consentire l'arbitrato non distruttivo, in cui "vince" il nodo con l'id più basso. Ciò è dovuto alla decisione di indicare una logica bassa con un bit dominante .

(Gli standard avrebbero potuto essere scritti al contrario. Non c'è nulla che richieda che un bit dominante sia interpretato come zero in qualsiasi altro contesto.)


6
Inoltre, il bus CAN è Wire-ANDed ... E durante l'operazione AND, 0 "dominerà" l'1.
Swanand,

questa è una scorciatoia da ricordare
posa

Questa è una risposta più corretta di quella contrassegnata. Gli stati dominanti e recessivi sono utilizzati in molti protocolli o log di bus, non solo in LIN o CAN. Le uscite open collector vengono comunemente utilizzate per creare questi stati.
Max Kielland,

Questo "fluttuazione" allo stato recessivo è diverso dal modo in cui un resistore pull-up / down viene utilizzato per scegliere il livello di tensione predefinito (non pilotato) (e quindi il livello logico) del bus? Ad esempio, alcuni bus passano automaticamente alla logica alta tramite pull-up se non vengono abbassati. Ciò significherebbe che la logica alta è recessiva e la logica bassa è dominante?
Nicholas Miller,

1
@NickMiller: è lo stesso (vedi anche il commento di Swanand) - solo che, poiché CAN è differenziale, ci sono due fili che devono essere tirati al livello recessivo (o nel caso di CAN "insieme" alla stessa tensione)
Martin Thompson
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.