English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية 
PS2 mysz i komputer BASIC Stamp
Colin Fahey

1. Wstęp

W tym artykule opisano, w jaki sposób PS/2 myszy może być naśladowane przez BASIC Stamp komputera. 

Niniejsze badanie ma charakter nieformalny. 
ps2_mouse_interior.jpg
Wnętrze starego stylu (piłka ruchome) komputerową myszkę: "Microsoft Intellimouse"  (I zastępuje czujników optycznych z długich drutów).
Mysz posiada dwie osie: "X" i "Y".  Kiedy mysz jest przenoszone "poziomo," "X" koła wewnątrz myszy obraca.  Kiedy mysz jest przenoszony "w pionie" (na powierzchni), "Y" koła wewnątrz myszy obraca.  Na arbitralne ruchu myszki, "X" i "Y" koła przenieść zgodnie z "poziomych" i "pionowych" elementów w ruchu myszki. 
ps2_mouse_interruptor_wheels.jpg
Optyczne interruptor koła wewnątrz myszy
Zawiadomienie otwory w kołach wewnątrz myszy.  Gdy koło obraca, infra-red (IR) światła emitowanego przez IR Light Emitting Diode (LED) jest przerwany wielokrotnie, w wysokości proporcjonalnej do stawki koło rotacji.  Tak, myszy wie, jak wiele "zmian" (zwany też "kleszcze)" mysz oś została przeniesiona w danym okresie czasu. 

Określanie kierunku jazdy wymaga użycia 2 czujników światła, położone bardzo blisko siebie, wzdłuż osi równoległej do przemieszczania koła.  (Obydwa czujniki są w jednym 3-pin części pokazano poniżej). 
mouse_sensor01.jpg
Mysz IR czujnika (IR składa się z dwóch detektorów w jednym opakowaniu)
W centrum pin do pakietu jest pozytywne napięcie kolektor; 
W lewym i prawym Kody są po lewej i prawej wyjście czujnika emisji. 

Pozwól nam nazwy dwóch czujników w opakowaniu "A" i "B".  Załóżmy koła jest początkowo w kąt rotacji w taki sposób, aby światło IR jest blokowany z osiągnięciem obu czujników. 

W koło obraca, IR światło z emiterem będzie ostatecznie być w stanie przejść przez otwór w koła i osiągnięcia jednego z dwóch czujników, np.  czujnik "A".  Jeżeli nadal obracających się kół w tym samym kierunku, w końcu drugi czujnik, "B", będą mogli otrzymała IR świetle.  Jeżeli nadal obracających się kół w tym samym kierunku, ewentualnie IR świetle będą blokowane z osiągnięciem czujnik "A".  Jeżeli nadal obracających się kół w tym samym kierunku, ewentualnie IR świetle będą blokowane z osiągnięciem czujnik "B". 

Tak, kolejność jest następująca: 
(A,B):   ..., (0,0), (1,0), (1,1), (0,1), ...
Jeśli koło obraca się w odwrotnym kierunku, 4-term kolejność podana powyżej zostanie odwrócona, począwszy od bieżącego stanu.
Z tych dwóch sygnałów z czujników możemy określić wskaźnik rotacji oraz kierunku.
ps2_mouse_circuit_board.jpg
Do płytek z Microsoft Intellimouse
Aby zrozumieć więcej o tym, jak mysz w świetle interpretuje obwody czujników i komunikuje się z komputerem osobistym (PC) (za pośrednictwem sygnałów PS/2), studiował w obwodzie pokładzie. 

Mikroprocesor ma następującą nazwę wydrukowane na nim: SPCP05A. 

Wyszukiwanie z Internetu za słowo "SPCP05A" wskazuje, że chip jest produkowany przez firmę o nazwie "Sunplus Technology Co.".  Informacje o "SPCP05A" mikrochip może być nabyte od tej firmy. 

Oto specyfikacje techniczne z "SPCP05A" mikroczip: 
sunplus_ps2_3dmouse_datasheet.pdf
(Specyfikacje techniczne z "SPCP05A" mikroczip)
1125022 bytes
MD5: 359a9210275e021cc19a5e2391499dc5
Poniższy obrazek pokazuje sygnały paliki z "SPCP05A (PS/2 3D mouse)" mikrochip.
spcp05a_chip_signals_bmp01.jpg
Sygnały z paliki z "SPCP05A (PS/2 3D mouse)" mikroczipa
W "SPCP05A" jest rzeczywiście mały komputer!  Posiada zestaw instrukcji i RAM i ROM i wewnętrzne zegary, itp.  W rzeczywistości, opis w "SPCP05A" mikroczipa w informacjach dostarczonych przez Sunplus Co.  słabo odnosi się do szczególnego korzystania z mikrochip do "komputera myszy" układów.  Ten chip jest wszechstronnym mikrokontrolera. 

Studiowałem układu śladów na pokładzie z obwodu Microsoft Intellimouse do postaci następujących przybliżonych schemacie:
ps2_mouse_my_schematic.jpg
Szacunkowe schematyczne z Microsoft Intellimouse  (Ja brakuje kilku kondensatorów, ale ten schemat jest niemal doskonały.)
Bui Van Chu, Australia, przeczytaj mój artykuł i posłał mnie bardziej kompletny schemat, w którym pojawia się następujący obraz.
ms_ps2_mouse_schematic.jpg
W PS/2 myszy schematyczne, wysłał do mnie Bui Van Chu z Australia
Układ jest bardzo prosty. 

W przyciski myszy (lewy, środkowy, po prawej) przejść bezpośrednio do wejść na mikrochip. 

Trzy pary czujników światła (("X", "Y", "Z"), (poziome ruch, ruch pionowy, a pośrodku kółka myszy)) wysyłać sygnały do innych nakładów na chipie. 

W PS/2 sygnały DATA i CLK (zegar), jak również odpowiadają I/O sygnałów w chipie. 

Zrozumiałam, schemat, tak szybko jak ja gotowego rysunku (przez następujące śladów na pokładzie obwodu). 

Jedna rzecz nie była początkowo zrozumieć sposób IR LEDs były podłączone do mikroczip (pin 16: "PB1"), zamiast ich negatywnego terminali (katoda) po prostu jest podłączony bezpośrednio do podłoża.  To jest ważne!

2. Moje pierwsze próby w celu kontroli przemieszczania myszy

Poniższe uwagi odnoszą się do ruchu wzdłuż osi pojedynczej (np.  "X" lub poziomej, osi). 

Pierwszą rzeczą, Ja postarałem się obiekt był między IR LED i czujnik pary - aby symulować efekt obracających się kół w myszy.  Ten pracował.  I może spowodować, że kursor myszy do poruszania się po ekranie po prostu się przeszkodą na drodze wiązki światła IR wielokrotnie, w tym samym kierunku. 

Dalej, usunięto 3-pinowy czujnik część z myszą płytek, druty i dołączone do płytek w miejscu czujnika.  I ręcznie połączone drutu do pozytywnego napięcia do symulacji czujnika.  I dwa sygnały podłączone do zasilania według następującego wzoru (takich, które reprezentuje "0" "off," i stanowi ""1"):"
(0,0), (1,0), (1,1), (0,1), ...
Ten pracował.  I może przesunąć kursor myszy na ekranie w tym tedious Podłączanie i odłączanie drutów w strukturze pokazano powyżej.  Odwrócenie schematu z obecnego stanu w kolejności będzie przesunąć kursor w przeciwnym kierunku. 

Ponieważ wszystko było się tak dobrze, zdecydowałem się podłączyć przewody do przekaźniki (kontrolowane przez RS-232).  To przede wszystkim pozwoli mi zrobić dokładnie to, co uczyniłem z luźnych drutów: połączyć sygnały z czujników do zasilania końcowych w odpowiedniej kolejności.  Jedyną różnicą będzie fakt, że człowieka (mnie) nie miałby zrobić tego tedious Podłączanie i odłączanie. 

Ale ...  nie działa! 

Po wielu dostosowanie rezystory i kondensatory, itp, dziwnej dokonał odkrycia: Gdybym był dotykając niektórych terminali znajdujących się w obiegu, pracował idealnie!  Rozwiązanie tej tajemnicy pojawi się w następnej sekcji. 

3. Podczerwonego (IR) światła muszą być modulowane

Po kilku eksperymentach frustrujące miałem nowego myślenia: IR światła może być pulsing na wysokiej częstotliwości, a chip może pojawić się spodziewać tej częstotliwości.  Ciągłe światło (lub symulowanego moje stałe wyjście czujnika) mogą zostać odrzucone.  Byłem nieco perplexed przez fakt, że w otaczającym świetle lamp halogenowych piętro było do zaakceptowania, ale ja wiedziałem, że nawet lampy żarowe mają wykrywalne modulacji. 

Ja postarałem pulsing jeden IR LED na wysokiej częstotliwości oraz blokowania czujników w zależności od oczekiwanego wzorca.  Udało się! 

To był on!  W IR LEDs na pokładzie mysz obwodu musi być migające z dużą prędkością, oraz mikrochip muszą oczekiwać w tym migające Ponadto na stosunkowo niski poziom światła przerwy przez obracanie koła (z otworami). 

Na pulsing w IR LEDs, i oczekuje tego pulsing w odblokowany czujnik sygnał, chip może odrzucić wszelkie sygnały z otoczenia IR ingerowania w działanie myszy.  Na przykład, światła od innych (stałe) IR źródeł nie będzie interefere z myszą. 

I audio wzmacniacz podłączony do czujnika wyjścia, a następnie I niech podejmą w czujnik światła otoczenia oddanych przez moje piętro lamp halogenowych.  Usłyszałem odrębny ton (60 Hz).  Kiedy przyciemnione światła, dźwięku wzrosła słaby, a gdy wreszcie zatrzymał świetle została wyłączona.  Tak, ten czujnik łatwo podnosi 60 Hz modulacji w mojej żarowe żarówki halogenowe lampy podłogowe! 

Patrząc teraz, na schemacie z PS/2 myszy płytek, znaczenie w IR LEDs jest podłączony do pinu na mikrochip (zamiast na prąd stały) jest oczywiste.  Mikroprocesor steruje migające z IR LEDs poprzez I/O pin, oraz mikrochip może koreluje swój zamiar błysk w ID LEDs z otrzymanych danych wejściowych czujników, a tym samym odrzucić wszelkie sygnały bladzi (z powodu braku IR migające światło).  (Niemniej jednak, korelacja nie jest konieczne.  Wystarczy wykrywaniu minimalnej liczby migające liczy mogą być próg przyjmowania czujnik wejściowy.) 

4. IR czujników z pasmowego filtry

Możesz znaleźć IR specjalnych czujników, pakowane w formie tranzystor, jak z trzech potencjalnych klientów, które są "nastawione" na konkretne modulowana IR świetle częstotliwości (np.  38 kHz). 
tuned_sensor01.jpg
Tuned IR czujnika (maksymalnie wrażliwość na światło 38 kHz modulacji)
Bandpass obwodów jest zawarty w urządzeniu, wraz ze zdjęciem IR tranzystorów. 

Tak więc, ogólnie IR LED może być impulsowe na częstotliwości 38 kHz tak, że czujnik otrzymają światło i niech elektrycznego sygnału przejść do wyjścia czujnika. 

Aby przekazać informacje, światło z IR LED może być przerwana na stosunkowo niskie stawki (np.  1 do 100 razy na sekundę).  Tę niskiej częstotliwości pulsing jest w stałym związku z wysoką częstotliwością pulsing, tj.  o niskich częstotliwości pulsing można uznać za modulowania wysokiej częstotliwości pulsing.  W wysokiej częstotliwości pulsing "przewoźnik" jest jak "fala," na której informacje sygnał (stosunkowo niskiej częstotliwości modulacji) jest przeprowadzane. 

Niemniej jednak, że zweryfikowane IR czujników w Microsoft Intellimouse nie ma takiej modulacji filtrowania.  Jednakże, na obwodzie nie wymagają, aby w świetle IR być modulowany w sposób, w uzupełnieniu do niskich częstotliwości przerw światła przez koło z otworami. 

Poniższy schemat ilustruje różnice w czujnik sygnałów dla stałych IR LED świetle IR LED i migające światło dla różnych fazach myszy toczenia kół.
ps2_mouse_quadrature_sketch.jpg
Czujnik sygnałów wyjściowych dla stałych IR świetle sprawy i migające światła IR przypadku.

5. Symulacja myszy za pomocą komputera BASIC Stamp

W "BASIC Stamp 2" komputer ma wystarczającą programowalności do wdrożenia protokołu PS/2.  W związku z tym, "BASIC Stamp 2" komputer może być podłączony bezpośrednio do portu PS/2 komputera osobistego (PC) i może emulować jeden PS/2 myszy lub klawiatury. 

5.1 W protokole PS/2

W latach 1998 poprzez 2003, większość komputerów osobistych musiał PS/2 porty dla klawiatury i myszki. 

W PS/2 portu posiada 4 sygnały: (1) CLOCK; (2) DATA; (3) +5V; (4) GROUND. 

W PS/2 portowych urządzeń pozwala na wysyłanie danych do hosta, a przyjmującym może wysyłać dane do urządzenia.  Wszystkie strony na PS/2 portu (zazwyczaj tylko urządzenie i przyjmującego) musi udostępnić sygnałów i musi wykryć, jeśli druga strona jest obecnie za pomocą sygnałów. 

Jak mogą być udostępniane sygnały?  Sygnał (np.  CLOCK lub DATA) jest zazwyczaj wysoki "pływającą," co oznacza, że sygnał jest podłączony do pozytywnego napięcia poprzez opornik o wysokiej odporności (np.  4 kilo-Ohms).  W ten sposób sygnał jest interpretowane jako logiczne "wysokiego" słuchanie przez wszystkie strony.  Każda ze stron może ciągnąć linii niskiego (za pośrednictwem TTL logika), gdy strona zamierza wysłać dane.  Kiedy kończy strony wysyłania pakietów, pozwala przejść na czas nieokreślony sygnały, że tak wysoki float. 

Aby wysłać dane z urządzenia (np.  mysz czy klawiatura) na komputer osobisty (PC), musisz wysłać dane w 11-bitowe pakiety, składające się z następujących bitów: (1) Start bit ("0"); (2) 8 bitów danych (LSB pierwszy); (3) bit parzystości "(odd" parity); (4) bit stopu "(1)."  Zauważ, że "parytet" jest "dziwne," gdy łączna liczba bitów "1" w bitów danych i bit parzystości połączone jest nieparzystego numeru. 

Poniższy diagram ilustruje transmisji danych w jednym pakiecie: 
ps2_clock_data_dev2pc01_adj.jpg
PS/2 protokołu: urządzenia do obsługi pakietów (PC)
W DATA linii powinny być ustawione na właściwą wartość przed zabraniem CLOCK linii niskiego.  W DATA wartość powinna być ustawiona do linii CLOCK zwróciło się z powrotem na wysokim poziomie.  Gdy linia jest CLOCK potwierdza się wysoka, DATA wartość może ulec zmianie na następny bitowych wartości. 

Typowe prędkości zegara jest stosunkowo powolny, o 10 kHz do 17 kHz.  To jest 100 mikrosekund do 70 mikrosekund dla każdego okresu zegara. 

Scenariusz z hosta (PC) wysyłania danych do urządzenia jest podobna do wysyłania danych do urządzenia wojska, ale we wszystkich przypadkach urządzenie do sterowania CLOCK sygnału podczas transmisji danych.  Ponadto, dane przesyłane bit z hosta (na ustawienie urządzenia CLOCK niskie) należy latched gdy urządzenie umożliwia CLOCK sygnał dokonać przejścia na wysokim poziomie. 

W Internecie wyszukiwania ujawni wiele opisów PS/2 sygnałów i informacji na temat protokołu. 

5.2 PS/2 myszy pakiety danych

Gdy komputer uruchamiania komputera, system operacyjny uruchamia się i ostatecznie komunikuje się za pomocą myszy, aby określić typ myszy.  Domyślnie mysz mogą zachowywać się jak uniwersalne PS/2 myszy.  Jednakże, jeśli system operacyjny stwierdzi, że mysz jest w rzeczywistości "3D PS/2" myszki (np.  mysz z kółkiem), to można powiedzieć, aby zmienić mysz do myszy 3D PS/2 protokołu. 

Podczas przesuwania myszy lub naciśnij lub zwolnienia przycisków myszy, mysz obwody wysyła dane do hosta (PC), wskazując, jakie zmiany zaszły stan od poprzedniego stanu wskazań. 

Rodzajowe PS/2 mysz wysyła następujące trzy pakiety do hosta: 
    ------------------------
    D7 D6 D5 D4 D3 D2 D1 D0  (The D0 bit (LSB) is sent first)
    ------------------------
(1) YV XV YS XS  1  0  R  L  (overflow, sign, buttons)
(2) X7 X6 X5 X4 X3 X2 X1 X0  (X movement; -128 to +127)
(3) Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0  (Y movement; -128 to +127)

L  = Left  Button State (1 = pressed down)
R  = Right Button State (1 = pressed down)
XS = Direction of X movement (1 = LEFT)
YS = Direction of Y movement (1 = UP)
XV = Overflow of X movement value (1 = X overflow occured)
YV = Overflow of Y movement value (1 = Y overflow occured)
X7,...,X0 : X movement; 8-bit 2's-complement signed byte (-128 to +127)
Y7,...,Y0 : Y movement; 8-bit 2's-complement signed byte (-128 to +127)

Here are examples of data sent to the host (PC):
------------------------------------------------
(The least-significant bit of each data byte is sent first.)
Move Left  1 unit    :  0x18, 0xFF, 0x00
Move Right 1 unit    :  0x08, 0x01, 0x00
Move Down  1 unit    :  0x28, 0x00, 0xFF
Move Up    1 unit    :  0x08, 0x00, 0x01
Press   Left  Button :  0x09, 0x00, 0x00
Release Left  Button :  0x08, 0x00, 0x00
Press   Right Button :  0x0C, 0x00, 0x00
Release Right Button :  0x08, 0x00, 0x00
Jest bardzo często mają "3D PS/2" myszki (np.  mysz z kółkiem, że działa również jako środkowy przycisk).  Taka mysz wysyła cztery pakiety danych do hosta (PC). 
    ------------------------
    D7 D6 D5 D4 D3 D2 D1 D0  (The D0 bit (LSB) is sent first)
    ------------------------
(1) YV XV YS XS  1  M  R  L  (overflow, sign, buttons)
(2) X7 X6 X5 X4 X3 X2 X1 X0  (X movement; -128 to +127)
(3) Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0  (Y movement; -128 to +127)
(4) Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0  (Z movement; -128 to +127)

This is very similar to the generic PS/2 mouse,
with a few additions:

M = Middle Button State (1 = pressed down)
Z7,...,Z0 : Mouse wheel movement; 8-bit 2's-complement signed byte
    (The Z value is forced to a range of -8 to +7)

5.3 Mój pierwszy do obiegu symulować PS/2 mysz

Poniższy schemat był mój pierwszy technikę pracy, aby uzyskać "BASIC Stamp 2" mój komputer do wysyłania danych do PS/2 myszy hosta (PC).
2002june03_basicstamp_to_ps2mouse_circuit.jpg
Schemat obwodu w celu umożliwienia BASIC Stamp komputera do wysyłania PS/2 pakiety do hosta (PC).
Zauważ, że w tym obwodzie elektrycznym izolatów BASIC Stamp mój komputer z hosta (PC) komputera.  Należy również pamiętać, że taki jest właśnie do obwodu elektrycznego spełnia wymogi PS/2 transmisji danych (z urządzenia do hosta).  Tak, mogę wysyłać wiadomości PS/2 klawiatury przy użyciu tego samego obwodu, jeśli podłączyć do portu klawiatury PS/2 w przyjmującym (PC)! 

Ponieważ odbieranie sygnałów jest ogólnie nieinwazyjne (np.  słuchanie nie koliduje z sygnałów elektrycznych), jedyną rzeczą, wymaganych w celu umożliwienia "BASIC Stamp" komputera pojawia się PS/2 CLOCK i DATA sygnałów jest bezpośrednie połączenie z tych sygnałów do innych BASIC Stamp I/O szpilki (skonfigurowany do nakładów).  I chcielibyśmy spróbować czegoś w rodzaju buforowania - ale na pewno nie mogą skorzystać z transoptor bezpośrednio, ponieważ uważam, że byłoby umieścić ładunek na "swobodne" sygnały (więc ich "opadania!)."  I może skorzystać z uprawnienia do +5V bufora, a następnie użyj bufor wyjściowy do kierowania Opto-izolatory, że ostatecznie wysyłać sygnały do BASIC Stamp I/O Pins (skonfigurowane jako wejściowe). 

Poniższy obrazek pokazuje BASIC Stamp 2 mój komputer podłączony do dopasowania do schematic obwodzie powyżej. 
2002june03_basicstamp_mousecircuit01_adj.jpg
BASIC Stamp 2 komputer podłączony do portu myszy PS/2 poprzez transoptor obwodu.
Następujące BASIC Stamp 2 program napisany w języku programowania PBASIC, było moje pierwsze udane próby do kontroli PS/2 myszy BASIC Stamp 2 za pośrednictwem komputera. 

Program sprawia, że wystarczy przesunąć kursor wzdłuż małą ukośną linię. 
'====================================================================
'{$STAMP  BS2} 'STAMP directive (specifies a BS2)

    DIR0 = %1 'Set pin 0 to OUTPUT
    DIR1 = %1 'Set pin 1 to OUTPUT
    OUT0 = %0 'Set DATA line high (pin low)
    OUT1 = %0 'Set CLOCK line high (pin low)
    tempData    VAR  BYTE
    tempParity  VAR  BYTE

'--------------------------------------------------------------------

MainLoop:

    tempCounter  VAR  WORD

    FOR tempCounter = 0 TO 10
    tempData = $28
    GOSUB TransmitPacket
    tempData = $01
    GOSUB TransmitPacket
    tempData = $ff
    GOSUB TransmitPacket
    tempData = $00
    GOSUB TransmitPacket
    PAUSE 100
    NEXT

    FOR tempCounter = 0 TO 10
    tempData = $18
    GOSUB TransmitPacket
    tempData = $ff
    GOSUB TransmitPacket
    tempData = $01
    GOSUB TransmitPacket
    tempData = $00
    GOSUB TransmitPacket
    PAUSE 100
    NEXT

    GOTO MainLoop

STOP

'--------------------------------------------------------------------

TransmitPacket:

    GOSUB ComputeParity       'First, compute parity

    tempData   = ~tempData    'Invert data bits
    tempParity = ~tempParity  'Invert parity bit

    '==== Start Bit ====
    OUT0 = %1 'Set data line low (output high)
    PULSOUT 1, 25   ' Pulse line 1 for (25*2) = 50 usec

    '==== Data Bits ====
    OUT0 = tempData.BIT0
    PULSOUT 1, 25
    OUT0 = tempData.BIT1
    PULSOUT 1, 25
    OUT0 = tempData.BIT2
    PULSOUT 1, 25
    OUT0 = tempData.BIT3
    PULSOUT 1, 25
    OUT0 = tempData.BIT4
    PULSOUT 1, 25
    OUT0 = tempData.BIT5
    PULSOUT 1, 25
    OUT0 = tempData.BIT6
    PULSOUT 1, 25
    OUT0 = tempData.BIT7
    PULSOUT 1, 25

    '==== Parity Bit ====
    OUT0 = tempParity.BIT0
    PULSOUT 1, 25

    '==== Stop Bit (high) ====
    OUT0 = %0  ' pin low is DATA high
    PULSOUT 1, 25

    PAUSE 1 ' Necessary? Provides 1 msec gap between packets...

RETURN

'--------------------------------------------------------------------

ComputeParity:

    tempParity = $01
    tempParity = tempParity + tempData.BIT0
    tempParity = tempParity + tempData.BIT1
    tempParity = tempParity + tempData.BIT2
    tempParity = tempParity + tempData.BIT3
    tempParity = tempParity + tempData.BIT4
    tempParity = tempParity + tempData.BIT5
    tempParity = tempParity + tempData.BIT6
    tempParity = tempParity + tempData.BIT7
    tempParity = tempParity & $01

RETURN

'====================================================================
Ten program działa.  I niech go uruchomić na godziny, i to niezawodnie się kursor myszy przenieść między dwoma dokładnej lokalizacji na ekranie.  To, co miałem szukasz: dokładne kontroli myszy tak, że mogę współdziałać z oprogramowaniem. 

Po przeszukać Internet i odkrył, że ktoś inny korzystał z komputera BASIC Stamp interfejs PS/2 (symulacja klawiatury).  Ta osoba korzystała z PBASIC instrukcji SHIFTOUT do obsługi CLOCK i DATA sygnały, co jest naprawdę wielki.  W ten sposób moje "TransmitPacket" subroutine znacznie krótszy, może 5 linii kodu całkowitej! 

I zobaczyłem, że także inne osoby wykorzystywane TTL buforów, nakłady związane bezpośrednio z PS/2 sygnałów (CLOCK i DATA), oraz wyjścia podłączony bezpośrednio do mikrokontrolera szpilki na chipie.  W tym samym obwodzie, wyjście linii z mikrokontrolerem udał się bezpośrednio do bazy szpilki na tranzystorów, które ich kolektorów podłączonych bezpośrednio do PS/2 sygnałów.  Wszystko to bezpośrednie połączenie różnych układów wydaje się to zły pomysł dla mnie, bo jeden obwód narybku innych.  Nie wiem co mam zrobić, jeśli ma smażone w PS/2 portu w mojej PC.  Sprzedam nową płytą, I guess!  Pretekst do uaktualnienia.  I nie uważasz, że PS/2 otwarcia portu płyty głównej jest prawdopodobne, ale nie od razu zamknięcie mojego komputera, kiedy przypadkowo krótko-circuited w +5V i sygnały GROUND się do PS/2 myszy.  Maybe it's a feature!  I może dodać nowy przycisk na myszy, że tylko krótkich spięć myszy na natychmiastowe zamknięcie elektrowni w PC.  ;-) 

Oto link do informacji dotyczących korzystania z SHIFTOUT do protokołu PS/2:
http://ourworld.compuserve.com/homepages/steve_lawther/keybinfo.htm
Spójrz na poniższy link:
KEYBTST.ZIP   gives a very basic program for the parallax
-----------
BASIC stamp II, to send key-codes to the PC's keyboard port.
It also gives a write-up of the XT and AT keyboard interfaces
(although IMO some details could be wrong / different to the
keyboards I've looked at).
Lokalnie buforowana kopia pliku:
keybtst.zip

10655 bytes
MD5: c5667557f96db53fb878bd11bfbe4f74
Poniższy link zawiera więcej informacji dotyczących PS/2 myszy interfejs:
http://panda.cs.ndsu.nodak.edu/ ~ achapwes/PICmicro/PS2/ps2.htm
colinfahey.com
informacje kontaktowe
English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية