PC jako "device" i protokół PS/2 (czy możl

Witam

Potrzebuję "zaemulować" klawiaturę wykorzystująca interfejs PS/2. Problem w tym, że według standardu to klawiatura (czyli w tym przypadku device) jest źródłem sygnału zegarowego, natomiast komputer (host) może tylko odbierać/nadawać dane. Domyślam się, że nie ma możliwości ustawienia go jako device przez co mógłby udawać klawiaturę, a może jednak?

Jeśli jednak nie ma takiej możliwości to jak w najprostszy sposób zrealizować odpowiednią przejściówkę ? Z wykorzystaniem tylko protokołu PS/2, czy np. między PC, a przejściówką zwykły RS232 (tak chyba było by prościej)??

Pozdrawiam. Michał.

Reply to
__lm
Loading thread data ...

Nie do końca jestem pewien czy wiem co chcesz osiągnąć. Jeżeli (jak się domyślam) masz COS (jakieś urządzenie) z wejsciem na klawiaturę ps/2, i chcesz ta klawiaturę zastąpić komputerem emulującym klawiaturę (czyli połączyć ps/2 w komputerze i tym czymś kablem) to tak sie nie da (wedle mojej wiedzy).

Gdybym ja miał taka potrzebę, to skleciłbym na atmelku przejściówkę rs232 - ps/2 (albo usb - ps/2). Od strony atmela oba rozwiązania są równie proste, od strony pc obsługa atmela po usb może być troszkę bardziej skomplikowana. Ale tylko troszkę. Głównie zależy to od systemu operacyjnego na tym pc.

Pewnie dało by się też zrobić to bez atmela - podłączyć ps/2 COSi'a do portu drukarki PC i programowo emulować transmisję ps/2. Teoretycznie powinno się udać.

pozdrawiam Jacek Kłapacz.

Reply to
ter_haar(wywalto)

Zapewne przejściówka z uC była najsolidniejsza. Z tym, że pomysł z LPT wydaje się szybszy do realizacji. W związku z tym pytanie: czy poza implementacją programową wymagana jest ingerencja w sprzęt, tj. przykładowo pull-up'y po stronie LPT do 5V, czy wystarczy bezpośrednie połączenie LPT(1,2)-PS/2(data,clock)?

Nawiązując też do USB, czy nie dało by się wykorzystać przejścióki USB-RS232 i linie RTS, DTR zaadaptowac na data, clock?

Pozdrawiam. Michał.

Reply to
__lm

Trzeba by zerknąc do specyfikacji ps/2. Strzelam, że bezpośrednie połączenie powinno działać, ale to tylko moje gdybanie.

Raczej napewno nie. Skoro bywają kłopoty z programatorami podłączanymi przez przejściówki usb-rs232, to tutaj też widzę problem z timingami. Żeby zmienić stan rts trzeba pewnie wysłać cały pakiet po usb (to tez moje gdybanie, nie interesowałem się tym zbytnio).

Działałoby pewnie podłączenie pod rs232 (o ile taki jeszcze jest w komputerze). Tyle, że będzie potrzebna konwersja napięć.

Osobiście wątpię, czy 'pomysł z LPT' będzie szybszy w realizacji. Przykładów realizacji emulatora klawiatury na mikrokontrolerze jest w necie multum (chociażby na tej grupie 4 wątki wstecz). Mała przeróbka czyjegoś projektu i masz co chcesz. A na LPT będziesz to robił od początku.

Reply to
ter_haar(wywalto)

tyle, ze DATA jest dwukierunkowa, pamiętacie o tym, nie ?

@
Reply to
Artur Miller

ja pamiętam (autor wątku chyba też, skoro o pullupy pytał).

Tak przy okazji - jeżeli Michał zdecyduje się kombinować z emulacją ps/2 na LPT to chyba warto by było zobaczyć jak jest robiona emulacja I2C za pomocą LPT. Rozwiązanie układowe powinno być identyczne. A kilka takich rozwiązań pewnie sie w sieci znajdzie.

pozdrawiam

Reply to
ter_haar(wywalto)

Nie będzie działać, sygnał CLK jest jednokierunkowy. O ile w mostku południowym w którym jest zintegrowany interfejs klawiatury być może da się zrobić tak aby to PC nadawał ten sygnał, to nie ma odpowiedniej funkcji API i trzeba omijać warstwę HAL aby dostać się do sprzętu. Chyba możliwe do zrobienia, ale mniej roboty będzie ze zrobieniem jakiego uC na zewnątrz, podpiętego przez RS lub USB. K.

Reply to
John Smith

W tym momencie kombinuję z przejścióka USB-RS232, z tym, że już nie sterownie liniami RTS, DTR jak pisałem wczesniej (np. za pomocą funkcji EscapeCommFunction i flagi SETRTS, CLRRTS) ale wykorzystaniu trybu Bit Bang. Tylko tu pojawia się problem transmisji dwukierunkowej - teoretycznie dany pin może pracować jako wieście lub wyjście, ale czy da sie zrobić z tego magistralę tego jeszcze nie wiem.

Tak też pewnie zostaje LPT (na bazie emulacji I2C na LPT o której wspominał Jacek) i wykorzystanie trybu bajtowego PS/2 (?)

Reply to
__lm

A którą to końcówke możesz w RS232 zadeklarować dowolnie jaki wejście lub wyjście? K.

Reply to
John Smith

Żadną. Ale co za problem połączyć końcówkę 'wyjście' z inną 'wejście'. Tak się na przykład robi przejściówki rs232 - 1wire.

pozdrawiam Jacek.

Reply to
ter_haar(wywalto)

Dnia 17-07-2009 o 14:05:57 John Smith snipped-for-privacy@buziaczek.pl napisał(a):

To już tyczyło sie kostki FT232R i trybu Bit Bang.

Reply to
__lm

Żaden problem połączyć, tylko dalej nie masz łączności dwukierunkowej, bo wyjścia nie postawiłeś w "trzeci stan". K.

Reply to
John Smith

dobrze, że najprostszy adapter rs232 - 1 wire o tym nie wie i działa ;)

