پروتکل صفحه کلید و موس PS/2

مقدمه :

مدارات واسط ابزار PS/2 که در بسیاری از موسهای جدید و صفحه کلیدها استفاده می شوند ، توسط IBM تولید و در متون دستی تکنولوژی IBM بصورت رسمی منتشر شده است . به هر حال ، این مقاله مدت زیادی نیست که به چاپ رسیده و هیچ گونه انتشار رسمی از این اطلاعات وجود ندارد . اینجانب به مراجع و منابع فنی IBM دسترسی نداشته و بنابراین تمام اطلاعات از تجربیات شخصی به اضافه کمکی که از فهرست منابع ذکر شده در انتهای این متن گرفته شده بوده .

این مقاله در باره استفاده از مدارات واسط موس PS/2 ، صفحه کلید PS/2 و صفحه کلید AT توضیح داده است . اینجانب ابزار الکتریکی و فیزیکی را به خوبی پروتکل تحت پوشش قرار داده ام . اگر به اطلاعات مراحل بالا تری همچون دستورات ، فرمت بسته داده یا اطلاعات مخصوص دیگری برای موس یا صفحه کلید نیاز دارید ، من مقالاتی مجزا برای دو وسیله نوشته ام :

The PS/2 (AT) Keyboard Interface
The Ps/2 Mouse Interface
شما را به دیدن این سایتها برای اطلاعات بیشتر درباره این موضوع تشویق میکنم . موضوعات مورد نظر پروژه ها ، کد ارتباطات مرتبط با موس و صفحه کلید می باشد .
لطفا ً در صورت یافتن اشکال در سایت Email بفرستید .

فیزیک مدارات واسط :

فیزیک پورت PS/2 به یکی از دو شکل ۵-Pin DIN یا ۶-pin mini DIN میباشد . هر دو اتصال (از لحاظ الکتریکی) کاملا ً شبیه به هم هستند . تنها اختلاف عمل بین آنها درترتیب پینهاست . یعنی دو نوع اتصال به سادگی قابل تغییر با آداپتور می باشند . قيمت‌آنها هر كدام‌ حدود ۶ دلار است‌ و يا اينكه‌ شما مي‌توانيد خودتان‌ سوزنها را روي‌ هر دواتصال‌ كننده‌ نصب‌ نمائيد. DIN استاندارد توسط‌ سازمان‌ استاندارد آلمان‌ توليد شده‌است‌ .

وب‌ سايت‌ آنها www.din.de است‌ (اين‌ سايت‌ در آلمان‌ است‌ ولي‌ بيشتر صفحات‌آن‌ در انگلستان‌ قابل‌ دسترسي‌ است‌).

صفحه‌ كليدهاي‌ PC يا از ۵-Pin DIN یا ۶-pin mini DIN استفاده میکنند . اگر صفحه‌ كليد شما ۶-pin mini DIN است‌ و كامپيوتر شما ۵-Pin DIN دارد يا برعكس‌، مثل‌ مورد فوق‌ كه‌ ذكر شد مي‌توانيد عمل‌ نمائيد. صفحه‌كليدهايي‌ با ۶-pin mini DIN اغلب‌ تحت‌ عنوان‌ صفحه‌ كليدهاي‌ PS/2 نام‌ برده‌مي‌شوند، در حاليكه‌ صفحه‌ كليدهای با ۵-Pin DIN “AT” ناميده‌ مي‌شوند

( صفحه‌كليدهاي‌ “XT” نيز از۵-Pin DIN استفاده‌ مي‌كند ولي‌ آنها كاملاً قديمي‌ هستند و طي‌چند سال‌ اخير استفاده نشده‌اند . ) همه‌ صفحه‌ كليدهاي‌ جديد PC كه‌ ساخته‌ مي‌شوند يا PS/2 هستند و يا AT و يا USB . اين‌ مقاله‌ كاري‌ به‌ USB ندارد چون كه‌ از قطعات‌ كاملاًمختلفي‌ تشكيل‌ شده‌ است‌ .

موس‌ به‌ شكل‌هاي‌ مختلفي‌ وجود دارد، همينطور به‌اندازه‌هاي‌ متفاوتي‌. نوع‌ معمولي‌ و متداول‌ آن‌ معمولاً موس‌ PS/2 است‌. چند سال‌ قبل‌چند سري‌ موس‌ متداول‌ بودند ولي‌ صنعت‌ كامپيوتر با USB و PS/2 آنها را تحت‌ پوشش‌قرار مي‌دهد. اين‌ مقاله‌ فقط‌ راجع‌ به‌ موسهاي PS/2 است‌. اگر بخواهيد يكسري‌ موس ‌USB را برنامه‌ريزي‌ نمائيد، ، اطلاعات‌ فراواني‌ راجع‌ به‌ چگونگي‌ در دسترس‌ قرار گرفتن‌آن‌ روي‌ وب‌ وجود دارد.

