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

1. مقدمة

هذه المادة يصف كيف يمكن ان تكون الفارة PS/2 يحتذى به من قبل BASIC Stamp الكمبيوتر. 

هذا الاستكشاف هو غير رسمية. 
ps2_mouse_interior.jpg
الداخلية من الطراز القديم (الانتقال الكرة (فأرة الكومبيوتر : "Microsoft Intellimouse"  (ط حلت محل أجهزة الاستشعار البصريه الطويلة مع الاسلاك.)
ماوس وقد محورين : "X" و"Y".  وعندما انتقلت هذه الفأرة "أفقيا" ، "X" العجله تدور داخل الفأرة.  وعندما انتقلت هذه الفأرة "عموديا" (على السطح) ، "Y" العجله تدور داخل الفأرة.  اقتراح لالتعسفي الفأر ، "X" و"Y" عجلات التحرك وفقا "لالافقي والرأسي" العناصر الفارة من الحركة. 
ps2_mouse_interruptor_wheels.jpg
Interruptor داخل عجلات البصريه الفأر
أشعار في الثغر العجلات داخل الماوس.  وعندما تدور العجله ، (IR) بالاشعه دون الحمراء المنبعثة من ضوء وجود صمام ثنائى IR التي ينبعث منها ضوء (LED) هو توقف مرارا وتكرارا ، وذلك بمعدل يتناسب مع معدل دوران عجلة.  وهكذا ، فان الفار لا يعلم كثير من "الزيادات" (وتسمى أيضا "القراض" (الماوس محور تحرك في خلال فترة معينة. 

تحديد اتجاه حركة ينطوي على استخدام أجهزة الاستشعار 2 الخفيفه ، التي تقع الى جانب وثيقة للغاية ، إلى جانب محور مواز لحركة العجله.  (في كل من اجهزة الاستشعار واحدة 3 - العنصر الرقم المبين ادناه.) 
mouse_sensor01.jpg
الفأر IR ضوء باجهزه استشعار للكشف عن اثنين IR في مجموعة واحدة)
المركز الرقم هو مجموعة من هواة جمع الجهد الايجابي ؛ 
اليسرى واليمنى دبابيس هي اليسار واليمين الاستشعار بواعث الانتاج. 

دعونا اسم اثنين من اجهزة الاستشعار في مجموعة "A" و"B".  افترض في البداية هو العجله في دوران هذه الزاويه ان سدت IR الضوء من الوصول الى كل من اجهزة الاستشعار. 

كما تدور العجله ، IR من الباعث على ضوء سيتمكن في نهاية المطاف يمر عبر ثقب في العجله وتصل إلى واحد من اثنين من اجهزة الاستشعار ، مثل اجهزة الاستشعار "A".  اذا كانت لا تزال عجلة بالتناوب في الاتجاه نفسه ، في نهاية المطاف الثانية الاستشعار ، "B" ، وسوف تكون قادرة على تلقي IR الخفيفه.  اذا كانت لا تزال عجلة بالتناوب في الاتجاه نفسه ، في نهاية المطاف IR ان يتم حجب الضوء من الوصول الى أجهزة الاستشعار "A".  اذا كانت لا تزال عجلة بالتناوب في الاتجاه نفسه ، في نهاية المطاف IR ان يتم حجب الضوء من الوصول الى أجهزة الاستشعار "B". 

وهكذا ، فان التسلسل : 
(A,B):   ..., (0,0), (1,0), (1,1), (0,1), ...
اذا كانت العجله تدور في الاتجاه المعاكس ، 4 الاجل التسلسل المبين اعلاه سيتم عكسه ، وانطلاقا من الوضع الحالي.
مع هذين الاستشعار اشارات يمكننا تحديد معدل الدوران ، والاتجاه.
ps2_mouse_circuit_board.jpg
الداره المجلس من Microsoft Intellimouse
فهم المزيد عن الكيفيه التي تفسر الفارة داءره الضوء وأجهزة الاستشعار ويتصل مع الحاسوب الشخصي (PC) (عن طريق اشارات PS/2) ، درست الدائرة المجلس. 

رقاقة فإن الاسم التالي وقد طبع عليها : SPCP05A. 

البحث في شبكة الانترنت لكلمة "SPCP05A" يشير الى ان الرقاقه هو من صنع شركة اسمها "Sunplus Technology Co.".  معلومات عن "SPCP05A" رقاقة يمكن الحصول عليها من هذه الشركة. 

وهنا المواصفات الفنية للرقاقة "SPCP05A" : 
sunplus_ps2_3dmouse_datasheet.pdf
(المواصفات الفنية لل"SPCP05A" رقاقة)
1125022 بايت
MD5: 359a9210275e021cc19a5e2391499dc5
الصورة التالية تظهر الاشارات من دبابيس "SPCP05A (PS/2 3D mouse)" للرقاقة.
spcp05a_chip_signals_bmp01.jpg
دبابيس من الاشارات من رقاقة "SPCP05A (PS/2 3D mouse)"
وقد "SPCP05A" هو في الواقع ضءيله على الحاسوب!  ولديه تعليمات وضعها ، وRAM ، وROM ، واجهزة التوقيت والداخلية ، إلخ  وفي الواقع ، فان وصفا لل"SPCP05A" رقاقة في المعلومات المقدمة من قبل Sunplus Co.  نادرا ما يشير الى استخدام محدد من رقاقة "للفأرة الكومبيوتر" الدوائر.  هذا هو رقاقة متحكم دقيق متعدد الاستعمالات. 

درست الدائرة داءره آثار على المجلس للMicrosoft Intellimouse الى شكل تخطيطي التقريبيه التالية :
ps2_mouse_my_schematic.jpg
تخطيطي تقريبي للMicrosoft Intellimouse  (وأنا في عداد المفقودين بعض المكثفات ، ولكن هذا يكاد يكون مثاليا التخطيطي).
Bui Van Chu ، في استراليا ، وقراءة المادة بلدي وارسل لي اكمل التخطيطي ، الذي يظهر في الصورة التالية.
ms_ps2_mouse_schematic.jpg
وقد PS/2 الماوس التخطيطي ، أرسل لي Bui Van Chu من استراليا
الداره بسيط جدا. 

أزرار الماوس (يسار ووسط ، يمين) تذهب مباشرة الى المدخلات على رقاقة. 

ثلاثة ازواج من اجهزة الاستشعار ضوء ، (("X" ، "Y" ، "Z") ، (الافقي للحركة ، الحركة الراسيه ، وبكرة الماوس الاوسط)) ارسال اشارات مباشرة الى غير ذلك من المدخلات على الرقاقه. 

PS/2 فإن الاشارات DATA وCLK (الساعة) كما تقابل I/O اشارات على الرقاقه. 

فهمت التخطيطي في اقرب وقت انهيت رسم عليه (عن طريق اتباع آثار على مجلس الدائرة). 

شيء واحد لم أكن في البداية كان يفهم الطريقة التى ترتبط بها IR LEDs الى رقاقة (الرقم 16 : "PB1") ، بدلا من آثارها السلبيه على المحطات الطرفيه (القطب السالب) ، وذلك ببساطة صلة مباشرة الى ارض الواقع.  وهذا امر مهم!

2. اول محاولة للتحكم في حركة الفارة

التعليقات التالية تشير الى الاقتراح على طول محور واحد (مثل "X" ، أو الأفقي ، والمحور). 

وأول ما حاولت ان يتحرك الجسم بين IR LED والاستشعار عن زوج -- لمحاكاه تأثير للتناوب داخل عجلة الماوس.  هذا العمل.  انني يمكن ان تتسبب في مؤشر الماوس على التحرك في جميع انحاء الشاشه بمجرد تحريك عقبة في طريق IR شعاع ضوء مرارا وتكرارا ، في نفس الاتجاه. 

المقبل ، الاول ازالت الرقم 3 - استشعار جزءا من داءره الفار المجلس ، ويعلق على اسلاك الدائرة في المجلس بدلا من اجهزة الاستشعار.  انا يدويا صلة سلك الى الجهد الايجابي لمحاكاه اجهزة الاستشعار النشاط.  الأول يرتبط البلدين إشارات الى السلطة وفقا للنمط التالي (ان مثل هذه "0" يمثل "حالا" ، ويمثل "على" "1") :
(0,0), (1,0), (1,1), (0,1), ...
هذا العمل.  ويمكنني ان تحرك مؤشر الماوس على الشاشه من قبل هذا الانفصال ممله وربط الاسلاك في نمط المبينه اعلاه.  عكس نمط من الوضع الحالي في سلسلة من شأنه ان تحرك المؤشر فى الاتجاه المعاكس. 

لأن الأمور تسير على نحو جيد ، فقد قررت لتوصيل الاسلاك الى التبديلات (التي يسيطر عليها RS-232).  وهذا من شأنه ان اساسا واسمحوا لي ان تفعل بالضبط ما فعلت مع فضفاضة الاسلاك : ربط أجهزة الاستشعار الإشارات إلى محطة الطاقة في بالتسلسل المناسب.  والفرق الوحيد سيكون ان الانسان (لي) ما كان لها ان تفعل ممله وربط الانفصال. 

ولكن...  لا يعملون! 

وبعد الكثير من تعديل من المقاومات والمكثفات ، وما الى ذلك ، قدمت اكتشاف غريب : لو كنت لمس بعض المحطات في الداره ، وعملت على أكمل وجه!  الحل للخروج من هذا الغموض ويبدو في الفرع التالي. 

3. وقد بالاشعه دون الحمراء (IR) الخفيفه يجب ان يكون منظم

وبعد اجراء بعض التجارب المحبطه كانت لي الفكر الجديد : IR ضوء قد يكون النبض في ذات تردد عال ، ورقاقة يمكن ان تتوقع الحصول على هذه الترددات.  الثابت والضوء (او محاكاه بلدي المستمر الناتج الاستشعار) قد يكون مرفوضا.  كنت بشيء من الحيره من حقيقة ان المحيطة أ ضوء مصباح هالوجين الكلمه مقبول ، لكنني كنت اعرف انه حتى مصابيح ساطع وقد كشف التحوير. 

حاولت وجود النبض IR LED في ذات تردد عال ، ومنع قيام أجهزة الاستشعار وفقا لنمط من المتوقع.  وهي تعمل! 

وهذا هو!  وقد IR LEDs في داءره الفار المجلس يجب ان يكون اللمعان بسرعة عالية ، ورقاقة ويجب ان نتوقع هذا اللمعان بالاضافة الى معدل منخفض نسبيا للضوء توقف عجلة الدوريه (مع فتحات). 

النبض من قبل فان IR LEDs ، وتوقع هذا النبض في الافراج الاستشعار الناتج اشارة ، فان رقاقة يمكن ان ترفض اي اشارات المحيطة IR الفار من التدخل في العملية.  فعلى سبيل المثال ، من ضال ضوء الاخرى (ثابت) IR مصادر لن interefere مع الماوس. 

الأول يرتبط صوت مكبر للصوت الى الناتج الاستشعار ، وبعد ذلك اسمحوا لي ان اغتنم الصمام في ضوء المحيطة التي تدلي بها بلدي الكلمه مصباح هالوجين.  سمعت نغمة مميزة (60 Hz).  انني عندما مخفوت المصباح ، ازدادت وتيرة الاغماء ، وأخيرا توقف عندما كان من ضوء.  ذلك ، فإن هذا الاستشعار بسهولة تلتقط 60 Hz فإن التحوير في ساطع لمبة الهالوجين بلدي الكلمه مصباح! 

يبحثون ، والآن ، في التخطيطي للداءره الفار PS/2 المجلس ، فان اهمية من IR LEDs صلة الى يعلقون على رقاقة (بدلا من لالمباشره الحالية) واضحة.  وقد رقاقة تسيطر على اللمعان من IR LEDs من خلال I/O رقم التعريف الشخصي ، ويمكن ربط رقاقة عزمها على فلاش فان ID LEDs مع تلقي مدخلات الاستشعار ، وبالتالي رفض أي ضال إشارات (بسبب عدم اللمعان IR ضوء).  (ومع ذلك ، ليس من الضروري الارتباط.  ببساطة اكتشاف وجود حد ادنى من اللمعان التهم يمكن أن يكون الحد الأدنى لقبول مساهمه اجهزة الاستشعار.) 

4. IR اجهزة الاستشعار مع ممر الموجة المرشحات

يمكنك العثور على أجهزة الإستشعار الخاصة IR ، وتعبئتها في شكل ترانزستور - مثل ثلاثة يؤدي ، التي هي محددة "بما يتوافق مع" منظم IR ضوء الترددات (على سبيل المثال ، 38 kHz). 
tuned_sensor01.jpg
ضبطها IR ضوء استشعار (اقصى قدر من الحساسيه للضوء 38 kHz التحوير)
ممر الموجة الدوائر ويرد داخل الجهاز ، جنبا الى جنب مع صور - IR الترنزستورات. 

بذلك ، IR LED عموما يمكن أن يكون نابض في تواتر 38 kHz حتى أن أجهزة الاستشعار سوف تحصل على ضوء وأود الاشارة الكهرباءيه الذهاب الى الصمام النواتج. 

لنقل المعلومات ، على ضوء من IR LED يمكن ان توقف عند معدل منخفض نسبيا (على سبيل المثال ، من 1 الى 100 مرة في الثانية الواحدة).  هذا التردد المنخفض هو في النبض جنبا الى جنب مع المطرد النبض عالية التردد ، اي ان انخفاض وتيرة النبض - لا يمكن اعتبار التنظيم الرفيع وتيرة النبض.  - ارتفاع وتيرة النبض مثل "الناقل موجة" المعلومات التي قامت عليها اشارة (التردد المنخفض نسبيا تحوير) ويتم تنفيذ. 

ومع ذلك ، فانني IR التحقق من ان اجهزة الاستشعار في Microsoft Intellimouse ليس لديها مثل هذه تحوير الترشيح.  ومع ذلك ، فإن الدائرة لا تحتاج الى ان تكون IR ضوء منظم بطريقة ما ، بالاضافة الى انقطاع التردد المنخفض للضوء عن طريق العجله مع الثقوب. 

فيما يلى رسم يوضح الفرق في اجهزة الاستشعار الاشارات IR LED المستمر للضوء واللمعان IR LED ضوء لمختلف مراحل تحول بكرة الماوس.
ps2_mouse_quadrature_sketch.jpg
الاستشعار الانتاج المستمر للاشارات IR ضوء حالة واللمعان IR ضوء الحاله.

5. محاكاه فأرة المدخلات باستخدام الحاسوب BASIC Stamp

وقد "BASIC Stamp 2" الكمبيوتر كافية قابليه البرمجه PS/2 لتنفيذ البروتوكول.  ولذلك ، فإن "BASIC Stamp 2" الحاسوب يمكن ان تكون مرتبطة مباشرة الى ميناء PS/2 من اجهزة الكمبيوتر الشخصيه ويمكن محاكاه (PC) أ PS/2 الماوس او لوحة المفاتيح. 

5.1 فان البروتوكول PS/2

في السنوات 1998 من خلال 2003 ، فان غالبية الحواسيب الشخصيه قد PS/2 الموانئ لوحة المفاتيح والفأرة. 

وقد شهد ميناء PS/2 فإن الاشارات 4 : (1) CLOCK ؛ (2) DATA ؛ (3) +5V ؛ (4) GROUND. 

وقد PS/2 ميناء يسمح لاجهزة ارسال البيانات الى سلطات البلد المضيف ، والمضيف ان يرسل بيانات الى الاجهزه.  جميع الاطراف على PS/2 الموانئ (عادة مجرد أداة والمضيف) ويجب أن تتبادل الاشارات ويجب ان اكتشاف اذا كان هناك طرف آخر في الوقت الراهن باستخدام الاشارات. 

كيف يمكن ان تكون اشارات المشتركة؟  أشارة (مثل CLOCK او DATA) عادة ما يكون ارتفاع "عاءمه" ، مما يعني ان الاشارة التي لها علاقة ايجابية من خلال الجهد المقاوم مع ارتفاع المقاومة (على سبيل المثال ، 4 kilo-Ohms).  وهكذا فان اشارة تفسر بأنها نتيجة منطقيه "عالية" من قبل جميع الاطراف والاستماع.  يمكن سحب اي طرف خط منخفض (عن طريق المنطق TTL) عندما يعتزم الطرف لإرسال البيانات.  وعندما ينتهي من ارسال طرفا في علبة ، فإنه يتيح له العودة من الاشارات غير مسمى ، ولذلك تعويم ارتفاع مرة أخرى. 

لإرسال البيانات من جهاز (مثل الماوس او لوحة المفاتيح) الى (PC) الحواسيب الشخصيه ، يجب ان ترسل البيانات في رزم 11 بت ، التي تتألف من معاهدات الاستثمار الثنائية التالية : (1) بدء بت ("0") ؛ (2) 8 بت البيانات (LSB الاولى) ؛ (3) تعادل بت "(من الغريب" التكافؤ) ؛ (4) وقف بت "(1)."  علما أن "الغريب" هو "التعادل" عندما العدد الاجمالي "لل1" معاهدات الاستثمار الثنائية في البيانات بت بت التكافؤ والجمع هو عدد فردي. 

الرسم البياني التالي يوضح انتقال البيانات علبة واحدة : 
ps2_clock_data_dev2pc01_adj.jpg
PS/2 البروتوكول : جهاز لاستضافة علبة (PC)
وقد DATA ينبغي تحديد الخط السليم لقيمة قبل ان يصل الخط CLOCK منخفضه.  وقد DATA مجموعة قيمة وينبغي ان يظل حتى CLOCK خط عادت الى الارتفاع.  عندما CLOCK خط تأكد انها عالية ، DATA قيمة يمكن ان تتغير قليلا الى أخرى قيمة. 

النمطيه هي سرعة عقارب الساعة بطيءه نسبيا ، عن 10 kHz الى 17 kHz.  وهذا هو جزء من مليون من الثانية نزولا الى 100 جزء من مليون من الثانية 70 ساعة لكل فترة. 

سيناريو المضيف (PC) ارسال البيانات الى جهاز مماثل لجهاز ارسال بيانات الى سلطات البلد المضيف ، ولكن في جميع الحالات يسيطر على الجهاز اشارة CLOCK خلال ارسال البيانات نفسها.  كذلك ، ارسلت بت من البيانات المضيف) على جهاز تحديد CLOCK منخفض) ينبغي ان يكون الجهاز مغلق وعندما يتيح للاشارة CLOCK جعل الانتقال الى عاليه. 

