Jste zde

Klávesnice pro PC

Jednotlivých typů klávesnic je velké množství. Jsou ale z hlediska datové komunikace stejné. Dále se bude popis týkat klávesnice firmy CHICONY KB-5192 se 102 klávesami. Klávesnice je v této části popsána z hlediska připojení k počítači, komunikačního protokolu, kódování jednotlivých kláves a rozmístění kláves. Veškeré časové průběhy byly odečteny pomocí logického analyzátoru. Literatura jež by popisovala dále uvedené nebyla k dispozici.

Připojení

Klávesnice je připojena pomocí konektoru DIN 5P VK. Rozmístění jednotlivých signálů je zřejmé z obrázku :

KonektorRozmístění signálů komunikace a napájení na špičkách konektoru DIN 5P VK.)

Signály CLK a DATA slouží k sériové synchronní obousměrné komunikaci mezi počítačem a klávesnicí. Sběrnice obou signálů je opatřena jak v počítači tak v klávesnici rezistorem 10k, připojeným na +5V, a na výstupech jsou tranzistory s otevřeným kolektorem. Tento způsob zamezuje vzájemnému poškození výstupů při náhodné kolizi během komunikace. Signál RESET* slouží k inicializaci* klávesnice. Inicializace probíhá po zapnutí počítače. Klávesnice je napájena* z napětí +5V na špičce č.5. Na špičce č.4 je signálová a napájecí zem. Úrovně signálů jsou kompatibilní s úrovněmi obvodů CMOS.

Komunikační protokol

Synchronní sériová komunikace je obousměrná. Frekvence hodin (signál CLK) při komunikaci je 10 kHz. Komunikuje se vždy po 11 bitech. Na Obr.3.2.1 je příklad časového průběhu kódu, který klávesnice vyšle při stisku klávesy. Platnost dat je dána vzestupnou hranou hodinového signálu. Minimální mezera mezi dvěma kódy vyslanými po sobě je 1.2 ms. Jako první je vyslán LSB a jako poslední MSB.

Časové průběhy
Časové průběhy při komunikaci klávesnice a počítače


Poznámka redakce HW serveru : (22.04.2000)
Z ohlasů našich čtenářů vyplývá, že pokud se jedná o přenos dat z klavesnice do PC, některé klávesnice generují platná DATA nikoli při vzestupné hraně CLK, ale při sestupné hraně CLK. Hodnota se potom samozřejmě mění při hodnotě L signálu CLK. 

Pravděpodobně je důvodem nekompatibility nerozličování reakce na hranu, nebo na úroveň. Pokud vám tedy nebude fungovat zařízení, hledejte chybu zde.


 

Kódování kláves

Z hlediska kódování kláves klávesnicí je možné rozdělit klávesy do tří skupin. Jsou to skupina základní, skupina rozšířená a skupina speciální. Do skupiny základní patří 83 kláves. Jsou to klávesy se jmény uvedenými v tabulce v Příloze F na pozicích 0 až 99. Při stisku některé z těchto kláves je vyslán kód této klávesy a po vypuštění je vyslán kód vypuštění ($07E0) a znovu kód vypuštěné klávesy. Při delším stisku je kód klávesy neustále vysílán až do vypuštění. Kód klávesy v hranatých závorkách se vysílá dokud je klávesa stisknuta.

Sekvence základní skupiny
Sekvence základní skupiny vysílaná klávesnicí

Skupina rozšířená zahrnuje 14 kláves. Jsou to klávesy se jmény uvedenými v tabulce v Příloze F na pozicích 100 až 113. Tyto klávesy mají kódy shodné s klávesami numerické klávesnice, patřících do základní skupiny, ale před tímto kódem je předřazen kód ($05C0), který je od těchto odlišuje. Dva kódy v hranatých závorkách se vysílají dokud je klávesa stisknuta.

Sekvence rozšířené skupiny
Sekvence rozšířené skupiny vysílaná klávesnicí


V případě, že je zapnuta numerická klávesnice (numerické klávesy píší čísla) jsou s kódy této skupiny vysílány přídavné kódy tak, jako by byla souběžně stisknuta klávesa "SHIFT". Před kód klávesy "SHIFT" ($0624) je ale předřazen kód ($05C0). Jde tedy o zdvojení kódu ($0624). Tento nový kód je pojmenován ESH. V tabulce v Příloze F je uveden s kódy rozšířené skupiny pod číslem 114. Speciální skupina zahrnuje všechny ostatní klávesy. Jedná se o 5 kláves, ale klávesy "Pause" a "Print Screen" vysílají různé kombinace kódů v závislosti na souběžně stisknuté jiné klávese. Zbylé tři klávesy jsou "Caps Lock", "Scroll Lock" a "Num Lock". Tyto tři klávesy způsobí změnu svitu příslušné indikační světelné diody, který ovládá počítač. Komunikace v tomto případě probíhá obousměrně.

