Cómo conectar correctamente 2 transceptores CAN a la misma CANH y CANL

-2

Estoy intentando diseñar un sistema con 2 transceptores CAN, una velocidad Alta y Baja que usan las mismas líneas CANH y CANL, como así:

Estaba planeando usar 4 MOSFET o 4 relés conectados a las líneas CANH y CANL de cada transceptor y hacer que el PIC controle los MOSFET o relés para desconectar un transceptor y dejar el otro conectado.

Sin embargo, creo que CAN es sensible con su resistencia de terminación y agregar componentes adicionales puede ser perjudicial para la señal.

¿Cuál sería una buena manera de controlar qué transceptor está conectado?

    
pregunta Nick Williams

2 respuestas

1

Lo más probable es que desee tener dos conectores separados para el CAN de alta velocidad y tolerante a fallas. Utilizar el mismo conector parece pedir problemas, debido a los diferentes niveles de voltaje. Especialmente si va a tener algún tipo de filtro de ruido con diodos, etc., es posible que necesite Implementar dos diferentes. Así que no mezcle las líneas CAN Hi y Low de los 2 transceptores diferentes.

Si tiene la opción de elegir una MCU con 2 controladores CAN en el chip, probablemente sea una buena solución.

Si no, tendría que elegir qué transceptor debería estar activo en tiempo de ejecución. La forma más fácil es probablemente cambiar las líneas de datos en el lado de la CPU de un transceptor a otro. Entre la CPU y el transceptor, tiene una lógica digital simple, por lo que debería poder usar cualquier tipo de demux para ello. No debería afectar a ninguno de los dos autobuses.

(Usar relés para cambiar las líneas de datos de comunicación de alta velocidad nunca es una buena idea: son demasiado lentos y tiene varios problemas electromecánicos que tiene que compensar con los filtros).

Importante: el transceptor que no está activo debe dejarse "colgado", porque los transceptores tiran internamente de la señal a la tensión pasiva cuando no hay tráfico de datos. Por lo tanto, no agregue resistencias de tracción a ninguna parte o podría arruinar la comunicación del bus externo en el transceptor que no está activo.

Pero eso es realmente una solución ad hoc. Solo debes considerarlo si estás obligado a usar alguna MCU en particular con solo 1 controlador CAN.

Si usar una CPU moderna es una opción, tal vez podría considerar LPC11C22 Cortex M0 con un tranceiver CAN de alta velocidad incorporado. Si tuviera esa MCU, podría habilitar la CAN de alta velocidad cuando sea necesario, o mantenerla deshabilitada y usar una externa tolerante a fallas en su lugar. Lista de materiales mínima.

    
respondido por el Lundin
1

Lo que estás pidiendo no tiene sentido.

Como ambos transceptores están conectados al mismo CANH y CANL, están conectados al mismo bus CAN. CANH y CANL es el bus CAN. En el otro lado, muestra que ambos transceptores están conectados a las mismas líneas de control CAN del mismo PIC. Eso no va a funcionar ya que las líneas CAN TX y RX no deben compartirse entre varios transceptores.

La única diferencia que muestra entre los dos transceptores en su diagrama es que uno es "alta velocidad" y el otro "baja velocidad". Esto de nuevo no tiene sentido. Puede ejecutar un bus CAN tan lento como desee, siempre que todos sus dispositivos conozcan la velocidad. En cualquier caso, el transceptor no dicta la velocidad. Eso depende de lo que esté manejando CANTX y recibiendo CANRX. Los transceptores CAN son simplemente chips de interfaz eléctrica que no saben nada acerca de los bits CAN individuales o los cuantos de tiempo.

No conozco un transceptor CAN que no sea capaz del máximo de 1 Mbit / s para el que se especifique CAN. Por lo tanto, no sé qué se supone que significan "baja velocidad" y "alta velocidad" tal como se aplican a un transceptor CAN. Incluso si está haciendo algo especial, un transceptor CAN de "alta velocidad" aún debería poder conducir el bus CAN a cualquier velocidad arbitraria más baja que su clasificación máxima.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas