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?
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
Ale..chenski
Jason_L_Bens
Ale..chenski