Forum: Mikrocontroller und Digitale Elektronik CAN die Vierte


von flyingwolf (Gast)


Lesenswert?

Nach weiteren Studien in der gängigen Fachlitteratur habe folgende
Frage.
Die Nachrichtenobjekte werden mit einem Identifier versehen, welcher
auch die Priorität der Nachricht festlegt. Es gibt max 1024 Idetifier
aber keine Adressen. Wenn Nachrichten kollodieren, gewinnt die mit dem
niedrigeren Identifier.
Was passiert, wenn zwei Nachrichten mit dem gleichen Identifier
kollodieren, z.b. 5 Teilnehmer wollen den Stromausfall des Systems
melden?

von Markus (Gast)


Lesenswert?

Was willst Du mit der Botschaft "Stromausfall" anfangen, wenn Du nicht
weißt von wem die Botschaft ist?

Die Lösung ist an der Stelle, daß halt jedes Gerät seine eigene
Stromausfallmeldung mit unterschiedlicher ID hat. Und dann gibts auch
keine Probleme bei Kollisionen.

von flyingwolf (Gast)


Lesenswert?

Das ist natürlich eine Lösung aber ich habe nur 1024 unterschiedliche
Identifier aber viel mehr Geräte (2000 - 4000 oder auch mehr)
Also hatte ich mir gedacht die Info, wer sich da meldet, in der
Nachricht selbst unterzubringen. Somit können alle Teilnehmer auch die
gleiche Software erhalten und die individuelle Adresse wird einfach als
Variable eingegeben. Allgemeine Informationen, die jeder Teilnehmer
brauchen kann werden in einer Box zur Verfügung gestellt und bei Bedarf
abgefragt und diejenigen, die einen aktiven Eingriff von aussen
erfordern, werden an einen Obermacker verschickt, der dann weiß was er
damit anzufangen hat. Fällt jetzt aber auf einem ganzen Strang der
Strom aus, und nicht nur auf einem Modul ...

von peter dannegger (Gast)


Lesenswert?

Mit CAN2.0B kannst Du doch 500.000.000 Identifier benutzen.

Aber mal im Ernst, ich kenne keinen CAN-Treiber-IC, der 4000 Geräte
abkann.

Es ist überhaupt nicht sinnvoll soviele Geräte an einen Strang zu legen
(1 kaputtes Gerät -> Totalausfall)


Gleiche Identifier kann der CAN nicht ab, da in den Daten keine
Arbitrierung erfolgt.
Es versuchen also beide Sender ständig den gleichen Identifier zu
senden, bis ihr Errorcounter überläuft und sie sich abschalten. Eine
Ausnahme wäre, wenn auch die Daten gleich sind.


Peter

von flyingwolf (Gast)


Lesenswert?

@Peter
Das mit den 4000 Treibern an einem Stang habe ich inzwischen auch
rausgefunden und mich bereits tierisch darüber geärgert, weil es leider
nicht in allen Datenblättern drin steht, wievile Teilnehmer nun im
Eizelnen dran hängen können, ist aber technisch doch eigentlich kein
großes Problem, weil dann einfach nach jeweils 32 Teilnehmern eine
"Relaisstation" kommt. Wenn ich mich auf diese Teilnehmerzahl begebe
muss ich mir sowieso Gedanken machen, und da kommt Deine galvanische
Trennung dann  ins Spiel.
Das mit den 500.000.000 Identifiern würde ja dann wohl reichen.
Wenn Du sagst dass es keinen Sinn macht, so viele Teilnehmer auf einen
Bus zu legen, (und ich stimmer Dir zu) hast Du dann aber auch eine
alternative Idee? Immerhin muss jeder mit jedem die Daten austauschen
können, weil jeder Teilaufgaben eines ausgefallenen Teilnehmers
übernehmen soll.

von peter dannegger (Gast)


Lesenswert?

Naja, man teilt in mehrere Stränge auf und verbindet die mit einer Art
Hub untereinander, z.B. der LPC2294 hat 4 CANs.



Peter

von Markus (Gast)


Lesenswert?

Wenn jeder mit jedem reden können soll, dann klingt das für mich eher
nach Ethernet. Das hat Dank Router und Switches auch keine Probleme mit
4000 Teilnehmern.

von ---- (Gast)


Lesenswert?

Mich würde interessieren welche Anwendung die 4000 CanTeilnehmer
realisieren?
Ist das nur ein riesiger Versuch oder steckt dahinter eine technische
Notwendigkeit?

----, (QuadDash).

von flyingwolf (Gast)


Lesenswert?

@----
Die technische Notwenigkeit ist mehrfach gegeben. Die Teilnehmer teilen
sich eine Stromversorgung, von der sie je nach Bedarf ganz wenig oder
ganz viel nehmen. Das ist kein Problem, weil genug Zeit zur Verfügung
steht. Durch dieses Konzept will man Kabel sparen.
Dann brauchen alle die aktuelle Zeit und Datumsinformationen. Wenn
einer oder 2 die zur Verfügung stellen, brauchen die Anderen keine
eigenen Funkuhrempfänger.
Dann soll es eine zentrale Ansteuerug geben, so dass einer alle (bis
dahin) eigenständig arbeitenden Einheiten aufweckt und zur
Zusammenarbeit zwingt oder wieder in den Individualismus entläßt. All
solch Zeugs halt. Darum soll jeder mit jedem können.
@Peter
LPC 2294 werd ich mir mal anschauen, sobal ich die EINE Can
Schnittstelle an meinem can128 dazu gebracht habe überhaupt etwas zu
tun.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.