كابل‌ اتصال‌ صفحه‌ كليد و موس‌ به‌ كامپيوتر معمولاً حدود ۶ فوت‌ درازا دارد و شامل‌چهار تا ۶ سيم‌ ۲۶ AWG است‌ توسط‌ يك‌ لايه‌ نازكي‌ از فويل‌ پوشانده‌ شده‌ است‌. اگر به‌كابل‌ يا سيم‌ بيشتري‌ نياز داشتيد، مي‌توانيد سيم‌هاي‌ دراز PS/2 را از بيشترفروشگاههاي‌ الكتريكي‌ تهيه‌ نمائيد. شما نبايد چند سيم‌ را به‌ همديگر وصل‌ نمائيد. اگربه‌ سيم‌ صفحه‌ كليد ۳۰ فوتي‌ نياز داشتيد، يك‌ سيم‌ ۳۰ فوتي‌ بخريد. خيلي‌ ساده‌ ۵ سيم‌مثلاً ۶ فوتي‌ را به‌ همديگر وصل‌ نكنيد. انجام‌ چنين‌ كاري‌ به‌ برقراري‌ ناجور ارتباط‌ بين‌صفحه‌ كليد/موس‌ و سيستم‌ مي‌انجامد.

همانطور كه‌ نوشتيم‌، نوع‌ ديگري‌ از اتصال‌ كننده‌ وجود دارد كه‌ ممكن‌ است‌ براي ‌صفحه‌ كليد از آن‌ استفاده‌ نمائيد، در حاليكه‌ اكثر سيم‌هاي‌ صفحه‌ كليدها، سفت‌ ومحكم ‌به‌ صفحه‌ كليد وصل‌ شده‌ است‌، سيم‌هايي‌ هم‌ وجود دارند كه‌ به‌ صورت‌ مداوم‌ به‌ صفحه‌كليد وصل‌ نشود و جزء قطعات‌ جداگانه‌ محسوب‌ شوند. اين‌ سيم‌ها داراي‌ اتصال‌ كننده‌هاي‌ DIN در انتهاي‌ سيم‌ هستند، همچنين‌ داراي‌يك‌ اتصال‌ كننده ‌ SDL روي‌ انتهاي‌ صفحه‌ كليد است‌

. SDL توسط‌ كمپاني‌ “AMP” توليدشده‌ است‌. اين‌ اتصال‌ كننده‌ مشابه‌ به‌ اتصال‌ كننده‌ تلفن‌ است‌. و داراي‌ سيم‌ها و منافذ سوزني‌ و يك‌ گليپس‌ يا گيره‌ پلاستيكي‌ كه‌ آن‌ را در مكان‌ قرار مي‌دهد میباشد. اگر راجع‌ به‌ اين‌اتصال‌ كننده‌ نياز به‌ اطلاعات‌ بيشتري‌ داريد، بايد بتوانيد آن‌ را روي‌ وب‌ سايت‌ AMP در www.connect.amp پيدا كنيد.

من‌ فقط‌ اين‌ نوع‌ را در صفحه‌ كليدهاي‌ XT ديده‌ام‌، گرچه‌كه‌ ممكن‌ است‌ در صفحه‌ كليدهاي‌ AT هم‌ وجود داشته‌ باشد كه‌ از SDL استفاده‌مي‌كنند. اتصال‌ كنندة‌ SDL را با USB اشتباهي‌ نگيريد، هر دوي‌ آنها شبيه‌ به‌ هم‌هستند، همانطور كه‌ در نمودار زير نشان‌ دادم‌. ولي‌ آنها در حقيقتا ً‌ با هم‌ متفاوت‌ هستند.نوع‌ SDL را به‌ ذهن‌ بسپاريد كه‌ داراي‌ منافذ و قطعات‌ متحرك‌ است‌ در حاليكه‌ نوع USB اينطور نيست‌.

سوزنهاي‌ هر اتصال‌ كننده‌ در زير نشان‌ داده‌ شده‌ است‌ :
Male

(Plug) Female

