Suchen

Feldbus CAN FD – Mehr Performance bei gleicher Verkabelung

Autor / Redakteur: Renate Klebe-Klingemann* / Dipl. -Ing. Ines Stotz

Mit der Weiterentwicklung von CAN zu CAN FD lassen sich leistungsfähige Applikationen einfach realisieren. Gerade dort, wo abgeschlossene Maschineneinheiten bessere Performance mit wenig Aufwand erhalten sollen, ist dies eine Option.

Firmen zum Thema

Der Advanced CAN Controller (Esd ACC) unterstützt einen 64 Bit Timestamp und kann einen 100-prozentigen Busload generieren.
Der Advanced CAN Controller (Esd ACC) unterstützt einen 64 Bit Timestamp und kann einen 100-prozentigen Busload generieren.
(Bild: Esd Electronics)

Der CAN-Bus, ursprünglich für die Automobilindustrie entwickelt, ist als Automatisierungsbus in vielen Branchen Zuhause. Jedoch stellt die niedrige Datenrate von 1 Mbit/s bei Netzwerklängen bis 40 m und die Begrenzung der Nutzdaten auf 8 Byte vielfach eine Hürde in CAN-Anwendungen dar. Besonders bei komplexen elektronischen Steuergeräten, beim Herunterladen von Software oder bei Servomotor-Steuerungen ist eine höhere Bandbreite gefordert.

Bildergalerie

Wieder einmal war die Automobilindustrie die treibende Kraft und lies das CAN-Protokoll zum CAN FD mit flexibler Datenrate weiterentwickeln. Durch die Standardisierung in der ISO 11898-1:2015 war dann der Grundstein für leistungsfähige CAN FD-Anwendungen gelegt.

Dies erlaubt Geschwindigkeiten bis zu 10 Mbit/s und überträgt bis zu 64 Byte Nutzdaten. Das vergrößerte Datenfeld von 64 Byte entspricht zudem der kleinsten Nachricht im Ethernet-Protokoll. Hierdurch lassen sich Gateways zwischen CAN FD und Ethernet einfacher realisieren. Auch sind zusammengehörige Daten in einem Datenpaket transparent übertragbar und müssen nicht per Software synchronisiert werden. Das führt zu Vereinfachungen bei den Anwendungsprogrammen und beim Systemdesign. Der CAN FD-Bus verfügt über ein einfaches Daten-Link-Layer-Protokoll, kostengünstige Controller- und Transceiver-Chips mit niedrigem Energiebedarf und bleibt gleichzeitig robust und zuverlässig.

Von CAN einfach auf CAN FD umstellen

Das Prinzip von CAN FD beruht auf der Idee, die Taktrate zwischen der Bus-Arbitrierung und dem Acknowledgement-Feld eines CAN-Frames zu erhöhen. Da in dieser Phase nur ein Teilnehmer senden darf, bemisst sich die maximale Übertragungsgeschwindigkeit lediglich an der internen Verzögerungszeit des CAN-Transceiver und der Datenleitung. Der Aufbau des abwärtskompatiblen CAN FD-Frame unterscheidet sich nur gering vom klassischen CAN-Frame. Demzufolge lassen sich Maschinen und Anlagenteilen, die schon CAN verwenden, einfach auf CAN FD umstellen: Die vorhandene Verkabelung ist weiter nutzbar und es sind nur geringe Änderungen in der Programmierung erforderlich.

Neu im Frame sind die Bits BRS (Bit-Rate Switch) im Arbitration-Feld zur Erkennung der höheren Datenrate und das zum Kontroll-Feld gehörende ESI (Error State Indicator) zum Anzeigen des Error-Modus. Außerdem wurde das Bit FDF (FD Format) zu Erkennung der Datenfeldlänge definiert sowie ein drei Bit großer Stuffbit-Zähler hinzugefügt. Hierbei zählt der Sender die Stuffbits und überträgt das Ergebnis gray-kodiert als 3-bit-Wert. Der Empfänger zählt ebenfalls die eingehenden Stuffbits und vergleicht die Werte. Ein der Sequenz angehängtes Paritätsbit sowie ein festes Stuffbit im CRC-Feld erhöhen zusätzlich die Zuverlässigkeit der Übertragung. Das RTR-Bit hingegen wird ignoriert, da das CAN FD-Protokoll keine Remote-Frames unterstützt.

Nach der Korrektur der Fehlererkennungsmechanismen im CAN FD Standard (ISO 11898-1:2015), unter anderem durch Einfügen des Stuffbit-Zählers, erreicht das Protokoll die Hamming-Distanz von sechs. Bis zu fünf beliebig verteilte Bitfehler werden erkannt und führen zu einer automatischen Wiederholung der Nachricht. Damit ist das Protokoll auch für sicherheitsrelevante Bereiche interessant.

