Bus CAN en trazas de PCB en lugar de cable de par trenzado: puntos a considerar

Para ahorrar costos en el sistema en uno de mis proyectos actuales (sin cables), me gustaría eliminar el cable CAN y agregar pistas a la PCB (un par de izquierda a derecha para conectar los conectores + 1 par de terminales a la CAN transceptor en cada placa). Como de todos modos tengo una cadena continua de PCB conectadas por un conector con pines libres, esto parece bastante razonable. Estoy planeando implementar CAN con una velocidad bastante baja (125kbits/seg).

Cada PCB se ve más o menos así:
ingrese la descripción de la imagen aquí

¡El sistema está configurado así y mide unos 50 m de largo!ingrese la descripción de la imagen aquí

He leído un par de otras preguntas (por ejemplo , aquí , aquí y aquí ) y artículos y notas de aplicación (como este , este y este ). Pero estoy lejos de entenderlo completamente.

Tengo un par de preguntas para esto:

El primero es sobre la impedancia de la línea de transmisión.

  • ¿El estándar de 120 ohmios es una impedancia diferencial o un solo extremo para cada CAN_H y CAN_L?
  • ¿Cómo alcanzar una impedancia de 120 ohmios en una placa de 4 capas? (Uso el apilamiento de 4 capas estándar de JLCPCB, y con su calculadora no alcanzo los 120 ohmios para un solo extremo y para el diferencial solo me acerco con 3,5 mil de traza + 4 mil de espaciado, que está cerca de su mínimo absoluto) .Apilamiento de capas
  • ¿Puedo/debo añadir componentes extra a las trazas del bus, para llegar a los 120Ohm?

En cuanto al blindaje:

  • A pesar del tema de la impedancia, en la especificación CAN se recomienda un cable de par trenzado blindado. ¿Debo, en ese caso, enrutar mejor las líneas CAN en una de las capas internas y protegerlo con un plano GND arriba, al lado y debajo?

Respecto al par trenzado:

  • ¿Tendría sentido modelar las huellas en la PCB de forma similar a un par trenzado (por ejemplo, algo como estoingrese la descripción de la imagen aquí

En general, las preguntas se pueden resumir en:

¿Qué ancho de trazo, espaciado en qué capa me da el mejor resultado para trazos largos de CAN en una PCB de 4 capas y cómo lo protejo?

¿Puedes cortar el suelo y pasar el bus CAN sobre una placa de circuito impreso transparente? Entonces 120 ohmios es fácil. ¿Incluso simplemente cortar la capa_interna_2 y tener un tablero completo de 1 mm entre la capa_superior y su plano de tierra? Unas pocas vías que crucen el autobús no importarán, a menos que sean una señal de alta velocidad.
Además, 125 kHz tiene una longitud de onda de 2400 m, por lo que con una longitud de bus de 50 m, no estoy seguro de que la impedancia importe mucho. Pero espera a los expertos de CAN...
Podría enrutar en la capa 1 y tener la capa 2 debajo vacía. Sin embargo, las capas 15 y 16 deben tener un plano de potencia y trazas (los números de capa son flexibles, pero se usan al menos 2 capas)

Respuestas (2)

No he diseñado con bus CAN específicamente, pero he implementado pares diferenciales USB y líneas de transmisión WiFi (2.4 Ghz) de un solo extremo.

Su problema parece una línea de transmisión diferencial clásica. 125kbits/seg debería ser bastante tolerante. 1Mb/seg es más difícil.

Si tiene el lujo de una placa de 4 capas, definitivamente enrute las señales CAN en las capas internas. Esto le dará el equivalente a un cable blindado. Las capas exteriores deben ser planos de tierra o energía. Los planos de tierra y energía deben acoplarse capacitivamente entre sí, haciéndolos más o menos equivalentes para propósitos de blindaje.

Su idea de trazas entrecruzadas para crear un par "retorcido" es intrigante, pero sospecho que le causará más dolores de cabeza: 1) reflejos de señal en cada vía 2) cada vía enterrada es un punto de defecto potencial para la fabricación de placas. #2 depende de la calidad de su casa de juntas. Implementaría un par diferencial tradicional (Zo = 120 ohmios).

Para calcular el espaciado de la línea de transmisión, encontré que el kit de herramientas de Saturn PCB es bastante útil: http://saturnpcb.com/pcb_toolkit/ Notaré que para alcanzar su impedancia característica de 120, es probable que necesite trazas más anchas.

De acuerdo con este documento de TI, una falta de coincidencia en las longitudes de los cables puede causar problemas de reflexión con el bus CAN. https://www.ti.com/lit/an/slla279a/slla279a.pdf .

