# Frage zur Buszykluszeit Ethernet - Standart 100BaseTX



## Kayne607 (22 Januar 2009)

Hallo!

ich steh grade mal total auf dem Schlauch, ich habe eine kleine Aufgabe zum Ethernet Standart 100BaseTX zu lösen, weiß aber absolut nicht wie.

Ich wäre euch wirklich dankbar wenn Ihr mir evtl. nur mal die Vorgehensweise erklären würdet. Ich will/soll ja schließlich auch noch etwas tun 


Hier die Aufgabe:




Vielen Dank schon jetzt!

MfG
Kayne607


----------



## trinitaucher (22 Januar 2009)

Die Aufgabe ist dämlich gestellt. 
Wenn man von "Bus-Zykluszeit" spricht, setzt dies ein System voraus, welches die Anfrage bearbeiten und eine Antwort versenden kann. Dies bedingt eine Verzögerung in den Teilnehmern, die jeder zum Bearbeiten des Telegramms entstehen (Empfangen => Auswerten => Antwort erstellen => Antwort versenden) benötigt, die sog. "Stacklaufzeit". Davon ist in der Aufgabe nicht die Rede...

ok, wenn es um die rein theoretische Betrachtung geht:
Der Knackpunkt ist, dass laut Ethernet-Standard (100MBit/s) ein Frame eine gewisse Mindestenslänge haben muss (ich glaube 64 Byte oder so). Auch wenn nur 4 Bit Nutzdaten verschickt werden, wird der Frame auf diese Mindestlänge aufgefüllt.

Dann muss man noch unterscheiden, ob die 31 Teilnehmern die Telegramme simultan erhalten (Broadcast/Multicast) oder nacheinander  an jeden Teilnehmer ein separater Frame geschickt wird (Unicast).
Und zuletzt muss noch geklärt werden, ob alle Teilnehmer gleichzeitg antworten können (dann gäbe es Kollisionen auf dem Bus! => CSMA/CD) oder nacheinander in einer speziellen Reihenfolge, was aber wiederum durch ein überlagertes (in der Aufgabe nicht genanntes) Protokoll realisiert werden muss.

(außerdem wird in der Realität ein Switch oder Hub benötigt. Mit einem Switch sind Kollisionen vermeidbar)


----------



## eYe (23 Januar 2009)

"Unter der Annahme das 31 Busteilnehmer von einer *Masterstation* zyklisch abgefragt werden"

Welches Protokoll dies auch immer sein soll, wir gehen mal davon aus das es zu keinerlei Kollisionen kann da die Abfrage von der Masterstation zyklisch gesteuert wird.

Das 100BaseTx schafft 100MBit/s = 1 250 000 Byte/s

Unsere Frame länge beträgt: Framelänge =  (7+1+6+6+2+Nutzdaten+4+Framegap) Byte
Das Framegap wird mit 96Bit = 12 Byte vorgegeben.
==> Framelänge = 38Byte + Nutzdaten
Da es eine Mindesframelänge laut Standard von 64Byte gibt, werden die Nutzdaten einfach über die 4 benötigten Bit hinaus aufgefüllt.

==> Framelänge minimum = 64 Byte

Bei 31 Teilnehmer haben wir also insgesammt 31 * 64Byte = 1984Byte um alle Teilnehmer einmal abzufragen.

Damit läge die Buszykluszeit bei 1984Byte / (1 250 000Byte/s) = 1,5872ms
Wenn man die Auslastung von maximal 20% berücksichtigt, müßte man die Zykluszeit auf 1984Byte / ((1 250 000Byte/s) * 0,2) = 7,936ms erhöhen.


Allerdings bin ich gerade der Meinung das hier etwas fehlt, und zwar habe ich hier ja nun eigentlich nur die Anfrage vom Master an die Busteilnehmer betrachtet. Da ja 4 Bit Daten "ausgetauscht" werden sollen, müßten ja die Teilnehmer noch Antworten senden...?!


----------



## trinitaucher (23 Januar 2009)

eYe schrieb:


> Allerdings bin ich gerade der Meinung das hier etwas fehlt, und zwar habe ich hier ja nun eigentlich nur die Anfrage vom Master an die Busteilnehmer betrachtet. Da ja 4 Bit Daten "ausgetauscht" werden sollen, müßten ja die Teilnehmer noch Antworten senden...?!


Daher finde ich die Frage auch ziemlich sinnlos. Bit-Laufzeiten haben ja wenig mit Zykluszeit zu tun...  

@ Kayne607:
In welchem Kontext wurde diese Frage gestellt?
Kannst dem Fragesteller ja mal unsere "Verwunderung" ausdrücken


----------



## argv_user (23 Januar 2009)

Unter Zykluszeit ist hier wohl die Zeit gemeint bis alle Teilnehmer
einmal abgefragt sind.

Dann fasse ich mal zusammen:

Ethernetframe 64 Byte
Gap 96 Bit (etwa 12 Byte)

Das mal zwei, da ja die Antwort kommen muss.
Mal die Anzahl der Teilnehmer.
Das aufsummiert gibt die Gesamtzahl der Bytes pro "Zyklus".

Dann noch die benötigte Zeit berechnen und dabei die 20% beachten...

