No pude encontrar ninguna referencia que diera una respuesta definitiva. Pero mirando algunas hojas de datos, creo que no. El USB se fija en la presencia o ausencia de un cambiar en tensión. Mientras que el CANBus se fija en la propia tensión.
Este es un ejemplo de transmisión por USB:
![USB NRZ]()
Los unos y los ceros se codifican en función de si hay o no transición.
A diferencia del CANBus que toma la diferencia de los niveles de tensión como se ve en esta nota de la aplicación :
![CANBus differential]()
Si miramos la hoja de datos de un transceptor CANBus, por ejemplo el MCP2551 vemos algo parecido a:
Sym Characteristic Min Max Units
VDIFF(r)(i) Recessive differential input voltage -1.0 +0.5 V
VDIFF(d)(i) Dominant differential input voltage 0.9 5.0 V
Como se menciona una tensión negativa, esto me hace pensar que la polaridad es importante y que no están tomando el valor absoluto de la tensión diferencial.
Así que si tenemos:
$$CANH = 2.5V$$ $$CANL = 2.5V$$
Normalmente el transceptor lo haría:
$$CANH - CANL = 2.5V - 2.5V = 0.0V = Recessive$$
Si se intercambian las líneas serviría:
$$CANL - CANH = 2.5V - 2.5V = 0.0V = Recessive$$
Hasta aquí todo bien. El problema viene cuando tenemos:
$$CANH = 3.5V$$ $$CANL = 1.5V$$
Aquí, el transceptor lo haría normalmente:
$$CANH - CANL = 3.5V - 1.5V = 2.0V = Dominant$$
Si se intercambian las líneas serviría:
$$CANL - CANH = 1.5V - 3.5V = -2.0V = Recessive (out\ of\ spec)$$
Así que tú, el receptor, no verías más que trozos recesivos.
0 votos
Creo que habría dos diferencias: Intercambio de prioridad H/L, y los datos se invierten a nivel de bits. Pero no sé lo suficiente sobre CAN para responder con seguridad.
1 votos
No. No. @trav1s No. Nótese que la diferencia de tensión tiene una polaridad determinada, y que recesivo significa que no hay diferencia de tensión.