c3d2-web/content/news/pentacast-50-can.xml

145 lines
12 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE item SYSTEM "http://www.c3d2.de/dtd/c3d2web.dtd">
<item title="pentacast 50: CAN-Bus" date="2015-01-08T22:16:00" author="a8, eisenrah">
<image title="Pentacast">../pentacast.png</image>
<p>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.</p>
<p>Sehr spontan entschieden wir uns, auf dem <link href="https://events.ccc.de/congress/2014/wiki/Main_Page">31C3</link> im dortigen <link href="http://das-sendezentrum.de">Sendezentrum</link> 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.</p>
<resource title="pentacast 50: CAN-Bus" size="66288222" type="audio/mpeg" url="http://ftp.c3d2.de/pentacast/pentacast-50-can-bus.mp3">
<alternative size="43192221" type="audio/mp4" url="http://ftp.c3d2.de/pentacast/pentacast-50-can-bus.m4a"/>
<alternative size="79343255" type="audio/ogg" url="http://ftp.c3d2.de/pentacast/pentacast-50-can-bus.ogg"/>
<alternative size="39297098" type="audio/opus" url="http://ftp.c3d2.de/pentacast/pentacast-50-can-bus.opus"/>
<chapters xmlns="http://podlove.de/simple-chapters">
<chapter start="00:00:00" title="Begrüßung"/>
<chapter start="00:01:14" title="Einleitung"/>
<chapter start="00:01:50" title="Motivation und Beispiele"/>
<chapter start="00:03:01" title="Blinkenlights"/>
<chapter start="00:06:25" title="Was ist ein Bus?"/>
<chapter start="00:11:43" title="Wie funktioniert der CAN-Bus?"/>
<chapter start="00:23:28" title="CAN-Identifier"/>
<chapter start="00:31:25" title="CAN-Frames"/>
<chapter start="00:36:44" title="Bitstuffing"/>
<chapter start="00:42:23" title="CAN FD"/>
<chapter start="00:43:28" title="Kabellängen"/>
<chapter start="00:45:03" title="Reisestationen eines Datenpakets"/>
<chapter start="00:52:29" title="Security und höhere Protokolle"/>
<chapter start="00:55:42" title="Do it yourself - Tools"/>
<chapter start="01:01:50" title="Do it yourself - Steuerungen"/>
<chapter start="01:03:00" title="mehrere CAN-Busse und CAN-Gateways"/>
<chapter start="01:06:29" title="Organisationen, Standardisierung"/>
</chapters>
</resource>
<addendum>
<p><strong>Shownotes</strong></p>
<ul>
<li>Diesmal mit Frank aka <link href="https://twitter.com/41i3n8">alien8</link> und Friedemann aka <link href="https://twitter.com/eisenrah">eisenrah</link></li>
<li><link href="https://de.wikipedia.org/wiki/Controller_Area_Network">CAN 2.0</link></li>
<li><link href="https://de.wikipedia.org/wiki/Sensor">Sensoren</link> und <link href="https://de.wikipedia.org/wiki/Aktor">Aktoren</link></li>
<li><link href="https://de.wikipedia.org/wiki/Relais">Relais</link></li>
<li><link href="https://de.wikipedia.org/wiki/Motor">Motor</link></li>
<li><link href="https://de.wikipedia.org/wiki/Projekt_Blinkenlights">Blinkenlights</link></li>
<li><link href="https://de.wikipedia.org/wiki/Wireless_Local_Area_Network">WLAN</link></li>
<li><link href="https://de.wikipedia.org/wiki/Denial_of_Service">DoS</link></li>
<li>
Beispiele für Anwendungen neben der Automobilindustrie:
<ul>
<li>Automatisierung: <link href="https://de.wikipedia.org/wiki/CAN_in_Automation">CAN in Automation</link></li>
<li>Aufzüge: CANopen-Lift</li>
<li>Flugzeuge: <link href="https://de.wikipedia.org/wiki/CANaerospace">CANaerospace</link></li>
</ul>
</li>
<li><link href="https://de.wikipedia.org/wiki/Bus_%28Datenverarbeitung%29">BUS</link> = Binary Unit System</li>
<li><link href="https://de.wikipedia.org/wiki/Ethernet">Ethernet</link></li>
<li><link href="https://de.wikipedia.org/wiki/Transmission_Control_Protocol">TCP</link>/<link href="https://de.wikipedia.org/wiki/Internet_Protocol">IP</link></li>
<li><link href="http://www.itwissen.info/definition/lexikon/Abschlusswiderstand-terminator.html">Abschlusswiderstand</link></li>
<li><link href="https://de.wikipedia.org/wiki/Master/Slave">Master/Slave</link></li>
<li><link href="https://en.wikipedia.org/wiki/Multi-master_bus">Multimaster</link></li>
<li><link href="https://de.wikipedia.org/wiki/Parallele_Daten%C3%BCbertragung">parallele</link> vs. <link href="https://de.wikipedia.org/wiki/Serielle_Daten%C3%BCbertragung">serielle</link> Übertragung</li>
<li><link href="https://de.wikipedia.org/wiki/Topologie_(Rechnernetz)">Topologie</link></li>
<li>
für CAN interessante Norm: <link href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=33422">ISO 11898</link>
<ul>
<li>Highspeed-CAN (<link href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=33423">ISO 11898-2</link>)</li>
<li>Lowspeed-CAN (<link href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=36055">ISO 11898-3</link>)</li>
</ul>
</li>
<li><link href="https://de.wikipedia.org/wiki/Reflexion_(Physik)">Reflexion</link> am Kabel</li>
<li><link href="https://de.wikipedia.org/wiki/Symmetrische_Signal%C3%BCbertragung">differentielles Signal</link></li>
<li><link href="https://www.mikrocontroller.net/articles/CAN#Bustreiber_.28CAN-Transceiver.29">CAN-Transceiver</link></li>
<li><link href="https://de.wikipedia.org/wiki/Transistor-Transistor-Logik">TTL</link>-<link href="https://de.wikipedia.org/wiki/Logikpegel">Pegel</link></li>
<li><link href="https://www.mikrocontroller.net/articles/CAN#CAN_Controller">CAN-Controller</link></li>
<li><link href="https://de.wikipedia.org/wiki/Elektromagnetische_Vertr%C3%A4glichkeit">EMV</link></li>
<li><link href="https://de.wikipedia.org/wiki/Carrier_Sense_Multiple_Access">CSMA</link></li>
<li><link href="https://de.wikipedia.org/wiki/Hub_(Netzwerktechnik)">Hub</link></li>
<li><link href="https://de.wikipedia.org/wiki/Arbiter">Arbitrierung</link></li>
<li>
CAN-Identifier
<ul>
<li>11 Bit (CAN2.0A)</li>
<li>29 Bit (CAN2.0B)</li>
</ul>
</li>
<li><link href="https://de.wikipedia.org/wiki/Broadcast">Broadcast</link></li>
<li>
Frame-Typen
<ul>
<li><link href="https://de.wikipedia.org/wiki/Controller_Area_Network#Daten-Frame">Daten-Frame</link></li>
<li><link href="https://de.wikipedia.org/wiki/Controller_Area_Network#Remote_Frame">Remote-Frame</link></li>
<li><link href="https://de.wikipedia.org/wiki/Controller_Area_Network#Error_Frame">Error-Frame</link></li>
<li><link href="https://de.wikipedia.org/wiki/Controller_Area_Network#Overload_Frame">Overload-Frame</link></li>
</ul>
</li>
<li><link href="https://www.mikrocontroller.net/articles/Statemachine">Statemachine</link></li>
<li><link href="https://de.wikipedia.org/wiki/On-Board-Diagnose">ODB-2</link></li>
<li><link href="https://de.wikipedia.org/wiki/Bitstopfen">Bitstuffing</link></li>
<li><link href="https://de.wikipedia.org/wiki/Serial_Peripheral_Interface">SPI</link></li>
<li>rezessiver und dominater Pegel</li>
<li><link href="http://www.elektroniknet.de/automotive/bussysteme/artikel/105590/">CAN FD</link></li>
<li><link href="https://de.wikipedia.org/wiki/Local_Interconnect_Network">LIN-Bus</link></li>
<li><link href="https://de.wikipedia.org/wiki/Zyklische_Redundanzpr%C3%BCfung">CRC-Prüfsumme</link></li>
<li><link href="https://de.wikipedia.org/wiki/System-on-a-Chip">SoC</link></li>
<li><link href="https://de.wikipedia.org/wiki/Controller_Area_Network#ACK-Slot">Acknowledgement-Bit</link></li>
<li><link href="http://www.itwissen.info/definition/lexikon/Sicherungsschicht-DLL-data-link-layer.html">Sicherungsschicht</link></li>
<li><link href="https://de.wikipedia.org/wiki/SAE_J1939">J1939</link></li>
<li>
Selberbasteln: Was braucht man?
<ul>
<li>CAN-Transceiver, z.B. <link href="http://ww1.microchip.com/downloads/en/DeviceDoc/21667f.pdf">MCP2551</link>, <link href="http://www.nxp.com/documents/data_sheet/TJA1040.pdf">TJA1040</link></li>
<li>CAN-Controller, z.B. <link href="http://ww1.microchip.com/downloads/en/DeviceDoc/21801d.pdf">MCP2515</link>, <link href="http://www.nxp.com/documents/data_sheet/SJA1000.pdf">SJA1000</link> oder µC mit integriertem CAN</li>
</ul>
</li>
<li>Der <link href="https://de.wikipedia.org/wiki/Banana_Pi">Banana Pi</link> hat bereits einen CAN-Controller integriert.</li>
<li>Empfehlenswert auf Linux: <link href="https://de.wikipedia.org/wiki/SocketCAN">SocketCAN</link> von VW Research</li>
<li>Kommandozeilen-Tools: <link href="https://gitorious.org/linux-can/can-utils">can-utils</link></li>
<li>Auch <link href="https://www.wireshark.org/">Wireshark</link> unterstützt CAN.</li>
<li>USB-CAN-Interfaces wie z.B. <link href="http://www.peak-system.com/PCAN-USB.199.0.html">PCAN-USB</link> von PEAK-System</li>
<li><link href="https://de.wikipedia.org/wiki/MOST-Bus">MOST</link></li>
<li><link href="https://de.wikipedia.org/wiki/FlexRay">FlexRay</link></li>
<li><link href="https://de.wikipedia.org/wiki/Kraftfahrt-Bundesamt">Kraftfahrt-Bundesamt</link></li>
<li><link href="http://www.firecan.info/">FireCAN</link></li>
<li><link href="https://de.wikipedia.org/wiki/CANopen">CANopen</link></li>
<li><link href="https://de.wikipedia.org/wiki/DeviceNet">DeviceNet</link></li>
<li><link href="https://de.wikipedia.org/wiki/SafetyBUS_p">SafetyBUS</link></li>
<li><link href="https://de.wikipedia.org/wiki/EnergyBus">EnergyBus</link></li>
</ul>
<p><strong>Weiterführende Links und Literatur:</strong></p>
<ul>
<li><link href="http://www.bosch-semiconductors.de/media/pdf_1/canliteratur/can2spec.pdf">CAN Specification 2.0B</link></li>
<li><link href="http://www.bosch-semiconductors.de/media/pdf_1/canliteratur/can_fd_spec.pdf">CAN FD Specification 1.0</link></li>
<li><link href="https://elearning.vector.com/vl_can_introduction_de.html">gute Einführung in CAN bei Vector</link></li>
<li><link href="https://www.kernel.org/doc/Documentation/networking/can.txt">SocketCAN Dokumentation auf kernel.org</link></li>
<li>'Script Your Car' Vortrag auf dem 30C3 - <link href="https://events.ccc.de/congress/2013/Fahrplan/system/attachments/2277/original/ScriptYourCarNoAnimation.pdf">Slides</link></li>
<li><link href="http://illmatics.com/car_hacking.pdf">Adventures in Automotive Networks and Control Units</link> by Dr. Charlie Miller and Chris Valasek </li>
<li><link href="http://chadgibbons.com/2013/12/29/hacking-the-jeep-interior-can-bus/">Hacking the Jeep Interior CAN-Bus</link></li>
<li><link href="http://fabiobaltieri.com/2013/07/23/hacking-into-a-vehicle-can-bus-toyothack-and-socketcan/">Hacking into a Vehicle CAN bus (Toyothack and SocketCAN)</link></li>
</ul>
<p><strong>fertige Shields:</strong></p>
<ul>
<li><link href="https://www.sparkfun.com/products/10039">CAN-BUS Shield</link> (Sparkfun) für Arduino</li>
<li><link href="http://www.watterott.com/de/Arduino-CANdiy-Shield">CANdiy-Shield V2</link> für Arduino</li>
<li><link href="http://www.seeedstudio.com/depot/CANBUS-Shield-p-1240.html">CAN-BUS Shield</link> (Seeedstudio) für Arduino</li>
<li><link href="http://skpang.co.uk/catalog/pican-canbus-board-for-raspberry-pi-p-1196.html">PICAN CAN-Bus Board</link> für Raspberry Pi</li>
</ul>
</addendum>
</item>