Maus an einem USB port präziser als an einem anderen

Status
Für weitere Antworten geschlossen.
Dieser zitierte Inhalt ist schlicht und ergreifend falsch.

Richtigstellung:
  • Du kannst deiner Maus via Treiber sagen, dass sie sich als 1000Hz zu erkennen geben soll. Das heißt dann aber noch lange nicht, dass der PC dazu "okay" sagen muss. Es ist auch möglich, dass der PC sagt "ich kann aber nur 125Hz". Was da am Ende bei herauskommt ist Verhandlungssache.
  • Und beim Polling werden die Daten niemals(!) aktiv von der Maus gesendet. Beim 125Hz Polling ruft der PC die Daten 125x pro Sekunde von der Maus ab. Es handelt sich bei USB schließlich um einen Bus. Und bei einem Bus System darf es nur einen geben, der entscheidet wer wann was wo wie viel schreibt. Es wäre also fatal wenn die Maus einfach ungefragt ihre Daten auf dem Bus ablegen würde.
  • Wenn Daten aktiv von der Maus an den PC geschickt werden sollen, müssten Interrupts verwendet werden. Das ist über USB allerdings nicht möglich.

Eine ganz grobe Analogie wäre PCIe Gen 1 / 2 / 3. Deine PCIe Karte und dein Board handeln die Lanes und Übertragungsrate aus, damit die Geräte voll automatisch zwischen unterschiedlichen PCIe Generationen und unterschiedlicher Anzahl an Lanes funktioniert. Und erst wenn beide Seiten sagen "ja, das kann ich" funktionierts.

Oder Ethernetgeschwindigkeiten. Und natürlich auch USB 1 / 2 / 3. Es ist überall dasselbe. Die Geräte geben sich mit bestimmten Spezifikationen zu erkennen, und der PC schaut dann was er davon erfüllen kann.
 
Zuletzt bearbeitet:
benneq schrieb:
Dieser zitierte Inhalt ist schlicht und ergreifend falsch.
Nur leider wäre dann jeder Inhalt falsch, bei jedem Ergebins im Netz den man findet,
bezüglich der Pooling Rate. Ich versteh schon was du meinst aber,

benneq schrieb:
Wenn Daten aktiv von der Maus an den PC geschickt werden sollen, müssten Interrupts verwendet werden. Das ist über USB allerdings nicht möglich.

die Maus muss doch ihre Position/Information an das System senden,
wenn ich sie bewege oder eine Taste drücke.
Ergänzung ()

Jetzt hab ich gescrollt, mit dem Mausrad um deine Analogie in deiner Ergänzung zu lesen.
Das scrollen muss doch die Maus zu System senden? Ist eine USB Maus.
 
Zuletzt bearbeitet:
Nickel schrieb:
die Maus muss doch ihre Position/Information an das System senden,
wenn ich sie bewege oder eine Taste drücke.

Jein ... sie wird alle 8 ms ( 125 Hz ) gefragt was hast du gemacht ... ergo welche Position hast du erreicht und welche Taste wurde gedrückt ...
 
Nickel schrieb:
die Maus muss doch ihre Position/Information an das System senden,
wenn ich sie bewege oder eine Taste drücke.
Die Daten werden natürlich "irgendwie" übertragen. USB ist ein Bus System (dafür steht das B in USB). Und ein Bus ist ein geteilter Übertragungskanal für mehrere Teilnehmer. "Geteilt" heißt, dass es für all diese Teilnehmer nur eine gemeinsame Datenautobahn gibt.
Und damit das reibungslos funktioniert muss irgendjemand (= der Host / PC ) koordinieren wer jetzt dran ist mit Daten senden.

Zwischen Maus (125Hz) und PC läuft das vereinfacht dann so ab:
Alle 8ms sagt der Host der Maus: "Schreibe jetzt deine Position und Klicks auf den Bus". Dann schreibt die Maus die Daten auf den Bus. Und danach liest der Host die Daten. Und dann sucht sich der Host das nächste Gerät aus, mit dem er kommunizieren will.
 
  • Gefällt mir
Reaktionen: Nickel
@Nickel
https://de.wikipedia.org/wiki/Universal_Serial_Bus#Übertragungstechnik_und_Spezifikation

Host-Controller
Die Kommunikation bei USB wird von einem Host-Controller gesteuert, der heute in der Regel auf dem Motherboard eines Computers verbaut ist. Nur dieser kann Daten von einem Gerät lesen oder zu einem Gerät senden (Ausnahme: siehe USB On-the-Go). Ein Gerät darf nur dann Daten zum Host-Controller senden, wenn es von diesem abgefragt wird. Bei zeitkritischen Datenströmen, wie etwa bei Mausbewegungen, muss der Hostcontroller von sich aus häufig genug beim Gerät anfragen (Polling), ob es Daten senden will, um ein Ruckeln zu verhindern.

Somit Fakt das der Controller abfragen tut was passiert ist.

Früher bei den alten Mäusen war das Umstellen der Polling Rate ja auch extrem aufwändig ... heutige Mäuse haben das oft schon im Treiber integriert ... daher denkt man schnell das macht die Maus.
 
  • Gefällt mir
Reaktionen: ekin06 und Nickel
@Nickel Das kann natürlich passieren, je nach dem wie empfindlich der Benutzer ist. Bei 125Hz hast du "bis zu" 8ms Verzögerung. Wenn dein Klick direkt vor der Abfrage durch den Host kommt, dann kann's natürlich auch passieren, dass du auf (fast) 0ms Verzögerung kommst. Also im Schnitt sind's 4ms.
Bei 1000Hz kommst du im Schnitt auf 0,5ms.

Bei meiner Logitech G403 kann ich die Polling Rate umstellen, und ich bilde mir ein ( nicht gemessen ), dass ich tatsächlich auf dem Desktop einen winzigen Unterschied zwischen 125 und 1000Hz wahrnehme. Spätestens ab 500Hz merke ich aber auch von meiner Einbildung nichts mehr :D Aber gibt sicherlich Pro Gamer, die das merken. Die setzen dann auch meist lieber auf PS/2 Mäuse (ob's tatsächlich was bringt sei mal dahingestellt), weil dort Interrupts benutzt werden können. Hier sagt die Maus dem System wann es neue Daten gibt.
 
  • Gefällt mir
Reaktionen: Nickel
@Reporterer du hast nun deine Informationen erhalten, damit kann auch dieser Mausthread abgeschlossen werden.
Ich hoffe du verschonst uns mit weiteren, denn
Reporterer schrieb:
Ich habe das Gefühl, das die Maus an einem 2.0 USB port besser funktioniert als bei dem anderen
mit der richtigen Portwahl hast du ja die Lösung.
 
  • Gefällt mir
Reaktionen: bart0rn
Status
Für weitere Antworten geschlossen.
Zurück
Oben