no niestety, niemoge sie zgodzić z tym że jest aż tak ciężko i to gruba przesada.
Jesli chodzi o transmisje PS2 to jest to zwykła transmisja synchroniczna z bitem staru, stopu i parzystości. Częstotliwość zegara około 32KHz.(są dwie linie zegara i danych). Podłącz sobie wyjście danych i zegara do lewego i prawego wejścia liniowego w karcie dźwiękowej. Odpal Cool Edit-a i pobaw się. Kod tego co zostało zrobione czyli kod wciśniętego/zwolnionego klawisza jest na 7-bitach, najstarszy oznacza że jest aktualnie wciśnięty/zwolniony.(pakiet składa się z 10).
Wszystkie klawiatury które podłączamy do stacjonarnych PC wysyłają takie same kody i transmisja przebiega zgodnie z PS2.
Klawiatury w Laptopach z reguły niczego nie wysyłają, bo to są same matryce klawiszy, które podlegają skanowaniu przez jeden z układów na pokładzie płyty glównej laptopa.
Linia danych klawiatury, podczas normalnej pracy (gdy coś piszesz) pracuje w przypadku klawiatur częściej na wyjście Bo mikrokontroler klawiatury odbiera tylko gdy jest komenda resetu, ustawienie częstotliwości opóźnienia i ilości znaków na sekundę, sygnały załączające diody. Dlatego odbioru nie musisz implementować.
Ja wykonałem jakiś czas temu klawiaturkę która tylko wysyłała znaki w wyniku naciśnięcia klawisza i spełniała swoje zadanie jak każda inna.
(odbiór jest konieczny tlyko w przypadku gdybyś chciał robić myszkę lub jej symulator, bo ta musi odpowiedzieć na wysłaną komendę /przekazac parametry jak rozdzielczość itp/ inaczej nie zostanie wykryta przez żaden sterownik ani system).
tutaj (mam nadzieję) znajdziesz odpowiedzi na wszystkie swoje pytania dotyczące działania klawiatury stacjonarnego PC:
http://panda.cs.ndsu.nodak.edu/~achapwes/PICmicro/keyboard/atkeyboard.html Dodano po 7 [minuty]:
w przypadku transmisji klawiatura->komputer długość pakietu to 11 bitów:
-1bit startu
-8bitów danych
-1bit parzystości
-1bit stopu
W przypadku transmisji komputer->klawiatura, długość wynosi 12, bo dochodzi na końcu bit potwierdzenia.
szczegóły tu:
http://www.computer-engineering.org/ps2protocol/ Dodano po 5 [minuty]: twój program dla mikrokontroler-a wystarczy że jedynie będzie wysyłał bajty 0-255 (kody). A to jakie kody ma wysłać uzależnione będzie od naciśniętego klawisza. A to czy jest naciśnięty i który ocenisz odczytując stan portów wejściowych mikrokontroler-a. Oczywiście program mikrokontrolera musi dysponować tablicą kodów klawiszy klawiatury AT -którą znajdziesz na stornie do której link ci podałem.
Dzięki tej tablicy zamienisz np. swój kod literki A na ten który będzie odpowiedni dla literki A w standardzie AT. Czyli musisz mieć dwie tablice, kodów twojej klawiatury od LAPTOP-a i kodów AT. Gdy znasz kod klawisza z klawiatury Laptopa (indeks przeszukania tablicy) to korzystając z tego samego indeksu automatycznie odczytujesz sobie odpowiedni kod dla AT. Program jak widzisz jest banalnie prosty.
Dodano po 15 [minuty]: jeszcze muszę dodać, że gdy klawiatura nie będzie wysyłać, to nie bedzie wykrywana podczas startu przez BIOS-setup(sygnalizowanie błędów startu (również inicjalizacji klawiatury) można w większości setup-ów wyłączyć).
Druga sprawa to to, że niektóre klawisze -zwłaszcza specjalne oraz strzałki składają się z dwóch i więcej kodów. Szczegóły są na stronie - patrz link powyżej.