Fahrzeugdaten übertragen mit dem Raspberry Pi

Hardware

Für so eine Aufgabe möchte man einen leistungsfähigen Server verbauen. Im Renneinsatz relevant sind aber in erster Linie die Größe, das Gewicht, der Stromverbrauch und nicht zuletzt der Preis. Da bietet sich fast zwangsläufig ein Raspberry Pi an. Auch im neuesten Rennfahrzeug von joanneum racing graz [1] sammelt ein solcher die Messdaten, wertet sie aus und stellt sie dem Boxenteam bereits während des Rennens zur Verfügung.

Daneben kommen ein aktiver USB-Hub, ein WLAN-Stick, eine WLAN-fähige Kamera, ein CAN-USB-Adapter sowie ein UMTS-Stick zur Datenübertragung an die Box zum Einsatz – und unvermeidlicherweise ein paar Kabel (Abbildung 4).

Abbildung 4: Die Hardware-Komponenten im Testaufbau.

CAN unter Linux

Der Linux-Kernel bringt bereits etliche Treiber für den CAN-Bus mit, als einheitliche Abstraktionschicht lassen sich diese als Netzwerk-Devices ansprechen (Abbildung 5). Die Treiber beweisen übrigens, dass nicht nur private Kernel-Hacker und IT-Firmen am freien Betriebssystemkern mitprogrammieren – der Code wurde von Volkswagen Group Electronic Research beigetragen.

Abbildung 5: SocketCAN im Linux Kernel. (Bild: Wikimedia Commons)

Auch der verwendete Treiber für den USB-CAN Adapter der Firma Peak ist eigentlich in dem Linux-Kernel enthalten – allerdings nicht beim Standard-Raspbian. Man muss daher das Modul selbst kompilieren, aber auch das erweist sich als nicht ganz einfach: Im Standard-Raspbian-Image [2] versieht ein von der Raspberry Pi Foundation modifizierter, speziell optimierter Kernel (3.6.11+) den Dienst, der im Repository weder die passenden Kernel-Sourcen noch die zugehörigen Header führt.

Es gilt also, erst einmal auf den Standard-Kernel von Raspbian zu wechseln (Listing 2, Zeile 1) und anschließend in der Datei /boot/config.txt den neuen Kernel einzutragen (kernel=vmlinuz-3.6-trunk-rpi). Nach einem anschließenden Neustart fehlt zwar noch der Peak-Treiber [3] (Listing 2, Zeile 2), aber es liegen zumindest die passenden Header-Files vor, sodass man den Treiber nun übersetzen und installieren kann (Listing 3).

Listing 2

 

$ sudo apt-get install linux-image-3.6-trunk-rpi linux-headers-3.6-trunk-rpi libpopt-dev
$ grep CAN_PEAK /boot/config-3.6-trunk-rpi
# CONFIG_CAN_PEAK_USB is not set

Listing 3

 

$ wget http://www.peak-system.com/fileadmin/media/linux/files/peak-linux-driver-7.9.tar.gz
$ tar xvzf peak-linux-driver-7.9.tar.gz
$ cd peak-linux-driver-7.9
$ make PCI=NO_PCI_SUPPORT USB=USB_SUPPORT
$ sudo make install
$ sudo depmod -a

Damit liegt das Modul nun einsatzbereit vor. Man lädt es entweder selbst mit sudo modprobe pcan oder steckt den CAN-Adapter ein – das Modul wird dann automatisch geladen. Im Fall eines Kernel-Updates darf man allerdings nicht vergessen, den CAN-Treiber wieder zu kompilieren und neu zu installieren.

Der PCAN-Treiber legt bei der Installation automatisch die Datei /etc/modprobe.d/pcan.conf an. Um die Bitrate des CAN-Busses auf 1 Mbit/s zu erhöhen, muss man bei diesem Modul die Geschwindigkeit beim Laden des Moduls angeben – automatisiert klappt das beispielsweise mit options pcan bitrate=0x0014 in dieser Datei. Werte für andere Geschwindigkeiten finden Sie in der Tabelle "PCAN-Modul: Geschwindigkeiten" (entnommen aus dem PCAN-Quellcode). Bei anderen CAN-Modulen erreichen Sie dasselbe mit folgendem Befehl:

# ip link set can0 type can bitrate 1000000

PCAN-Modul: Geschwindigkeiten

Bitrate

Moduloption

1000 kbit/s

0x0014

500 kbit/s

0x001C

250 kbit/s

0x011C

125 kbit/s

0x031C

100 kbit/s

0x432F

50 kbit/s

0x472F

20 kbit/s

0x532F

10 kbit/s

0x672F

5 kbit/s

0x7F7F

Zum Zugriff auf das CAN-Netzwerk-Device gibt es im Userspace die Can-Utilities [4], die man nach dem Herunterladen des Quellcodes mit make; sudo make install installiert. Zum Auslesen des CAN-Busses dient das Tool candump (siehe Listing 1). Ein Datenpaket auf dem CAN-Bus besteht aus einer 11 Bit langen CAN-ID, es folgen eine Längenangabe (1 bis 8 Byte) sowie die Daten. Bei Bedarf ließen sich mit cansend sogar eigene Nachrichten in den CAN-Bus schreiben.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 8 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

08/2019
Smarte Hacks

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Immer der Reihe nach

    Mit einer einfachen Schaltung testen Sie Bausteine, die über den SPI-Bus miteinander kommunizieren.

  • Einzigartig

    Eine MAC-Adresse ermöglicht die Kommunikation im Netzwerk. Der 24AA02E48 liefert sie für Setups, die aus grundlegenden Komponenten bestehen.

  • Steinkuchen

    Der Raspberry Pi hat viele Fans, doch nicht ohne Grund sehnen sich viele Anwender nach einem RasPi 4. Der Rock Pi 4 übertrumpft den RasPi 3 in Sachen Leistung um Längen und schlägt sich auch in der Praxis gut.

  • Kerngeschäft

    Der Einstieg in die Welt der Mikrocontroller fällt nicht ganz leicht. Mit dem Nucleo F401RE haben Sie jedoch ein Entwicklerboard samt abgestimmter Entwicklungsumgebung an der Hand.

  • Himbeer-Geräte

    Mit Maus und Tastatur im weiß-roten Raspberry-Look macht die Raspberry Pi Foundation das eigene Angebot an Peripheriegeräten für den Mini-Rechner komplett.

  • Unter Kontrolle

    PiCockpit ist eine speziell auf den RasPi zugeschnittene Online-Monitoring-Lösung. Wir werfen einen ersten Blick auf den brandneuen und in Ausbau befindlichen kostenlosen Dienst.

  • Ins rechte Licht gesetzt

    Selbst ohne eigenen Garten holen Sie sich Pflanzen mithilfe von LEDs in jeden Raum und sehen ihnen mit dem RasPi beim Wachsen zu.

  • Helligkeit nach Maß

    Wer bei wechselnden Lichtverhältnissen nicht ständig die Beleuchtung manuell nachregeln möchte, der spannt dafür einen PiXtend ein.

  • Geschrumpft

    Kleine Bildschirme gibt es zwar viele, aber der Support von Raspbian ist überraschend schlecht. Mit ein paar Tricks erzielen Sie trotzdem ein optimales Ergebnis.

  • Brüllwürfel

    Kompakt-Stereoanlagen mit CD-Spieler und Kassettendeck sind inzwischen oft ein Fall für den Recyclinghof – oder für die digitale Wiederbelebung mit einem RasPi und etwas Geschick.