3 votos

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

Con el fin de ahorrar costes en el sistema en uno de mis proyectos actuales (sin cables) me gustaría eliminar el cable CAN y añadir trazas a la PCB (un par de izquierda a derecha para conectar los conectores + 1 par stub al Transceptor CAN en cada placa). Como de todas formas tengo una cadena continua de PCBs conectadas por un conector con Pins libres esto parece bastante razonable de hacer. Estoy planeando implementar CAN con una velocidad bastante baja (125kbits/seg).

Cada PCB tiene más o menos este aspecto:
enter image description here

El sistema está montado así y tiene unos 50 m de longitud. enter image description here

He leído un par de preguntas más (p. ej. aquí , aquí et aquí ) y artículos y notas de aplicación (como este , este et este ). Pero no estoy ni cerca de entenderlo del todo.

Tengo un par de preguntas al respecto:

La primera se refiere a la impedancia de la línea de transmisión.

  • Los 120Ohm estándar son impedancia diferencial de o singled terminó para cada CAN_H y CAN_L?
  • ¿cómo alcanzar una impedancia de 120Ohm en una placa de 4 capas? (Yo uso JLCPCB estándar de 4 capas, y con su calculadora no llego a 120Ohmios para un solo terminal y para diferencial sólo me acerco con 3,5mil de traza + 4mil de espaciado - que está cerca de su mínimo absoluto). Layer Stack-up
  • ¿Puedo / debo añadir componentes adicionales a las trazas del bus, para alcanzar 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 apantallado. En ese caso, ¿sería mejor colocar las líneas CAN en una de las capas interiores y apantallarlas con un plano GND por encima, al lado y por debajo?

En cuanto al par trenzado:

  • ¿Tendría sentido modelar las trazas en la PCB de forma similar a un par trenzado (por ejemplo, algo como esto enter image description here

En general, las preguntas pueden resumirse en:

¿Qué ancho de traza, qué espaciado en qué capa me dan el mejor resultado para trazas CAN largas en una PCB de 4 capas y cómo las apaño?

2voto

Patrick Beardmore Puntos 552

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

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

Si puedes permitirte el lujo de tener una placa de 4 capas, no dudes en colocar las señales CAN en las capas interiores. Esto le dará el equivalente de un cable blindado. Las capas exteriores deben ser planos de tierra o de potencia. Los planos de tierra y de alimentación deben estar acoplados capacitivamente entre sí, lo que los hace equivalentes a efectos de apantallamiento.

Tu idea de entrecruzar las vías para crear un par "trenzado" es intrigante, pero sospecho que te causará más quebraderos de cabeza: 1) reflexiones de señal en cada via 2) cada via enterrada es un potencial punto defectuoso para la fabricación de la placa. #El nº 2 depende de la calidad de tu fábrica de placas. Yo utilizaría un par diferencial tradicional (Zo=120 ohmios).

Para calcular la distancia entre líneas de transmisión, me ha resultado muy útil el conjunto de herramientas de Saturn PCB: http://saturnpcb.com/pcb_toolkit/ Para alcanzar la impedancia característica de 120, es probable que necesites trazas más anchas.

Según este documento de TI, un desajuste en la longitud de los cables puede causar problemas de reflexión con el bus CAN. https://www.ti.com/lit/an/slla279a/slla279a.pdf .

No olvide prever resistencias de terminación de 120 ohmios (a través de las líneas del bus de latas) en el extremo transmisor y en el último receptor del bus.

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

La anchura y el espaciado de los trazos dependen del apilamiento de la placa de circuito impreso. Utilice el kit de herramientas de Saturn PCB con la pestaña "Pares diferenciales".

Utilizaría una pila como

L1=Tierra, L2=Líneas de señal/transmisión, L3=Alimentación, L4=Señal o

L1=Tierra, L2=Líneas de señal/transmisión, L3=señal, L4=Potencia.

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

Saturn PCB v7.10

1voto

shikhar jindal Puntos 24

Para trazar líneas diferenciales NO debes diseñarlas como cables de par trenzado.... Las vías actúan como inductores y cualquier cambio de dirección suele provocar reflexiones. Así que lo que quieres y lo que es óptimo, es una simple línea recta.

Normalmente se trazan las líneas diferenciales una al lado de la otra (si no se hace así es acoplamiento flojo... que también funciona en algunos casos), NO giros de 90º, hay que mantener ambas trazas a la misma longitud (casi) y stubs cortos (en el caso de can hablamos de unos cm - creo que puedes encontrar los valores en la norma). Hay que calcular la distancia entre las lineas y la anchura de las trazas, para que con el material de tu pcb y el grosor de las capas mantengas la impedancia de 120Ohm requerida...

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 incluye una calculadora de líneas de transmisión, o el viejo http://www.hp.woodshot.com/ HP AppCad... Incluso encuentras cosas para las calculadoras programables normales.

Si sigues las reglas de sistemas mucho más sofisticados como LVDS, CAN no debería fallarte nunca: es bastante robusto incluso en entornos muy duros.

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

No lo he comprobado pero que yo recuerde estos números están bien Para un determinado Busspeed tiene la longitud de la línea de bus y la longitud de un talón ... supongo que en un PCB nunca se ejecuta en problemas con CAN

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

PD: Como ha dicho Mr_Engineer: Es necesario terminar. Pero ambos extremos (es un bus real por lo que cualquier nodo escucha y transmite), tanto con 120 Ohm (su 60Ohm en dc, pero 120Ohms para el medio / frecuencia dominante del bus ...) - tenemos un producto con un solo lado terminado y funciona para más de 20m de longitud de línea, pero entonces usted necesita para ajustar los valores. Siga la norma.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X