Sekvence kláves
Sekvence kláves "Caps Lock", "Scroll Lock" a "Num Lock"


Kódy speciálních kláves
Na Obrázku jsou vystínované kódy na 2. až 5. pozici zajišťují změnu svitu indikačních světelných diod a vysílá je počítač. V kódu LED je udán požadovaný stav svitu indikačních LED. Význam jednotlivých bitů kódu LED není důležitý pro konstrukci hardwarového emulátoru a proto nebyl zkoumán. Kombinace kódů, které vysílá klávesnice při stisku kláves "Pause" a "Print Screen", jsou shrnuty v následující tabulce. Kódy v hranatých závorkách se opakovaně vysílají pouze při delším stiku kláves
.
Při současném stisku dvou a více ostatních kláves (základní a rozšířená skupina) jsou kódy vysílány v odpovídajícím pořadí v jakém se jednotlivé akce stisku a vypuštění stanou a tyto kódy se vzájemně nijak neovlivňují, kromě případu kdy je přerušeno cyklické vysílání kódu klávesy (autorepeat). To nastane, když je jedna klávesa dlouho stisknuta a cyklicky vysílá a poté je stlačena jiná. Pak se přestane vysílat kód dříve stlačené klávesy. Kódy všech kláves jsou uvedeny v tabulce na konci této kapitoly.

Rozmístění kláves
Rozmístění kláves a názvy jejich kódů

Na obrázku je klávesnice se jmény kódů, které byly zvoleny a při jejich volbě bylo většinou použito potisku klávesy. Klávesy, které jsou zdvojené, jsou rozlišeny předponou před jménem. N pro klávesy na numerické části a R pro ostatní. Každá klávesa má svou vlastní nezaměnitelnou kombinaci kódů.
 


Kód klávesy


Časový průběh při vyslání kódu klávesy  klávesnicí Kód (0438)hex odpovídající klávese "A"

Tabulka kódů


Časový průběh při vyslání kódu klávesy "A" klávesnicí. V tabulce v Příloze F jsou uvedeny všechny kódy kláves. První sloupec udává pořadí v tabulce, druhý kód a třetí název kódu odvozený od jména klávesy nebo od jeho významu. Všechny kódy vysílané klávesnicí mají 0. bit nulový a 10. bit roven jedné. Informace je tedy 9 bitová. Celkově je však kódů jen 93. Kódy kláves ze základní skupiny jsou umístěny na pozicích 0 až 99. Kódy kláves z rozšířené skupiny jsou umístěny na pozicích 100 až 113. Na pozici 114 je kód ESH přidávaný k rozšířené skupině. Kódy vysílané při stisku kláves "Pause" a "Print Screen" jsou na pozicích 97,115 a 116. Kód vypuštění klávesy je na 0. pozici. Kódy (PCLED) používané při ovládání LED na klávesnici jsou na pozicích 40 a 41. Tyto kódy jsou vysílány počítačem. Kód vymezující rozšířenou skupinu kláves je pozici 98.
 

 



Připomínky HW serveru

Signál RESET je pozůstatek z dob XT. V dnešních PC se už téměř nepoužívá a když, tak pouze z důvodů jakési pochybné kompatibility.
Pokud ho ve svých aplikacích vynecháte, mělo by vše fungovat zcela bez problémů 

Napájení klávesnice je obvykle jištěno na Motherboardu pojistkou cca 0,5 A. Pro vaše zařízení tak zůstává rezerva cca 200 mA. Zařízení s vyšší spotřebou nepoužívejte, nebo je napájejte z vnějšího zdroje. Pokud by se vám podařilo tuto pojistku spálit, hledejte na boardu "krabičku" vypadající jako kondenzátor, nebo odpor, který je značen jako 0 ohmů. Viděl jsem tento odpor v provedení 0.25, 0.5, 1 i 2W 

Inicializace :  Ve svých aplikacích musíte počítat s inicializačními stringy, které vám BIOS při inicializaci posílá. Tyto stringy se na některých boardech posílají i když v BIOSu vypnete testování klávesnice. 

 


Odskok na novější článek o AT klávesnici

 


Hodně úspěchů Vám přeje Petr Simandl
simandl@feld.cvut.cz
Hodnocení článku: