Znam odpowiedź Google i odpowiedź Wikipedii na powyższe pytanie. Ale mam bardziej szczegółowe pytanie. Koncentratory USB mają wiele portów przychodzących i portów oraz tylko jeden port wychodzący, dzięki temu mogę używać, powiedzmy, liczby n urządzeń razem. Ale nie rozumiem w jaki sposób jeden port USB może przesyłać dane z n-liczbą portów USB?
w jaki sposób może wysyłać różne dane do wszystkich portów USB w tym samym czasie?

*

schematyczny

symuluj ten obwód – Schemat utworzony przy użyciu CircuitLab

*.

Komentarze

  • Prawie tak samo, jak router sieciowy może łączyć jeden port LAN (internet) z wieloma urządzeniami. Każdy punkt końcowy (urządzenie USB) ma przypisany adres, a koncentratory po prostu kierują żądania z hosta do odpowiedniego urządzenia, śledząc, jaki adres znajduje się na jakim porcie. ' jest znacznie prostsze w przypadku USB w tym sensie, że istnieje tylko jeden master (port hosta), który inicjuje wszystkie transakcje.
  • @TomCarpenter Then How czy port USB przesyła różne dane ' razem?
  • Port hosta prosi określony punkt końcowy o rozmowę. Punkty końcowe rozmawiają tylko wtedy, gdy o to poprosi host.
  • @TomCarpenter Ale wszystkie są używane jednocześnie, a nie jeden po drugim, ale wszystkie razem.
  • Pamiętaj, że magistrala USB może działa z prędkością do 480 Mb / s na USB 2.0. Host zawsze rozmawia tylko z jednym punktem końcowym na raz, ale rozmawia z nimi wszystkimi po kolei i przełącza się między nimi tak szybko, że nie można było tego ' stwierdzić. To samo robią sieci. " Hej, najedź myszką na port 1, powiedz mi, czy ' się przeniosłeś. Ok, teraz klawiatura na porcie 2, czy masz jakieś naciśnięcia klawiszy do zgłoszenia? Teraz jesteś na porcie 3, pendrive, przechowuj dla mnie te dane. Czy jest jeszcze ktoś, z kim muszę porozmawiać? nie, w takim razie przesuń kursor myszy na port 1, powiedz mi, czy ' przeniosłeś się … "

Odpowiedź

Wszystko zależy od arbitrażu. Każdy system, który wymaga podłączenia wielu urządzeń, wymaga pewnego sposobu określenia, kto powinien mówić kiedy. Istnieją różne schematy, jak można by się spodziewać, w zależności od aplikacji.

Typowy przykład – w sieci mamy wiele węzłów rozmawiających ze sobą. Odbywa się to przez każdy węzeł mający adres (np. adres), a gdy węzeł chce rozmawiać z innym węzłem, wysyła pakiet pod ten adres. Następnie masz urządzenia takie jak routery, które odbierają pakiety przychodzące na wielu portach i przekazują je do właściwego portu. zrobione przy użyciu pamięci do przechowywania pakietów do czasu zwolnienia portu docelowego.


Teraz na USB. Jest to o wiele prostsze niż praca w sieci, ponieważ nie wszystkie węzły są równe. Masz dwa rodzaje: hosta i punkt końcowy. Zawsze jest tylko jeden host, ale może być wiele punktów końcowych. W tym przypadku arbitraż jest znacznie łatwiejszy, ponieważ tylko port hosta może rozmawiać do woli. Punkty końcowe mogą rozmawiać tylko na żądanie hosta , a host zawsze rozmawia tylko z jednym punktem końcowym na raz.

W przypadku pakietów hosta > punktów końcowych koncentratory USB po prostu przekazują żądanie z hosta do wszystkich punktów końcowych. Ponieważ wszystkie punkty końcowe mają adres, tylko ten, do którego skierowano żądanie, zrobi z nim cokolwiek (np. Odpowie), wszystkie inne zignorują pakiet.

Dla punktu końcowego- > pakiety hosta, host najpierw wysyła pakiet do określonego punktu końcowego na podstawie adresu, aby powiedzieć: " możesz teraz rozmawiać " , a następnie ten punkt końcowy musi natychmiast wysłać odpowiedź. Ponieważ tylko jeden punkt końcowy może rozmawiać w danym momencie, koncentrator USB po prostu przekieruje pakiet z dowolnego portu, który odpowie na żądanie od hosta.


Pod względem działania hosta aby dowiedzieć się, jakie urządzenia są podłączone i w jaki sposób punkty końcowe uzyskują ich adresy, uzyskuje się to poprzez wyliczenie.

Wszystkie porty hosta i koncentratora mają rezystory obniżające (15 kOhm) na liniach D + i D-. Wprowadzają one linie danych tego portu w znany stan, gdy nie jest podłączone żadne urządzenie, stan, w którym port w ogóle nie wysyła żadnych danych przez linie D + / D-.

Gdy urządzenie jest podłączony, ujawnia się poprzez podłączenie linii danych D + (pełna prędkość) lub D- (niska prędkość) do VCC za pomocą rezystora 1,5 kOhm. To wyzwala zdarzenie wyliczenia. Port rozpocznie wówczas proces konfiguracji urządzenia i przypisania adresu.Gdybyś miał podłączyć dwa urządzenia jednocześnie, będą one wyliczane po jednym naraz .

