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?
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?
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).
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.
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.
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:
Jak wskazano w innych odpowiedziach
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.