¿Por qué el bus CAN utiliza una resistencia de 120 ohmios como resistencia de terminación y no cualquier otro valor?

Conozco las razones para usar resistencias de terminación en un bus CAN y lo importante que es.

¿Pero por qué 120 ohmios? ¿Cómo surgió este valor? ¿Hay alguna razón específica para usar 120 ohmios?

En números romanos, CXX es 120, por lo que tiene sentido, A y N no están definidos bajo ese esquema, por lo que se reemplazaron con X, que a menudo se usa para marcar un desconocido (X marca el lugar, etc.).
@PeterJ -- Hilarante =)

Respuestas (4)

Debe estar familiarizado con la teoría de la línea de transmisión para comprender la física más profunda en juego aquí. Dicho esto, aquí está la descripción general de alto nivel:

La importancia de la terminación para su sistema está determinada casi exclusivamente por la longitud de los cables del bus. Aquí la longitud se determina en términos de longitudes de onda. Si su bus es más corto que una longitud de onda sobre 10, la terminación es irrelevante (prácticamente) ya que hay mucho tiempo para que desaparezcan los reflejos introducidos por una falta de coincidencia de impedancia.

La longitud definida en longitudes de onda es una unidad extraña en el primer encuentro. Para convertir a unidades estándar necesitas saber la velocidad de la onda y su frecuencia. La velocidad es una función del medio por el que viaja y del entorno que rodea al medio. Por lo general, esto se puede estimar bastante bien a través de la constante dieléctrica del material y asumiendo el espacio libre que rodea ese medio.

La frecuencia es un poco más interesante. Para las señales digitales (como las de CAN), le preocupa la frecuencia máxima de la señal digital. Eso está bien aproximado por f,max = 1/(2*Tr) donde Tr es el tiempo de subida (definido 30%-60% del nivel de voltaje final, de forma conservadora).

Por qué es 120 es simplemente una función del diseño limitado por el tamaño físico. No es específicamente importante qué valor eligieron dentro de un amplio rango (por ejemplo, podrían haber optado por 300 ohmios). Sin embargo, todos los dispositivos en la red deben cumplir con la impedancia del bus, por lo que una vez que se publicó el estándar CAN, no puede haber más debate.

Aquí hay una referencia a la publicación (Gracias @MartinThompson).

Un tratamiento más profundo de lo que determina la impedancia de línea (120 ohmios en este caso) para cables paralelos o trenzados se encuentra en una respuesta a la pregunta de impedancia USB personalizada .

Ese tipo de bus CAN está destinado a implementarse mediante un par de cables trenzados. La impedancia de la línea de transmisión del par trenzado no especificado no es exacta, pero 120 Ω estará cerca la mayor parte del tiempo para los cables relativamente grandes que se usan comúnmente para CAN.

Las resistencias también tienen otra función en CAN. Puede pensar en CAN como un bus de colector abierto implementado como un par diferencial. El total de 60 Ω es la unión pasiva del bus CAN. Cuando nada conduce el bus, las dos líneas tienen el mismo voltaje debido a los 60 Ω entre ellas. Para llevar el bus al estado dominante, un nodo separa las líneas, aproximadamente 900 mV cada una, para una señal diferencial total de 1,8 V. El autobús nunca se conduce activamente al estado recesivo, simplemente se deja ir. Eso significa que la resistencia entre las líneas debe ser lo suficientemente baja para que las líneas vuelvan al estado inactivo en una fracción de bit.

Tenga en cuenta que el estándar CAN real no dice nada sobre la capa física, aparte de que debe tener estos estados dominantes y recesivos. Podría implementar un bus CAN como una línea colectora abierta de un solo extremo, por ejemplo. El bus diferencial en el que está pensando se usa muy comúnmente con CAN y está incorporado en chips de controlador de bus de varios fabricantes, como el Microchip MCP2551 común.

Modo pedante: ISO11898 (que ciertamente es un estándar CAN :) tiene las partes 2,3 y 5 que describen las capas físicas. la parte 1 está (como usted dice) limitada a "dominante y recesivo", al igual que la especificación original de Bosch. es.wikipedia.org/wiki/ISO_11898
Además, ISO11898 parte 3 (baja velocidad, tolerante a fallas) especifica que el bus puede volver al modo de un solo cable en caso de que se detecte un cortocircuito en una de las líneas emparejadas.

CAN Bus es un bus diferencial. Cada par diferencial de cables es una línea de transmisión. Básicamente, la resistencia de terminación debe coincidir con la impedancia característica de la línea de transmisión para evitar la reflexión. El bus CAN tiene una impedancia de línea característica nominal de 120 Ω. Debido a eso, estamos usando un valor típico de resistencia de terminación de 120 Ω en cada extremo del bus.

TERMINACIÓN PARA DUMMIES

Cuando envía una señal simple a través de un cable, digamos una salida de microcontrolador que va de 0 a 5 V o 3,3 V, a lo largo de un cable más largo, la forma de onda se distorsionará. El borde se convertirá en algo más débil como ese. El resultado es más o menos que debe esperar a que todo se estabilice antes de leer el bit de datos en el destino antes de poder comenzar con el siguiente bit.

Para velocidades de datos altas, eso no es deseable.

Sin embargo, cuando sus cables cumplen con ciertos criterios, se puede hacer que las señales mantengan la misma forma. ¡Además, puede comenzar a enviar el siguiente bit de datos incluso antes de que los bits anteriores hayan llegado al destino!

Uno de los criterios es... lo has adivinado, la terminación al final del autobús. La geometría de los cables involucrados determina el valor exacto de las resistencias de terminación. Para la resistencia de terminación coaxial , los valores de 50 y 75 ohmios son comunes. Para CAT5 es oficialmente 100 ohmios. Para CAN y RS485, la especificación es oficialmente de 120 ohmios, pero a menos que busque velocidades de más de 100 Mbps, la diferencia es lo suficientemente pequeña como para que pueda usar CAT5 para CAN con resistencias de terminación de 120 ohmios.

Nunca he tenido que diseñar los cables en sí. así que no he investigado qué cambiar para obtener un valor de resistencia de terminación diferente.