Gast
#223417
Hallo, erst mal an alle ein Dankeschön für die zahlreichen Antworten im anderen Thread. Ich habe mir jetzt mal das CAN-Protokoll genauer angeschaut, und das scheint zusammen mit Silicon Serial Number-ICs von Maxim (fast) die Lösung meines Problems zu sein (MAW: Voraussichtlihc war der Vorschlag, auf CAN zu wechseln das Ei des Kolumbus). Jetzt hätte ich aber noch einige Fragen, die mir vielleicht CAN-erfahrene Leute beantworten können. Und so stelle ich mir das jetzt vor: Also, ich hab jetzt eine Adresse mit 48 Bit, das CAN-Protokoll stellt mir in Version 2.0 29 Arbitrierungsbits zur Verfügung. Gut, ich nehme jetzt also die 29 niederwertigeren Bits aus meiner Adresse und schreibe sie in den Arbitrierungsblock eines Datentelegramms. In den Datenblock kommt die voll 48-Bit-Adresse. Nach dem einschalten der Anlage fangen alle Controller an, zu senden und nach der Arbitrierung bleibt der mit der kleinsten Adresse übrig und teilt der Welt am Draht seine Adresse mit und tut dann erst mal nichts mehr. Sind bei zwei Busteilnehmern jetzt die 29 Arbitrierungsbits gleich, kommt es spätestens bei der Übertragung des Datenblocks zu einem Bitfehler. Der Teilnehmer, der den Bitfehlere detektiert hat, tauscht dann die unteren 29 Bit der Adresse gegen die oberen aus, und versucht es nochmal. Was der andere Teilnehmer macht, ist mir noch nicht ganz klar, da muß ich noch ein bischen Literatur studieren. Frage: Kann das so was werden? Und jetzt kommt das Problem: Der (jetzt nur noch virtuell als solcher zu bezeichnende) Busmaster müsste auf den Empfang von allen möglichen Identifiern programmiert werden, damit die Nachrichten auch von ihm entgegengenommen werden. Also müsste ich jetzt entweder zigtausend Nachrichtencodes im Master hinterlegen, oder es gibt eine Möglichkeit, eine Art Broadcast rückwärts zu programmieren (im Sinne von: Nimmt jede Nachricht entgegen). Weiß da vielleicht jemand bescheid? Gruß, Harald