View Single Post
Old 10-07-2012, 19:40   #1
Donbabbeo
Senior Member
 
L'Avatar di Donbabbeo
 
Iscritto dal: Jul 2006
Messaggi: 8152
Tastiere meccaniche [thread ufficiale]

Visto il crescente interesse, sia da parte degli utenti che dei produttori, credo sia finalmente giunto il momento di aprire questo thread; vi do quindi ufficialmente il benvenuto nel mondo delle tastiere meccaniche!
Per dovere di cronaca ci tengo a precisare che per la maggior parte dei contenuti qua riportati non dovreste ringraziare me, bensì le migliaia di utenti facenti parte dei principali forum ufficiali come Deskthority, GeekHack ed ovviamente gli autori della guida di Overclock.net Forum (su cui è basato tutto quello che leggerete) che hanno messo insieme una conoscenza enorme sull'argomento ed io, novello Robin Hood, mi accingo a condividere con voi plebei

Introduzione
Se avete cominciato a leggere questo thread c'è la non troppo azzardata ipotesi che già conosciate un minimo l'argomento di cui si sta cercando di parlare, ma per esserne perfettamente certi, forse è meglio partire dall'inizio, quindi, prima di cominciare a parlare di termini tecnici, è opportuno conoscere la teoria che c'è dietro di essi.
Una tastiera è basata su una matrice di cavi suddivisa per righe e colonne. Il controller scansiona ad intervalli tutte le righe inviando un impulso elettrico ad ogni colonna per volta: nel momento in cui noi premiamo un tasto, chiudiamo il circuito ed il controller, sapendo su quale colonna è stato inviato il segnale otterrà la riga da cui ritorna l'impulso elettrico; nell'esempio qua di seguito, potete vedere una piccola porzione di quello che accade: quando il controller scansiona la colonna C1 verifica che R1 è accesa e quindi l'interruttore A deve essere chiuso, perciò il controller invia il comando di pressione del tasto A al PC.

Fin qui nulla di particolare, anche nella pressione di due tasti, essendoci una colonna o una riga che li differenzia il controller è in grado di capire entrambi i tasti premuti. Il problema comincia quando se ne premono tre o più: in caso gli interruttori A, B e D siano chiusi, abbiamo R1 ed R2 entrambi accesi, perciò, quando il controller scansiona la colonna C1 vedrà che sia A che C sono premuti e manderà il comando corrispondente. In questo caso C è quello che si definisce tasto "fantasma".

Esistono due metodi per prevenire il ghosting. Il primo è quello di limitare il numero dei tasti premuti a due, in questo modo, prendendo in esame l'esempio precedente, dopo la pressione di A e D, B e C saranno ignorati; avremo quindi una tastiera 2KRO: in gergo tecnico si indica con #KRO, il numero di tasti registrabili contemporaneamente.
L'altro metodo è quello di installare un diode in serie con ogni interruttore. Il diode permette alla corrente di viaggiare in un unica direzione, evitando situazioni spiacevoli come quella appena descritta. Questo sistema permette ad ogni tasto di essere rilevato indipendentemente, rimuovendo qualsiasi limite al numero dei tasti premibili contemporaneamente e viene di conseguenza definito NKRO.
Guardate ora la vostra tastiera: se non si tratta di una tastiera meccanica le probabilità che utilizzi il primo metodo sono praticamente una certezza.
Magari viene pubblicizzata indicando l'utilizzo di tecnologia anti-ghosting ma nella quasi totalità dei casi si tratta di ottimizzazioni alla matrice appena descritta volte a rimuovere (o meglio limitare) il blocco dei tasti integrato nel controller nell'utilizzo di una piccola porzione dei tasti, generalmente WASD. Provate questa piccola webapp della Microsoft se volete verificare quanti #KRO abbia effettivamente la vostra tastiera.

Al contrario una tastiera meccanica fa uso del secondo sistema, quindi raggiunge tranquillamente l'NKRO su porta PS2 ed il 6KRO su porta USB. Da questo ne dovremmo dedurre che è conveniente usare la porta PS2 se possibile, ma è realmente così?
Innanzitutto USB opera in modalità polling, cioè il bus USB viene scansionato ogni tot millisecondi per verificare se è stata eseguita qualche funzione mentre la porta PS2 opera per interrupt hardware, cioè ad ogni pressione di un tasto viene inviato un interrupt alla CPU che è forzata ad interrompere il processo in corso per elaborare il comando. Ovviamente l'USB ha un sistema che emula l'interrupt, ma dato il maggiore overhead viene limitato il numero di pacchetti di interrupt che possono essere lanciati in contemporanea. Per questo se collegate via USB le tastiere hanno 6KRO: non è un limite della periferica in sé, bensì del protocollo di comunicazione.
Va inoltre considerato che le prestazioni di una periferica USB, specialmente tastiere e mouse che richiedono una risposta pronta ed immediata, possono subire una degradazione delle performance nel caso venga sovraccaricato il bus con troppe connessioni; decisamente non è una buona idea stampare durante l'uso della tastiera o ancora peggio, trasferire i files in un HD esterno.
Eppure, sebbene questi problemi esistano a livello teorico, sono perfettamente trascurabili nella realtà. Quindi, alla fin fine, scegliete la porta che volete, le differenze saranno impercettibili.

__________________
"Quiquid Latine Dictum Sit, Altum Sonatur" 😐

Ultima modifica di Donbabbeo : 28-07-2013 alle 18:40.
Donbabbeo è offline   Rispondi citando il messaggio o parte di esso