Dezvoltarea tastaturii

Diferite tastatură cu o mulțime de butoane (butoane) sunt utilizate pe scară largă în sistemele digitale: calculatoare, controlere, dispozitive de măsurare, în aparate de uz casnic. Obiectivul principal al oricărei tastatură este destul de simplu: ar trebui să fie în orice moment, apăsați butonul pentru a da numărul de cod această tastă și apăsați tasta semnal de pavilion (poarta de cod). După ce a primit semnalul de pavilion, dispozitivul extern citește codul tastei apăsate și ia măsurile necesare.

Sarcina principală la designul tastaturii este de a minimiza costurile de hardware și de a asigura o funcționare fiabilă în orice situație. Există o mulțime de soluții de circuit ale acestei probleme - de la primitiv la cele mai complexe. Tastaturi pot fi mecanice, kvazisensornymi sau atingere, tastatura poate avea o operație logică dură sau să fie inteligent, chiar preveni reprogramare. Vom lua în considerare, de exemplu, tastatura mecanică cel mai simplu cu logica munca grea.

Numărul de taste de dimensiune completă tastatură de calculator mai mult de o sută, așa că vom proiecta o tastatură cu privire la numărul maxim de chei egal cu 128. Desigur, tastatura ar trebui să fie protejate împotriva sări de contact mecanic și trebuie să se ocupe în mod corect situația, în același timp, apăsând câteva taste. Să luăm, de exemplu, că în timp ce apăsați câteva taste de pe tastatură ar trebui să genereze cod doar unul dintre ele. Să presupunem, de asemenea, că rata maximă posibilă de apăsări de taste nu trebuie să depășească 20 de lovituri pe secundă (acest lucru este destul de mult). Astfel, cerințele de bază ale aparatului formulate proiectat. Începem să se dezvolte.

Foarte adesea metoda cea mai convenabilă și eficientă este de a începe dezvoltarea de dispozitive „până la capăt“. Adică, designul începe pe baza rezultatului dorit a semnalelor pe care dispozitivul va emite în afară și să ia în exterior. Și doar la sfârșitul proiectului elaborat de partea dispozitivului care îndeplinește funcția dorită. Această abordare asigură faptul că dispozitivul este proiectat să nu fie excesiv de redundante, nu va face nimic prea mult, și că va interacționa corect cu alte dispozitive și sisteme. Acest principiu de proiectare nu este universală, uneori susține pentru întregul proces de dezvoltare este dificil, dar încercați să-l aplice la orice dispozitiv doare niciodată.

În acest caz, trebuie să decideți mai întâi ce ar trebui să ofere tastatura afara. De obicei, acesta este definit sarcina tehnică, dar presupunem că tastatura noastră ar trebui să dea pe 7 biți cheie număr binar apăsat (din 2 7 = 128), și să-l mențină presat de pavilion semnal pozitiv. pavilion și semnal-cheie de cod trebuie să fie menținută atât timp cât este apăsată tasta. În acest timp (câteva milisecunde), dispozitivul extern trebuie să aibă timp pentru a analiza pavilion de semnal și se citește codul tastaturii. De obicei, această cerință nu este prea dură.

O soluție alternativă - salvarea codului cheii apăsată și semnalul de pavilion până când codul de ieșire citire dispozitiv extern - desigur, reduce cerința pentru viteza de citire dispozitiv extern, dar poate provoca unele taste rămân nereacționate, acestea nu vor fi procesate.

De asemenea, este necesar să se stabilească modul în care tastatura se va comporta în timp ce apăsați câteva taste. Cea mai complexă, tastatura inteligentă furnizează o secvență de coduri de toate cheile apăsate, memorarea lor într-o memorie tampon. Dar noi presupunem că tastatura ar trebui să fie emis numai de codul uneia dintre îngustării (primul în funcție de ordinea). Împingerea toate celelalte taste în același timp, acest lucru este pur și simplu ignorată.

La proiectarea unei tastaturi mecanice este importantă pentru a decide modul în care va fi manipulat prezența inevitabilă a chei mecanice de contact de respingere. Acesta poate fi procesat în interiorul tastaturii, și din ea (adică, pentru a muta această funcție la un dispozitiv extern). Ambele abordări au avantajele lor. Dar tastatura noastră se va ocupa de contactul sări singur. Tratamentul Principiul alege foarte simplu: închiderea de contact primul înregistrat de apăsarea tastei este considerată începutul și sfârșitul presei este determinată atunci când contactele se vor deschide pentru un interval de timp specificat.

Ca rezultat, o diagrama de timp de funcționare a tastaturii poate fi dezvoltată în mod simplist reprezentat ca Fig. 14.1. Aici, semnalul de pavilion începe atunci când blocarea unitate cu semnalul cheie (care poate fi fie de respingere în timpul și după finalizarea acestuia). ieșire codul cheie este fixat după plasarea steagului. După eliberarea tastei (semnal zero), după un semnal de pavilion timp de întârziere tzad eliminat. Timpul de întârziere ar trebui să fie în mod deliberat mai mult de respingere. Codul de ieșire poate fi menținută după ce cheia este eliberată înainte de următoarea presare, și pot fi eliminate.


