Maticová klávesnice. Projekt do předmětu Subsystémy PC. Brno, 2002-2003. Tomáš Kreuzwieser, Ondřej Kožín



Podobné dokumenty
FASTPort. Nová sběrnice pro připojení inteligentních karet* k osmibitovým počítačům. aneb. Jak připojit koprocesor

Studentská tvůrčí a odborná činnost STOČ 2015

Ovladač příslušenství - XbusTCO

Elektronická stavebnice: Deska s jednočipovým počítačem

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3)

Fides Card Reader

usimt10 JEDNOTKA IMPLEMENTUJÍCÍ OBJEKTY PRO SIMULACI TERMINÁLU TERM10 NA PC Příručka uživatele a programátora

Integrované obvody. Obvody malé, střední a velké integrace Programovatelné obvody

Základní normalizované datové přenosy

frekvence 8 Mhz, přestože spolupracuje s procesori různe rychlými. 16 bitová ISA sběrnice je

Architektura počítače

Administrace počítačových sítí. WEB a LPT

PCKIT LPT MODUL SBĚRNICE IOBUS PRO PC LPT. Příručka uživatele. Střešovická 49, Praha 6, s o f c o s o f c o n.

SB8485. Převodník USB na 8x RS485/RS září 2010 w w w. p a p o u c h. c o m

STATISTICA Téma 8. Regresní a korelační analýza, regrese prostá

Malý distribuovaný I/O modul

Pace Maker ZJ18. Návod k použití. 1) Popis výrobku:

Komunikační protokol MODBUS RTU v měřicích převodnících AD4xxx a Drak 4

Principy činnosti sběrnic

Knihovna GalaxyLib TXV druhé vydání srpen 2012 změny vyhrazeny

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1

CQ485. Opakovač a převodník linek RS485 a RS422. S aktivní i pasivní obnovou dat

Operační paměti počítačů PC

Řízení IO přenosů DMA řadičem

Registrační teploměr

Snímač barometrického tlaku T2314, T2414

Technické prostředky počítačové techniky

Popis zapojení a návod k osazení desky plošných spojů STN-A varianta Tower

DELTA PANEL pro Windows

Vzduchové jističe IZM

Úloha č. 2: Měření voltampérových charakteristik elektrických prvků pomocí multifunkční karty

zení Koncepce připojení V/V zařízení POT POT ... V/V zařízení jsou připojena na sběrnici pomocí řadičů. Řadiče Připojení periferních zařízení

Obvody a architektura počítačů. Jednoprocesorové počítače

Podstanice DESIGO PX Modulární řada s rozšiřujícím modulem

Periferní operace využívající přímý přístup do paměti

Technická dokumentace ČTEČKA ČIPŮ DALLAS. typ DSRS

RE8USB modul s 8 vstupy a 8 výstupy ovládaný z USB

Router Modbus RTU RS485 / Modbus TCP

Praktické úlohy- 2.oblast zaměření

4CH kamerový systém do auta Secutron CarGuard SE- 4SDE

Karta DIO portů PCD-8006 Uživatelská příručka

Jednoduchý bezdrátový ovladač XWL Maus

Bezpečnostní centrála EMB 7200 Nastavení, přepínače, ukazatele

Přerušení na PC. Fakulta informačních technologií VUT v Brně Ústav informatiky a výpočetní techniky. Personální počítače, technická péče cvičení

SPECIFIKACE DODÁVKY EPS A SERVISU EPS

In Circuit Debugger pro procesory PIC. Milan Horkel

Vysoká škola chemicko-technologická v Praze Fakulta chemicko-inženýrská Ústav počítačové a řídicí techniky. Aplikace mikroprocesorů.

1 Podrobná specifikace Yunifly Datasheet

TDL500. Systém elektronické evidence návštěvnosti TDL500

AWGD 46 MWGD 46. Dveřní moduly APS mini / APS mini Plus s rozhraním WIEGAND s podporou zámků APERIO. Uživatelská příručka

Elektronická kapacitní dekáda - BASIC

Principy komunikace s adaptéry periferních zařízení (PZ)

MANUÁL UŽIVATELE PRO MONTÁŽ, OBSLUHU A ÚDRŽBU - VARIANTA 3 SYSTÉM ZEMNĚNÍ RE-DI-GO

