Tastatura PS2

De la WikiLabs
Jump to navigationJump to search

Tastatura legată la o interfață PS2 comunică prin două porturi:

  • un port de ceas, care este constant 1 atunci când tastatura nu trimite date, și trece în 0 atunci când pe portul de date este un bit valid (ceea ce implică faptul că circuitul va fi sensibil la frontul negativ al acestui semnal);
  • un port de date, de un bit, pe care se transmit serial datele de la tastatură, valide pe frontul negativ al semnalului de ceas.

Portul de date este bidirecțional (puteți citi mai mult despre modul acestuia de funcționare în manualul de referință pentru Nexys 2 [1]), dar deocamdată ne interesează transmisia dinspre tastatură spre placa de dezvoltare. La apăsarea unei taste, tastatura va trimite secvențe de coduri de 11 biți care reprezintă următoarea secvență:

  • 1 bit de start, care este întotdeauna 0;
  • 8 biți (1 octet = 1 byte), începând cu cel mai nesemnificativ bit, reprezentând un cod unic asociat tastei, numit mai departe scancode;
  • 1 bit de verificare, numit mai departe checksum, care reprezintă suma pe un bit ai tuturor biților din scancode (adică XOR pe toți biții din scancode);
  • 1 bit de stop, care este întotdeauna 1;

Atenție: Scancode-ul nu este același lucru cu codul ASCII. Primul identifică o tastă, al doilea identifică un caracter.


Referințe