CAN FD-Controller für FPGA (Esd ACC)

Gängige CAN-Controller wurden in der Vergangenheit über 8 oder 16 Bit breite Busse an das Hostsystem angeschlossen. Da der Schreib- und besonders der Lesezugriff auf diese Controller, im Vergleich zur Zykluszeit moderner CPUs, eher langsam sind, hat Esd Electronics einen eigenen FPGA-basierten CAN-Controller entwickelt, den Advanced CAN Controller (Esd ACC). In der CAN FD-Version unterstützt er das CAN FD-Protokoll gemäß ISO11898-1:2015 mit Übertragungsraten zwischen 10 kbit/s und 5 Mbit/s. Durch die FPGA-Technologie lassen sich auch kundenspezifische Leistungsmerkmale berücksichtigen.

Leistungsstarkes Interface mit CAN FD

Das CAN-Interfaces CAN-PCIe/402-FD mit CAN FD-Transceiver und Anschluss zum PCI-Express-Bus basiert auf dem Esd ACC. Er hat einen 16 CAN-Frames tiefen TX FIFO. Dieser erlaubt das Generieren einer 100-prozentigen Buslast mit echter Back-to-Back-Übertragung, auch mit Nicht-Echtzeit-Betriebssystemen. Durch das 32-bit Register-Interface können CAN-Frames mit minimalen Registerzugriffen gesendet und empfangen werden.

Weitere Leistungsmerkmale sind bitgenaue CAN-Übertragung und nachrichtengenauer Abbruch der Übertragung bei minimaler Verzögerung beispielsweise für Timeouts. Abgebrochene CAN FD-Nachrichten werden im FIFO nicht durch das niedrig priorisierte TX-Signal blockiert. Außerdem entlasten das Bus-Mastering in RX-Richtung sowie die optionale Integration eines 32-Bit-Microcontrollers die Host-CPU. Der große FIFO für Lese- und Schreibvorgänge sowie ein präzises Timestamping ermöglichen weitere Anwendungen z. B. für höhere CAN-Protokolle. Der Esd ACC IP-Core ist für Xilinx Spartan und Altera Cyclone FPGAs verifiziert.

Die CAN-Board-Familie CAN-PCIe/402-FD enthält universell einsetzbare PC-Boards, die für den PCIe-Bus entwickelt wurden und wahlweise ein, zwei oder vier CAN FD-Interfaces gemäß ISO 11898-2 bereitstellen. Für die Datenübertragung zum Host-Speicher nutzt sie das Bus-Mastering. Dadurch wird eine Verringerung der Latenzzeit während der I/O-Transaktionen, insbesondere durch die höhere Datenrate und der Reduzierung des CPU-Loads, erreicht.

Durch die Verwendung von MSI (Message Signaled Interrupts) kann das PC-Board beispielsweise in Hypervisor-Umgebungen arbeiten. Zudem unterstützen die Boards hochauflösende Hardware-Timestamps. Das Monitoring- und Diagnose-Tool CANreal vereinfacht das CAN FD-Handling. Die Boards arbeiten unter Windows XP, Vista,7,8 und 10 sowie Linux. Die dazu benötigten CAN Layer 2 Treiber sind im Lieferumfang enthalten. Für Realtime-Betriebssysteme wie VxWorks, QNX, RTX und RTX64 sind Treiber optional erhältlich.

SPS: Halle 5, Stand 131

Quellen:

[1] „CAN Error Injection, a Simple but Versatile Approach“ Hauke Webermann, Andreas Block (esd electronics gmbh) https://esd.eu/sites/default/files/CAN_Error_Injection.pdf

[2] „CAN Send and Receive with Hardware Timestamping“ Hauke Webermann (esd electronics gmbh) https://esd.eu/sites/default/files/paper_16_icc_timestamping_hauke_webermann.pdf

[3] „ACC, a Next Generation CAN Controller“ Reinhard Arlt, Tobias Höger, Andreas Block (esd electronics gmbh) https://esd.eu/sites/default/files/esdACC_Next_Generation_CAN_Controller_0.pdf

[3] „CAN FD is it, but still new ideas are popping up“, Holger Zeltwanger, CAN Newsletter 2/2017 https://can-newsletter.org/uploads/media/raw/c8bf37298607d350ffacfb4108731406.pdf

* Dipl.-Ing. (FH) Renate Klebe-Klingemann, Technische Redakteurin, Esd Electronics

(ID:46154224)