Czy klawisze USB wysyłają tylko sygnały, czy też je odbierają?
Większość z nas nigdy nie zastanawia się nad naszymi klawiaturami, o ile działają dobrze, ale jeśli przestaniesz myśleć o tym przez chwilę, czy wysyłają sygnały tylko do naszych komputerów lub czy jest aktywny proces tam iz powrotem? ? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedź na ciekawe pytanie czytelnika.
Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, opartego na społecznościach grupowania witryn z pytaniami i odpowiedziami.
Pytanie
Czytnik SuperUser Ne Mo chce wiedzieć, czy klawiatury USB wysyłają sygnały, czy też je odbierają:
Klawiatura USB nie musi odbierać żadnych sygnałów z komputera, tylko zasilanie, prawda? Czy musi odbierać sygnały, a także wysyłać je?
Czy klawiatury USB wysyłają sygnały lub też je odbierają?
Odpowiedź
Współautorzy SuperUser LawrenceC i Dmitrij Grigoriew mają dla nas odpowiedź. Po pierwsze, LawrenceC:
Ze specyfikacji "Device Class Definition for Human Interface Devices (HID)":
Aby zmienić diody LED klawiatury, klawiatura przyjmuje polecenie, aby to zrobić. Nie jest to więc urządzenie "tylko do wejścia" (co oznacza, że wysyła dane tylko do hosta). W związku z tym istnieje proces negocjacji i wyliczania wszystkich urządzeń USB, które wymagają wstecznej i bezpośredniej konwersacji między hostem a urządzeniem. Nie możesz mieć urządzenia USB "tylko do odczytu". Nawet przed USB kontroler klawiatury komputera akceptowałby polecenia, ponieważ wykonał kilka czynności poza odczytaniem klawiatury (odwołanie):
Poniżej odpowiedź Dmitrija Grigoriejewa:
Każde urządzenie USB, niezależnie od jego klasy, wymaga komunikacji dwukierunkowej. Każde urządzenie USB (lub funkcja pod względem specyfikacji USB) jest reprezentowane jako zbiór punktów końcowych, które można uważać za bufory, które akceptują lub odbierają dane. Jednak nawet punkty końcowe, które mogą wysyłać dane, czekają na specjalny pakiet zwany tokenem, zanim będą mogli odpowiedzieć:
Szare pola oznaczają host USB, natomiast białe pola reprezentują funkcje USB (źródło wykresu).
Nawet tak zwane transfery przerwań są wykonywane w ten sposób, gdy host USB odpytuje podłączone urządzenia za pomocą pakietów tokenów. Różnice między przelewami zwykłymi (hurtowymi) a przelewami przerywającymi są takie, że czas odpytywania jest niewielki i gwarantowany w drugim przypadku. Mimo to wszystkie transfery są inicjowane przez hosta.
Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.
Źródło obrazu: Luke Jones (Flickr)