pentacast 50: CAN-Bus
a8, eisenrah @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.
Sehr spontan entschieden wir uns, auf dem 31C3 im dortigen Sendezentrum einen Podcast zu diesem Thema aufzunehmen. Wir wünschen viel Spaß beim Zuhören und hoffen, dass die Audioqualität für euch in Ordnung ist.
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