Princip funkce klávesnice
ahoj, když sem rozebíral a čistil klávesnici, tak sem začal přemýšlet o tom jak vlastně funguje. A dospěl sem k tomu, že to nechápu. Že je to jaksi logicky nemožné.
V klávesnici sou nad sebou 2 fólie s tištěnými spoji, a ty se sebe navzájem dotýkají přes třetí fólii s otvorama. To je mi jasné. Ale: Klávesnice má asi 100 kláves, a z těch fólií vede mnohem míň vývodů (řekl bych že 20 - 30 celkem). Přitom na těch fóliích není žádný čip, který by mohl data nějak zpracovávat. Ten je až pak na destičce ke které je připojená šňůra od klávesnice.
Jak tedy může 20 nebo 30 vývodů rozlišit 100 různých kláves? Podle mě těch vývodů by mělo být minimálně 101 pro 100 kláves (když by každá klávesa měla 1 svůj vývod a druhý by byl společný pro všechny).
Chápete to?
Ostatní chápu, vy ne, co je na tom k nepochopení?!
mě přijde nepochopitelné to, jak můžou mít obě ty fólie jen 30 vývodů, když má klávesnice 100 kláves? Jak 30 vývodů dokáže rozlišit 100 kláves?
Matice-řádky a sloupce.
Jak to myslíš? každý řádek kláves že má svůj vývod?
Abys pochopil naco se ptám: Když zmáčknu kteroukoliv klávesu, tak počítač to přesně pozná. žádné dvě klávesy nedělají na počítači stejný znak nebo funkci (snad kromě Shiftu Altu a Ctrl). A v každém vodiči můžou být jen 2 stavy: zapnuto nebo vypnuto. Takže logicky by klávesnice měla umět nejvýš tolik znaků, kolik je na těch foliích vývodů ne?
Ach jo, nechte to koňovi...
Jo, v té klávesnici je ještě nějaký mikrořadič...
Já vím že tam je integráč. Do toho vede z jedné strany těch 30 vývodů z těch fólií, a na druhé straně z něho vede kabel do počítače. Takže ten integráč udělá z těch 30 vývodů cca 5 vodičů co jdou do počítače. To chápu.
Ale nechápu jinou věc: Jak z těch 30 vodičů co do něj vedou, pozná 100 různých kláves.
Nastuduj si multiplexing, tady je obdobný příklad - s pomocí 16 vývodů můžeš nezávisle na sobě ovládat 64 LED diod:
http://arduino.cc/playground/uploads/Main/LedMatri xRowsMarked.jpg
Má to jedinou nevýhodu - v každý moment můžeš rozsvítit maximálně tu jednu řadu LED. To znamená, když potřebuješ rozsvítit všech 64 najednou, musíš použít jevu, který se nazývá setrvačnost vidění (zjednodušeně, když blikáš dostatečně rychle do oka světlem, tak se zdá, že to světlo tam svítí stále - je to asi individuální, pro mě je třeba asi 55Hz).¨No a podobně to funguje i u té klávesnice - má tam X sloupců a Y řádků a rychle kontroluje pořád dokola každou řádku na stisknutí tlačítek, která jsou v dané řádce.
Pro ovládání LED pak ještě existuje taková menší specialitka, která se nazývá charlieplexing. S pomocí 10 tri-state vývodů se pak dá nezávisle na sobě ovládat 90 LEDek (pro n vývodů n*(n-1) LED). Zkoušel jsem to právě pro těch 90 LED, funguje to perfektně, ale návrh DPS je peklo).
jo díky já už to chápu. Mě jen nenapadlo že to je zapojené takhle do kříže. To je mi pak už jasné.
Tak v tomhle případě můžeš rozsvítit klidně všechny najednou, stačí pustit proud do všech vodičů najednou ne?
Ne, není...
Jen tak mimochodem: to je mi pak už jasné. - také nějak málo drátků!
Ale pokud se budete řídit rady pana "x", alias "ms-fialy" ohledně "správného" čištění elektroniky v myčce nádobí, pak budete mít jiné starosti...
Taky se k tomu využívá bitových chirurgů (operátorů).
Tohle je mi už jasné, ale když o tom přemýšlím, tak mě napadla ještě jedna nevysvětlitelná otázka. U těch ledek je to jasné, tam pustíš proud do 2 libovolných vodičů a podle toho se jedna ledka rozsvítí.
Ale představ si jak funguje jakýkoliv spínač (třeba zvonek): do každého vypínače a i do klávesy vedou 2 dráty: vstup a výstup. A na vstupu musí být pořád napětí, a když to tlačítko zmáčkneš, tak se napětí objeví i na výstupu. A tam ho ten obvod detekuje. Ale kdyby to napětí na vstupu nebylo, tak se nemůže objevit ani na výstupu a ten obvod tam nemůže nic zjistit. Takže do jedné té fólie musí jít pořád napětí (do všech vodičů), aby po stisknutí té klávesy se uzavřel obvod a začal protékat proud.
Jenže kdyby šlo pořád napětí do všech vodičů, tak jak ten obvod pozná které dva vodiče byly spojené?
nemusi ist do vsech vodicu, moze ist v urcitom okamziku len do jedneho z nich. Ten mikrokontroler co v tej klavesnici je to je schopny striedat aspon 100tisic krat za sekundu.
jo táák tak to potom jo.
A nebylo by jednodušší to udělat jinak? Jedna z těch fólií by byla celá kovová, a druhá by měla pro každou klávesu jeden vývod. V té kovové by bylo pořád napětí, a podle toho do kterých vývodů by šlo napětí tak by počítač poznal která klávesa je zmáčknutá.
Nebylo. V tomhle uspořádání potřebuješ tolik drátů, kolik je kláves. V matici ti bude stačit v nejlepším případě počet drátů rovný druhé odmocnině z počtu tlačítek. Domácí úkol: proč?
To jo, ale víc drátů znamená vyšší kvalitu ne?
Ale nemusel by tam být řadič který musí kontrolovat tolikrát všechny klávesy. A to asi pořád i když třeba půl hodiny uživatel žádnou nezmáčkne. Takhle když by člověk nic nezmáčkl tak by se nemusel ten řadič namáhat. Víš kolik by to ušetřilo tomu řadiči těch kontrol?
Řadiči je to fuk, nesmíš ho porovnávat s člověkem.
Chtěl jsem napsat "druhé odmocnině z počtu kláves KRÁT DVA" - to je tak, když píšu z pohostinství...
Kdo by to delal kdyz naklady by byly podstatne vyssi, o potencionalnich problemech nemluve (100+ naparenych vodicu na folii vs. radove desetina). Nizsi vyteznost vyroby - daleko slozitejsi folie, vic vyvodu nejakeho obvodu co by to zpracovaval = jen dalsi komplikace a naklady. V konkurencnim prostredi uspeje to co je jednodussi a spolehlivejsi - aneb. darwinizmus v praxi. Vem si treba puvodni IDE rozhrani vs. dnesni SATA - min kontaktu, min dratu = nizsi naklady a vyssi spolehlivost.
Jen jako zajimavost - za ery realneho socializmu Zavody vypocetni techniky (ZVT, v cechach PVT - "podnik") vyvinuly za urcite nemalych nakladu silenou klavesnici kde kazde tlacitko bylo vyrobene z Hallove sondy, a v klavese byl magnet ktery tato snimala. To vse zhruba x 100 (netusim kolik mela ta klavesnice klaves, jestli mela vubec nejake "F" atd.) Neskutecne slozity "heavy metal" nesmysl, vetsi magorina uz by bylo jen 100 mysi kterym by na hlavu klepaly kladivka a jejich kvikani by snimalo 100 mikrofonu...
to už ti přeci včera vysvětlil "joseph". Hledej, šmudlo....
"Ach jo, nechte to koňovi..." ja tomu taky nerozumit, jinak bych ti to vysvetlil, tak aspn prudim
Matika, fuj!
A to ještě nečistil monitor! Jak může po několika vodičích http://www.molex.com/molex/products/group?key=ffc_ fpc_connectors&channel=PRODUCTS být ovládáno tolik bodů...
V monitoru je mezi tím vodičem a obrazovkou spousta obvodů které se o to postarají. Ale v té klávesnici co o ní mluvím žádný obvod není (myslím na těch fóliích).
Ríka se tomu " matice " prípadne multiplexovaná matice. Radič si postupne pripája na napetí, "adresuje", sloupce a na rádcich testuje stav. Z výsledku mu vyjde, podle tabulky, jaký kláves je stisknutý.
Jednoduché jak facka.
Ale jaký sloupce a řádky? Já myslím že to není až tak podstatné, jestli na té klávesnici sou klávesy uspořádané v 6 řádcích. Kdyby byly všechny v jedné dlouhé řadě vedle sebe, tak by byl problém pořád stejný.
Tady mam primitivni priklad, 20 klaves, a ma to jen 9 vyvodu. Voľajaký zázrak, či čo:
Jo, matice...
zázrak.
začínám se děsit toho, až hloubavý tazatel začne čistit procesor.
Joo takhle, tak to už chápu. Takže ono je to takhle do kříže.
Takže vlastně počet kláves může být maximálně takový, jako by byl počet vývodů na horní fólii, krát počet vývodu na spodní?
YES
Som prilis "unaveny" aby som to riesil do hlbky, ale mam 2 pohlady:
1. Ako moze na jeden kabel byt pripojenych 5 vypinacov a po stlaceni ktorehokolvek sa vzdy lampa vypne, alebo zapne, podla toho v akom stave je predtym?
2. Monitor ma len niekolko kablov/drotov a dokaze zobrazit aj niekolko milionov roznych bodov, ako je to mozne?
OK, tak neodpovedal som, len som ti dal dalsie dovody na zamyslenie. V tomto smere ma napada jeden film alebo serial (mam pocit ze to boli Krajne medze), tam sa nejakym sposobom dostala do tela cloveka latka ktora podporovala zvedavost, clovek zrazu musel vsetko vediet, spocitat, pocital vlasy na hlave a podobne hluposti, uz neviem ako to skoncilo, asi sa mu uskvaril mozog, tak pozor na to, ludsky mozog nema dostatocnu kapacitu na to aby dokazal pochopit kazdu "zahadu" vo vesmire.