Fig. 14.1. operație de sincronizare tastatură diagramă

Dezvoltarea în continuare este imposibilă fără principiul de conversie a semnalului de selecție de taste în camera de jos codul cheie.

Cel mai simplu mod de a construi un astfel de convertor este utilizarea codificatoare prioritare (Fig. 14.2).

Fiecare cheie dă un semnal logic, semnalele de la toate cheile sunt convertite în numărul de cod cheie encoder. Cu toate acestea, această abordare simplă este bună doar pentru un număr mic de taste (până la 8 sau 16), din moment ce un număr mare de intrări de encoder prioritate devine destul de dificil. Pentru un număr mic de chei de contact sări de obicei eliminate separat pentru fiecare cheie prin RS-flip-flop (așa cum se arată în figură). Această soluție este simplă, dar necesită mai multe cheltuieli de hardware.

Dezvoltarea tastaturii

Fig. 14.2. Cel mai simplu convertor pentru tastatura

Un alt mod de a construi traductor este de a utiliza o matrice de comutare așa-numita, care de stat este interogat periodic cu frecvența de ceas. Matricea de comutare este format din două grupe de intersectându conductori (rânduri și coloane), toate acestea sunt punctele cheie de intersecție. În acest caz, fiecare cheie este formează un semnal logic separat și numai switch-uri (conectare), unul dintre rândurile de una dintre coloanele sale.

Cel mai versatil circuit inversor, este ușor de a construi și destul de simplu, este prezentată în Fig. 14.3.

Pentru a supraveghea matricea de comutare este folosit generatorul contra cronometrat. contra biți superiori sunt folosite pentru a selecta unul dintre rândurile matricii prin decodor (linia selectată recepționează un semnal logic zero la un neselectat - semnal este unu logic). contra biți mai tineri sunt folosite pentru a interoga coloana matrice printr-un multiplexor. semnalul Intervievat din coloană este alimentat la multiplexorul de ieșire. Sign apăsare de tastă este zero la semnalul de ieșire multiplexor. În acest moment, numărul de cod este prezent pe ieșirea contorului apăsat. Acest sistem vă permite să construiască cu ușurință un număr mare de comenzi rapide de la tastatură (până la 256, așa cum se arată, sau chiar mai mult), dar necesită destul de mult timp pentru a finaliza tastatura sondaj (ca numărul de cicluri de ceas egal cu numărul total de chei de anchetă).

Dezvoltarea tastaturii

Fig. 14.3. Converter cu un studiu de toate cheile

Combinația dintre cele două abordări avute în vedere pot crea tastatura destul de mare, cu costuri reduse de hardware și timp de răspuns scăzut.

Cu această metodă combinată (Fig. 14.4) este folosit ca matrice de comutare cu ajutorul tastelor de pe toate intersecțiile rânduri și coloane, dar nu toate sunt interogați la rândul lor cheile și doar rânduri (sau coloane) ale matricei. Pentru votare, la fel ca în cazul precedent, este folosit generatorul, contorul și decodor. Poziția tastei apăsate în rândul (sau coloana) este determinată de codor. Codul tastei apăsate este generată de ieșirea codului contor (biți cele mai semnificative) și de ieșire codul de la codificatorul (LSB).

În acest caz, tastatura are taste 128, matricea de comutare adică constă din 16 rânduri de decodoare interogat 4-16 (ID3) și 8 coloane, semnalele din care sunt prelucrate de către Encryptor 8-3 (IV1). Contorul trebuie să fie de 4 biți (IE7). Aceste 4 biți și 3 biți de ieșire de la codificator da numărul 7-biți tasta apăsată. Full bucla de votare tastatura va lua 16 de cicluri de ceas ale generatorului (numărul de rânduri). Înregistrati apăsarea uneia dintre tastele ar fi un semnal negativ la ieșirea -GS codificator. Dacă este apăsat câteva taste pe diferite linii, acesta va fi procesat este cheia, acel șir va fi interogate mai întâi. Dacă este apăsat câteva taste de pe aceeași linie, codorul va da codul cheie corespunzător numărului de intrare mai mare. De asemenea, trebuie remarcat faptul că IV1 codificator emite numărul invers de intrare la care a venit semnalul de la zero - această caracteristică poate necesita trei invertoare de ieșire (în figură nu este prezentat).

Dezvoltarea tastaturii

Fig. 14.4. rânduri convertor de votare de chei

