CAN-Bus auf Leiterbahnen statt Twisted-Pair-Kabel – zu beachtende Punkte

Um in einem meiner aktuellen Projekte (keine Kabel) Kosten auf dem System zu sparen, möchte ich das CAN-Kabel eliminieren und Spuren auf der Platine hinzufügen (ein Paar von links nach rechts, um die Steckverbinder + 1 Paar Stub mit dem CAN zu verbinden Transceiver auf jeder Platine). Da ich sowieso eine fortlaufende Kette von Leiterplatten habe, die durch einen Stecker mit freien Pins verbunden sind, scheint dies ziemlich vernünftig zu sein. Ich plane, CAN mit einer relativ niedrigen Geschwindigkeit (125 kbit/s) zu implementieren.

Jede Platine sieht ungefähr so ​​aus:
Geben Sie hier die Bildbeschreibung ein

Die Anlage ist so aufgebaut und ca. 50m lang!Geben Sie hier die Bildbeschreibung ein

Ich habe ein paar andere Fragen (z. B. hier , hier und hier ) und Artikel und Anwendungshinweise (z. B. this , this und this ) gelesen. Aber ich bin noch lange nicht in der Lage, es vollständig zu verstehen.

Dazu habe ich ein paar Fragen:

Der erste bezieht sich auf die Impedanz der Übertragungsleitung.

  • Der 120-Ohm-Standard sind differentielle Impedanz von oder single ended für jeden CAN_H und CAN_L?
  • Wie erreicht man eine Impedanz von 120 Ohm auf einer 4-Lagen-Platine? (Ich verwende den 4-Lagen-Stapel von JLCPCB, und mit ihrem Rechner erreiche ich keine 120 Ohm für Single-Ended und für Differenziale komme ich nur mit 3,5-mil-Spur + 4-mil-Abstand nahe - was nahe an ihrem absoluten Minimum liegt) .Schichtaufbau
  • Kann / sollte ich den Busspuren zusätzliche Komponenten hinzufügen, um die 120 Ohm zu erreichen?

Apropos Abschirmung:

  • Trotz Impedanz-Thema wird in der CAN-Spezifikation ein geschirmtes Twisted-Pair-Kabel empfohlen. Soll ich in diesem Fall die CAN-Leitungen besser auf einer der inneren Lagen verlegen und durch eine GND-Fläche oben, neben und unten abschirmen?

Bezüglich Twisted-Pair:

  • Wäre es sinnvoll, die Leiterbahnen auf der Platine ähnlich einem Twisted Pair zu modellieren (zGeben Sie hier die Bildbeschreibung ein

Insgesamt lassen sich die Fragen wie folgt zusammenfassen:

Welche Leiterbahnbreite, welcher Abstand auf welcher Lage ergibt das beste Ergebnis für lange CAN-Leiterbahnen auf einer 4-Lagen-Leiterplatte und wie schirme ich sie ab?

Kannst du den Boden wegschneiden und den CAN-Bus über eine durchsichtige Platine führen? Dann sind 120 Ohm einfach. Auch nur inner_layer_2 wegschneiden und eine ganze 1 mm Platine zwischen top_layer und seiner Grundplatte haben? Ein paar Gleise, die den Bus kreuzen, spielen keine Rolle, es sei denn, es handelt sich um ein Hochgeschwindigkeitssignal.
Außerdem hat 125 kHz eine Wellenlänge von 2400 m. Bei einer Buslänge von 50 m bin ich mir also nicht sicher, ob die Impedanz eine große Rolle spielt. Aber warte auf die CAN-Experten...
Ich könnte auf Layer 1 routen und Layer 2 darunter leer haben. Schicht 15 und 16 müssen jedoch eine Stromversorgungsebene und Spuren haben (Schichtnummern sind flexibel, aber mindestens 2 Schichten werden verwendet)

Antworten (2)

Ich habe nicht speziell mit CAN-Bus entworfen, aber ich habe USB-Differentialpaare und unsymmetrische WiFi-Übertragungsleitungen (2,4 GHz) implementiert.

Ihr Problem sieht aus wie eine klassische Differentialübertragungsleitung. 125 kbit/s sollten ziemlich nachsichtig sein. 1 MB/s ist härter.

Wenn Sie den Luxus einer 4-Lagen-Platine haben, führen Sie die CAN-Signale unbedingt auf Innenlagen. Dadurch erhalten Sie das Äquivalent eines abgeschirmten Kabels. Die äußeren Schichten sollten Masse- oder Stromversorgungsebenen sein. Masse- und Stromversorgungsebene sollten kapazitiv miteinander gekoppelt sein, wodurch sie für Abschirmzwecke ungefähr gleichwertig sind.

Ihre Idee, Leiterbahnen zu kreuzen, um ein "verdrehtes" Paar zu erzeugen, ist faszinierend, aber ich vermute, sie wird Ihnen mehr Kopfschmerzen bereiten: 1) Signalreflexionen an jedem Via 2) Jedes vergrabene Via ist ein potenzieller Fehlerpunkt für die Leiterplattenherstellung. #2 hängt von der Qualität Ihres Boardhouses ab. Ich würde ein traditionelles Differentialpaar (Zo = 120 Ohm) implementieren.

Für die Berechnung des Übertragungsleitungsabstands habe ich das Toolkit von Saturn PCB als sehr hilfreich empfunden: http://saturnpcb.com/pcb_toolkit/ Ich werde anmerken, dass Sie wahrscheinlich breitere Spuren benötigen, um Ihre charakteristische Impedanz von 120 zu erreichen.

