AT eller PS/2-tastatur Interface

A

andre2000

Guest
Hi guys, noob her.
Jeg forsøger at gøre et modul til at indfange tastatur tegn fra et tastatur sluttet til PS / 2 port på min @ ltera bord.

Jeg har brug for at vide nøjagtigt, hvor signalerne kommer fra tastaturet, når en tast.Internettet er fantastisk, og jeg søgte og søgte og fandt en masse info.Men meget af det er ufuldstændige, inkonsekvent, eller ikke er klar.

Så hvad der kommer ud af serielle data pin når en tast?Nogle steder siger, at kun scanne koden kommer ud (indrammet i 11 bit).Andre siger, at scanningen kode kommer ud og følges af en pause, når nøglen er frigivet (kode $ F0), også indrammet.
Et andet sted siger, at når du trykker på en tast følgende kommer ud "$ E0 $ F0 xx", hvor uklart er det!?!Er "xx" oplysningerne?Hvis så det
gør ikke mening!

Så et andet sted siger, at hvis du holder den nede, den sender scanningen koden gentagne gange "10 gange i sekundet" indtil en frigivelse (pause) kode er set.Det kan ikke være rigtigt, fordi vi alle kan blive ramt fordelingsnøglen for nøjagtig 1 sekund, og det
gør ikke ske!

Alle anlaegsomraader sige, at tastaturet klokfrekvensen kan fra 10kHz til 30kHz, hvis Thats sandt, så hvis du rammer en nøgle til 1 sekund, det rent faktisk har sendt 333 af samme scanne koden på det pågældende tidspunkt (under forudsætning af 30kHz).Hvordan er det muligt?Skal jeg gøre mit modul over komme dette eller er der noget andet sker der?

 
det vil være for ps2 9600baud 8bit 1 start 1 stopbit 1 paritet bit

adhear til ps2 tastatur protokol (se på netto for standard)

kun adidtion Anordningens specifikke drivere vil måske ændre dette normal setup

du blot sende tastaturet en byte eller et skifte til init det
...se ps2 protokol for keyboards
så lægge en anden måde kan du bruge alle serielle port og endda Hyperterminal
at init og hente data fra en tastatur til praksis osv. ...
http://www.computer-engineering.org/ps2protocol

dataene stifter er på ttl 5v niveau i modsætning til den standard -12V RS232 niveauer
mest RS232 seriel markedsordningerne udstyr
vil skifte til 5V TTL niveau efter afsløring
(moderne pc fremstillet efter 2000)
dataene er normalt 'clocked ind og ud' de buffere på tastaturet og havn
på interrupt

...

data fra tastatur / mus
osv.er normalt sendes i pakker for at tillade flere byte, der skal sendes til hvilket niveau af tastatur nøglen er sat (skift eller ej Ctrl presset eller ikke etc)
hver har sin adresse sender det og er dekodes til at give den rigtige tilkendegivelse af tastetryk

 
VSMVDD wrote:

så lægge en anden måde kan du bruge alle serielle port og endda Hyperterminal til init og få data fra en tastatur til praksis osv. ...

 
Tak for dit svar!
Jeg har lært meget af om PS / 2, og jeg er sikker på min kode vil knytte sig til det.

En anden queston,
Når jeg får de oplysninger, jeg vil gerne konvertere det fra scanne koden til ASCII.Jeg bryder mig ikke om multibyte nøgler, blot det grundlæggende.Jeg kender et behov for et opslagstabelnavn til keycodes-> ASCII-konverter.Betyder det, at en mux med 127 indgange (8bytes ea) og en 8 bit vælge?Den virker bare
doesnt sund ret ....

 
Faktisk, jeg løb ind i et problem med mit design.Jeg har virkelig brug for at pleje om multibyte koder på grund af frigivelsen kode!Når du slipper for en nøgle, tastaturet sender en 2 byte frigive kode indrammet af en start bit, paritet, og stop bit.

Den første byte er E0h, efterfulgt af 1 byte scanne koden for at nøglepersoner, der blev udgivet.
Jeg konstrueret det således, at en statemachine ser E0h, kender en pause, og derefter bare ignorerer resten af frigive kode.

Det eneste problem er, det bliver for stort i en projektkonkurrence nu, og jeg er bekymret for hvordan det vil sammenfatte.Kan nogen give mig nogle design tips?

 

Welcome to EDABoard.com

Sponsor

Back
Top