اي البحث في شبكة الانترنت من شأنه أن يكشف العديد من الأوصاف PS/2 اشارات وتفاصيل عن البروتوكول. 

5.2 PS/2 الماوس رزم البيانات

وعندما يصل الحاسوب الاحذيه ، يبدأ نظام التشغيل في نهاية المطاف ويتصل مع الماوس لتحديد نوع الفأرة.  افتراضي الفار قد تتصرف مثل الفأر PS/2 العامة.  غير انه اذا كان نظام التشغيل الذي يقرر أن الفأر هو في الواقع "3D PS/2" فأرة (على سبيل المثال ، مع عجلة الماوس) ، نستطيع ان نقول لتغيير الماوس الى ماوس 3D PS/2 البروتوكول. 

عند تحريك الفأرة ، او الصحافة او اطلاق أزرار الماوس ، الفأرة الدوائر ترسل البيانات الى سلطات البلد المضيف (PC) ، مشيرا الى دولة ما حدثت تغيرات منذ السابقة اشارة الى الدولة. 

PS/2 العامة الماوس الثلاثة التالية يرسل الرزم الى سلطات البلد المضيف : 
    ------------------------
    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
وهو شائع جدا ان يكون لها "3D PS/2" فأرة (على سبيل المثال ، مع ان بكرة الماوس يعمل ايضا على زر اوسط).  هذا الفأر يرسل اربع رزم البيانات الى سلطات البلد المضيف (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 بلدي للداءره الاولى لمحاكاه الماوس PS/2

التالية التخطيطي وكان اول عمل للحصول على تقنيه الحاسوب بلادي "BASIC Stamp 2" الماوس PS/2 لارسال البيانات الى سلطات البلد المضيف (PC).
2002june03_basicstamp_to_ps2mouse_circuit.jpg
التخطيطي للداءره لتمكين BASIC Stamp الحاسوب PS/2 لارسال الرزم الى سلطات البلد المضيف (PC).
علما ان هذه الدائرة كهربائيا يعزل من بلادي BASIC Stamp الحاسوب المضيف (PC) الكمبيوتر.  نلاحظ ايضا ان هذه الدائرة هي فقط لتلبية الاحتياجات الكهرباءيه للPS/2 نقل البيانات (من الجهاز لاستضافة).  وهكذا ، استطيع ان أرسل رسائل PS/2 لوحة المفاتيح باستخدام نفس هذه الدائرة واذا كنت في سد العجز الى ميناء على لوحة المفاتيح PS/2 المضيف (PC)! 

ومنذ استقبال الاشارات بصفة عامة غير الغازية (اي الاستماع لا تتداخل مع اشارات كهرباءيه) ، والشيء الوحيد المطلوب للسماح لل"BASIC Stamp" الحاسوب لاستقبال PS/2 CLOCK وDATA اشارات وجود صلة مباشرة من تلك الاشارات الأخرى BASIC Stamp I/O دبابيس (تهيئتها لتكون مدخلات).  انا نوع من محاولة التخفيف -- ولكنني بالتأكيد لا يمكن استخدام عازل علم البصريات بشكل مباشر ، لان ذلك من شأنه ان يضع عبئا على الاشارات "العاءمه" (وهكذا "غرق" منهم!).  انني يمكن ان تستخدم +5V عازلة الى السلطة ، ثم بعد ذلك استخدام الاحتياطي لدفع الناتج البصريات isolators في نهاية المطاف ان ارسال اشارات الى BASIC Stamp I/O دبابيس (تهيئتها كمدخلات). 

وتبين الصورة التالية BASIC Stamp 2 بلدي الحاسوب المرتبطه داءره مطابقه التخطيطي اعلاه. 
2002june03_basicstamp_mousecircuit01_adj.jpg
BASIC Stamp 2 الكمبيوتر مرتبطة الى PS/2 الماوس عن طريق ميناء البصريات المعزل الدائرة.
التالية BASIC Stamp 2 البرنامج ، PBASIC كتب في لغة البرمجه ، هو اول محاولة ناجحه للسيطره على PS/2 عبر BASIC Stamp 2 فأرة الحاسوب. 

البرنامج ببساطة يجعل مؤشر الماوس تحرك صغير على طول جانبى الخط. 
'====================================================================
'{$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

'====================================================================
ويعمل هذا البرنامج على أكمل وجه.  واسمحوا لي انه يسعى لترشيح نفسه للساعات ، دون عيب وانها تقدم مؤشر الماوس بالتنقل بين اثنين من مواقع المحددة على الشاشه.  وهذا هو ما كنت ابحث عن : مراقبة دقيقة للفأرة لكي يتسنى لي التفاعل مع البرامج. 

بعد البحث في الانترنت اكتشفت ان شخصا آخر استخدم BASIC Stamp حاسوب آلي واجهة PS/2 (محاكاه لوحة المفاتيح).  هذا الشخص استخدم PBASIC تعليمات SHIFTOUT لمعالجة الاشارات CLOCK وDATA ، وهو في الواقع كبيرة.  هذا من شأنه ان يجعل بلادي "TransmitPacket" اورريز اقصر بكثير ، وربما خطوط 5 من قانون المجموع! 

ورأيت ايضا ان الشعوب الاخرى المستخدمة TTL العازل مرتبطة مباشرة مع مدخلات من اشارات PS/2 (CLOCK وDATA) ، والنواتج المتصله مباشرة الى دبابيس على رقاقة متحكم دقيق.  فى نفس الدائرة ، وخطوط الانتاج متحكم دقيق من ذهب مباشرة الى قاعدة دبابيس على الترنزستورات جامعي التي لها صلة مباشرة الى PS/2 الاشارات.  كل ذلك مباشرة واقتران دوائر مختلفة تبدو لي فكرة سيئة ، لئلا داءره واحدة لجمهورية يوغوسلافيا الاتحادية الاخرى.  ولا أدري ماذا كنت تفعل لو كنت فرايد فان PS/2 ميناء PC على بلدي.  شراء اللوحه الجديدة ، احزر!  عذرا لرفع مستوى.  لا اعتقد أ PS/2 ميناء اللوحه الانهيار ومن المرجح ، لكنني على الفور اغلاق جهاز الكمبيوتر عندما عرضية قصيرة فإن دار +5V وGROUND اشارات الذهاب الى PS/2 الماوس.  ربما انها سمة من سمات!  وبوسعي ان اضيف جديدا على زر الماوس قصيرة فقط ان دوائر السلطة الماوس لحظة الاغلاق من PC.  ;-) 

واليك وصله الى معلومات فيما يتعلق باستخدام SHIFTOUT لPS/2 البروتوكول :
http://ourworld.compuserve.com/homepages/steve_lawther/keybinfo.htm
أبحث عن الوصله التالية :
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).
محليا مخباه - نسخة من الملف :
keybtst.zip

10655 بايت
MD5: c5667557f96db53fb878bd11bfbe4f74
الوصله التالية توفر المزيد من المعلومات المتعلقة PS/2 توصيل الفأرة :
http://panda.cs.ndsu.nodak.edu/ ~ achapwes/picmicro/ps2/ps2.htm
colinfahey.com
معلومات الاتصال
English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية