[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