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
Daten-Frame
Remote-Frame
Error-Frame
Overload-Frame
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?
CAN-Transceiver, z.B. MCP2551, TJA1040
CAN-Controller, z.B. MCP2515, SJA1000 oder µC mit integriertem CAN
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)