Es gibt drei Hauptkomponenten in einem CAN-Bus-Knoten:
Der CAN-Bus-Controller implementiert alle niedrigen Funktionen des Netzwerkprotokolls, ISO 11898–1, während der Transceiver mit der physischen Schicht kommuniziert. Unterschiedliche Transceiver werden für verschiedene physische Schichten benötigt, wie z.B. High-Speed-CAN, Low-Speed-Fehler-tolerantes CAN oder High-Speed-CAN mit variabler Datenrate.
In einer typischen Implementierung werden der CAN-Bus-Controller und der Mikroprozessor zu einem CAN-fähigen Mikrocontroller vereint. Externe CAN-Bus-Controller mit SPI-Schnittstelle sind auf dem Markt erhältlich, hauptsächlich hergestellt von Microchip, aber sie können oft unnötige Kosten und Komplexität hinzufügen.
In diesem Artikel werden wir uns das Schaltungsdesign vom Transceiver bis zum CAN-Bus-Stecker ansehen. Es ist Zeit, uns die Hände schmutzig zu machen und unsere CAN-Bus-Schaltung zu entwerfen!
Alle CAN-Bus-Transceiver funktionieren ähnlich, da sie sich zwischen dem Mikrocontroller (oder FPGA), der den CAN-Bus-Controller implementiert, und dem CAN-Bus selbst befinden. Dennoch gibt es einige Unterschiede, die Sie sorgfältig berücksichtigen sollten.
Eine schnelle Suche in der entsprechenden Octopart-Kategorie zeigt, dass die führenden Hersteller von CAN-Bus-Transceivern, in absteigender Reihenfolge nach der Anzahl der angebotenen ICs, NXP Semiconductors, Microchip, Texas Instruments, Maxim Integrated, Analog Devices und ST Microelectronics sind.
Alle diese Transceiver sehen zwar ähnlich aus, unterscheiden sich jedoch in ihren Funktionen und Leistungen.
Die ersten CAN-Bus-Transceiver auf dem Markt boten sehr wenig Schutz vor ESD (Electro Static Discharge)-Ereignissen. Sie erforderten, dass der gesamte I/O-Schutz mit externen Komponenten implementiert wurde.
Glücklicherweise ist dies heute nicht mehr der Fall. Hier sind einige zufällige ICs und ihre HBM (Human Body Model) ESD-Toleranz an den Bus-Pins:
Teilenummer |
Hersteller |
ESD HBM Toleranz |
ST Microelectronics |
6kV |
|
Infineon |
6kV |
|
NXP Semiconductor |
8kV |
|
Linear Technology |
25kV |
|
Maxim Integrated |
22kV |
Eine höhere ESD-Toleranz kann es Ihnen ermöglichen, auf externen Schutz zu verzichten, aber Sie sollten sich bewusst sein, dass einige zusätzliche Cent für hochwertige TVS-Dioden die Zuverlässigkeit dramatisch verbessern können.
Wenn Ihre Anwendung platzbeschränkt ist und Sie nicht viel mit ESD zu tun haben, dann ist eine All-in-One-Lösung der richtige Weg. In meinem Fall habe ich mich für eine externe TVS und einen erschwinglicheren Transceiver entschieden.
Die meisten Transceiver auf dem Markt arbeiten mit 5V, aber ICs, die für 3,3V ausgelegt sind, sind ebenfalls äußerst beliebt. Niedrigere Versorgungsspannungen sind ohne den Einsatz von DC-DC-Wandlern nicht möglich. Einige ICs, wie das MAX14883E von Maxim Integrated, beinhalten einen Logikpegel-Versorgungseingang, der die Interoperabilität mit 1,8V-Geräten unabhängig von der Versorgung des Transceivers ermöglicht.
In meinem Fall arbeitet mein MCU mit 3,3V, also werde ich dies auch für die CAN-Bus-Transceiver wählen.
Alle High-Speed-CAN-Bus-Transceiver können in kleinen Netzwerken mit bis zu 1Mbps betrieben werden. CAN-FD-Transceiver können mit bis zu 5Mbps betrieben werden, aber viele von ihnen sind auf niedrigere Geschwindigkeiten wie 2Mbps begrenzt.
Die endgültige Systemdatenrate wird durch die Buskapazität, die Zuweisung von CAN-Bus-Identifikatoren und den Typ der übertragenen CAN-Frames begrenzt. Im schlimmsten Fall liegt die effektive Baudrate normalerweise bei einem Drittel des Maximums.
Ein isolierter CAN-Bus-Transceiver kann entweder aus Sicherheitsgründen erforderlich sein. Zum Beispiel kann die Einführung einer galvanischen Isolation den nieder-spannungsteil Ihrer Schaltungen schützen, falls der Bus in Kontakt mit gefährlichen Spannungen gerät. Die gleiche Isolation kann auch die Kommunikation verbessern, indem sie Masseschleifen unterbricht und größere Unterschiede im Erdpotenzial zwischen den Knoten zulässt.
Natürlich benötigen isolierte CAN-Bus-Transceiver eine entsprechend isolierte Stromversorgung.
Viele Transceiver enthalten einen Modus-Auswahleingang, der verwendet werden kann, um den IC in einen Stromsparmodus zu versetzen und den Sender abzuschalten. Typischerweise bleibt der Empfänger aktiv, und der RXD-Pin kann verwendet werden, um einen Aufwach-Interrupt im Mikrocontroller auszulösen.
Der Modus-Auswahleingang dient manchmal auch als Steilheitskontrolle, wenn er durch einen Widerstand von mindestens einigen kOhm hoch oder niedrig gezogen wird. Die Reduzierung der Signalsteilheit, obwohl sie die Bandbreite begrenzen kann, ermöglicht es dem Transceiver, die Menge der erzeugten elektromagnetischen Interferenzen zu beschränken.
Alle nach ISO 11898–2 konformen Transceiver müssen in der Lage sein, Gleichspannungen an CANH und CANL zwischen -3V und +32V gegenüber dem Boden auszuhalten, ohne zu brechen, Transienten von -150V bis 100V zu widerstehen und mit einer Gleichtakt-Busspannung zwischen -2V und +7V zu funktionieren.
Praktisch alle ICs auf dem Markt übertreffen diese Anforderungen, wobei im Hintergrund ein inoffizieller Wettbewerb darüber stattfindet, wer die beeindruckendsten Zahlen vorweisen kann.
Hier sind einige Beispiele:
Teilenummer |
Hersteller |
Gleichspannung an CANH und CANL |
ST Microelectronics |
-5V bis +36V |
|
Infineon |
-40V bis +40V |
|
NXP Semiconductor |
-58V bis +58V |
|
Linear Technology |
+60V bis +60V |
|
Maxim Integrated |
+63V bis +63V |
Spannungen über 50V sind mittlerweile Standard, da viele Fahrzeuge mit Hybridantrieben arbeiten, die bei 48V betrieben werden, und der Transceiver sollte in der Lage sein, einem Kurzschluss des Busses zur höherspannigen Versorgungsschiene des Systems standzuhalten.
Es gibt keine strikten Regeln dafür, wie viele Knoten Sie in einem Netzwerk unterbringen können, aber einer der kritischsten Parameter wird die Eingangsimpedanz zwischen CANH und CANL an Ihrem Transceiver sein.
Eine hohe Eingangsimpedanz wird einen marginalen Einfluss auf den Bus haben und ermöglicht eine höhere Anzahl von Knoten.
Einige Transceiver implementieren umfangreiche Schutzfunktionen, wie zum Beispiel:
Die meisten CAN-Bus-Transceiver beinhalten einen Nur-Hören-Modus, der das TXD zum RXD zurückführt, ohne den Bus tatsächlich zu treiben. Diese Funktion wird oft verwendet, um die Baudrate des Busses automatisch zu bestimmen.
In meinem Design habe ich mich für einen TJA1051 entschieden, hauptsächlich weil ich sparsam bin und es einer der günstigsten ICs auf dem Markt ist. Die Produktseite finden Sie hier.
Mit dem „Herstellerteilsuche“-Panel fand ich sofort die Komponentenmodelle, komplett mit Footprint und 3D, und platzierte sie im Schaltplan. Das Modell wurde automatisch aus den Cloud-Bibliotheken von Altium 365™ heruntergeladen.
Ich muss wohl nicht erwähnen, dass wir lokale Bypass-Kondensatoren benötigen, oder?
Zusätzlich können einige extra kleine Kondensatoren mit typischerweise 40 bis 100pF an den CANH- und CANL-Leitungen, die mit der Erde verbunden sind, helfen, ESD-Energie zu absorbieren und die EMI-Resilienz zu verbessern. Wie immer führt eine erhöhte Buskapazität zu einer verringerten Busgeschwindigkeit, erhöhter Belastung der Ausgangsstufe des Transceivers und erhöhtem Stromverbrauch.
Der CAN-Bus sollte an beiden Enden mit einem 120-Ohm-Widerstand abgeschlossen werden. Natürlich könnten wir die Leistung korrekt berechnen (1/4W standardmäßig, 1/2W wenn wir paranoid sind), unseren niedlichen kleinen Widerstand platzieren und es dabei belassen. Aber warum sollten wir es uns einfach machen?
Eine ausgefeiltere Technik, die bei nahezu allen branchenerprobten CAN-Bus-Platinen, die ich bisher gesehen habe, zum Einsatz kommt, ist die geteilte Terminierung.
Bei der geteilten Terminierung werden zwei 60-Ohm-Widerstände in Serie verwendet, was insgesamt 120 Ohm ergibt. Der elektrische Knotenpunkt zwischen den beiden Widerständen wird über einen Kondensator, üblicherweise von 4,7nF, mit dem Boden verbunden.
Der Wert des Kondensators wurde berechnet, um eine -3db-Grenzfrequenz bei der Grundfrequenz des Netzwerks zu erhalten.
In meinem Fall sollte das Netzwerk eine Baudrate von 1Mbit/s haben. Unter der Annahme des Worst-Case-Szenarios, wenn das Netzwerk eine Sequenz von wechselnden Bits (01010101) überträgt, wird das Signal eine Rechteckwelle mit einer Frequenz von 500kHz sein, oder gleich der Hälfte der Baudrate.
Da wir den Widerstand bei 60 Ohm kennen, können wir somit den Kondensator berechnen.
Wenn wir den Wert unseres Kondensators annähern müssen, wird ein etwas kleinerer weniger mit unserem wertvollen Signal interferieren. Daher 4,7nF, was der am weitesten verbreitete Wert ist.
Wenn Sie eine Bibliothek von passiven Komponenten benötigen, empfehle ich von ganzem Herzen die Celestial Library von Mark Harris. Sie ist kostenlos, umfangreich und sorgfältig kuratiert.
Wenn Ihr System nicht starken ESD ausgesetzt ist, könnte der im Transceiver-IC enthaltene Schutz alles sein, was benötigt wird.
TVS (Transient Voltage Suppressor) Dioden sind aufgrund ihrer niedrigen äquivalenten parallelen Kapazität eine gängige Wahl.
Andere Überspannungsschutzgeräte, wie MOVs, haben oft eine hohe parasitäre Kapazität, die die Datenraten des Busses begrenzen kann, insbesondere bei Bussen mit vielen Knoten.
Mehrere speziell für den CAN-Bus entworfene TVS-Dioden sind auf dem Markt erhältlich, zum Beispiel NUP2105L von ON Semiconductor, welches ich mich entschieden habe, in diesem Design zu verwenden.
Was den Transceiver betrifft, so habe ich das Modell mit einem Klick aus den Altium 365 Bibliotheken mithilfe des Herstellerteilsuchfeldes platziert, ohne das Schaltsymbol und den Footprint zeichnen zu müssen.
Wäre Ihre Schaltung ohne Schutz, würde der gesamte EMI-Strom direkt über Ihren Stecker in Ihren Transceiver fließen und dann zurück durch die Masseebene. Das ist es, was der Strom machen möchte, denn das ist der Weg des geringsten Widerstands.
Alle Ihre Schutzkomponenten sollten so nah wie möglich an diesem Pfad sein, um die Schleifenfläche nicht zu vergrößern. Zusätzlich sollte der gesamte Schutz so nah wie möglich am Stecker und am Rand der Platine sein, um zu verhindern, dass Störgeräusche in den Rest der Schaltung gekoppelt werden.
Natürlich ist es nicht möglich, alles direkt in der Nähe des Steckers zu platzieren, daher müssen wir priorisieren. Die allgemeine Faustregel ist, die Komponente, die sich mit dem „schlimmsten“ EMI-Störer zuerst befassen muss, zu platzieren.
In unserem Fall müssen TVS-Dioden mit Ereignissen mit hoher Geschwindigkeit und hohem Strom umgehen. Da schnelle Impulse reich an hochfrequenten Komponenten sind, würden sie, wenn sie ungehindert auf unsere Platinen gelangen, mit jeder verfügbaren Leiterbahn koppeln und den Betrieb stören.
Also kommt die TVS zuerst.
Wenn wir die Abschlusswiderstände nicht in der Mitte hätten, würde die gemeinsame Modusdrossel als zweites gehen.
Auf unserer Beispiel-PCB gibt es noch Raum für Verbesserungen. Die TVS-Diode könnte um 180 Grad gedreht werden, um die ESD-Schleifenfläche weiter zu reduzieren. Die Kondensatoren C5 und C6 könnten ebenfalls um 180 Grad gedreht und ein kleines Stück nach rechts verschoben werden.
Jeder Leitfaden zum PCB-Layout enthält Hinweise wie „Ground Planes dies“ oder „Ground Planes das“, und wenn Sie die elektromagnetische Interferenz (EMI) weit von dem empfindlichen Bauch Ihrer Platinen fernhalten möchten, kommen Sie nicht darum herum.
Es muss eine Massefläche direkt unter dem Signal liegen, das Sie erden, um den Weg der geringsten Impedanz so kurz wie möglich zu halten. Ihre TVS-Dioden sollten die Impulse direkt zur Massefläche ableiten, die über eine Verbindung mit geringer Induktivität mit dem Kabelschirm (falls vorhanden) verbunden ist.
Es macht wenig Sinn, all unser hart verdientes Geld für Kondensatoren auszugeben, wenn deren Wirkung durch die Induktivität der Masseleiterbahnen zunichte gemacht wird.
In diesem Design habe ich Vias am Rand des Pads verwendet. Im Gegensatz zur Via-in-Pad-Technik erfordert dies keinen zusätzlichen Schritt in der Herstellung der PCB und erhöht somit nicht die Kosten. Das Via muss abgedeckt werden; andernfalls würde die Lötpaste hineinfließen, und das Pad würde nicht ordnungsgemäß benetzt werden.
Dokumentation zu den Via-Eigenschaften in Altium Designer finden Sie hier.
Nehmen wir an, wir haben jetzt Stunden damit verbracht, Artikel von zweifelhaften Figuren zu lesen, Transceiver zu recherchieren, zu testen und unseren perfekten CAN-Bus-Teilschaltkreis zu validieren. Was nun?
Der erste Schritt besteht darin, Ihren Schaltkreis in einem einzigen Schaltplan-Dokument zu entwerfen, wobei Sie Ports für Ein- und Ausgänge verwenden, ähnlich wie Sie es für hierarchisches Design tun würden.
Verwenden Sie das Explorer-Panel, um einen neuen Ordner „Managed Schematic Sheets“ zu erstellen.
Sobald Ihr Ordner erstellt wurde, haben alle Benutzer in Ihrer Organisation Zugriff darauf, und Sie können mit dem Hochladen des Schaltplans fortfahren.
Sie können jetzt Ihr verwaltetes Schaltplanblatt in jedem Projekt platzieren.
Ihr neues verwaltetes Schaltplanblatt wird durch das „Wiederverwendung“-grüne Symbol unterschieden.
Wenn Sie wissen möchten, warum alles blau statt gelb und rot ist, lesen Sie meinen vorherigen Artikel über Design-Styling.
Eine optionale „schwache“ Terminierung, zum Beispiel 1,3 kOhm, kann helfen, die EMI-Resilienz von Knoten mit einem langen Stub-Abstand zu verbessern. Der gleiche Widerstand trägt jedoch dazu bei, das Netzwerk zu belasten, reduziert die Anzahl der Knoten, verringert die endgültige nominale Impedanz des Busses und reduziert die maximale Geschwindigkeit.
Wenn Sie nicht kostenbeschränkt sind und der Eingangsschutz für Sie von größter Bedeutung ist, sollten Sie in Erwägung ziehen, eine zweite Schutzstufe hinzuzufügen:
Ein MOV (Metalloxid-Varistor) oder GDT (Gasentladungsröhre), um höhere Energie als das, was der TVS bewältigen kann, „aufzunehmen“.
Ein strombegrenzendes Gerät zwischen dem MOV/GDT und dem Transceiver, wie ein Hochimpuls-Widerstand, ein Varistor oder ein TBU® (ein ausgefallener Halbleiter-Varistor, verkauft von Bourns).
Es wäre jedoch immer zu bedenken, dass diese Geräte Ihre äquivalente Buskapazität erhöhen und Ihre Datenübertragungsraten senken sowie den Stromverbrauch erhöhen könnten.
Standardmodus-Drosseln sind der am häufigsten verwendete Filtertyp auf CAN-Bus, und sie funktionieren großartig, aber sie haben einige Nachteile, die Sie berücksichtigen sollten.
Gleichtakt-Drosseln können Resonanzen mit der parasitären Kapazität des CAN-Bus erzeugen, was zu erhöhtem Rauschen in einigen spezifischen Frequenzbändern führt. Dieser Effekt kann die EMI-Eigenschaften von CAN-Bus-Geräten unvorhersehbar machen, da die Induktivität in Gleichtakt-Drosseln selten genau angegeben wird und die parasitäre Kapazität mit der Kabellänge stark variieren kann. Wird ein ungeschirmtes Kabel verwendet, kann die Kapazität je nach Nähe des Kabels zu geerdeten Metalloberflächen variieren.
Wie wir alle wissen, verhalten sich Gleichtakt-Induktoren im Gleichtaktbetrieb als Induktoren. Na klar. Einige Fehlerbedingungen, wie ein Kurzschluss zu Strom oder Masse, können hohe transiente Gleichtaktströme verursachen. In einigen Fällen kann die durch die Induktivität der Gleichtakt-Drossel erzeugte Überspannung die CAN-Bus-Transceiver beschädigen. Diese Überspannungen können ziemlich unangenehm zu debuggen sein, da sie nach dem Überspannungsschutz entstehen, der typischerweise am Rand der Platine platziert ist.
Der dritte Nachteil von Drosseln… sie können teuer sein. Hochgeschwindigkeits-Differenzsignale erfordern eine sehr geringe Stromleckage.
Einige IC-Hersteller, insbesondere Texas Instruments, setzen auf isolierte und hochgradig EMI-tolerante Geräte für „drossellose“ CAN-Bus-Netzwerke.
Ich mag sie wirklich sehr, also habe ich mich für eine Common-Mode-Drossel entschieden, die speziell für CAN-Bus-Anwendungen entwickelt wurde.
Ich muss wohl verliebt in den CAN-Bus sein. Mit seiner endlosen Flexibilität und der extremen EMI-Resistenz ist er zweifellos einer der spannendsten Standards der Welt.
Mit Altium Concord Pro können Sie Ihre Schaltplanschemata nahtlos innerhalb Ihrer Organisation teilen, was die Wiederverwendung von Designs ermöglicht und den Ingenieursaufwand zur Einführung neuer Produkte minimiert.
Haben Sie weitere Fragen? Rufen Sie einen Experten bei Altium an.