Wie schnell ist USB des AT89C5131?

Gast #228634
Hallo

Ich habe gerade bei Reichelt den AT 89C5131-S3SIL ersichtet.
Dieser hat ein integriertes USB-module und ist der "2.0 Full Speed
Compliant".
So weit ich weiss müssten dann also die maximale Datenübertragung so um
die 480 Mbits/sec sein, also 60Mbytes/sec.
Schafft der das wirklich?

Ich kenne mich leider mit usb noch nicht sehr viel aus.
Deshalb noch folgenden Frage:

-Was ist denn die eigentliche Datenübertragungsrate also die reine
Datentransfermenge, wenn man die Synchronisationskommunication
(ack,etc..) nicht mitzählt?
-Ist USB seitens PC Echtzeitfähig?
 Damit meine ich auch wirklich harte Echtzeit auf Treiberniveau, wo
nichts anderes mehr lauft (auch kein anderer interrupt) und wo zum
Schwankungungen in der Datenübertragungsrate nicht tolerierbar sind.

Weiss jemand was davon?
MfG im voraus
Persönliche Seite
Hi

Der CPU-Kern läuft mit maximal 24MHz im X2-Mode. Macht bei 6 Takten pro
Instruktion 4MIPS max. Würdest du jetzt bei jedem Takt ein Byte auf den
USB bekommen sinds also maximal 4MBit was die CPU auf den USB schaufeln
kann.

Im Datenblatt steht außerdem USB-Full-Speed was 12MBit entspricht.
480MBit sind dann High-Speed.

USB Full-Speed schafft erfahrungsgemäß etwa 1MByte/s realen
Datendurchsatz. Wo das theoretische Maximum liegt kann ich dir aber
auch nicht sagen.

Mit einem Isochronous Transfer wird dir AFAIK eine gewisse Bandbreite
auf dem Bus garantiert. Da aber schon das OS mit dem man USB
typischerweise benutzt (das aus Redmond) nicht Echtzeitfähig ist nützt
einem das prinzipiell nichts. Aber hier kommt es dann doch stark auf
den Einsatzzweck und die Anwendung an ob das Gesamtsystem als
Echtzeitsystem angesehen werden kann oder nicht.

Matthias
Gast
Vielen Dank Matthias

Deine Erklärungen sind sehr aufschlussreich.
Die Sache hat sich mit dem zu geringen Datendurchsatz erledigt.
Übrigens arbeite ich unter Linux das zwar nicht  Echtzeitfähig ist,
aber man kann ja einen Treiber schreiben der den Computer monopolisiert
und so mit der Brechstange Echtzeitfähig macht.

Danke
Stephan
Gast
"Übrigens arbeite ich unter Linux das zwar nicht  Echtzeitfähig ist,
aber man kann ja einen Treiber schreiben der den Computer
monopolisiert
und so mit der Brechstange Echtzeitfähig macht."

Linux erlaubt immerhin weiche Echtzeitprozesse.

Prozesse policy SCHED_RR oder SCHED_FIFO mit hoher statische Priorität
sind für die meisten "weichen" Echtzeitanwendungen völlig
ausreichend.
Sie werden vor normalen Prozessen immer bevorzugt.
Wenn du wirklich harte Echtzeit brauchst, dann nutze RTLinux.
Gast
Echtzeit ist eigentlich ein ziemlich schwammiges Wort.
Echtzeit in 1 sec, 1 milisec oder 1 microsec Verzögerung kann
entsprechend nach Anforderung gedehnt werden.

Im Sachen RTLLinux gebe ich dir vollkommen recht.
Wobei die RTLinux Threads von der funktionsweise genauso in die module
richtung geht.
Ich schreibe lieber nur einen Treiber der die Sache löst als das ich
ein ganzes System installiere.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.