Estoy trabajando en algunos dispositivos que se comunicarán entre sí a través de CAN. La idea simple es conectar en serie las señales esenciales entre cada dispositivo: alimentación (+12 V y tierra), habilitar y CAN alto / bajo.
Ahora, hay dos problemas principales que tengo al introducir esta configuración de conexión en cadena: direccionamiento de nodo y terminación de bus . Mi solución actual a estos dos problemas es:
Soluciones actuales
Direccionamiento de nodo
Tendría algún tipo de interruptor (interruptor analógico, MOSFET, algo) que rompe el bus CAN entre el conector de entrada y el conector de salida de cada dispositivo. Estarían, al inicio, configurados para ser esencialmente "conectados" a la parte del conector de entrada del cableado del bus. Por lo tanto, cuando todos los dispositivos se enciendan, el nodo # 1 (conectado directamente al nodo maestro) será el único nodo conectado y podrá extraer una dirección. Una vez que un nodo tira de una dirección, cierra los interruptores de cableado del bus y permite que el siguiente nodo se conecte. El maestro sigue asignando ID hasta que determine que no hay otros nodos esperando.
Terminación de bus
He desarrollado una manera de usar pines adicionales en los conectores como una señal de "detección" ... dirigiendo un voltaje al conector de salida y viéndolo si vuelve (cada dispositivo corta los pines en sus conectores de entrada) para díganos si somos el final del autobús o no ... y si debemos aplicar la terminación.
Lo que no estoy seguro / quiero mejorar
Usando interruptores analógicos
El interruptor analógico funciona conceptualmente, pero el aspecto eléctrico me confunde. Por ejemplo, muchos de los gráficos de velocidad de bits que ve para CAN se refieren al tiempo que la red es ... esto tiene mucho sentido. Más difícil conducir una señal más lejos sin repetir, etc. Ahora, mi confusión es ... ¿un interruptor analógico, con su resistencia inherentemente alta (en comparación con el cable en bruto), estaría matando mi tasa de bits máxima en el bus?
Desde que lo calculé, si mi bus tenía un cable de 20 AWG en su totalidad ... agregar un interruptor analógico con un Ron realmente bajo (el más bajo que he encontrado es de 0,3 ohmios hasta ahora) a cada nodo para proporcionar los circuitos para hacer el nodo el direccionamiento sería el equivalente a agregar ~ 30 pies adicionales de cableado para cada nodo. ¿Estoy sobreestimando el impacto que tendrían estos interruptores? El bus ya está terminado en cada extremo por resistencias de terminación de 120 ohmios, por lo que no agrega una tonelada en términos de la resistencia del bus pasivo ... sino que lo calcula en términos de la cantidad de cableado adicional que parece hacer que parezca malo.
Detección remota de nodos
También, en cuanto a la detección de nodos remotos ... Me gustaría evitar un enfoque que se basa en el uso de pines dedicados en los conectores. En pocas palabras, el hecho de poder deshacerme de los pines de detección me permite ahorrar dinero en un conector de recuento de pines más bajo Y me permite cambiar a un cableado más grueso, lo que significa que puedo llevar más potencia y soportar más nodos finales. También me gustaría poder reducir ligeramente el número de componentes del circuito de conducción / recepción de la funcionalidad de detección que involucra una gran cantidad de pasivos, zeners para sujeción, circuitos integrados de lógica discreta, etc.
Entonces ... ¿pensamientos? :)