Jeśli nie ma koncentratorów, host po prostu komunikuje się z nowym urządzeniem i konfiguruje je. Jeśli w systemie są koncentratory, jest to koncentrator, który zgłasza podłączenie nowego urządzenia . Jeśli koncentrator zgłosi podłączenie nowego urządzenia, host poinstruuje koncentrator, aby zresetował nowe urządzenie i rozpoczął komunikację. Podczas resetowania punkt końcowy otrzymuje domyślny adres 0 (*). Host może następnie rozmawiać z punktem końcowym przy użyciu adresu domyślnego i skonfigurować go z unikalnym adresem niezerowym, który pozwoli mu wiedzieć, kiedy jest rozmawiany.

(*) Ponieważ tylko jedno urządzenie jest kiedykolwiek wyliczane na raz, adres 0 będzie zawsze unikalny dla nowo podłączonego urządzenia.


Możesz wtedy zapytać, " jak czy mogę wtedy rozmawiać jednocześnie z wieloma urządzeniami? ". Załóżmy, że masz mysz, klawiaturę i dysk flash, wszystkie podłączone do tego samego koncentratora USB. Wszyscy wiemy, że możesz używać myszy i klawiatury w tym samym czasie, jednocześnie kopiując pliki na / z dysku flash, ale jeśli tylko jedno urządzenie może rozmawiać naraz, jak to możliwe?

Cóż , wszystko sprowadza się do tego, że kilkaset milisekund, których mózg potrzebuje, aby zauważyć, że nacisnąłeś klawisz i oczekiwał, że ekran się zaktualizuje, to dla komputera wieczność. Interfejs USB 2.0 może działać z prędkością do 480 Mb / s (USB 3.1 może działać z prędkością do 10 Gb / s!), Co oznacza, że nawet jeśli host rozmawia tylko z jednym punktem końcowym w danym momencie, przełącza się między nimi tak szybko, że możesz „nie mów, że to” robi.

Host USB: " Hej, mysz na porcie 1, powiedz mi, czy się przeniosłeś. OK, teraz klawiatura na porcie 2, czy masz jakieś naciśnięcia klawiszy do zgłoszenia? Teraz jesteś na miejscu na porcie 3, pendrive, zapisz te dane dla mnie. Z kimkolwiek jeszcze muszę porozmawiać? Nie, w takim razie, mysz na porcie 1, powiedz mi, czy zostałeś przeniesiony … "

Człowiek: " O, spójrz , komputer zauważył, że właśnie poruszyłem myszą, wcisnąłem klawisz na klawiaturze i skopiowałem zdjęcie na dysk flash, a wszystko to w tym samym czasie! "

Urządzenie hosta śledzi, które e Adresy ndpoint są używane i będą wysyłać pakiety do każdego z nich sekwencyjnie lub w razie potrzeby (tj. gdy system operacyjny żąda dostępu do określonego urządzenia). Więc chociaż nie wszystko dzieje się jednocześnie, arbitraż jest tak szybki, że ludzie komputerów nie są w stanie stwierdzić różnicy.

Komentarze

  • Do dodaj: Urządzenia USB (a dokładniej tylko punkty końcowe „przerywające”) mogą żądać odpytywania w określonych odstępach czasu do 1 ms. Dopóki nie masz setek urządzeń wejściowych, nigdy nie zauważysz opóźnienia.
  • Skąd host wie, które punkty końcowe są połączone? Poza tym wydaje się, że ' nie odpowiada na pierwotne pytanie dotyczące koncentratorów. Jak one współdziałają w tym procesie ? Jak współdziałają w wyliczaniu?
  • Wyliczanie @YonaAppletree. Hosty i koncentratory skanują wszystkie swoje porty w poszukiwaniu połączeń z urządzeniami – wykrywają rezystor podciągający 1,5 kOhm na D + (Full Speed) lub D- (Niska prędkość). ' dodam trochę informacji o przypisywaniu adresów punktom końcowym.
  • @YonaAppletree pod względem koncentratorów podczas pracy, odpowiedź mówi już o tym host do punktu końcowego: " Koncentratory USB po prostu przekazują żądanie z hosta do wszystkich punktów końcowych ". W przypadku punktu końcowego do hosta: " Ponieważ tylko jeden punkt końcowy może rozmawiać w danym momencie, koncentrator USB po prostu przekieruje pakiet z dowolnego portu, który odpowie "

Odpowiedź

Krótsza odpowiedź: host wysyła dane, które są zaadresowane do określonego urządzenia ( która została wstępnie „wyliczona”), jedna transakcja na raz, sekwencyjnie. Koncentrator rozsyła wszystkie pakiety do wszystkich urządzeń. Urządzenie odpowiada tylko na transakcje, które są do niego adresowane. To wszystko, prawda w przypadku urządzeń HS.

W przypadku urządzeń FS i LS proces jest nieco bardziej skomplikowany. Wykorzystuje „translatory transakcji”, które są wbudowane w każdym koncentratorze dla każdego portu, który tłumaczy tak nazywane „podziel transakcje” na ruch LS lub FS.

Komentarze

  • A co z USB 3?
  • Koncentratory USB3 są bardziej inteligentny dla łącza Super-Speed i użyj jawnego routingu do urządzenia / punktów końcowych. Sekcja USB2 pozostaje taka sama. Zobacz sekcję 3.1 " Podsumowanie architektury " najnowszych specyfikacji USB 3.1, usb.org/developers/docs/usb_31_052016.zip

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *