|
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.
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.
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.
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
In cazul comenzilor pe un singur octet, acestea se transmit tastaturii prin urmatoarea secventa de cod:
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
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
0:0418H Starea tastaturii
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
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:
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.