Documente noi - cercetari, esee, comentariu, compunere, document
Documente categorii

E.T.C. Tastatura - Schema generala a unei tastaturi, Tastatura la calculatoarele PC

Tastatura



Introducere



Tastatura este un dispozitiv periferic de intrare ,fiind folosit pentru a introduce date in memoria calculatorului.Tastatura standard este numita QWETRY dupa tastele cele mai putin utilizate, iar in 1971 a fost decla- rata oficial ca tastatura calculatorului. Tastatura are cinci grupe de taste, corespunzatoare cu urmatoarele zone:

-taste functionale



-taste alfanumerice

-taste speciale

-taste numerice

-taste de deplasare

Tastele functionale :(F1-F12) cu diferite intrebuintari in diverse aplicati;

Tastela alfanumerice

Tastele speciale sunt: Insert, Home, Delete, And, Page Down etc.

Tastele numerice

Tastele de deplasare:

Forma, butoanele si asezarea acestora dau o nota de ansamblu foarte atragatoare. Instalarea nu inseamna decat introducerea cablului intr-o priza USB si executia catorva pasi simpli in urma rularii CD-ului propriu. Suprafata tastaturii prezinta nu mai putin de 125 de butoane, distribuite in sase zone.

Schema generala a unei tastaturi

Cuprinde urmatorele parti mari componente:

matricea de comutatoare

registrul pentru selectarea liniei

aprindereastingerea ledurilor

un tampon pentru citirea comutatorului actionat pe o anumita linie

un controller care monitorizeaza matricea de comutatoare si genereaza calculatorului codul de scanare a unei taste apasate; aceasta monitorizare  cuprinde :

-se incearca in registrul de selectare a liniei, un 0 pe pozitia corespunzatoare liniei pe care o urmarim, restul bitilor fiind 1;

-se citesc printr-un tampon valorile logice stabilite pe coloana matricei si apoi se trece la linia urmatoare;

-cand nu este apasata nici o tasta de pe linia care este monitorizata, pe toate coloanele este valoarea 1 logic;

-cand este apasata o noua tasta se inchide contactul corespunzator tastei, iar pe coloana corespunzatoare comutatorului actionatvom avea valoarea 0 logic;

-valorile liniei si coloanei corespunzatoare tastei apasate sunt modificate si se genereaza codul de scanare a tastei;

-cand trebuie aprins un led se incearca in registrul de linie valoarea 0 pe pozitia corespunzatoare ledului;

Tote aceste comutatoare sunt intr-o natura matriciala, fiecarei taste ii corespunde o linie si o coloana.

fig-03-01.gif (5050 bytes)

Fig1.Schema generala a unei tastaturi

Tastatura la calculatoarele PC

Interfata tastatura-calculator

Tastatura IBM este conectata la calculator printr-o interfata seriala similara unui port COM. Calculatorul compatibil IBM AT foloseste ca interfata un connector DIN cu 5 pini cu urmatoarele semnale.

  1. CLK(Clock)/CTS(Clear To Send) (open-collector);
  2. RxD/TxD/RTS(Request To Send) (open-collector);
  3. Neconectat sau RESET;
  4. GND;
  5. +5V.

fig-03-02.jpg (2552 bytes) Fig.2



Pentru sincronizare se foloseste linia de tact CLK, tastatura fiind cea care genereaza tactul. Frecventa de tact este de aproximativ 10-20 kHz, dar variaza de la tastatura la tastatura. Un cuvant transmis sau receptionat contine 11 biti: 1 bit de start (0 logic), 8 biti de date (incepand cu bitul mai putin semnificativ), 1 bit de paritate (paritate impara) si 1 bit de stop (1 logic). Cei 8 biti de date reprezinta cod de scanare (scan code) asociat unei taste, din care cei mai putin semnificativi 7 biti identifica tasta apasata, iar cel mai semnificativ al acestui octet specifica ce anume s-a intamplat: 0 - s-a apasat o tasta; 1 - s-a ridicat tasta.

Transfer sistem-tastatura: Cand calculatorul doreste sa trimita un octet de comanda tastaturii, activeaza RTS si dezactiveaza CTS. Tastatura, daca nu are un octet de trimis calculatorului, raspunde prin generarea impulsurilor de tact pe linia CLK. Calculatorul trimite comanda serial pe linia TxD pe fiecare front descrescator al impulsului de tact iar informatia este preluata de catre tastatura pe urmatorul front crescator. Dupa ce a fost transmis bitul de paritate, controller-ul deconecteaza linia TxD (este pusa pe 1 logic) si asteapta inca un impuls de tact.

Transfer tastatura-sistem Atunci cand este apasata sau ridicata o tasta, tastatura va initia transferul daca liniile RTS si CTS sunt inactive (1 logic). Daca linia CTS este pe 0 logic, octetul de date se va salva intr-un buffer intern pana cand este posibila transmiterea lui.

Un alt tip de interfata folosita la calculatoarele actuale este PS2. Acest tip de interfata a fost dezvoltat de IBM pentru tastaturi si mouse-ri. Interfata PS2 foloseste pentru comunicatia cu tastatura un protocol serial sincron folosind semnale TTL.

ps2-f1.gif (2072 bytes)Comunicatia este bidirectionala, si este controlata de liniile de tact si date .

Fig.1Transferul tastatura system

Programarea tastaturii