adapterowi lpt - i2c (np takiemu:

formatting link
też nie powiem, że nie może działać, bo jeszcze przestanie

Reply to
ter_haar(wywalto)

A oto wyjaśnienie dlaczego działa (z ww. strony): The 74HC05 contains six inverters with open-collector outputs.

Nadal pozostaje otwarte pytanie o RS232 i Twój pomysł bezpośredniego połączenia wyjścia z wejściem celem zrobienia obustronnej komunikacji. Kombinuj dalej. K.

Reply to
John Smith

Uzylesz tyle madrych skrotow... :) Jedyny problem to dostep do IO pod systemami z ochrona pamieci, da sie to zrealizowac za pomoca stosownej dllki, tu masz przyklad jak to zrobiono VC++:

formatting link
nie jest to zadnym problemem, o czym swiadczy np. ponyprog (dostep do zrodel jest).

Reply to
T.M.F.

Ale mam nadzieję, że w Tym Towarzystwie całkowicie zrozumiałe. Bez podtekstów.

Obawiam się, iż dostęp do dokumentacji mostka południowego nie będzie już takim banałem. Można by wzorować się na starej dokumentacji PCAT, zakładając kompatybilność, ale jak nie będzie działać, to nie będzie wiadomo dlaczego. K.

Reply to
John Smith

Bedzie dzialac, to jest standard.

Reply to
T.M.F.

ano właśnie. Więc jednak Twoje 'Żaden problem połączyć, tylko dalej nie masz łączności dwukierunkowej, bo wyjścia nie postawiłeś w "trzeci stan" ' nie jest prawdą. Można z dwóch jednokierunkowych lini (wejście i wyjście) zrobić linie dwukierunkową. Za pomocą invertera, transystora, czy wreszcie w wariancie minimalistycznym opornika. Nie jest koniecznie niezbędny stan trzeci. Sie przydaje, jest wygodny, ale można się obejść bez niego.

formatting link
To bardzo popularny adapter rs232 - 1wire. Czy połączenie Rx i Tx za pomocą opornika i diody zenera jest wystarczająco bezpośrednie?

pozdrawiam i nie dzielmy juz włosa na czworo.

Reply to
ter_haar(wywalto)

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.