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, społecznościowego forum z pytaniami i odpowiedziami.
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 klawisze USB wysyłają sygnały, czy też je odbierają?
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". Jeszcze 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 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. To, co różni się pomiędzy przelewami zwykłymi (hurtowymi) i przerywającymi, polega na tym, że czas odpytywania jest niewielki i gwarantowany w tym drugim przypadku. Nadal 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.
Image Credit: Luke Jones (Flickr)