Estimăm ceea ce ar trebui să fie frecvența generatorului de ceas. Am acceptat faptul că viteza maximă este apăsat de 20 de ori pe secundă. Deci, pentru 1/20 dintr-o secundă este necesară pentru a avea timp să interogheze întreaga tastatură, adică toate cele 16 de linii. Astfel, frecvența minimă de ceas permisă este de 16 • 20 = 320 Hz. Dar este necesar să se stabilească de aprovizionare și de prelucrare a sări. Prin urmare, vom presupune o frecvență de ceas de 400 Hz sondaj. Acesta poate fi mai mult, dar excesiv de ea în creștere (de exemplu, peste 1 kHz) nu este necesară, deoarece în timpul chips-uri rapide de circuit de comutare crește consumul de curent. Se înțelege că generatorul nu trebuie să fie de cuarț, deoarece rezonatoare cu cuarț la frecvențe joase nu sunt disponibile, iar circuitul de divizare a frecvenței complica foarte mult. În plus, expunerea exactă a frecvenței oscilatorului, în acest caz, nu este absolut necesar.

Semnalul de ieșire „- Press“, desigur, va avea un scurt impulsuri false. În primul rând, ele vor apărea din cauza contactului sări în jos tasta în acest moment. În al doilea rând, ele pot apărea din cauza comutarea tranzitorii de la ghișeu și decodor. Aceste impulsuri parazite ar trebui să fie exclusă.

Pentru a elimina efectele impulsurilor parazite datorate tranzienți când se comută contorul și decodor este suficient să se aplice strobing sau cronometrarea semnal „-Nazhatie“ în mijlocul fiecărui interval de ceas. Pentru a face acest lucru, este necesar să se aducă semnalul de circuit convertor „-Takt“.

Cu excepția unui impuls de ieșire din cauza scurt pentru a sări chei mai greu. În primul rând, în momentul de presare șirurile este recomandabil să se oprească utilizarea semnal de interogare „forbiddenness“. Apoi, este necesar pentru a procesa semnalul? „Făcând clic pe“ principiul prezentat în Fig. 14.1. Presupunem că pentru durata debouncing nu depășește pauză scurtă în perioada de ceas (2,5 ms la o frecvență de ceas de 400 Hz). Apoi, amână închiderea de presare a semnalului de pavilion (a se vedea. Fig. 14.1) ar trebui să fie mai puțin de o perioadă a semnalului de ceas. Pentru a genera lanțul de întârziere poate fi utilizat flops semnal cronometrat „-Takt“.

generatoare de semnale de ieșire Schema de tastatură prezentat în Fig. 14.5.

Dezvoltarea tastaturii

Fig. 14.5. Schema de semnale de ieșire de la tastatură generatoare

Trigger T1 fiind transferat la una (la ieșirea invers) când ceasul din mijlocul intervalului (marginea pozitivă a semnalului „-Takt“) semnal „-Nazhatie“ zero. T1 său semnal de ieșire de declanșare aruncă o unitate de declanșare T2, care nu are nimic de-a face cu semnalul „-Nazhatie“, nu răspunde la un bruiaj al semnalului. Ieșirea T2 semnal de declanșare este folosit ca un semnal de la tastatura de pavilion. Inversul T2 semnal de declanșare este utilizat ca semnal de ieșire „forbiddenness“ oprire sondaj rândurile de la tastatură.

lanț T3 și T4 declanșatoare, cronometrat de semnal „Tact“, este folosit pentru a întârzia îndepărtarea semnalului de pavilion după ce cheia este eliberată (devine egal cu unitatea atunci când un semnal de „-Nazhatie“). După setarea pavilion la unul, semnalul de pavilion începe să fie înregistrate pe frontul de semnal „-Takt“ declanșează în T3 și T4, dar numai în cazul în care semnalul „-Nazhatie“ este setat la unu. Ca rezultat, invers T4 semnalului de ieșire apare logic de declanșare zero atunci când semnalul „-Nazhatie“ într-o unitate la momentele de două margini pozitive consecutive ale semnalului „-Takt“. Semnalul de la semnalul de ieșire T4 resetează pavilion la zero, după care întregul este avansat în starea inițială și așteaptă următorul semnal de la zero „-Nazhatie“.

În cazul în care moment de deschidere sări în cazul în care contactele cheie durează mai mult de 2,5 msec, este posibil să se mărească numărul de flip-flops într-un lanț de serie (T3 și T4), care va crește semnalul de întârziere pentru a elimina generatorul de pavilion cicluri de ceas întreg.

Astfel, circuitul este complet dezvoltat. Rețineți că frecvența ceasului scăzută a circuitului ne permite să nu contorizați circuite de întârziere, care este, de a folosi doar primul nivel de prezentare, model logic. Și efectele asociate cu circuite de comutare tranzitorii, am eliminat prin furnizarea de trecerea timpului de o jumătate de perioadă între generator de semnale de ceas circuit convertor (fig. 14.4) și circuitul de generare a semnalului de ieșire (Fig. 14.5). Toate rezistențe sunt aplicate în schema este valoarea nominală de aproximativ 1 ohm.

articole similare