Klávesnice USB s podporou PS2
Moderátor: Moderátoři
Asi by bylo dobré tomu dát nějaký smysl. Pokud někdo tvrdí, že PS2 klávesnice komunikuje oboustranně, tak by to chtělo nějaký odkaz, ať se např. já (a to rád) poučím, protože by se mi to hodilo. U USB klávesnice by to bylo ještě lepší.
Zatím jsem našel jen obrázek, stačí jen napsat po kterých drátech to jede do té PS2 klávesnice. Na tu USB klávesnici by se mi hodily právě ty indikace, klávesnice nemusí být připojena, ale šlo by udělat něco s LEDkama.
Zatím jsem našel jen obrázek, stačí jen napsat po kterých drátech to jede do té PS2 klávesnice. Na tu USB klávesnici by se mi hodily právě ty indikace, klávesnice nemusí být připojena, ale šlo by udělat něco s LEDkama.
- Přílohy
-
- key.jpg
- (91.08 KiB) Staženo 75 x
- Panda38
- Příspěvky: 713
- Registrován: 21 lis 2012, 01:00
- Bydliště: Most, Praha, Lanžhot
- Kontaktovat uživatele:
Komunikační protokol PS/2 je popsaný např. tady. Komunikace je řízená hodinami a jsou to signály s otevřeným kolektorem: http://www.computer-engineering.org/ps2protocol/
Komunikace hostitel -> zařízení se dá považovat i za jistou primitivní formu řízení toku. Počítač přizemní CLK = klávesnice má zakázano vysílat.
Čistě jednosměrný přenos znamená i to, že musí být strana hostitele připravena k příjmu prakticky "nepřetržitě" (s rizikem ztráty některých datagramů, pokud toto nelze dodržet).
Tohle je sice pro myš, ale v češtině a pro ilustraci to stačí:
http://elektronika.kvalitne.cz/ATMEL/ne ... mouse.html
Čistě jednosměrný přenos znamená i to, že musí být strana hostitele připravena k příjmu prakticky "nepřetržitě" (s rizikem ztráty některých datagramů, pokud toto nelze dodržet).
Tohle je sice pro myš, ale v češtině a pro ilustraci to stačí:
http://elektronika.kvalitne.cz/ATMEL/ne ... mouse.html
Naposledy upravil(a) judeware dne 12 dub 2013, 23:27, celkem upraveno 1 x.
A proč nepřetržitě ? Od toho jsou už dávno vymyšlena přerušení, takže to zvládaly i osmibitové počítače. Ano, určité vysoké rozlišení myši nemusí být starým PC pobráno.judeware píše:Čistě jednosměrný přenos znamená i to, že musí být strana počítače připravena k příjmu prakticky "nepřetržitě" (s rizikem ztráty některých datagramů, pokud toto nelze dodržet).
Celkem je to jedno. Něco, co se dá prostě vyzkoušet pod woknama bez zaseknutí.Panda38 píše:Podle toho v čem - Windows, BIOS, porty?p32 píše:A ještě by se mi hodil i prográmek na zapínání LEDek na klávesnici. Mám dojem, že kdysi na AT klávesnici to šlo, ale nejsem si fakt jistej jestli to nebylo něco jiného.
Pokud Ti nevadi VBS, tak stam staci vytvorit maly skript:
Spustenim se zapne/vypne scroll lock. Jinak na zkousku to jde delat napr pres 'Klavesnici na obrazovce', tam vypnuti/zapnuti scroll locku meni stav i na HW klavesnici.
Kód: Vybrat vše
set wshshell = CreateObject("WScript.Shell")
wshshell.sendkeys "{SCROLLLOCK}"
Svůj poslední příspěvek jsem upravil:
Po úpravě je ta věta pravdivá na 100%, páč řadič 8042 v PeCe (nebo jeho obdoba - součást čipsetů PC286/386 a výš) skutečně čte data z portu pořád dokola (krom spec. stavů). Teprve po přijmutí znaku (XT), nebo zaplnění svého bufferu (AT a výš), aktivuje tento IRQ1 a dožaduje se obsluhy! Nedočká-li se, data se přepíší novými (XT). Možnost pozastavit přísun dalších dat u obousměrné komunikace se tak logicky nabízí jako zajímavá vlastnost.
Samotná klávesnice žádný výstup INT nemá. Takže v aplikaci s MCU se periodické sledování stavu PS/2 rozhraní programem přímo předpokládá a o žádném HW přerušení nemůže být řeč. Leda spojit CLK portu též s vyhrazeným vývodem INT na MCU, což ale znamená přerušení iks krát během sériového přenosu PS/2 -> MCU a to není totéž jako v PC.
Podobný trik se využíval např. v C428. Výstup přijímače DO tam vedl na bitový port IR a zároveň na INT.
aby nedošlo k mylné interpretaci. Šlo o zdůvodnění, k čemu se (mimo jiné) hodí obousměrná komunikace na PS/2. A o to taky v diskusi šlo....znamená i to, že musí být strana hostitele připravena k příjmu prakticky "nepřetržitě"...
Po úpravě je ta věta pravdivá na 100%, páč řadič 8042 v PeCe (nebo jeho obdoba - součást čipsetů PC286/386 a výš) skutečně čte data z portu pořád dokola (krom spec. stavů). Teprve po přijmutí znaku (XT), nebo zaplnění svého bufferu (AT a výš), aktivuje tento IRQ1 a dožaduje se obsluhy! Nedočká-li se, data se přepíší novými (XT). Možnost pozastavit přísun dalších dat u obousměrné komunikace se tak logicky nabízí jako zajímavá vlastnost.
Samotná klávesnice žádný výstup INT nemá. Takže v aplikaci s MCU se periodické sledování stavu PS/2 rozhraní programem přímo předpokládá a o žádném HW přerušení nemůže být řeč. Leda spojit CLK portu též s vyhrazeným vývodem INT na MCU, což ale znamená přerušení iks krát během sériového přenosu PS/2 -> MCU a to není totéž jako v PC.
Podobný trik se využíval např. v C428. Výstup přijímače DO tam vedl na bitový port IR a zároveň na INT.
No tak ono to chce nejdřív pokročilejší OS. Pak si ji můžeš připojit kdykoliv. Mám starou Benq I-100P do PS/2, stejně tak jsem zkoušel i ještě starší Chicony (model neznám, je žlutá jak zuby nutrie a tlačítka jsou jak od psacího stroje), ani tam není problém.p32 píše:To je asi to, co se z PC na klávesnici určitě neřídí. Prostě se to změní softwarově jen v OS toho PC či NB. Zatím jediné co vidím, tak je indikace LED.MetalGod píše:Kdyby byla komunikace jen jednosměrná, jak by se daly softwarově řídit stavy NumLocku, ScrollLocku a CapsLocku, včetně jejich LED?
Určitě musí být oboustranná komunikace u USB klávesnice (PC a USB modul), kde je možnost kdykoliv odpojit a připojit. U PS2 klávesnice, kterou připojím až po nastartovaném PC, se nedá dělat nic, ani ovládat LEDky. Má někdo na klávesnici víc LEDek jak tři ?
- Přílohy
-
- SV_A0052.mp4.zip
- Tohle je narychlo ubastlený běhající světýlko
- (114.76 KiB) Staženo 62 x
Kdo není ve dvaceti levičák, nemá srdce,
kdo je levičák ve čtyřiceti, nemá rozum.
— Winston Churchill
kdo je levičák ve čtyřiceti, nemá rozum.
— Winston Churchill