Aber Du bist ja bestimmt schon fertig, oder?


----------



## Kayne607 (23 Januar 2009)

Hallo!

Super, danke für die vielen Antworten! 

Die Frage wurde im Zusammenhang mit einer Prüfung im Fach "Automatisierungstechnik" gestellt. Leider ist der Fragesteller derzeit nicht verfügbar da er krank ist.

Also, meine Herangehensweise (Mit eurer Hilfe DANKE!!!)

Also zyklisch abfragen und Daten austauschen habe ich mal zusammengefasst:

--> Teilnehmer wird abgefragt und danach die Daten ausgetauscht. 
      Macht also 2 Frames pro Teilnehmer und Zyklus, oder liege ich falsch?


--> 1 Frame hat 64Byte + 96Bit (12Byte) Inter frame Gap also: 76 Byte
      MAL 2 da erstmal Anfrage (bist du da?) dann Abfrage (Daten?)
      Gesamt pro "Zykluspaket": 152 Byte

--> dieses 31 mal (31 Teilnehmer) 4712 Byte 
      MINUS einen Inter Frame Gap (der ganz am Schluss, letzter
      Teilnehmer, weil da folgt ja kein Paket mehr, ergo, keine Pause)
      Also: 4700 Byte

-->100MBit/s = 1 250 000 Byte/s
     4700Byte 
     Dauer t    =  4700Byte /  1 250 000 Byte/s = 0,00376s = 3,76ms

-->20% "Kapazität" --> 3,76ms / 0,2 = *18,8 ms* (Also Abfrage der 31 Teilnehmer UND der Daten der 31 Teilnehmer - 1 Zyklus)

Kann das jetzt so stimmen. Sehr theoretisch alles, aber naja Prüfung ist Prüfung und die ist nächste Woche :-( oh man oh man.

Danke nochmal!


----------



## eYe (23 Januar 2009)

Hört sich doch soweit ganz gut an, ich würde sagen zum bestehen wird es auf jedenfall reichen. Denn für die Herleitung gibts ja in der Regel die meisten Punkte 

Ansonsten ist es immer gut nicht einfach alleine vor seinem Buch zu hocken, sondern sich mit den Anderen "Prüflingen" zusammen zu setzen und gemeinsam das Ganze zu Besprechen.

"Wissen ist das einzige Gut welches sich vermehrt, wenn man es teilt" 

viel Glück, eYe


----------



## argv_user (23 Januar 2009)

Kayne607 schrieb:


> --> dieses 31 mal (31 Teilnehmer) 4712 Byte
> MINUS einen Inter Frame Gap (der ganz am Schluss, letzter
> Teilnehmer, weil da folgt ja kein Paket mehr, ergo, keine Pause)



Das MINUS  ist falsch, da der GAP hinter jedem Paket kommt.
Wenn Du von einer eimaligen Abfrage ausgehst stimmt das.
Dann ist es aber keine zyklische Angelegenheit mehr.

Ist doch wohl so, dass sich die Abfrage ständig wiederholt...


----------



## Kayne607 (23 Januar 2009)

Hallo!

Ein GROBER Fehler, so denke ich, hat sich eingeschlichen.

Ich ging davon aus dass pro Zyklus nur 2 Pakete zwischen Master und Teilnehmer wandern, also 

1. Master fragt
2. Master sendet

ABER müssen es nicht 3 Pakete pro Teilnehmer sein? Also:

1. Master fragt
2. Slave Antwortet
3. Master sendet

Stimmt dies? Wenn ja muss ichs nochmal rechnen.

Danke!
MfG
Kayne607


----------



## argv_user (23 Januar 2009)

3. Kannst Du knicken, denn es geht doch nur um eine Abfrage!?


----------



## Kayne607 (23 Januar 2009)

Ah ja.

Naja Abfrage halt schon, Master fragt die 31 Stationen ab und tauscht dann Daten aus. 

Aber wenn er die Abfragt dann müssen die doch antworten ob sie überhaupt da sind. 

Sonst könnt der Master ja einfach so, ohne Abfrage die Daten an jeden rausschicken, oder nicht?


----------



## trinitaucher (23 Januar 2009)

Kayne607 schrieb:


> ...
> ABER müssen es nicht 3 Pakete pro Teilnehmer sein? Also:
> 
> 1. Master fragt
> ...


Wenn man die Aufgabenstellung genauer liest, müsste es so sein. Einmal die Abfrage und dann die 4 Bit Daten für jeden Slave.
Ob die Slaves daraufhin noch eine Confirmation schicken steht ja nicht in der Aufgabe ich würde es somit als Spekulation abtun.

Aber nicht 100%ig geklärt ist die Frage, ob der Master nun tatsächlich Unicast macht, also jeden Salve für sich hintereinander, oder ob er die Abfrage oder gar die Prozessdaten im Multicast sendet.
Wenn wir schon so ins Detail gehen, sollten wir hier auch mal gründlicher sein  Das hat der Aufgabensteller nämlich nicht explizit beschrieben.

Wenn es sich um ein intelligentes Protokoll handeln würde, könnte man das mit einem Frame erledigen, so wie z. B. EtherCAT das macht.... aber davon ist hier ja nicht die Rede.


----------