Circuit 8042 are asociate urmatoarele doua adrese de porturi: portul 60H si portul 64H. Portul 60H este pentru scrierea datelor, dar si pentru mentinerea compatibilitatii cu modelele de tastaturi mai vechi. Portul 64H este folosit pentru scrierea de comenzi si date, dar si pentru citirea starii tastaturii. Inainte de a trimite o comanda tastaturii, BIOS-ul ii testeaza starea (in al,64h) si se asigura daca nu este apasata nici o tasta sau daca tamponul intern nu este plin. Pentru o comanda compusa din mai multe cuvinte este recomandabil ca aceasta sa se faca introducand o mica intarziere intre doua scrieri succesive.

In continuare sunt prezentate o parte din comenzile lui 8042: ca

  • 0ffH - Initializeaza tastatura si lanseaza rutinele interne de diagnoza;
  • 0feH - Retrimite ultima transmisie efectuata de tastatura;
  • 0f6H - Seteaza tastatura pe configurarea implicita si continua scanarea;
  • 0f5H - Seteaza tastatura pe configurarea implicita si devalideaza scanarea tastaturii;
  • 0f4H - Valideaza tastatura. Aceasta raspunde cu ACK (acknowledge), isi sterge tampoanele interne si incepe scanarea

In cazul comenzilor pe un singur octet, acestea se transmit tastaturii prin urmatoarea secventa de cod:



mov al, cmd_code
out 64h, al
  • fig-03-03.gif (2283 bytes)0f3H - Seteaza rata de repetitie si intarzierea. Dupa trimiterea comenzii se trimite un octet de date care contine:

Cod

Valoare

Cod

Valoare

0

30.0

0aH

10.0

1

26.7

0dH

9.2

2

24.0

10H

7.5

4

20.0

14H

5.0

8

15.0

1fH

2.0

Cod

Valoare

00

250ms

01

500ms

10

750ms

11

1000ms

Intarzierea

Tastatura este setata initial sa inceapa repetitia dupa 500ms si rata de repetitie e de 10 caractere/sec.

Pentru comenzile care necesita un octet de date se foloseste urmatoarea secventa de cod:

mov al, cmd_code
out 64h, al
mov cx, 2000h ; aproximativ 10ms
loop $
mov al, data_value
out 64h, al
  • 0eeH - Ecou. Tastatura raspunde cu 0eeH (folosit pentru testare).
  • 0edH - Aprinde si stinge LED-urile de "lock key". Dupa trimiterea octetului de comanda se trimite un octet de date care contine:

fig-03-04.gif (2338 bytes)



Zona de date ROM-BIOS

In zona de date ROM-BIOS, se mentin datele si variabilele importante pentru rutinele BIOS. Pentru tastatura avem urmatoarele locatii mai importante:

0:0417H Starea tastaturii

fig-03-05.gif (3991 bytes)

0:0418H Starea tastaturii

fig-03-06.gif (3878 bytes)

0:041aH adresa de inceput a buffer-ului de tastatura (indica spre 0:041eH)

0:041cH adresa de sfarsit a buffer-ului de tastatura (indica pana la maxim 0:043dH)

0:041eH buffer-ul de tastatura. Aici sunt introduse codurile ASCII ale tastelor apasate. Se pot stoca pana la 32 de caractere.

0:0497H indicatorul pentru LED-urile de lock

Functionarea tastaturii

La apasarea oricarei taste se genereaza intreruperea hard 09H; rutina de tratare pentru intreruperea 09H citeste codul de scanare al tastei apasate, se decodifica acest cod si, in functie de tipul tastei, se efectueaza operatiile:

  • Shift, Ctrl, Alt - se modifica octetii de stare din zona de date BIOS (fig 8 si 9);
  • Caps Lock, Num Lock, Scroll Lock - se modifica octetii de stare din zona de date BIOS si starea LED-urilor;
  • Tasta extinsa - in acest caz se genereaza doua intreruperi (09H) succesive. In prima intrerupere se citeste valoarea 0e0H, prin care se specifica aparitia unei taste extinse (F1-F12, PageUp,., Arrows). Iar a doua intrerupere citeste codul efectiv al tastei extinse;
  • Tasta obisnuita - se translateaza codul de scanare al tastei apasate in codul ei ASCII corespunzator (pe baza unui tabel al carui index este codul de scanare) si se introduce caracterul in coada buffer-ului de tastatura. Daca s-a depasit capacitatea buffer-ului se genereaza un semnal sonor iar caracterul este ignorat.

Daca se tine tasta mai mult timp apasata, dupa un anumit timp de intarziere (programabil prin comanda 0f3H), se genereaza intreruperea 09H cu o anumita rata de repetitie (programabila tot prin comanda 0f3H).

Fiecare tasta din tastatura are asociat un cod de scanare (scan code), care este continut in cei mai putin semnificativi 7 biti ai unui octet furnizat de controller-ul de tastatura. 

Pentru citirea unui caracter din buffer-ul de tastatura se foloseste intreruperea soft 16H. Aceasta, la fiecare apel returneaza urmatorul caracter din buffer-ul de tastatura, deplasand si continutul buffer-ului cu un caracter la stanga.

biologie

botanica






Upload!

Trimite cercetarea ta!
Trimite si tu un document!
NU trimiteti referate, proiecte sau alte forme de lucrari stiintifice, lucrari pentru examenele de evaluare pe parcursul anilor de studiu, precum si lucrari de finalizare a studiilor universitare de licenta, masterat si/sau de doctorat. Aceste documente nu vor fi publicate.