Pevný disk. Parametry disku a rozhraní. Geometrie disku. Organizace dat. Příprava disku. Souborové systémy. Disketové mechaniky a média

Měřič krevního tlaku. 1 Měření krevního tlaku. 1.1 Princip oscilometrické metody 2007/

Ovladač příslušenství - XbusTCO

Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic

UŽIVATELSKÝ MANUÁL. Model R502 Multifunctional Broadband Router

GRAFICKÉ ROZHRANÍ V MATLABU PRO ŘÍZENÍ DIGITÁLNÍHO DETEKTORU PROSTŘEDNICTVÍM RS232 LINKY

Metody připojování periferií BI-MPP Přednáška 2

Maticové operace projekt č. 3

Zásoby_Evidenční výroba Návod pro uživatele +1367

Řídící jednotka pro 2 čtečky SL20

Firemní aplikace pro nástěnný ovladač AMR-OP60. Aplikace disponuje automatickým přepínáním zobrazení vnitřní / venkovní teploty.

Grafické adaptéry a monitory

Mikromarz. ELDEC Serial Port. Virtual Serial port pro přímou komunikaci s dekádou OBSAH. 1 Příkazy sériového portu... 2

Voděodolný tloušťkoměr MG-401 Obsah:

Přerušovací systém s prioritním řetězem

Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Periferní zařízení, cvičení IPZ Analýza komunikace na sběrnici USB

APT110. Prùmyslový terminál. Technická pøíruèka. verze Aplikace Mikroprocesorové Techniky

PaoDesign MiniBOX sk - cz made in Zababov 1

Nabíječ NiCd a NiMh článků řízený mikroprocesorem

Míchačka karet Shuffle King. Obsah balení:

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

RE5USB programovatelné USB relé s integrovaným watchdogem ( RE5 ) Základní vlastnosti

Návrh ovládání zdroje ATX

Peněžní šuplík Materiál pro samostudium +1688

Detektor plynu. Srdcem zapojení je senzor plynu od firmy Figaro, která má v této oblasti dlouhou tradici.

CLG-03 POČÍTADLO PROVOZNÍCH HODIN

TEPL2344 Technická dokumentace PŘEVODNÍK TEPLOTY. typ TEPL2344 s rozhraním RS232.

ELEKTRONICKÁ ČASOMÍRA

Periferní operace využívající přerušení

DM4.3 odmagnetovací modul

Klimatizace. Třída: 4.C. Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT. Skupina: 3. Zpráva číslo: 3

Komunikace procesoru s okolím

RTU RTU. Podklady pro dokumentaci. Gateway to Modbus RTU RESET USB MODBUS RTU RS 485 DATA. Made in EU DATA

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ

Periferní operace využívající přerušení

PROTOKOL O LABORATORNÍM CVIČENÍ

Domácí zabezpečovací zařízení

Komunikace s snímačem ph485 protokolem Modbus-RTU

Miroslav Flídr Počítačové systémy LS /21- Západočeská univerzita v Plzni

Fakulta informačních technologií, VUT v Brně Ústav počítačových systémů Personální počítače, technická péče, cvičení. Sběrnice ISA

Návod pro instalaci GSM modulu Siemens MC35 Terminal / MC35i Terminal pro Windows 2000/XP

FOX KeyControl 49 USB MIDI OVLADAČ UŽIVATELSKÝ MANUÁL Audio Partner s.r.o.

uterm03r JEDNOTKA IMPLEMETUJÍCÍ VZDÁLENÝ TERMINÁL TERM03 Příručka uživatele a programátora

9. Rozšiřující desky Evb_Display a Evb_keyboard

Inovace bakalářského studijního oboru Aplikovaná chemie. Reg. č.: CZ.1.07/2.2.00/

Ing. Michal Martin. Spojení PLC CLICK s NA-9289

Transkript:

Maticová klávesnice Projekt do předmětu Subsystémy PC Brno, 2002-2003 Tomáš Kreuzwieser, Ondřej Kožín

