Hur ett tangentbord fungerar!?

Övriga diskussioner relaterade till komponenter. Exempelvis radiorör, A/D, kontaktdon eller sensorer.
wapz
Inlägg: 29
Blev medlem: 17 december 2006, 17:12:25
Ort: sd
Kontakt:

Hur ett tangentbord fungerar!?

Inlägg av wapz »

Har forskat lite kring tangentbord om hur den fungerar:

Det finns en mikrokontroller på varje tangentbord som kallas encoder.
Den har 8 I/O portar för just knapparna, iaf hos en generic 102.
Encodern(kanske en intel 8048) kollar upp sitt rom minne efter scankoden(som är ett data paket som representerar tillståndet hos en knapp)
och med hjälp av sin timer se om det är bounce eller mänsklig input.

Sedan skickas scankoden i form av bytes till kontrollern som finns på moderkortet(kanske en 8042 eller AIP)
genom något protokoll tex: 5-pin DIN , 6 pin Mini-DIN eller USB kontakt osv.
Scankoden lagras i 8042 interna minne och sedan togglas IR-linjen (interuppt request) till
hög. den visar då uppmärksamhet och skickar då en IRQ till PIC. PIC:en signalerar processorn o talar om vilket
IRQ nummer att anropa dvs i detta fall nummer 1.
Processorn pekar sedan på offsets i IDT och exekverar avbrottshanteraren
som har som uppgift att uppdatera aktuella tillståndet och avkoda scankoden till korrekt format.

Det är en kommunikation mellan 8048 och 8042 via IN och OUT instruktioner, tex läsa från port 0x60
så får man data från encodern och status registret indikerar om bufferten är full eller inte.
DVS, IN/OUT instruktioner används av x86 processorn för att kommunicera med enheter.

Varje gång processorn får en IN/OUT instruktion så aktiveras I/O access på kontroll bussen(som är en del av systembussen/FSB) på
moderkortets nordbrygga. Om det är en IN-instruktion så placerar processorn port addressen(tex 0x64) på address bussen. samt aktiverar READ.
Encodern lyssnar på kontroll bussen och ser att det är en läs-operation därför kopierar den data(scankoden) från sitt
interna register till data bussen osv. På Liknande sätt fungerar en skriv operation.

Jag har säkert fel i många påståenden, men det vore skoj med lite diskussion :)
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Hur ett tangentbord fungerar!?

Inlägg av vfr »

För tydlighets skull så borde kanske rubriken vara "Hur ett PC-tangentbord fungerar!?", eller t.o.m "En diskussion om hur ett PC-tangentbord fungerar!". . När jag såg rubriken så trodde jag det var en generell beskrivning av skanning med rader och kolumner på en lite lägre nivå...
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Hur ett tangentbord fungerar!?

Inlägg av blueint »

Om man lägger 8 st I/O som 4x4 rader+kolumner så får 16 positioner. Så det behövs mer I/O. Med 21 st I/O får man med en 10 x 11 matris för 110 tangenter.

Protokollet mellan tangentbord och dator har varit samma från början. Dvs PS/2 protokollet. I princip RS232 fast med data + klocka. Kanske lite I2S/SPI över det hela. Dock skiljer sig USB tangentborden sig radikalt.

Tangentbord/USB mm sitter oftast på "southbridge" vad jag minns.

Är tveksam till att MCU:n 8042 hanterar ISA bussen i mjukvara, det är ganska snabba förlopp i sammanhanget.
wapz
Inlägg: 29
Blev medlem: 17 december 2006, 17:12:25
Ort: sd
Kontakt:

Re: Hur ett tangentbord fungerar!?

Inlägg av wapz »

sorry för min otydlighet,
Jag kollade upp databladet för 8048:an den hade inte 8 I/O utan 27.
sen det dära med protokoll, 6 pin Mini-DIN är bara ett annat namn för PS/2.

och i moderna pc så finns 8042 integrerad i en så kallad "super I/O" som kopplas till sydbryggan
och hanterar LPC bussen istället för ISA för kommunikation med cpun.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Hur ett tangentbord fungerar!?

Inlägg av blueint »

LPC är ISA i serialiserad form.
danei
EF Sponsor
Inlägg: 27417
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Re: Hur ett tangentbord fungerar!?

Inlägg av danei »

Protokollet är inte riktigt samma sak som kontaktstandard.
Skriv svar