(Socket) 5-pin DIN (AT/XT):
1 – Clock
2 – Data
3 – Not Implemented
4 – Ground
5 – Vcc (+5V)

Male

(Plug) Female

(Socket) 6-pin Mini-DIN (PS/2):
1 – Data
2 – Not Implemented
3 – Ground
4 – Vcc (+5V)
5 – Clock
6 – Not Implemented

۶-pin SDL:
A – Not Implemented
B – Data
C – Ground
D – Clock
E – Vcc (+5V)
F – Not Implemented
مدارات واسط الکتریکی :
توجه‌: پيرامون‌ اين‌ مقاله‌، از عبارت‌ معمولي‌ سيستم‌ براي‌ اشاره‌ به‌ كامپيوتر استفاده‌مي‌كنم‌. يا مثلاً اگر به‌ جاي‌ صفحه‌ كليد و موس‌ از لفظ‌ وسيله‌ استفاده‌ مي‌كنم‌ به‌ آنها اشاره ‌دارد .

Vcc/Ground به‌ موس‌ و صفحه‌ كليد توان‌ موردنظر را مي‌دهد. صفحه‌ كليد ياموس‌ نبايد بيش‌تر از mA100 از سيستم‌ جریان بکشد ‌و دقت‌ كنيد كه‌ از مواردنظير surges اجتناب‌ شود. چنين‌ surges ها‌ مي‌توانند باعث‌ داغ‌ شدن‌ موس ‌، صفحه‌ كليد و سيستم‌ شوند.

مادربوردهاي‌ قديمي ‌تر يك‌ صفحه‌ نصب‌ شده‌ دارند كه‌ از منافذ موس‌ و صفحه‌ كليد محافظت‌ مي‌كند. بيشتر مادربوردهاي‌ جديد از poly fuses استفاده‌مي‌كنند. به‌ هر حال‌، اين‌ يك‌ حالت‌ استاندارد محسوب‌ نمي‌شود و هنوز مادربوردهاي‌قديمي‌ فراواني‌ براي‌ استفاده‌ وجود دارند. بنابراين‌ ، من‌ روي‌ داغ‌ كردن‌ موس یا صفحه کلید تاکید می کنم .

بطور خلاصه : توانهای بخصوص
Vcc = +5V
Max Current = 100 mA

خطوط‌ Data و خطوط‌ Clock هر دو با مقاومت‌ pullup به +۵V متصلند . يك‌ مدار باز داراي‌ دو وضعيت‌ ممكن‌ است‌: مقاومت‌ كم‌ يا بالا. در حالت‌مقاومت‌ كم‌، يك‌ ترانزيستور ‌سطح منطقی را Low می کند . در وضعيت‌ با مقاومت‌ بالا مدار واسط بصورت مدار باز عمل کرده و و خطوط به سطح منطقی Low و High نمی روند . علاوه‌ بر آن‌، يك‌ مقاومت‌ بين‌ bus و Vcc وصل‌مي‌شود که‌ چندان‌ حائز اهميت‌ نيست‌ (۱ ~ ۱۰ kOhms) ; مقاومت‌هاي‌ بيشتر در مصرف‌ كمتر ومقاومت‌ كمتر در افزايش‌ سرعت . يك‌ مدار واسط مدار باز در زير نشان‌ داده‌ شده‌ است‌ :

شکل ۱ interface کلی مدار باز . data و clock در میکروکنترولر به ترتیب با پینهای A و B خوانده می شود . هر دو خط در حالت عادی +۵V می باشند ، ولی می توان با منطق “۱” در C و D آنها را به حالت “۰” تبدیل کند . نتیجه اینکه data مساوی عکس D و clock مساوی عکس C می باشد .

توجه : زمانی که به مثالهای موجود در این سایت نگاه می کنید ، توجه خواهید داشت که از حیله ها یی در زمان انجام interface مدار باز میکروی PIC استفاده کرده ام . از هر PIC به عنوان هم ورودی و هم خروجی استفاده کردم و مقاومتهای pull up داخلی PIC را که بیش از مقاومتهای خارجی استفاده می شود فعال کردم .

یک خط با قرار دادن پین مطابق خروجی و نوشتن یک صفر در پورت آن صفر می شود . در وضعیتی که پین ورودی قرار داده شود مقاومت بالا می شود .
برای ساخت PIC با وسیله های محافظ و استهلاک رخ داده کم ، فکر می کنم این یک شکل صحیح ار آن باشد . اگر تجربۀ شما راه دیگری نشان می دهد بیان کنید .