23Aug

Skicka USB-tangentbord bara signaler eller tar de emot dem också?

De flesta av oss ger aldrig mycket tanke på våra tangentbord så länge de fungerar bra, men om du slutar tänka på det en stund skickar de bara signaler till våra datorer eller finns det en aktiv fram och åter-process påarbete? Dagens SuperUser Q & A-inlägg har svaret på en nyfiken läsarens fråga.

Dagens fråga &Svarssession kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.

Frågan

SuperUser-läsare Ne Mo vill veta om USB-tangentbord bara skickar signaler eller om de tar emot dem också:

Ett USB-tangentbord behöver inte ta emot några signaler från en dator, bara ström, eller hur? Eller behöver den också ta emot signaler och skicka dem?

Har USB-tangentbord bara skicka signaler eller tar de emot dem också?

Svaret

SuperUser-bidragsgivare LawrenceC och Dmitry Grigoryev har svaret för oss. Först upp, LawrenceC:

Från "Device Class Definition for Human Interface Devices( HID)" -specifikation:

För att byta tangentbordslampor accepterar tangentbordet ett kommando för att göra det. Så det är inte en "input-only" -enhet( det betyder att det bara matar ut data till värden).Det sägs att det finns en förhandlings- och uppräkningsprocess med alla USB-enheter som kräver en fram och återkoppling mellan värden och enheten. Du kan inte ha en "skrivskyddad" USB-enhet.Även före USB skulle datorns tangentbordskontroller acceptera kommandon eftersom det gjorde några saker förutom att läsa tangentbordet( referens):

Följd av svaret från Dmitry Grigoryev:

Varje USB-enhet, oavsett vilken klass som helst, kräver dubbelriktad kommunikation för att fungera. Varje USB-enhet( eller funktion i form av USB-specifikationer) representeras som en uppsättning slutpunkter som kan betraktas som buffertar som accepterar eller tar emot data. Men även slutpunkter som bara kan skicka data väntar på ett specialpaket som heter ett token innan de kan svara:

De grå rutorna representerar USB-värden medan de vita rutorna representerar USB-funktioner( diagramkälla).

Även så kallade avbrytsöverföringar görs på det här sättet, med USB-värderingsenhetens anslutna enheter med hjälp av token-paket. Vad som skiljer sig från regelbundna( bulk) överföringar och avbryta överföringar är att avstämningstiden är liten och garanterad i det senare fallet.Ändå initieras alla överföringar av värden.

Har du något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.

Bildkrediter: Luke Jones( Flickr)