Welche Auswirkung hat die Neuzuordnung von Ports auf einem USB-Hub?

Ich verwende den USB2517 für ein Projekt. Es ist ein Hub mit sieben Ports, und ich verwende sechs davon. Ich arbeite mich durch die Konfigurationseinstellungen und bin ratlos von den Port-Remap-Registern. Das Datenblatt enthält folgenden Text (Seite 34 im Datenblatt):

Port-Neuzuordnungsregister für Ports 1 und 2 Wenn ein Hub von einem USB-Host-Controller aufgelistet wird, darf der Hub nur melden, wie viele Ports er hat; der Hub ist nicht berechtigt, einen Zahlenbereich oder eine Zuordnung auszuwählen. Der Host-Controller nummeriert die Downstream-Ports des Hubs beginnend mit der Nummer „1“ bis zur Anzahl der Ports, die der Hub erkennt. Die Portnummer des Hosts wird als "Logical Port Number "
bezeichnet und der physische Port auf dem Hub ist die "Physical Port Number" . kann anderen logischen Portnummern (vom Host zugewiesen) neu zugeordnet werden Hinweis: Der OEM muss sicherstellen, dass fortlaufende logische Portnummern vorhanden sind


verwendet, beginnend mit #1 bis zur maximalen Anzahl aktivierter Ports; Dadurch wird sichergestellt, dass die Ports des Hubs entsprechend der Art und Weise nummeriert sind, wie ein Host mit den Ports kommuniziert

Ich habe also sieben Ports, DS[1:7]. Dies sind die "Physical Port Numbers". Der Host listet diese als Bereich auf, den wir PORT[1:7] nennen können. Dies sind die "logischen Portnummern". Indem ich in dieses Register schreibe, bilde ich DS[x] auf PORT[y] ab oder überschreibe [sehen Sie, was ich dort gemacht habe?], indem ich es deaktiviere

Warum sollte ich meine Ports jedoch neu zuordnen wollen? Was bringt mir das, wenn ich den Hub automatisch mit der Neuzuordnung behandle? Gibt es in der USB 2.0-Spezifikation eine Art Portpriorität, die Ports mit niedrigeren Nummern zusätzliche Bandbreite zuweist? Ist es nur dazu da, um übervorsichtige Ingenieure nachts wach zu halten?

Bearbeiten: Der Hub kann Ports automatisch neu zuordnen, um zusammenhängende logische Ports sicherzustellen, wenn physische Ports in der Mitte des Bereichs deaktiviert sind, wenn PRTMAP_EN (08h:3) niedrig ist. Gibt es etwas zu gewinnen, wenn Sie sie manuell in einer anderen Reihenfolge neu zuordnen, als es der Hub automatisch tun würde?

Mein Rat: Stoppen Sie, was Sie tun, und verwenden Sie die Standardkonfiguration beim Einschalten. Wenn Sie aus Routing-Gründen einen Port dazwischen überspringen möchten, deaktivieren Sie ihn einfach mit der Option Dual Pull-Ups (Straps), der IC kümmert sich um sich selbst.
Die standardmäßige Einschaltkonfiguration wird für mich funktionieren, nehme ich an. Ich bin jedoch daran interessiert zu wissen, welchen Vorteil es hätte, bestimmte physische Ports bestimmten logischen Ports neu zuzuordnen. Im Wesentlichen verstehe ich nicht, warum mir die Port-Neuzuordnungsregister zur Verfügung stehen, wenn der Hub bereits in der Lage ist, Register automatisch neu zuzuordnen. Zusätzliche Funktionalität ist teuer, also warum haben sie dieses Register offengelegt? Welchen Vorteil hat die manuelle Neuzuordnung gegenüber einer naiven automatischen Neuzuordnung?
Eine zusätzliche Konfiguration kostet nicht viel, wenn die VID/PID/Optionsänderung bereits vorhanden ist. Die Kasse ist nicht "ausgesetzt", sie wurde auf Wunsch des Marketings eingebaut - mehr Features machen den Eindruck größerer Flexibilität und diktieren einen besseren Preis. Aber bitte beachten Sie, dass es einen Fehler gab/gibt – die Pulldown-15k sind nicht konfigurierbar, und wenn Sie die permanente Strapping-Option verwenden, um einen Port zu deaktivieren, kostet Sie das etwa 300uA zusätzlichen Verbrauch, was ein Problem sein könnte -power eingebettete Anwendungen.

Antworten (1)

Wie das Datenblatt erklärt, müssen logische Portnummern fortlaufend zugewiesen werden, beginnend bei 1. Wenn Sie nicht alle Ports verwenden und einer der unbenutzten Ports nicht am "Ende" der physischen Portnummern ist, müssen Sie müssen Sie eine Neuzuordnung verwenden, um die aktiven Ports wieder in Ordnung zu bringen.

Beispiel: Angenommen, Sie erstellen einen 4-Port-Hub und müssen aus Gründen des PCB-Layouts die physischen Ports 2, 3, 6 und 7 verwenden. Die Port-Neuzuordnung würde es Ihnen ermöglichen, diese Ports als logische Ports neu zuzuordnen 1 bis 4, durch Einstellung:

PRTR12 = 0001_0000 -- physical port 2 = logical port 1, physical port 1 = disabled
PRTR34 = 0000_0010 -- physical port 4 = disabled, physical port 3 = logical port 2
PRTR56 = 0011_0000 -- physical port 6 = logical port 3, physical port 5 = disabled
PRTR7  = 0000_0100 -- physical port 7 = logical port 4
Gibt es etwas, das durch Neuzuordnung in einer bestimmten Reihenfolge gewonnen werden kann? Meine Schuld, dass ich es nicht in die Frage aufgenommen habe, aber der IC kann die Ports auch automatisch neu zuordnen, um deaktivierte Ports aufzunehmen (Register 08h PRTMAP_EN). Ich würde davon ausgehen, dass es so gut wie ich zusammenhängende Blöcke logischer Ports erstellen kann. Wenn das der Fall ist, warum gibst du mir dann die Register?
Normalerweise nicht? Es könnte wichtig sein, wenn Sie ein Host-Gerät haben, das sich um die Reihenfolge der Ports „kümmert“, aber die meisten Computer tun dies nicht.
+1 Um hinzuzufügen, besteht das Standardverfahren zum Aktivieren von Ports in der Software darin, bei Port1 zu beginnen und sie aufzuarbeiten. Wenn Sie in der Mitte der Sequenz einen unbenutzten, nicht gerouteten Port haben, ist dies nur ein nicht verbundener Port, und es würde nichts Schlimmes passieren. Dies spielt nur eine Rolle, wenn Sie das Produkt zertifizieren möchten. Während des obligatorischen Zertifizierungstests wird der Testoperator aufgefordert, Mäuse ein- und auszustecken usw. Wenn der Port nicht geroutet und einem Stecker ausgesetzt ist, ist es unmöglich, den Test zu verfolgen, und die Zertifizierung schlägt fehl. Ansonsten, wen interessiert das...