Conectar / desconectar electrónicamente el dispositivo de un bus CAN

1

Lo que estoy tratando de hacer se puede describir mejor mediante el siguiente circuito basado en un relé electromecánico:

simular este circuito : esquema creado usando CircuitLab

Sin embargo, ¿existe una solución más simple que no implique partes mecánicas / móviles? [[editar: según lo señalado por la respuesta de Lundin, cambiar el rebote y EMI de la bobina podría significar que este enfoque es totalmente inadecuado]]

La "complicación" es que CAN es un bus de transmisión con conexiones de tipo colector abierto (no estoy seguro de que estén implementadas como un colector abierto verdadero) para emular un "AND cableado" (cualquier dispositivo puede hacer valer un 0 lógico). ). Sin embargo, no estoy seguro de cómo se implementa exactamente el "controlador" físico (en la conexión del dispositivo al bus), ya que es diferencial, con estados: ambas líneas a 2,5 V para un voltaje diferencial de 0 V, y (CAN_H , CAN_L) = (5V, 0V) para un voltaje diferencial de 0V (no estoy seguro de que siempre sea así, pero este parece ser un esquema común).

¿Un transistor MOSFET que actúe como interruptor hará el truco? ¿Qué pasa con un relé de estado sólido? ¿El SSR podrá transmitir la señal de 1Mbps (Megabit por segundo) cuando esté en su estado "cerrado"?

El tiempo de reacción (tiempo que toma conectar o desconectar el dispositivo) no es importante. [[editar: la noción pretendida era "desconectar latencia"; siempre que la desconexión real ocurra rápido, no importa que tome 100 ms desde el momento en que decidimos que queremos desconectarnos hasta el momento en que realmente lo desconectamos]]

    
pregunta Cal-linux

1 respuesta

3

La primera preocupación aquí es que cada vez que corte un bus CAN en vivo, habrá un alto riesgo de tramas de error si hay transmisiones en curso. El sistema en su totalidad debe ser capaz de lidiar con ellos si quiere hacer esto. Cuanto más lento sea el interruptor, más tramas de error obtendrás.

En 127 tramas de error recibidas, los controladores CAN ingresan en un estado pasivo de error, y en 255 tramas de error consideran que el bus está "muerto" y entran en el estado de desactivación del bus. En el peor de los casos, velocidad de transmisión de 1 MB, solo toma alrededor de ~ 10 ms para que pasen 255 tramas de error, después de lo cual ha eliminado todo el bus.

El dispositivo de conmutación ideal solo proporciona un único cuadro de error. Entonces, lo que llamas "tiempo de reacción" es importante. Un interruptor lento o poco confiable puede bloquear todo el bus, particularmente a velocidades de transmisión más altas.

Por las razones anteriores, un relé simple es totalmente inadecuado para la tarea. No solo es increíblemente lento, también tiene contactos de rebote. Significa incluso más pérdidas de datos en el bus en su totalidad. Además, las inquietudes de EMI dependen de cómo se maneja la bobina.

Un MOSFET o un relé de estado sólido es menos malo, ya que no tendrán rebotes, pero siguen siendo muy lentos y no son adecuados para señales de datos de alta velocidad.

Lo que debe usar es un interruptor analógico, que es rápido, con baja resistencia de encendido y bajas pérdidas. Cuál elegir probablemente no importa mucho, aunque un canal 2 uno sería ideal.

Alternativamente, también puede desactivar su transceptor CAN, si no necesita desconectarlo físicamente.

    
respondido por el Lundin

Lea otras preguntas en las etiquetas