mikrocontroller.net

Forum: PC Hard- und Software Datenrate Maus oder Tastatur


Autor: Sylvia H. (sandy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
eine USB Maus oder Tastatur sind Lowspeed USB Geräte mit einer maximalen 
Datenrate von 1,5MB pro sekunde.
Was für eine Datenrate kann ich aber normalerweise Annehmen, wenn ich 
ein paar Zeichen mit der Tastur eingebe oder ein paarmal mit der Maus 
hin und her fahre, im Internet habe ich dazu nichts gefunden, weis da 
jemand bescheid?

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
USB low-speed überträgt immer mit 1.5MBit. Die Geschwindigkeit ist fest. 
Lediglich der Inhalt der USB-Pakete ändert sich. Bin grad nicht sicher, 
ab ich meine, dass USB-HID-Protokoll (Human Interface Device = 
Maus/Tastatur) basiert auf dem Interrupt-Transfertyp, d.h. das Device 
wird in festen Zeitabständen gefragt, ob es neue Daten hat.

Ralf

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht ganz richtig so. Die Bits bewegen sich bei Low Speed Devices mit 
1,5 MBit/s auf dem USB, aber die Zahl und Größe der Datenpakete ist 
begrenzt. Es können pro Endpoint (so was wie ein logisches Gerät) pro 
Sekunde bis zu 125 Pakete zu je maximal 8 Byte übertragen werden.

Autor: Sylvia H. (sandy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bedeutet das, das eien Maus oder Tastatur  Maus nur ca 1k Byte/sec 
verschickt?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, es bedeutet, daß sie soviel verschicken kann, aber nicht, daß 
sie es auch tun muss. Wenn auf der Tastatur keine Tasten gedrückt 
werden, oder die Maus nicht bewegt wird, dann wird gar nichts* 
übertragen.


*) mal abgesehen von etwaigen "bist-du-noch-da"-Paketen o.ä.

Autor: Sylvia H. (sandy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, also wenn ich das richtig verstanden habe dann kann man im Lowspeed 
Bereich  1,5MB/s verschicken
eine Maus oder Tastatur verschickt aber nur ca 1kB, muss aber nicht wenn 
sie nicht benutzt oder bewegt wird?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sylvia Heib schrieb:
> ok, also wenn ich das richtig verstanden habe dann kann man im Lowspeed
> Bereich  1,5MB/s verschicken

Nein. Das ist die Bruttodatenrate. Und das sind 1.5 MBit/sec, während 
die Maus 1 kByte/sec übertragen kann.

Autor: Sylvia H. (sandy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, jetzt ist alles klar,
vielen Dank für eure Antworten, das hat mir sehr geholfen!

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Einschränkung der Datenmenge betrifft nicht nur Mäuse und 
Tastaturen, sondern generell Low Speed Geräte.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... sofern sie sich an den USB-Standard halten.

Es geht auch anders, die meisten USB-Hosts tolerieren das, wie die mit 
Low-Speed-USB implementierten CDC-Lösungen auf AVR-Basis zeigen. Die 
können mehr als 1 kiB/sec übertragen.

Autor: Sylvia H. (sandy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guido Körber schrieb:
> Nicht ganz richtig so. Die Bits bewegen sich bei Low Speed Devices mit
> 1,5 MBit/s auf dem USB, aber die Zahl und Größe der Datenpakete ist
> begrenzt. Es können pro Endpoint (so was wie ein logisches Gerät) pro
> Sekunde bis zu 125 Pakete zu je maximal 8 Byte übertragen werden.

wo finde ich denn oben genannte Info? Woher weist du das mit den 125 
Paketen mit den maximal 8 Byte? Es ist nämlich für mich wichtig zu 
wissen, wie groß ein einzelnes Datenpaket einer Maus wird.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> wo finde ich denn oben genannte Info? Woher weist du das mit den 125
> Paketen mit den maximal 8 Byte? Es ist nämlich für mich wichtig zu
> wissen, wie groß ein einzelnes Datenpaket einer Maus wird.

Sowas und noch viele andere Dinge stehen in der USB Spec die man von 
www.usb.org runterladen kann. Über die Deskriptoren wird gesteuerert wie 
oft das Device abgefragt wird

Thomas

Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau, und da steht dann auch (wenn ich mich recht erinnere) das nur 
max. alle 10ms (100/s) eine Übertragung stattfinden darf.

Ein Paket ist dann max. 8 Bytes groß, aber auf den D+ D- Leitungen 
werden deutlich mehr als 64 Bits übertragen.

Autor: Sylvia H. (sandy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cool, ich hab mir die usb spezifikation angeschaut und folgendes 
gefunden:

5.7.3 Interrupt Transfer Packet Size Constraints
An endpoint for an interrupt pipe specifies the maximum size data 
payload that it will transmit or receive.
The maximum allowable interrupt data payload size is 64 bytes or less 
for full-speed. High-speed endpoints
are allowed maximum data payload sizes up to 1024 bytes. A high speed, 
high bandwidth endpoint
specifies whether it requires two or three transactions per microframe. 
Low-speed devices are limited to
eight bytes or less maximum data payload size.

Danke für den Tipp!

Autor: Sylvia H. (sandy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
etwas weiter ist in der Spezifikation zu lesen, das die Datenpakete im 
Lowspeed  bereich auf 10 Pakete die Sekunde limitiert sind.
Was mich jetzt noch etwas verwirrt ist:
Wenn ich 10 Datenpakete mit 8 Byte Daten plus 5 Byte zur 
Synchronisation, Checksumme usw. habe die in der Sekunde verschickt 
werden dürfen,
wie komme ich da auf eine Datenrate von 1,5 Mbit/s ?????

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die 1,5MBit/s sind brutto, was auf dem gesamten Bus möglich ist. Da 
teilen sich erst mal alle an den Hub angeschlossenen Geräte. Schließlich 
willst du ja nicht durch die Maus deine Tastatureingaben blockiert 
haben...

Autor: Sylvia H. (sandy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, jetzt ist mir alles klar!
Vielen Dank !

Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sylvia H. schrieb:
> etwas weiter ist in der Spezifikation zu lesen, das die Datenpakete im
> Lowspeed  bereich auf 10 Pakete die Sekunde limitiert sind.

Nicht ganz korrekt, das minimale Intervall bei Low Speed ist 10ms.
Damit können max. 100 Interrupt Transfers pro Sekunde stattfinden.

Autor: Sylvia H. (sandy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ups, da hätte ich doch glatt das (micro) vor dem frame in der USB 
Spezifikation übersehen :

5.7.4 Interrupt Transfer Bus Access Constraints
Interrupt transfers can be used by low-speed, full-speed, and high-speed 
devices. High-speed endpoints can
be allocated at most 80% of a microframe for periodic transfers. The USB 
requires that no more than 90%
of any frame be allocated for periodic (isochronous and interrupt) 
full-/low-speed transfers.
The bus frequency and (micro)frame timing limit the maximum number of 
successful interrupt transactions
within a (micro)frame for any USB system to less than 108 full-speed 
one-byte data payloads, or less than
10 low-speed one-byte data payloads, or to less than 134 high-speed 
one-byte data payloads.

Danke für den Hinweis!

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Norbert schrieb:
> Nicht ganz korrekt, das minimale Intervall bei Low Speed ist 10ms.
> Damit können max. 100 Interrupt Transfers pro Sekunde stattfinden.

Auch das ist nicht korrekt.

Für einen Interrupt Endpoint definiert ein Device die MAXIMALE Zeit die 
zwischen zwei Abfragen vergehen darf. Beim USB ist immer der Host die 
auslösende Instanz für einen Datentransfer, das Device kann von sich aus 
nicht darauf aufmerksam machen, dass es Daten senden möchte. Also muss 
der Host die Geräte in gewissen Abständen pollen.

Damit das Gerät seine Daten los wird, bzw. schnell genug bekommt, muss 
der Host natürlich ausreichend oft nachfragen ob das Gerät Daten hat, 
bzw. braucht. Beim Interrupt Transfer geschieht das halt indem die 
maximale Zeit zwischen zwei Transfers spezifiziert wird, da ist für Low 
Speed ein kleinster Wert von 10 ms erlaubt.

In der Praxis machen daraus alle Betriebssysteme 8 ms, damit sind sie 
auf der sicheren Seite das Gerät in jedem Fall ausreichend schnell 
abzufragen.

Daher 125 Transfers pro Sekunde.

Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, ich hätte präziser schreiben müssen:
Damit können max. 100 Interrupt Transfers pro Sekunde gewünscht werden.

Also könnte sich das Device bestenfalls darauf verlassen das es 100 mal 
pro
Sekunde abgefragt wird. Aber selbst das stimmt nicht ganz, siehe unten.

vgl. USB 2.0 S.51:
>> Low-speed endpoints are limited to specifying only 10 ms to 255 ms.
>> The period provided by the system ! may ! be shorter than that desired
>> by the device up to the shortest period defined by the USB

Ich habe hier schon signifikante Unterschiede zwischen Linux (Lenny) und 
Windows (XP) Polling gesehen und zwar sowohl Geschwindigkeit als auch 
Gleichförmigkeit (Jitter) der Abfragen.

>> The client software and device can depend only on the fact that
>> the host will ensure that the time duration between two transaction
>> attempts with the endpoint will be no longer than the desired period.
>> Note that errors on the bus can prevent an interrupt transaction from
>> being successfully delivered over the bus and consequently exceed the
>> desired period.

Garantiert ist nüscht. ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.