Auf dem Hackerkongress 31C3 in Hamburg ergab sich die Möglichkeit, zusammen mit Frank Becker ein einstündiges Gespräch zum Thema CAN-Bus zu führen. Wir haben den Podcast unter etwas erschwerten Bedingungen aufgezeichnet: parallel lief eine andere Sendung, die per Lautsprecher verstärkt wurde. Außerdem wurden wir während der Aufnahme 2x angesprochen, aber wir haben uns trotzdem nicht beirren lassen… 😉
Alles in allem ein Tipp für alle technisch Interessierten.
Achtung! Der Podcast geht in die Tiefe, wie immer beim Pentacast.
Alle Links zur Sendung finden sich weiter unten in den Shownotes.
Download als MP3 – weitere Audioformate hier
Wenn es ganz schnell gehen soll: Download per Bittorrent
Viel Spaß beim Hören, Feedback ist gern gesehen.
Bitte die Kommentarfunktion hier im Blog oder auf Pentamedia benutzen.
Hintergrund:
Das Controller Area Network (CAN) hat sich seit seiner Entwicklung in den 80er Jahren gut etabliert, auch weit über den eigentlichen Einsatzzweck in der Automobilindustrie hinaus. Damals war das Ziel, die Länge und Komplexität der Kabelbäume in PKWs zu reduzieren, um dadurch vor allem Gewicht zu sparen und den Montageaufwand zu verringern. Heutzutage sind Transceiver und Controller für CAN leicht und günstig zu haben. Auch Mikrocontroller mit integriertem CAN-Interface werden von vielen verschiedenen Herstellern angeboten.
Shownotes:
- Diesmal mit Frank aka alien8 und Friedemann aka eisenrah
- CAN 2.0
- Sensoren und Aktoren
- Relais
- Motor
- Blinkenlights
- WLAN
- DoS
- Beispiele für Anwendungen neben der Automobilindustrie:
- Automatisierung: CAN in Automation
- Aufzüge: CANopen-Lift
- Flugzeuge: CANaerospace
- BUS = Binary Unit System
- Ethernet
- TCP/IP
- Abschlusswiderstand
- Master/Slave
- Multimaster
- parallele vs. serielle Übertragung
- Topologie
- für CAN interessante Norm: ISO 11898
- Highspeed-CAN (ISO 11898-2)
- Lowspeed-CAN (ISO 11898-3)
- Reflexion am Kabel
- differentielles Signal
- CAN-Transceiver
- TTL–Pegel
- CAN-Controller
- EMV
- CSMA
- Hub
- Arbitrierung
- CAN-Identifier
- 11 Bit (CAN2.0A)
- 29 Bit (CAN2.0B)
- Broadcast
- Frame-Typen
- Statemachine
- ODB-2
- Bitstuffing
- SPI
- rezessiver und dominater Pegel
- CAN FD
- LIN-Bus
- CRC-Prüfsumme
- SoC
- Acknowledgement-Bit
- Sicherungsschicht
- J1939
- Selberbasteln: Was braucht man?
- Der Banana Pi hat bereits einen CAN-Controller integriert.
- Empfehlenswert auf Linux: SocketCAN von VW Research
- Kommandozeilen-Tools: can-utils
- Auch Wireshark unterstützt CAN.
- USB-CAN-Interfaces wie z.B. PCAN-USB von PEAK-System
- MOST
- FlexRay
- Kraftfahrt-Bundesamt
- FireCAN
- CANopen
- DeviceNet
- SafetyBUS
- EnergyBus
Weiterführende Links und Literatur:
- CAN Specification 2.0B
- CAN FD Specification 1.0
- gute Einführung in CAN bei Vector
- SocketCAN Dokumentation auf kernel.org
- ‚Script Your Car‘ Vortrag auf dem 30C3 – Slides
- Adventures in Automotive Networks and Control Units by Dr. Charlie Miller and Chris Valasek
- Hacking the Jeep Interior CAN-Bus
- Hacking into a Vehicle CAN bus (Toyothack and SocketCAN)
fertige Shields:
- CAN-BUS Shield (Sparkfun) für Arduino
- CANdiy-Shield V2 für Arduino
- CAN-BUS Shield (Seeedstudio) für Arduino
- PICAN CAN-Bus Board für Raspberry Pi