Obsah Úvod............................................ 1 1. Hardware........................................ 1 2. Program VHDL...................................... 1 3. Demonstrační program.................................. 2 4. Závěr.......................................... 2 5. Odkazy......................................... 2 6. Příloha.......................................... 3

Úvod Cílem našeho projektu bylo vytvoření ovladače pro maticovou klávesnici 4x4 v hradlovém poli Lattice. Samotný program měl být realizován pomocí jazyka VHDL a nebo pomocí Schematiku pro hradlové pole. Na PC jsme měli vytvořit jednoduchý program demonstrující funkčnost našeho zařízení. 1. Hardware Pro realizaci byla použita ISA karta hradlového pole SPC1. Schéma zapojení viz.[1] 1.1. Popis zapojení Resistory RES1 až RES4 o hodnotě 4k7 jsou zapojeny jako zvedací (PULL-UP). Tyto resistory jsou napájeny kladným napětím z pinů 9 a 10 konektoru JP1 z karty SPC1(karta s hradlovým polem). Důvodem zdvojení napájecích pinů je nedostatečná proudová zatížitelnost pinu, což se projevuje při současném stisku více kláves najednou, kdy hodnoty napětí snímané z vodičů R0 až R3 klesají pod požadovanou úroveň nutnou pro zachování stavu logické 1. Diody D1 až D4 slouží jako prevence zkratu při současném stisku alespoň dvou kláves ve stejném řádku, kdy se ve sloupcích právě stisknutých kláves nachází různé logické úrovně. 1.2. Testování stavu kláves Na katody diod je přiváděn vektor logických hodnot [0 1 1 1], který je vždy v následujících krocích cyklicky rotován doprava v nekonečné smyčce. V jednom okamžiku je tedy vybrán pouze jeden sloupec (log 0). Za normálních okolností (není stisknuta žádná klávesa) se na vodičích R1 až R3 z důvodu připojení na PULL-UP nachází stav logické 1. Stisknutím klávesy ve vybraném sloupci dojde k propojení vodiče Rx a vodiče Sx, což způsobí změnu stavu na příslušném vodiči Rx do logické 0. Všechny čtyři řádky (vodiče R0 až R3) jsou poté testovány na stav logické úrovně 0 (klávesa stisknuta). Nevýhodou maticového zapojení klávesnice je skutečnost, že nelze testovat některé kombinace při stisku více kláves najednou. Stisk 2 kláves lze správně rozeznat vždy, 3 a 4 klávesy již fungovat nemusí. (funguje např. stisk 3 i 4 kláves ve stejném řádku a sloupci atd.) Tento problém je způsoben hardwarovým zapojením klávesnice. Př: Jestliže stisknu klávesy K1, K5 a K6 a vodič S0 se právě nachází ve stavu log 1, přičemž vodič S1 je ve stavu log 0, dojde vlivem současného stisku K5 a K6 ke změně potenciálu ve vodiči S0 do stavu log 0. Jelikož je současně stisknuta i klávesa K1, bude při testování sloupce S1 v obou vodičích R0 i R1 detekována logická úroveň 0, přičemž ve vodiči R0 je úroveň log 0 detekována nesprávně, protože indikuje stisk klávesy K2, ke kterému zřejmě nedošlo. 2. Program VHDL Program se v podstatě dá rozdělit na dvě časti. Na část samotného testování stavů klávesnice (proces 1) a na část komunikující s ISA sběrnicí (proces 2), respektive s PC. 2.1. Proces 1 Program začíná nastavením pinů pro PULL-UP 1 a 2. V dalším kroku programu (v čase t) je vybrán první sloupec S0 na 1000 hodinových cyklů sběrnice. V čase t+500 (tedy v polovině tohoto intervalu, neboli o 500 hodinových taktů později) je přečten stav kláves ve vybraném sloupci a proběhne zjištění, zda nedošlo k náběžné nebo sestupné hraně u příslušné klávesy. To je prováděno srovnáním s předešlou hodnotou. Když došlo ke změně, tak si do pomocné proměnné IRQPRIZNAK poznačíme, že chceme žádat o IRQ na sběrnici ISA a současně tento stav zapíšeme do vektoru VYSLEDEK. V čase t+1000 vybereme další sloupec a celý proces zopakujeme. Takto postupně otestujeme všechny čtyři sloupce. V čase t+4000 zjistíme, jestli je IRQPRIZNAK=1 a pokud ano, tak generujeme přerušení do doby, než nedojde k vyčtení dat z nejvyšší adresy odpovídající nejvýznamnějším osmi bitům vektoru VYSLEDEK. Nejvýše však na 4000 sběrnicových taktů. Toto řešení volání přerušení maximálně jednou za 4000 cyklů je zde proto, aby přerušení nebyla generována příliš rychle a nedocházelo k případnému velkému výpočetnímu zatížení PC. 1

