CANpie FD – ein CAN Treiber für alle Microcontroller

Die Idee zu einem universellen CAN Treiber für Embedded Anwendungen entstand aus der Situation, dass diverse CAN Higher Layer Protocols (CANopen, SAE J1939, etc.) auf unterschiedlichen Microcontrollern laufen sollten, ohne dabei den Code des Protokollstacks für das jeweile CAN-Interface modifizieren zu müssen.

Die Realisierung dieser Idee heißt CANpie FD, was für CAN Programming Interface Environment steht. Mit der Einführung von CAN FD durch Bosch wurde das API erweitert um die zusätzlichen Frame Formate verarbeiten zu können. Das API des Treibers ist in C geschrieben und ist an die Funktionsweise eines virtuellen CAN Controllers angepasst.

CANpie FD Logo

CANpie FD Logo

Der Treiber unterstützt sowohl den Empfang und das Versenden von CAN-Botschaften über FIFOs als auch die Verwendung von Mailboxen. Insbesondere der Zugriff auf den CAN-Bus über Mailboxen ist die ideale Basis für die Implementierung von CANopen oder DeviceNet Protokollstacks. In Abhängigkeit von den Möglichkeiten des CAN-Controllers ist die Mailbox Funktionalität ohne Laufzeit-Overhead (durch Hardware-Filterung) möglich. Das API unterstützt bis zu 255 CAN Kanäle, was in der Praxis mehr als ausreichend ist sowie den Zugriff auf die Error State Machine des CAN Controllers.

 

Die komplette CANpie FD Projekt ist auf GitHub gehostet. Die HTML Dokumentation ist unter https://canpie.github.io aufrufbar.

Das CANpie FD Projekt ist unter der Apache Lizenz in der Version 2.0 veröffentlicht. Damit ist es dem Nutzer möglich den Quellcode zu modifizieren und in eigenen kommerziellen Produkten zu verwenden, ohne diese Änderungen zu veröffentlichen.

 
Für den Einsatz mit CAN HLPs (CANopen, SAE J1939. etc.) stehen CANpie FD Treiber für über 150 Microcontroller zur Verfügung.
 

 
Update des Blogs am 19.11.2018

Stichworte: , , ,

Geschrieben in: CAN, Fachbeiträge


Hinterlasse eine Antwort