De fleste af os tænker aldrig meget over vores tastaturer, så længe de fungerer godt, men hvis du holder op med at tænke over det et øjeblik, sender de kun signaler til vores computere, eller er der en aktiv frem og tilbage-proces på arbejdspladsen ? Dagens SuperUser Q & A-indlæg har svaret på en nysgerrig læsers spørgsmål.
Dagens spørgsmål og svar-session kommer til os med tilladelse fra SuperUser - en underinddeling af Stack Exchange, en community-driven gruppe af Q&A websteder.
Spørgsmålet
SuperUser-læser Ne Mo vil vide, om USB-tastaturer kun sender signaler, eller om de også modtager dem:
Et USB-tastatur behøver ikke at modtage signaler fra en computer, bare strøm, ikke? Eller er det nødvendigt at modtage signaler såvel som at sende dem?
Sender USB-tastaturer kun signaler, eller modtager de dem også?
Svaret
SuperUser-bidragsydere LawrenceC og Dmitry Grigoryev har svaret til os. Først op, LawrenceC:
Fra " Enhedsklasse-definition for menneskelige interfaceenheder (HID) ”Specifikation:
![]()
For at ændre tastaturets LED'er accepterer tastaturet en kommando om at gøre det. Så det er ikke en "kun input-enhed" (hvilket betyder, at den kun udsender data til værten). Når det er sagt, er der en forhandlings- og optællingsproces med alle USB-enheder, der kræver en frem og tilbage samtale mellem værten og enheden. Du kan ikke have en "skrivebeskyttet" USB-enhed. Selv før USB accepterede computerens tastaturcontroller kommandoer, fordi den gjorde et par ting udover at læse tastaturet ( reference ):
![]()
Efterfulgt af svaret fra Dmitry Grigoryev:
Enhver USB-enhed, uanset klasse, kræver tovejskommunikation for at fungere. Hver USB-enhed (eller funktion i form af USB-specifikationer) er repræsenteret som et sæt slutpunkter, der kan betragtes som buffere, der accepterer eller modtager data. Selv endepunkter, der kun kan sende data, venter imidlertid på en speciel pakke kaldet token, før de kan svare:
![]()
De grå kasser repræsenterer USB-værten, mens de hvide kasser repræsenterer USB-funktioner ( kortkilde ).
Selv såkaldte interrupt-overførsler udføres på denne måde med USB-værten polling-tilsluttede enheder ved hjælp af tokenpakker. Hvad der adskiller sig mellem regelmæssige (bulk) overførsler og afbryde overførsler er, at afstemningstiden er lille og garanteret i sidstnævnte tilfælde. Alligevel initieres alle overførsler af værten.
Har du noget at tilføje til forklaringen? Lyd fra i kommentarerne. Vil du læse flere svar fra andre teknisk kyndige Stack Exchange-brugere? Tjek den fulde diskussionstråd her .
Billedkredit: Luke Jones (Flickr)