{"id":102,"date":"2016-03-30T17:56:07","date_gmt":"2016-03-30T15:56:07","guid":{"rendered":"http:\/\/www.fenstermoeblierung.de\/wordpress\/sbdekoder\/?p=102"},"modified":"2016-03-30T17:56:07","modified_gmt":"2016-03-30T15:56:07","slug":"wer-oder-was-ist-eigentlich-dieser-can","status":"publish","type":"post","link":"https:\/\/sbdekoder.de\/?p=102","title":{"rendered":"Wer oder was ist eigentlich dieser CAN?"},"content":{"rendered":"<p>Da wir gerade an der Automatisierung unserer Gartenbahnanlage arbeiten, kam nun die Frage auf, wie man am effektivsten und g\u00fcnstigsten die Belegtstatus r\u00fcckmeldet und sich dabei noch alle M\u00f6glichkeiten der R\u00fcckmeldungen offen halten kann. S88 ist nicht besonders \u00fcbertragungssicher, nicht besonders schnell und vor allem g\u00e4nzlich unflexibel. LocoNet ist zwar gut und sch\u00f6n, aber die die Anzahl der Hersteller ist arg begrenzt und deshalb legt man sich schnell fest. Au\u00dferdem ist die Vorgabe durch die Netz-Infrastruktur sehr streng. Au\u00dferdem gibt es noch viele andere R\u00fcckmeldesysteme, die allerdings eher Insell\u00f6sungen sind (LENZ-Bus &#8211; tolles Ding).<br \/>\nunser Pflichtenheft f\u00fcr ein R\u00fcckmeldesystem ist also etwas universeller und umfangreicher und w\u00e4chst st\u00e4ndig.<\/p>\n<p><!--more--><br \/>\nWenn man \u00fcber den Tellerrand schaut, gibt es diverse Kommunikationsnetzwerke, die als Basis f\u00fcr ein R\u00fcckmeldesystem taugen. Hierbei sollte man aber schauen, wie gro\u00df der technische Aufwand ist, diese f\u00fcr eine Modellbahn nutzbar zu machen. Da mittlerweile schon jede elektrische Zahnb\u00fcrste aus irgendeinem Grund mit dem Internet verbunden sein muss, damit man seine Facebookgemeinde am Putzerfolg teilhaben lassen kann und w\u00e4hrend des Gurgelns sich von anderen liken oder disliken oder anfeuern lassen muss, sind Netzwerkkomponenten wie Sand am Meer vorhanden. TCP ist ein tolles Protokoll, um jede Menge Daten zu \u00fcbertragen und zu empfangen. Es w\u00e4re bestimmt f\u00fcr eine R\u00fcckmeldung am Gleis uneingeschr\u00e4nkt zu benutzen, und, auch wenn es hier nicht gern geh\u00f6rt wird, geht das auch sehr gut per Funk.<br \/>\nIch bin mir sicher, dass uns eine Netzinfrastruktur (kabelgebunden oder WLAN) zum Ziel gef\u00fchrt h\u00e4tte, allerdings w\u00e4re es doch etwas doppelmoralisch gewesen, wenn man LocoNet f\u00fcr zu aufw\u00e4ndig in Infrastruktur und Peripherie erkl\u00e4rt und dann eine Netzwerkverkabelung mit TCP\/IP Anwendungsschicht als die L\u00f6sung pr\u00e4sentierte.<br \/>\nAu\u00dferdem: Man ahnt es bereits, ich wollte wieder irgend etwas selber bauen und, auch wenn der Aufwand \u00fcberschaubar ist, sind die Anspr\u00fcche an IP Netzwerke einfach zu hoch und nicht praktisch: Zu teuer, zu komplex und viel zu gro\u00df. Man schie\u00dft mit Kanonen auf Spatzen.<\/p>\n<h2><strong>CAN!<\/strong><\/h2>\n<p>klingt lustig, aber wer ist dieser CAN? Der Freund von Barbie? &#8211; Nein, der ist nicht gemeint. CAN ist ein Industriebusstandard, der Haupts\u00e4chlich f\u00fcr Steuerungsaufgaben in gr\u00f6\u00dferen Anlagen, oder &#8211; daher auch eher bekannt &#8211; in der Automobiltechnik weit verbreitet ist. Der CAN-Bus ist ein sog. Multimaster-Bus, der sich dadurch auszeichnet, mit sehr geringem technischen Aufwand betrieben werden zu k\u00f6nnen und au\u00dferdem sehr fehlersichere \u00dcbertragungen m\u00f6glich macht. Hinzu kommen vergleichsweise gute \u00dcbertragungsraten auf schier unendlichen Signalstrecken (jenseits der 100 Meter ist auch nicht schlimm). Was den CAN-Bus genau technisch ausmacht, werd ich bei Interesse sp\u00e4ter nochmal zusammentragen, aber das w\u00fcrde im ersten Moment hier etwas den Rahmen sprengen.<br \/>\nInsgesamt klingt es doch nach einem idealen System f\u00fcr unsere Modellbahn. Die Bauteile sind g\u00fcnstig, die Verkabelung ist geradezu banal (einfach nur zwei Leitungen), und die Bandbreiten sind selbst f\u00fcr gr\u00f6\u00dfere Datenmengen ausreichend ( na klar, 4K Video wird man nicht streamen k\u00f6nnen).<br \/>\nEs haben sich schon diverse Leute Gedanken zu dem CAN-Bus auf der Modellbahnanlage gemacht, aber alle machen einen entscheidenen Fehler: Sie wollen Geld damit verdienen. Da mir die vergangenen Jahre mit den Spa\u00dfbahndecodern so viel Spa\u00df gemacht haben, wollte ich aber lieber wieder experimentieren, und wenn es nicht funktioniert lieber daraus lernen. Daher haben wir uns zusammengesetzt und mit spitzem Bleistift gesammelt was alles m\u00f6glich w\u00e4re und was gemacht werden muss, also die K\u00fcr von der Pflicht getrennt.<br \/>\nMit einem kleinen Augenzwinkern ist dabei ein System heraus gekommen.<\/p>\n<p>Wobei, wie zuvor die Universaldecoder gezeigt haben, nur eine Hardwareplattform entsteht, die zu Allem und nichts kompatibel ist. Da es einfach ist, zu nichts kompatibel zu sein, fangen wird damit an. Die genauen technischen Daten des Buses sind im Moment also noch gar nicht festgelegt; m\u00fcssen sie auch nicht, denn alle Hardwarebausteine werden einen Bootloader haben, so dass man jederzeit ohne zus\u00e4tzliche Hardware ein Programm auf ihnen laden kann, das mit anderen Systemen harmoniert.<\/p>\n<p>Zimo baut seit geraumer Weile mit CAN-Bussen herum, allerdings \u00fcberwiegend f\u00fcr Steuerungsaufgaben und kaum f\u00fcr R\u00fcckmeldungen. Roco verkauft Zentralen mit CAN-Anschluss, wobei hier nicht ganz klar ist, ob da nicht einfach jemand \u00fcber einen Stecker drei Buchstaben geschrieben hat, denn weder funktioniert die Schnittstelle vern\u00fcnftig, noch sagt irgendwer etwas dar\u00fcber. Hier besch\u00e4ftigt man sich eher damit Lokf\u00fchrerst\u00e4nde im AppStore zu verkaufen. (das ist gar keine Bitterkeit, ich rede immer so)<br \/>\nSollten die Herrschaften auf die Idee kommen doch mal etwas in die Technik zu investieren, sollen die Bauteile vom Spa\u00dfCAN darauf programmierbar sein. Und dazu nat\u00fcrlich OpenSource.<\/p>\n<h2><strong>Was gibt es denn schon?<\/strong><\/h2>\n<p>Im Moment im Testeinsatz: Ein Interface (oder wie man bei uns im Breisgau sagt &#8211; d\u00e4sch Interfatze), aus einem Bustreiber und einem Arduinomodul, womit die Daten vom CAN-Bus in den Computer gebracht werden.<\/p>\n<p>Das ist nat\u00fcrlich noch nicht elegant, aber braucht sich auch nicht zu verstecken. Im Moment sind f\u00fcr das Interface zwei verschiedene Modi programmiert &#8211; im Arduinoslang spricht man von sogenannten \u201eSketches\u201c, weil programmieren muss jetzt hip sein und \u201eSourcecode\u201c klingt nach irgendwelchen pickeligen Nerds mit Flaschenbodenbrillengl\u00e4sern, die im Keller sitzen, eine Sonnenallergie haben und mit Mitte 30 noch Jungfrau sind. &#8211; Der erste Modus ist der generic-Modus, in dem in einem bisher nur grob umrissenen Protokoll die Daten des CAN umgesetzt werden, sortiert werden und \u00fcber die USB Schnittstelle am PC ausgegeben werden. Gro\u00dfartige Sache, aber kein Steuerungsprogramm versteht was das Interface da redet. der zweite Modus ist der HSI-Modus. Halt, stop! HSI ist doch von LDT &#8211; So ist es. Im HSI-Modus maskiert sich das Interaface als High Speed Interface von Littfinski und sendet die Daten genau so, wie man es vom HSI erwarten w\u00fcrde. Allerdings liegen die Daten nicht am S88 Strang an, sondern kommen \u00fcber den schnelleren CAN-Bus. Der Vorteil: Funktioniert mit allen Steuerungsprogrammen und kann ohne Probleme nahtlos integriert werden. Der Nachteil: Es funktionieren nur die klassischen R\u00fcckmeldungen, nichts anderes.<\/p>\n<p>Das zweite fertige Modul: Ein S88 &#8211; CAN Konverter:<\/p>\n<p>Wozu man den ben\u00f6tigt? Wir haben nat\u00fcrlich noch jede Menge S88 Melder im Keller, die wir alle einmal selbst ge\u00e4tzt, gebohrt und gel\u00f6tet haben, kurz: Um die es einfach zu schade w\u00e4re, sie in den Ruhestand zu schicken, zumal alle wunderbar funktionierten.<br \/>\nIst es nicht aber widerspr\u00fcchlich, ein ordin\u00e4res Schieberegister auf dem modernen CAN-Bus zu adaptieren? Geht nicht der eigentliche Nutzen vollkommen verloren? Oder anders: Wozu muss man auf den N\u00fcrburgring, wenn man KIA Picanto f\u00e4hrt?<br \/>\nDer S88 Bus reicht bei uns allerdings nur die 10 cm vom Controller des Melders bis zum Controller des Adapters. Dahinter liegt wieder der CAN-Bus an, und es wird nur jeweils ein Melder am S88-Strang betrieben. Der Vorteil: Der S88 Bus kann mit maximaler Geschwindigkeit betrieben werden (die Ausleseintervalle des Schieberegisters wachsen proportional zur L\u00e4nge des Melderstrangs). Die Fehler entstehen haupts\u00e4chlich bei langen Str\u00e4ngen mit vielen Modulen. Der CAN-Adapter dagegen meldet erst etwas auf den Bus, wenn es erforderlich ist, nicht permanent (wie beim s88. Der Nachteil: In einer bestehenden S88 Installation muss schon noch ein bisschen rumgew\u00fchlt werden, um einen CAN-Bus zu integrieren.<\/p>\n<h2><strong>Das ist z. Zt. in Arbeit:<\/strong><\/h2>\n<p>CAN-Melder:<br \/>\nNat\u00fcrlich der eigentliche R\u00fcckmelder. Der muss ganz schnell her und ist auch bereits in Produktion. Auf einem Controller\/Melder werden bei aktueller Hardware 16 Eing\u00e4nge m\u00f6glich sein (der CAN-Bus kann mehr und es wird auch nicht beschr\u00e4nkt, aber die Hardware muss ja untergebracht werden). Dabei ist die R\u00fcckmeldemethode egal. Die Plattform besteht aus der Busseite und einem Controller mit angeschlossenem Optokoppler auf der Eingangsseite. Hieran kann nun entweder ein beliebiger Sensor angeschlossen oder mit einer L\u00f6tbr\u00fccke eine Diodenkaskade zum Stromschn\u00fcffeln angeschlossen werden, wie bei den R\u00fcckmeldern anderer Hersteller. Viele haben ja eine nat\u00fcrliche Abneigung gegen das Stromschn\u00fcffeln mit dieser Technik, weil sie das Werk des Teufels sei und man schlie\u00dflich 1,2 Volt verliert. Deshalb kann dieser Melder aber alles verstehen. Hallsensor, Reedkontakt, Lichtschranke, Microschalter. Entprellt wird per Software. Durch die bipolaren Optokoppler, kann der Prozessor sogar die Polarit\u00e4t des Signals erkennen und dank eines Software-UARTs k\u00f6nnen RailCom Signale in allen Abschnitten ausgewertet werden (sofern vorhanden). Also, eine Lok f\u00e4hrt in einen getrennten Versorgunsabschnitt (z.B. ein Bahnhofsgleis) und ein RailCom Broadcast gibt vor, dass der Dekoder seine Adresse zur\u00fccksenden soll. Der CAN-Melder erkennt das Signal und gibt aus, dass in das betreffende Bahnhofsgleis gerade die Adresse XYZ eingefahren ist, mit der Geschwindigkeit X.<\/p>\n<p>RFID Reader:<br \/>\nDank des ST95HF Chipsets f\u00fcr RFID und NFC Tags, kann man sehr leicht entsprechende Tags und Transponder auslesen. Diese Daten gehen dann schnurstraks auf den CAN Bus und der Computer wei\u00df, wer gerade zur Arbeit gekommen ist. Oder vielleicht noch interessanter, welcher Transponder gerade an der Lesestelle vorbeigezogen wurde. Auf diese Art und Weise werden ganze Zugzusammenstellungen mit L\u00e4nge, erlaubter H\u00f6chstgeschwindigkeit, Zugart etc eingelesen.<\/p>\n<h2><strong>Das k\u00f6nnte man noch machen<\/strong><\/h2>\n<p>Vieles, vieles mehr. Unsere Liste ist lang und einiges ist auch schon \u00fcber das Planungsstadium hinaus, aber bevor da nicht zumindest ein lauff\u00e4higer Prototyp vorliegt, will ich nichts versprechen, was nachher nicht funktioniert.<\/p>\n<p>Ich hoffe, dass der eine oder andere Leser bis hierhin gefolgt ist, da im nachhinein betrachtet der Text doch arg lang geworden ist und bestimmt nicht f\u00fcr jeden interessant. Im Moment bin ich aber Feuer und Flamme f\u00fcr das Projekt und begeistert \u00fcber die ersten Erfolge und funktionierenden Bausteine unserer R\u00fcckmeldung, so dass ich einfach einmal einen kleinen Einblick in die aktuellen Entwicklungen geben m\u00f6chte. Vielleicht folgt ja bald Weiteres. Vielleicht interessiert sich ja noch jemand so sehr wie ich daf\u00fcr \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Da wir gerade an der Automatisierung unserer Gartenbahnanlage arbeiten, kam nun die Frage auf, wie man am effektivsten und g\u00fcnstigsten die Belegtstatus r\u00fcckmeldet und sich dabei noch alle M\u00f6glichkeiten der R\u00fcckmeldungen offen halten kann. S88 ist nicht besonders \u00fcbertragungssicher, nicht besonders schnell und vor allem g\u00e4nzlich unflexibel. LocoNet ist zwar gut und sch\u00f6n, aber die [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"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-102","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-spasscan"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8oh8H-1E","_links":{"self":[{"href":"https:\/\/sbdekoder.de\/index.php?rest_route=\/wp\/v2\/posts\/102","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=102"}],"version-history":[{"count":0,"href":"https:\/\/sbdekoder.de\/index.php?rest_route=\/wp\/v2\/posts\/102\/revisions"}],"wp:attachment":[{"href":"https:\/\/sbdekoder.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sbdekoder.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sbdekoder.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}