[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [DDL-ML] loconet und CSMA/CD
Hi,
Ich habe auch noch einmal nachgeschaut und dazu folgendes gefunden.
http://www.port.de/deutsch/publicat/ethernet_can/ethernet_can.html
<Zitat>
Obwohl Ethernet und CAN das CSMA Prinzip zur Grundlage haben, sind sie
bei genauer Betrachtung doch verschieden. Ethernet basiert auf CSMA/CD
und CAN auf CSMA/CA. CD steht dabei für Collison Detection und CA für
Collision Avoidance. Dieser Unterschied wird deutlich, wenn zwei
Teilnehmer versuchen gleichzeitig zu senden. Dann tritt eine Kollision
auf. Der Unterschied der beiden Verfahren liegt in der Auflösung dieser
Kollision. Bei Ethernet wird die Kollision erkannt. Beide Teilnehmer
ziehen sich in diesem Moment vom Bus zurück, und warten eine
willkürliche Zeit bis sie die abgebrochene Sendung wiederholen. Die
Kollision wird von beiden Teilnehmern erkannt und da sie durch einen
bestimmten Algorithmus die Wiederholung zu verschiedenen Zeitpunkten
beginnen, werden sie beim nächsten Versuch eine Kollision
höchstwahrscheinlich vermeiden und erfolgreich ihre Nachricht auf dem
Netzwerk absenden. Auf alle Fälle sind jedoch beide Nachrichten
gegenüber der ursprünglichen Sendeabsicht verzögert.
Bei CAN wird bei einer möglichen Kollision betrachtet, welche Nachricht
eine höhere Priorität besitzt. Durch eine bestimmte Art der sogenannten
Arbitrierung bei CAN, wird die Nachricht mit der höheren Priorität nicht
zerstört sondern wird unverzögert gesendet. Die Nachricht mit der
niedrigeren Priorität wird im Anschluß an diese Information gesendet
sobald der Bus wieder frei ist.
Deshalb wird nur die Nachricht mit der niedrigen Priorität etwas
verzögert. Diese Zeit ist aber berechenbar. CAN ist deshalb im Gegensatz
zu Ethernet vorhersagbar - deterministisch, zumindest für hochpriore
Nachrichten.
</Zitat>
Damit wäre eigentlich der Unterschied eindeutig erklärt.
Sind Adressen/Daten bei einer Kollision noch auswertbar?
Ja -> CSMA/CA Nein -> CSMA/CD.
CSMA/CD ist softwarmässig einfacher zu beherrschen.
CSMA/CA erkennt man an der Anzahl der nutzbaren Adressen bei einer
festen Adresslänge n.
nutzbare Adressen = 2^n -> CSMA-CD
nutzbare Adressen < 2^n -> CSMA-CA
CAN benutzt dazu nur die Kombinationen aus dem 2^n möglichen für die
gilt: (Adresse1)or(Adresse2)=Adresse1 wenn Adresse1<Adresse2
Ich hab's jetzt nicht ausgerechnet wie viele das sind.
Damit gilt: Adresse 0 hat eine höhere Priorität als Adresse 16.
Nachteil: es werden mehr Bytes zur Übertragung benötigt.
Ich glaube kaum, dass Loconet sowas macht, weil es ja so wenig Overhead
hat. Also Loconet = CSMA-CD.
Gruss Torsten
- References:
- [DDL-ML] rufo, loconet, rückmeldebus, bushardware, ddl-treffen
- From: puesch <puesch@yahoo.de>
- [DDL-ML] Re: [DDL-ML] rufo, loconet, rückmeldebus, bushardware, ddl-treffen
- From: "Andy" <Andy_P@gmx.de>
- Re: [DDL-ML] Re: [DDL-ML] rufo, loconet, rückmeldebus, bushardware, ddl-treffen
- From: Torsten Huebner <torsten.huebner@gmx.de>
- [DDL-ML] Re: [DDL-ML] rufo, loconet, rückmeldebus, bushardware, ddl-treffen
- From: "Andy" <Andy_P@gmx.de>
- Re: [DDL-ML] Re: [DDL-ML] rufo, loconet, rückmeldebus, bushardware, ddl-treffen
- From: Torsten Huebner <torsten.huebner@gmx.de>
- [DDL-ML] Re: [DDL-ML] rufo, loconet, rückmeldebus, bushardware, ddl-treffen
- From: "Andy" <Andy_P@gmx.de>
- [DDL-ML] Re: [DDL-ML] Re: [DDL-ML] rufo, loconet, rückmeldebus, bushardware, ddl-treffen
- From: Martin Schönbeck <Martin@Schoenbeck.de>
- [DDL-ML] Re: [DDL-ML] Re: [DDL-ML] Re: [DDL-ML] rufo, loconet, rückmeldebus, bushardware, ddl-treffen
- From: "Andy" <Andy_P@gmx.de>
- [DDL-ML] Re: [DDL-ML] Re: [DDL-ML] Re: [DDL-ML] Re: [DDL-ML] rufo, loconet, rückmeldebus, bushardware, ddl-treffen
- From: Martin Schönbeck <Martin@Schoenbeck.de>
- [DDL-ML] [DDL-ML] rufo, loconet, rückmeldebus, bushardware, ddl-treffen
- From: "Andy" <Andy_P@gmx.de>
- [DDL-ML] Re: [DDL-ML] [DDL-ML] rufo, loconet, rückmeldebus, bushardware, ddl-treffen
- From: Martin Schönbeck <Martin@Schoenbeck.de>
- [DDL-ML] loconet und CSMA/CD
- From: "Andy" <Andy_P@gmx.de>