Pytanie:
Dlaczego USB używa tylko 2 linii dla RX, TX zamiast wielu linii danych?
mhashim6
2018-11-16 18:14:52 UTC
view on stackexchange narkive permalink

Czy nie byłoby szybciej, gdyby istniało wiele linii danych (powiedzmy 8) do przesyłania / odbierania danych (powiedzmy bajtów sekwencyjnych) zamiast używania jednej linii do przesyłania kolejnych bitów?

Dużo trudniej byłoby sprawić, by działał z dużą prędkością przy użyciu wielu przewodów.Jest ku temu dobry powód, ale napisanie odpowiedzi, która wyjaśnia, dlaczego zajęłoby to zbyt dużo czasu - i prawdopodobnie nie jestem najlepszą osobą, aby to wyjaśnić.
dupe: [Dlaczego wszędzie jest używana cyfrowa transmisja szeregowa?] (https://electronics.stackexchange.com/q/393462/50736)
Tak skonfigurowano USB typu C.Z wieloma liniami danych.
@ratchetfreak Uważam, że nie musisz nawet iść tak daleko, USB 3.0 ma 4 linie danych zamiast 2.
Wydaje mi się, że wiele z tych odpowiedzi reaguje tak, jakby USB miało 1 przewód transmisyjny i 1 przewód odbiorczy, podczas gdy zamiast tego ma jedną parę różnicową.Obie strony, zarówno nadające, jak i odbierające, są na tej parze różnicowej.To odróżnia go przynajmniej od SATA.
Nie powinieneś rozróżniać między komunikacją szeregową i równoległą, która da ci prostszą odpowiedź.
Ponieważ jest szeregowy, co ma sens, jeśli USB jest uniwersalne.Działa na 16, 32, 64 bitach itp.
@PSyLoCKe, który nie ma z tym nic wspólnego.Rozmiar transferu może być również dowolny w przypadku interfejsu równoległego.
Pięć odpowiedzi:
Marcus Müller
2018-11-16 18:20:03 UTC
view on stackexchange narkive permalink

Byłoby rzeczywiście szybciej, gdyby zamiast jednej linii podawał wiele linii w tym samym zegarze symboli.

Jednak głównym i najważniejszym celem USB jest zapewnienie łatwego, szeregowego (stąd S w USB) połączenia między niedrogimi urządzeniami (stąd U w USB) z tanim, lekkim okablowaniem.

Dlatego właśnie USB nie obsługuje równoległych linii danych: po prostu nie jest to nisza, którą ma wypełnić.

Nie należy też zapominać, że posiadanie wielu równoległych pasów o dużej prędkości wymaga od systemu nadawczo-odbiorczego stosunkowo dużego wysiłku, aby skompensować różne skosy na różnych liniach, co przy dużych prędkościach jest nieuniknione.

Często taniej jest sprawić, by coś działało dwa razy szybciej niż budowanie dwóch z wolniejszego wariantu, chyba że naprawdę rozmawiasz bezpośrednio ze sprzętem, który jest w swojej pierwotnej zasadzie równoległy do bitów (np. chipy pamięci DDR).

Czy mógłbyś wyjaśnić, jak U w USB jest powiązany z „tanimi urządzeniami”?
USB = ** uniwersalna ** magistrala szeregowa.Termin „uniwersalny” oznaczał, że został zaprojektowany jako tania magistrala dla wszelkiego rodzaju tanich urządzeń peryferyjnych.
Chris Fernandez
2018-11-16 20:24:54 UTC
view on stackexchange narkive permalink

Jedną z głównych przeszkód w przypadku każdego typu szyny równoległej jest pochylenie. Jeśli masz 8 oddzielnych przewodów, wszystkie przenoszą dane, ważne jest, aby wszystkie bity dotarły mniej więcej w tym samym czasie. W przeciwnym razie bity bajtu A mogą zostać pomieszane z bitami bajtu B. Oznacza to, że długość tych równoległych przewodów musi być dopasowana, w ramach pewnego procentu szybkości zegara, tak aby czas przemieszczania się sygnału wzdłuż przewodu jest w przybliżeniu taka sama. Im większa szybkość zegara, tym mniejsza tolerancja długości między równoległymi przewodami.

W przypadku projektu PCB dla czegoś takiego jak płyta główna, bardzo ścisłe ograniczenia projektowe są powszechne. Ścieżki PCB mogą osiągać dopasowanie długości 1 mil lub więcej, co jest wystarczające do zaimplementowania szybkich interfejsów równoległych. Typowym tego przykładem jest interfejs pamięci DDR. Ten interfejs opiera się na komunikacji równoległej w celu przesyłania danych z bardzo dużą szybkością, ale możliwe jest tylko (niedrogie) wdrożenie tych interfejsów wewnętrznie.

Wyobraź sobie, że próbujesz zbudować zewnętrzny kabel komputerowy z ponad 30 połączeniami przewodowymi, wszystkie długości dopasowane do jednej tysięcznej cala! Te kable byłyby bardzo drogie w porównaniu do okablowania USB.

Starsze komputery korzystały z portu równoległego, który miał 8 linii danych, ale mógł osiągnąć szybkość transmisji danych jedynie około 2,5 MB / s. Porównaj to z 60 MB / s USB 2.0, nie mówiąc już o nowszych odmianach USB.

W rzeczywistości możesz to obejść dzięki trenowaniu linków na wielu torach i * robi się to * nawet na typowych połączeniach PCB, takich jak PCIe - ale naprawdę opłaca się to zrobić tylko wtedy, gdy zaoszczędzisz sobie wielu kłopotów, przechodząc przez tę kwotękłopotów.
PCIe jest w rzeczywistości połączeniem szeregowym, które wykorzystuje tylko jedną różnicową parę linii dla Rx i drugą parę dla Tx.Wiele linii * PCIe * to * nie * równoległe linie sygnałowe.Potrzebują tylko synchronizacji opartej na przesyłanych ramkach, a nie na sygnałach cyfrowych.Kilka tygodni temu odbyła się dyskusja na ten temat na [electronics.se].
dobry chwyt, zaktualizowany
https://electronics.stackexchange.com/a/393469/87770
Manu3l0us
2018-11-16 18:26:59 UTC
view on stackexchange narkive permalink

Chociaż odpowiedź Marcusa jest w 100% poprawna, chcę dodać, że USB 3.2 Gen 1x2 i Gen 2x2 używają dwóch pasów danych w każdym kierunku, podczas gdy pasy nadal działają z prędkością 5 Gbit / s lub odpowiednio.10 Gbit / s każdy.

CrossRoads
2018-11-16 21:52:46 UTC
view on stackexchange narkive permalink

USB nie ma linii Rx & Tx.Ma jedną parę linii różnicowych, podobnie jak RS485, z kodowanym razem sygnałem zegara &.Nadawca wysyła dane w jedną stronę za pomocą obu przewodów, a odbiorca w drugą stronę, używając obu linii.

W przeciwnym razie tak, równoległa magistrala sygnałów może być bardzo szybka.Najlepsze na krótkie dystanse z powodów już wymienionych.

Przykład transferu danych przez USB:

enter image description here

mic_e
2018-11-17 00:16:39 UTC
view on stackexchange narkive permalink

Jak wskazano w innych odpowiedziach

  • Masz rację, jeśli wykorzystasz dwa razy więcej pasów, uzyskasz dwukrotnie większą prędkość.
  • Wcześniej powszechne były równoległe autobusy (z wieloma pasami danych). Przykładami są równoległy interfejs drukarki, PATA i PCI. Trudno jest jednak zbudować szybkie równoległe szyny, ponieważ różnice w długościach poszczególnych przewodów spowodują różnice w taktowaniu. Szyny równoległe są nadal w powszechnym użyciu na płytkach drukowanych (DRAM, QSPI, GMII, ...) i na chipach (AXI, AHB, QPI, ...), ale przy większych odległościach znacznie tańsze jest zbudowanie szybsze łącze szeregowe niż łącze równoległe o mniejszej szybkości z taką samą przepustowością danych. Nowoczesne superszybkie łącza danych na większe odległości, takie jak Gigabit Ethernet, PCIe i USB3, mają wiele linii danych, ale każda z nich jest całkowicie niezależnym szybkim łączem szeregowym; strumienie danych z poszczególnych łączy są ponownie łączone w późniejszym czasie. Dlatego możesz umieścić kartę graficzną PCIe x16 w gnieździe PCIe x1 za pomocą pasującej karty (lub odpowiedniej siły).
  • Równoległe szyny mają więcej przewodów (duh), więc kabel będzie grubszy, cięższy i droższy, a także złącze.

Historycznie, gdy projektowano USB, szybki transfer danych nie był jego głównym celem. Głównym celem było stworzenie uniwersalnego i taniego systemu magistrali do łączenia urządzeń peryferyjnych, takich jak klawiatury, myszy i drukarki. Projekt równoległy byłby złym wyborem; zrujnowałoby to rewolucyjny mały rozmiar złącza i prawdopodobnie zwiększyłoby koszt USB na tyle, aby zapobiec jego powszechnej adaptacji.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...