Gemäß diesem TI-Dokument kann eine Nichtübereinstimmung der Kabellängen Reflexionsprobleme mit dem CAN-Bus verursachen. https://www.ti.com/lit/an/slla279a/slla279a.pdf .

Denken Sie daran, 120-Ohm-Abschlusswiderstände (über die CAN-Bus-Leitungen) am Sendeende und am letzten Empfänger am Bus vorzusehen.

Stecker: sollte in Ordnung sein, solange die Kontakte sauber sind. Trennen Sie die CAN-Bus-Pins von anderen Hochgeschwindigkeits-Pins mit einem Erdungsstift dazwischen. Ich persönlich würde auch Lötpads oder einen CAN-Anschluss einbauen, falls Sie auf Kabel zwischen den Platinen zurückgreifen müssen. Wenn ja, dann würde ich 0 Ohm Widerstände in Reihe mit den CAN-Leitungen am Hauptstecker schalten. Dies gibt Ihnen die Flexibilität, die CAN-Leitungen am Anschluss zu deaktivieren und wieder auf Kabel umzuschalten. Das Entwerfen eines Plan B ist billig, während die Leiterplatte ausgelegt wird.

Leiterbahnbreite und -abstand hängen von Ihrem PCB-Aufbau ab. Verwenden Sie das Toolkit von Saturn PCB mit der Registerkarte "Differential Pairs".

Ich würde ein Stackup wie verwenden

L1=Masse, L2=Signal/Übertragungsleitungen, L3=Power, L4=Signal bzw

L1=Masse, L2=Signal/Übertragungsleitungen, L3=Signal, L4=Strom.

Wenn Sie Kupferfüllung auf anderen Schichten haben, können Sie sie mit Stitching-Durchkontaktierungen an Masse binden. Verlegen Sie Hochgeschwindigkeitssignale nicht parallel zum Differentialpaar, es sei denn, sie sind durch eine Massefüllung (Abschirmung) getrennt. Wenn sich Hochgeschwindigkeitssignale auf benachbarten Schichten kreuzen müssen, machen Sie sie senkrecht.

Saturn-PCB v7.10

Außerdem habe ich festgestellt, dass bei billigen PCB-Stapeln, bei denen die Mikrostreifenimpedanz unzuverlässig ist, koplanare Wellenleiter eine hervorragende Alternative sind, die sich weit weniger um die Dielektrizitätskonstante des Substrats kümmert. Es nimmt tendenziell etwas mehr Platz ein, besonders wenn Sie es mit Durchkontaktierungen umzäunen, aber es funktioniert ziemlich gut.
Die von Ihnen vorgeschlagenen Stapelungen sind üblich, aber schlechte Ratschläge. Es sollte immer – ausnahmslos – neben jeder Signal- oder Stromleitung eine Erdungsschicht vorhanden sein. 4-Layer-Platinen sind knifflig, aber ein anständiger Aufbau ist: signal/pwr - gnd - gnd - signal/pwr. Differentialpaare müssen als zwei unsymmetrische Leiterbahnen mit gnd direkt daneben behandelt werden.

Um differentielle Leitungen zu verlegen, sollten Sie sie NICHT wie Twisted-Pair-Drähte entwerfen ... Vias wirken wie Induktivitäten und jede Richtungsänderung verursacht normalerweise Reflexionen. Was Sie also wollen und was das Optimum ist, ist eine einfache gerade Linie.

Normalerweise verlegen Sie Differentialleitungen nebeneinander (wenn Sie es nicht tun, ist es eine lose Kopplung ... was in einigen Fällen auch funktioniert), KEINE 90 ° -Kurven, Sie müssen beide Spuren auf der gleichen Länge (fast) und Stichleitungen halten ( können wir in diesem Fall von einigen cm sprechen - denke, Sie können die Werte in der Norm finden). Der Abstand zwischen den Linien und die Breite der Leiterbahnen müssen berechnet werden, damit Sie mit Ihrem Leiterplattenmaterial und Ihrer Schichtdicke die erforderliche Impedanz von 120 Ohm einhalten ...

Sie können versuchen, https://sourceforge.net/projects/atlc/ oder http://www.hdtvprimer.com/KQ6QV/atlc2.html zu berechnen, um differentielle Übertragungsleitungen zu berechnen.

Kicad wird auch mit einem Transmission Line Calculator oder dem guten alten http://www.hp.woodshot.com/ HP AppCad geliefert... Sie finden sogar Sachen für die normalen programmierbaren Taschenrechner.

Wenn Sie Regeln für viel anspruchsvollere Systeme wie LVDS befolgen, sollte CAN Sie nie im Stich lassen - es ist selbst in sehr rauen Umgebungen ziemlich robust.

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

Habe es nicht überprüft, aber soweit ich mich erinnere, sind diese Zahlen in Ordnung. Für eine bestimmte Busgeschwindigkeit hat man die Länge der Busleitung und die Länge eines Stubs ... schätze, auf einer Platine gibt es nie Probleme mit CAN

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

PS: Wie Mr_Engineer sagte: Sie müssen kündigen. Aber beide Enden (es ist ein echter Bus, also hört jeder Knoten zu und sendet)! beide mit 120 Ohm (es sind 60 Ohm bei Gleichstrom, aber 120 Ohm für die mittlere/dominierende Frequenz des Busses ...) - wir haben ein Produkt mit nur einer Seite abgeschlossen und es funktioniert für mehr als 20 m Leitungslänge, aber dann müssen Sie die Werte anpassen. Bleiben Sie beim Standard!