2.2. Proces 2 Tento proces má za úkol obsluhu jednotlivých stavů sběrnice ISA. Jedná se v podstatě o stavový automat. Na začátku proběhne testování signálů AEN (adress enable), IOR (IO Read), IOW (IO Write) a komparace adresy nastavené na sběrnici s přednastavenými (adresový dekodér). Čtení dat ze sběrnice: Možné pouze z adresy 300h a je používáno pro RESET karty. Pokud je na datové sběrnici hodnota 111d, tak se karta vyresetuje. Zápis dat na sběrnici: Na adresách 300h a 301h se nachází informace o stisku a na adresách 302h a 303h o uvolnění jednotlivých kláves. Nejméně významný bit (LSB 300h a 302h) odpovídá klávese 1 a nejvýznamnější bit klávese D (MSB 301h a 303h). Do LSB na adresu 304h zapisujeme log 1 v případě, že žádost o přerušení generuje naše karta. 3. Demonstrační program Je napsán v jazyce C a překládán v Borland C++ 3.1. Pro vykreslování je použita nepřenositelná knihovna conio.h. Zvolena byla kvůli rychlosti psaní programu. Kdyby se nejednalo o testovací program, tak by bylo nutné použít některou z alternativních knihoven, přenositelných i na jiné platformy než DOS/Windows. Na začátku programu proběhne reset ISA karty. Dále povolíme přerušení (v našem případě číslo 5), uložíme si ukazatel na starou obsluhu přerušení a nastavíme místo něj ukazatel na vlastní obsluhu (funkci ISRTest()). Tato funkce se bude volat po vygenerování příslušného přerušení. Na začátku se uloží obsah registrů do zásobníku a nastaví řadiči 8259A bit odpovídající přerušení číslo 5 do log 1. V dalším kroku zkontrolujeme hodnotu 111d (přerušení od naší karty) na adrese 300h a pokud je tato hodnota nastavena, tak přečteme všechny čtyři byte o stavu jednotlivých kláves a nastavíme globální proměnnou InterruptOccurred na true. V opačném případě (přerušení negenerovala naše karta) zavoláme starou obsluhu přerušení. Na závěr funkce obsluhy přerušení obnovíme obsahy registrů ze zásobníku. V hlavní část programu, která je prováděná po výše uvedeném nastavení, se pouze čeká na přerušení (na proměnnou InterruptOccurred v true) a nebo na ukončení. V případě přerušení překreslíme obrazovku, na níž pomocí jednoduché grafiky zobrazujeme stav kláves a nebo přímo vypisujeme stav kláves. 4. Závěr Požadované zadání se podařilo splnit. V případě požadavku na vícenásobný (3 a více) stisk kláves je třeba změnit vnitřní hardwarové zapojení klávesnice. V případných dalších verzích by se dal vylepšit program pro PC, který je pouze testovací. Například by nebylo špatné udělat ovladač nebo rezidentní program, který by četl stavy naší klávesnice a zmáčknuté klávesy by vracel do bufferu klasické klávesnice, nebo udělat ovladač pro obdobu klávesy poslední záchrany SysRq v Linuxu. Další změnou, tentokráte v hardware, by mohla byt jiná koncepce posílání přerušení z karty. Například při držení klávesy zrychlovat přerušení. Ale to by byl spíše krok zpět, protože u nás se to snadno dá udělat softwarově bez zbytečných přerušení. 5. Odkazy [1] Schéma ISA karty SPC1 [2] VHDL-Cookbook.pdf [3] VHDLs.doc [4] http://www.latticesemi.com 2

6. Příloha Obr. 1 Schéma zapojení maticové klávesnice 3