Terminación adecuada del bus CAN

He estado luchando para que la transmisión del bus CAN funcione correctamente. Estoy manejando la configuración con una placa Parallax Propeller y los detalles están en otra publicación , pero tengo una pregunta más específica sobre el cableado y la terminación del bus CAN:

Cada fuente que encontré que describe la terminación del bus CAN lo hace con algo como la parte superior del diagrama que se muestra a continuación: un cable alto y uno bajo con resistencias de 120 ohmios en cada extremo.

Sin embargo, en la configuración de mi laboratorio, lo que realmente tengo es equivalente a la parte inferior del diagrama que se muestra: la resistencia está realmente en el "medio", entre los dos dispositivos. También intenté jugar con ese valor de resistencia, quitándolo por completo y alrededor de 110 ohmios, así como 220 ohmios y todos sufren el mismo problema y el chip que estoy usando informa un error de transmisión.

Dos resistencias de 120 ohmios en paralelo deben ser iguales a una resistencia de 60 ohmios. Pero, ¿importa la posición real de las resistencias a lo largo del cable? Los dispositivos están separados físicamente por unos 6 pies de cable y funcionan a 500 kHz. Conozco algunos conceptos básicos, incluida la ley de Ohms, y entiendo que CAN usa diferencial de voltaje para transmitir, pero si la posición de las resistencias es lo que está mal, definitivamente hay algo que no entiendo sobre cómo se supone que funciona este circuito.

esquemático

simular este circuito : esquema creado con CircuitLab

¿Las placas que está utilizando comparten un 0V común? CAN fue diseñado para uso automotriz, por lo que se supone que todas las placas tienen una referencia de chasis. Los transmisores y receptores deben estar dentro del rango de voltaje del bus de modo común.
La placa Propeller, mi protector de bus CAN y los pines de tierra en el conector ODB-II están todos unidos, así que sí. Honestamente, no estoy seguro de qué significa "modo común" en este contexto (buscándolo en Google ahora). Cuando coloco mi voltímetro en cualquiera de los cables (y el otro extremo en mi tierra común) da el voltaje recesivo esperado de aproximadamente 2.5v).

Respuestas (1)

La intención de las resistencias en cada extremo del bus es controlar los transitorios debido a los retrasos de tiempo. El bus debe terminarse con su impedancia característica en cada extremo.

Sin embargo, si el autobús tiene solo 6 pies de largo, esperaría que su implementación con una resistencia de 60 ohmios en el medio funcione. Espero que tengas algún otro problema.

Debe tener un dispositivo configurado para recibir el paquete CAN y devolver un ACK para no tener un error del transmisor; algunos monitores de bus CAN no lo hacen, ya que se espera que no sean intrusivos. En ese caso obtendrá un error del transmisor si no hay otro nodo.

Es posible que deba colocar otro nodo CAN normal en la red para obtener la respuesta correcta.

Tiene sentido. El dispositivo que conduzco es un MCP2515 (que se conecta a un MCP2551 que hace la transmisión CAN real) y en el otro extremo hay un dispositivo GPS Sinocastel "ODB-Smart": sinocastel.com/product/item-3.html I He estado asumiendo que estaría proporcionando el ACK, pero tal vez me equivoque. Y aparte de usar un osciloscopio (no tengo uno a mano), aún no he descubierto cómo determinar si ese es el caso.
Además, el MCP2515 debe programarse para ejecutarse a la misma tasa de bits, formato de mensaje (normal o extendido) y probablemente algunos otros parámetros, como el dispositivo en el otro extremo.