Poprawna odpowiedź to 127 urządzeń, bo właśnie tyle maksymalnie adresów urządzeń przewiduje standard USB dla jednej logicznej magistrali. Każde urządzenie podłączone do USB – zarówno urządzenie końcowe (np. pendrive, drukarka, klawiatura), jak i sam hub – zajmuje jeden adres. Wyjątkiem jest host (kontroler USB w komputerze), który nie jest liczony do tej puli. Standard USB (zarówno 1.1, 2.0, jak i 3.x, choć tam jest to trochę bardziej rozbudowane) definiuje 7‑bitowy adres urządzenia, co daje właśnie 2^7 − 1 = 127 możliwych adresów dla urządzeń peryferyjnych. Jeden adres jest zarezerwowany na potrzeby procesu konfiguracji, dlatego faktycznie mamy 127, a nie 128 urządzeń użytkowych. W praktyce oznacza to, że możesz łączyć huby kaskadowo (z zachowaniem ograniczenia co do liczby poziomów), ale suma wszystkich urządzeń, razem z tymi hubami, nie może przekroczyć 127. Typowa sytuacja: masz w komputerze jeden kontroler USB, do niego podłączony hub aktywny z 7 portami, do każdego portu wpinasz kolejny hub i kolejne urządzenia. Dopóki łączna liczba adresowanych elementów (huby + urządzenia końcowe) nie przekroczy 127, wszystko jest zgodne ze standardem i powinno działać stabilnie. Producenci sprzętu i projektanci stanowisk komputerowych biorą to pod uwagę przy planowaniu rozbudowanych stanowisk z wieloma skanerami kodów, tabletami graficznymi, drukarkami etykiet czy interfejsami pomiarowymi na USB. Moim zdaniem warto też pamiętać, że zanim osiągniesz limit 127, wcześniej zwykle ograniczy cię przepustowość magistrali i zasilanie portów – dlatego w praktyce stosuje się huby aktywne z własnym zasilaczem i rozsądnie rozkłada obciążenie między różne kontrolery USB na płycie głównej.
W przypadku USB łatwo skupić się na fizycznej liczbie portów w komputerze czy w hubach i na tej podstawie próbować zgadywać maksymalną liczbę urządzeń. To typowy błąd – myślenie kategoriami „ile gniazdek widzę”, zamiast „jak działa adresowanie w protokole”. Standard USB definiuje adresowanie urządzeń za pomocą 7‑bitowego identyfikatora urządzenia nadawanego przez hosta. Oznacza to, że możliwe jest przydzielenie maksymalnie 127 unikalnych adresów dla urządzeń na jednej magistrali USB. Co ważne, do tej liczby wliczają się również huby – każdy hub jest widziany przez hosta jako osobne urządzenie, z własnym adresem, nawet jeśli z punktu widzenia użytkownika jest tylko „rozgałęziaczem”. Odpowiedzi typu 7, 31 czy 63 zwykle biorą się z mylenia kilku różnych ograniczeń. Część osób kojarzy liczbę 7 z maksymalną zalecaną liczbą poziomów zagnieżdżenia hubów (tzw. głębokość drzewa USB), inni podświadomie dzielą lub zaokrąglają 127 do „bardziej okrągłych” wartości. Liczby 31 czy 63 wyglądają logicznie, bo też są oparte na potęgach dwójki, ale nie wynikają ze specyfikacji USB. Faktyczny limit wynika z tego, że host USB musi móc jednoznacznie zidentyfikować każde urządzenie na magistrali i zarządzać jego konfiguracją, zasilaniem oraz ruchem danych. Gdyby standard przewidywał mniej adresów, ograniczałoby to skalowalność rozbudowanych stanowisk, np. w laboratoriach, automatyce czy studiach nagraniowych, gdzie działa równocześnie bardzo wiele kontrolerów, interfejsów, dongli licencyjnych i innych urządzeń USB. W dobrzej praktyce projektowej przyjmuje się więc wartość 127 jako twardy limit logiczny, ale już na etapie planowania instaluje się więcej kontrolerów USB lub rozdziela obciążenie na różne magistrale, bo zanim dobijemy do 127 urządzeń, zwykle wcześniej pojawiają się problemy z przepustowością, opóźnieniami i dostępną mocą na portach. Dlatego odpowiedzi mniejsze niż 127 są po prostu sprzeczne z samą specyfikacją USB, nawet jeśli na pierwszy rzut oka wydają się „bezpieczniejsze” czy bardziej realistyczne.