Forum: PC Hard- und Software Datenrate Maus oder Tastatur


von Sylvia H. (sandy)


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?

von Ralf (Gast)


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

von Guido Körber (Gast)


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.

von Sylvia H. (sandy)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


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.ä.

von Sylvia H. (sandy)


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?

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Sylvia H. (sandy)


Lesenswert?

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

von Guido Körber (Gast)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Sylvia H. (sandy)


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.

von Thomas (Gast)


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

von Norbert (Gast)


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.

von Sylvia H. (sandy)


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!

von Sylvia H. (sandy)


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 ?????

von Christian R. (supachris)


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...

von Sylvia H. (sandy)


Lesenswert?

ok, jetzt ist mir alles klar!
Vielen Dank !

von Norbert (Gast)


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.

von Sylvia H. (sandy)


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!

von Guido Körber (Gast)


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.

von Norbert (Gast)


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. ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.