{"id":111,"date":"2016-04-24T13:18:17","date_gmt":"2016-04-24T11:18:17","guid":{"rendered":"http:\/\/www.fenstermoeblierung.de\/wordpress\/sbdekoder\/?p=111"},"modified":"2016-04-24T13:18:17","modified_gmt":"2016-04-24T11:18:17","slug":"ein-bisschen-ingenieurspornografie","status":"publish","type":"post","link":"https:\/\/sbdekoder.de\/?p=111","title":{"rendered":"Ein bisschen Ingenieurspornografie"},"content":{"rendered":"<p>es gibt Neuigkeiten und die m\u00f6chte ich nat\u00fcrlich niemandem vorenthalten. Aber zuvor m\u00f6chte ich noch ein paar grunds\u00e4tzliche technische Details zum CAN Bus loswerden und genauer erl\u00e4utern, warum er f\u00fcr unsere Anwendung so hervorragend geeignet ist.<br \/>\nDer folgende Beitrag ist also nicht besonders spannend und bestimmt auch nicht vollst\u00e4ndig, daher kann man ihn auch getrost \u00fcberspringen.<br \/>\n<!--more--><br \/>\nDer CAN Bus ist als Multi-Master-Bus ausgelegt. Das bedeutet, dass nur gleichberechtigte Teilnehmer an der Kommunikation beteiligt sind. Es gibt keinen Busmaster, der die Regeln f\u00fcr den Datenverkehrt vorgibt. Damit nicht alle am Kabel wild durcheinander schreien, wird von jedem Busteilnehmer eine gewisse Disziplin erwartet.<br \/>\nAls weitere Besonderheit wird eine Nachricht in den Bus nicht etwa direkt Adressiert, sondern erstmal provokant in den Raum gestellt. Im Unterschied zu IP-Basierten Netzwerken, in denen immer eine Senderadresse und eine Empf\u00e4ngeradresse angegeben wird, um sicherzustellen, dass die gesendeten Datenpakete auch tats\u00e4chlich nur einen Empf\u00e4nger etwas angehen, wird im CAN Protokoll nicht so gro\u00dfen Wert darauf gelegt, dass andere Teilnehmer ausgeschlossen werden. Alle k\u00f6nnen zuh\u00f6ren und alle Daten mitlesen. Au\u00dferdem wird nicht mit einer Senderadresse oder Identifikationsnummer gearbeitet, sondern die Datenpakete werden qualitativ beschrieben.<br \/>\nUm die ganze Angelegenheit zu vereinfachen, betrachten wir einfach kurz das Beispiel eines modernen Autos. Zig kleine Sensoren und Aktoren werden gesteuert und alle bringen irgendwie ein Mindestma\u00df an eingebauter Intelligenz mit (irgendwo muss ja der Preis f\u00fcr so ein Fahrzeug gerechtfertigt sein).<br \/>\nAlle Ger\u00e4te (stimmt nicht ganz) h\u00e4ngen nun an einem gemeinsamen Netzwerk (stimmt so auch nicht). Nun entscheidet sich der Fahrer w\u00e4hrend der Fahrt das Bremspedal zu bet\u00e4tigen. Nehmen wir mal an, er rollt an eine rote Ampel heran.<br \/>\nDas Bremspedal wird nun einen \u00d6ldruck auf die Bremsleitung geben und die Bremse f\u00e4ngt an zu wirken. Im Stillen wird allerdings am Pedal selbst noch ein Poti oder Schalter bet\u00e4tigt, der einem Steuerger\u00e4t sagt, dass eben eine Bremsung eingeleitet wurde.<br \/>\nH\u00e4tte der Hersteller des Autos ein IP-basiertes Netzwerk verbaut, w\u00fcrde jetzt eine physikalische Netzwerkadresse (MAC-Adresse) eine IP-Adresse zugewiesen bekommen (zum Beispiel irgendwas mit 192.168.bla.bla). Hinter dieser xxx.xxx.bla.bla verbirgt sich jetzt das Steuerger\u00e4t des Bremspedals. Im Steuerger\u00e4t m\u00fcsste eine Liste hinterlegt sein, welche anderen Ger\u00e4te im Netzwerk sich daf\u00fcr interessieren k\u00f6nnten, dass gerade jemand gebremst hat. Nacheinander wird nun die Nachricht:<br \/>\n\u201eHallo 192.168.bla.blub;JEMAND_TRITT_MICH;Liebe Gr\u00fc\u00dfe 192.168.bla.bla;\u201c<br \/>\nan die Ger\u00e4te blub, bl\u00f6dsinn und bob gesendet.<br \/>\nMan erkennt gleich die Schw\u00e4che. Die Teilnehmer m\u00fcssten schonmal anders hei\u00dfen und die Belastung im Netz ist relativ hoch, weil viele Ger\u00e4te genau die gleiche Botschaft erhalten.<br \/>\nInfrastrukturell m\u00fcsste ein intelligentes Netzwerkger\u00e4t in der Mitte des Verkehrs sitzen und alle Nachrichten auf die richtigen Leitungen im Netz schicken. Die Teilnehmer, die die Nachricht empfangen haben, antworten jetzt vielleicht mit einem:<br \/>\n\u201eHi 192.168.bla.bla;\u201cTUT_MIR_LEID\u201c;Hochachtungsvoll 192.168.bla.blub\u201c<br \/>\nUnd die Netzlast vergr\u00f6\u00dfert sich nochmals.<br \/>\nDer Hersteller des zuvor beschriebenen Autos war aber schlau und hat sich f\u00fcr ein anderes System entschieden. Die Kommunikation \u00fcber den CAN-Bus<br \/>\nWieder betrachten wir den Vorgang, dass der Fahrer an die Ampel heranrollt und die Bremse dr\u00fcckt. Das Steuerger\u00e4t des Bremspedals schickt jetzt eine Nachricht an den Bus:<br \/>\n\u201eBremsen;20 %\u201c<br \/>\nMan beachte den Unterschied. Das Bremspedal sagt nicht, dass es das Bremspedal ist, sondern nur, dass es berechtigt ist, eine Aussage zum Pedalweg zu machen. Zus\u00e4tzlich k\u00f6nnte es vielleicht noch sagen, dass Der Fahrer Turnschuhe anhat oder dass er irgendwo reingetreten ist.<br \/>\nDie Nachricht wird nun in den Bus gerufen. Das Steuerger\u00e4t f\u00fcr die R\u00fcckleuten schreibt mit und reagiert auf die Botschaft insofern, dass die Bremsleuchten eingeschaltet werden. Ein ABS Steuerger\u00e4t macht sich bereit f\u00fcr ein m\u00f6gliches Blockieren der R\u00e4der, weil es gerade geh\u00f6rt hat, dass jemand langsamer werden m\u00f6chte. Ein Sensor am Bremsklotz h\u00f6rt die Botschaft ebenfalls und \u00fcberpr\u00fcft, ob sein anliegender Bremsdruck tats\u00e4chlich mit dem genannten Pedalweg \u00fcbereinstimmt.<br \/>\nDie Botschaft wird auch vom Radio mit gro\u00dfem Interesse aufgenommen, da es generell als das neugierigste Bauteil im Auto gilt. Nach kurzem \u00dcberlegen entscheidet es sich aber daf\u00fcr, die Nachricht zu ignorieren.<br \/>\nDer Inhalt der Nachricht wird also in der Identifizierung beschrieben. Diese kann je nach Busversion 11 oder 29 Bit lang sein. Darauf folgen die Nutzdaten, die bis zu 8 byte lang sein d\u00fcrfen.<br \/>\nUm die \u00dcbertragungssicherheit zu gew\u00e4hrleisten wird die Nachricht mit einer Checksumme versehen, die jedes Ger\u00e4t \u00fcberpr\u00fcfen l\u00e4sst, ob das was gerade erz\u00e4hlt wurde valide ist. Au\u00dferdem gibt es verschiedene Mechanismen, die wiederholtes St\u00f6ren des Busverkehrs unterbinden und einzelne Nachrichten quittieren.<br \/>\nUm eine Kommunikation der Teilnehmer zu erm\u00f6glichen muss also erstmal eine einheitliche Sprache gesprochen werden. Au\u00dferdem m\u00fcssen alle im gleichen Tempo sprechen. Da wird keine Taktleitung haben (wie beispielsweise bei seriellen Computerschnittstellen nach RS232), muss man sich vorher einigen, mit welche Geschwindigkeit der Bus betrieben wird. Der Highspeed CAN kann bis zu 1 Mbit\/s fahren, allerdings geht das zu Lasten der m\u00f6glichen Leitungsl\u00e4nge. Das ist nat\u00fcrlich nach heutigen Ma\u00dfst\u00e4ben eine l\u00e4cherliche Geschwindigkeit, wenn man bedenkt, dass Netzwerke zwischen 100 mbit und 10 gbit\/s der Stand der Technik sind. (Es sei denn, man ist bei Unitymedia).<br \/>\nder Lowspeed CAN wird meistens bei 125 kbit\/s laufen gelassen. Das erm\u00f6glicht eine Leitungsl\u00e4nge von bis zu 500 m. 125 kbit\/s klingen jetzt erstmal nicht so schnell, aber man bedenke, dass wenn die SMS vom Mobilfunkanbieter kommt, dass man schon sein ganzes LTE-Volumen aufgebracht hat, surft man bei den meisten Providern nur noch bei 64kbit und das reicht ja f\u00fcr WhatsApp auch noch.<\/p>\n<p>Und da hat der Frosch auch schon die Locken. Der CAN-Bus kann fantastische Leitungsl\u00e4ngen \u00fcberbr\u00fccken und ist sehr \u00fcbertragungssicher. Die Hardware ist spottbillig (Bustreiber und Transciever kosten zusammen unter 2 Euro) und der Verkabelungsaufwand ist durchaus \u00fcberschaubar.<br \/>\nUm die Fantasie anzuregen m\u00f6chte ich kurz ein paar Denkanst\u00f6\u00dfe in den Raum werfen.<br \/>\n-RF-Identifikation (hatten wir ja schon mal angesprochen)<br \/>\n-R\u00fcckmeldung von allem was nicht bei \u201adrei\u2018 auf\u2019m Baum ist (Weichen, Gleis, Endlage, Achsenzahl)<br \/>\n-Ausgabe der R\u00fcckmeldung auf Schaltausg\u00e4ngen (optische R\u00fcckmeldung mit LEDs oder so)<br \/>\n-Macroausl\u00f6sung per externem Schalter (Nothaltbuzzer, Besucheraktionen wie im Miwula, Gleisbildstellwerk)<br \/>\n-optische Geschwindigkeitsmessung(mit CCD Chips wie in optischen M\u00e4usen oder so)<br \/>\n-usw.<\/p>\n<p>Man merkt es vielleicht, ich bin schon ganz aus dem H\u00e4uschen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>es gibt Neuigkeiten und die m\u00f6chte ich nat\u00fcrlich niemandem vorenthalten. Aber zuvor m\u00f6chte ich noch ein paar grunds\u00e4tzliche technische Details zum CAN Bus loswerden und genauer erl\u00e4utern, warum er f\u00fcr unsere Anwendung so hervorragend geeignet ist. Der folgende Beitrag ist also nicht besonders spannend und bestimmt auch nicht vollst\u00e4ndig, daher kann man ihn auch getrost [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":82,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1,2],"tags":[],"class_list":["post-111","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-allgemein","category-spasscan"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/sbdekoder.de\/wp-content\/uploads\/2016\/03\/Spa%C3%9FCAN-logo-1.png?fit=500%2C500&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8oh8H-1N","_links":{"self":[{"href":"https:\/\/sbdekoder.de\/index.php?rest_route=\/wp\/v2\/posts\/111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sbdekoder.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sbdekoder.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sbdekoder.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sbdekoder.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=111"}],"version-history":[{"count":0,"href":"https:\/\/sbdekoder.de\/index.php?rest_route=\/wp\/v2\/posts\/111\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sbdekoder.de\/index.php?rest_route=\/wp\/v2\/media\/82"}],"wp:attachment":[{"href":"https:\/\/sbdekoder.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sbdekoder.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sbdekoder.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}