Recuerde proporcionar resistencias de terminación de 120 ohmios (a través de las líneas de bus de lata) en el extremo de transmisión y el último receptor en el bus.

Conector: debería estar bien siempre que los contactos estén limpios. Separe los pines del bus de lata de otros pines de alta velocidad con un pin de tierra en el medio. Personalmente, también incluiría almohadillas de soldadura o un conector CAN en caso de que necesite volver a cablear entre las placas de circuito. Si es así, pondría resistencias de 0 ohmios en serie con las líneas CAN en el conector principal. Esto le dará la flexibilidad de desactivar las líneas CAN en el conector y volver a cablear. Diseñar un plan B es barato mientras se diseña la placa de circuito.

El ancho y el espacio del trazo dependen de la acumulación de su PCB. Use el kit de herramientas de Saturn PCB con la pestaña "Pares diferenciales".

Yo usaría una acumulación como

L1=tierra, L2=líneas de señal/transmisión, L3=alimentación, L4=señal o

L1=tierra, L2=señal/líneas de transmisión, L3=señal, L4=alimentación.

Si tiene relleno de cobre en otras capas, puede atarlos al suelo con vías de costura. No enrute señales de alta velocidad en paralelo con el par diferencial a menos que estén separadas por un relleno de tierra (blindaje). Si las señales de alta velocidad deben cruzarse en capas adyacentes, hágalas perpendiculares.

Saturno PCB v7.10

Para agregar a esto, descubrí que en apilamientos de PCB baratos donde la impedancia de microstrip no es confiable, la guía de onda coplanar es una excelente alternativa que se preocupa mucho menos por la constante dieléctrica del sustrato. Tiende a ocupar un poco más de espacio, especialmente si lo cercas con vías, pero funciona bastante bien.
Las acumulaciones que sugirió son consejos comunes pero malos. Siempre debe haber, sin excepción, una capa de tierra al lado de cada señal o rastro de energía. Las placas de 4 capas son complicadas, pero una acumulación decente es: señal/alimentación - tierra - tierra - señal/alimentación. Los pares diferenciales deben tratarse como dos trazas de un solo extremo con gnd justo al lado.

Para trazar líneas diferenciales NO se deben diseñar como cables de par trenzado... Las vías actúan como inductores y cualquier cambio de dirección normalmente provoca reflejos. Entonces, lo que quieres y lo que es óptimo, es una simple línea recta.

Normalmente, diseña líneas diferenciales una al lado de la otra (si no lo hace, es un acoplamiento flojo ... que también funciona en algunos casos), SIN giros de 90 °, debe mantener ambas trazas en la misma longitud (casi) y los talones cortos ( en caso de que podamos hablar de algunos cm, creo que puede encontrar los valores en el estándar). Es necesario calcular la distancia entre las líneas y el ancho de las trazas, de modo que con el material de su placa de circuito impreso y el grosor de la capa mantenga la impedancia requerida de 120 ohmios...

Puede probar https://sourceforge.net/projects/atlc/ o http://www.hdtvprimer.com/KQ6QV/atlc2.html para calcular líneas de transmisión diferenciales.

Kicad también se envía con una calculadora de línea de transmisión, o el viejo http://www.hp.woodshot.com/ HP AppCad... Incluso encontrará cosas para las calculadoras programables normales.

Si sigue las reglas de sistemas mucho más sofisticados como LVDS, CAN nunca debería decepcionarlo: es bastante robusto incluso en entornos muy hostiles.

https://www.ti.com/lit/an/snla302/snla302.pdf

No lo he comprobado, pero por lo que recuerdo, estos números están bien. Para una cierta velocidad de bus, tiene la longitud de la línea de bus y la longitud de un trozo ... supongo que en una PCB nunca tendrá problemas con CAN.

  • 1 MBit/s 40m 0,3m
  • 500 kBit/s 100m 0,8m
  • 250 kbit/s 200 m 1,5 m
  • 100 kBit/s 500m 3,0m
  • 57 kBit/s 1000m 5,0m
  • 38 kBit/s 2000m 7,0m

PD: Como dijo Mr_Engineer: debe terminar. ¡Pero ambos extremos (es un bus real, por lo que cualquier nodo escucha y transmite)! ambos con 120 ohmios (son 60 ohmios en CC, pero 120 ohmios para la frecuencia media/dominante del bus...) - tenemos un producto con un solo lado terminado y funciona para más de 20 m de longitud de línea, pero luego necesita ajustar los valores. ¡Quédate con la norma!