در این وبگاه مطالب علمی، آهنگ های ویژه (قدیمی و جدید و تیتراژ) مطالب کودکانه، طب سنتی، تصاویر جالب، کاریکاتور، شناختن مشاهیر، شعر، دانلود 3gp و amr ، نرم افزار موبایل، کتاب و مقاله، مطالب آسمانی، گل و گیاه و مطالبی در مورد گیم و خودرو ارائه می شود.

فرشید احمدی

جستجو

 

جلسه اول

سه شنبه 29 آذر 1390   11:25 ب.ظ


نوع مطلب : الکترونیک ،میکرو کنترلر PIC ،

ما در این دوره آمورش کار با میکرو های خانواده ی PIC ا با زبان PIC Basic Pro خواهیم داشت امیدواریم مفید واقع شود.

میکرو کنترلر PIC نصب سطحی

میکرو پرسسور چیست؟ تفاوت میکرو پرسسور با میکرو کنترلر چیست؟

          میکرو پرسسور یک واحد پردازشی است. میکرو پرسسور تنها پردازش اطلاعات را بر عهده دارد و برای مواردی چون؛ تایمر، پورت سریال و واحد های I/O (ورودی و خروجی) نیاز به مدارات خارجی دارد. درحالی که میکرو کنترلر تمامی این اجزا را بصورت داخلی دارد. در نتیجه مدارات میکرو کنترلی حجم بسیار کمتری را اشغال می کنند.

 

اجزای یک سیستم کامپیوتری:

 

          1- CPU :

                   واحد پردازش مرکزی است که در آن اهداف محاسباتی و کنترلی انجام میشود و نقش مغز تصمیم گیرنده ی سیستم کامپیوتری را به عهده دارد. بخش های CPU و ALU است که محاسبات ریاضی و منطقی را انجام میدهد.

 

          2- حافظه:

                    برای نگهداری و ذخیره ی اطلاعات بصورت دائم و موقت از قسمت حافظه استفاده میشود که RAM برای نگهداری موقت و ROM برای نگهداری دائم اطلاعات میباشد.

 

          3- I/O :

                   برای دریافت داده از ورودی ها کمک میگیریم همچنین اطلاعات پردازش شده روی خروجی ها نمایش یا ارائه میشوند.

 

          4- پالس ساعت یا Clock Pulse :

                   وظیفه ی این بخش ایجاد هماهنگی بین بخش های مختلف و همچنین راه اندازی بخش های مختلف میباشد.

     ارتباط این اجزا در میکرو پرسسور به صورت زیر است:

ارتباط اجزای میکرو پرسسور

 

* تمام این اجزای ذکر شده در خود میکرو کنترلر موجود است.

 

فاکتور های اصلی انتخاب نوع میکرو کنترلر: 1- تعداد پورت های ورودی و خروجی لازم. 2- سرعت پردازش. 3- میزان حافظه. از سایر مشخصه ها میتوان به میزان نویز پذیری و مصرف انرژی اشاره کرد. میکرو کنترل PIC دارای سرعت تقریباً زیاد ، مقاومت در برابر نویز خوب و همچنین مصرف انرژی متوسط است.

 

          قابلیت های مختلف یک میکرو کنترلر: 1- تایمر؛ برای اندازه گیری زمان برای اهداف مختلف. 2- شمارنده. 3- وقفه ها. 4- پورت سریال. 5- مبدل دیجیتال به آنالوگ.

 

          انواع میکرو کنترل ها: معروف ترین نوع میکرو کنترلر ها AVR و PIC و جدید ترین آنها ARM است که مزیت PIC بر AVR همانطور که گفته شد مقاومت در برابر نویز است که آن را برای مصارف صنعتی مناسب میسازد. و بزرگ ترین خصوصیت ARM ها سرعت فوق العاده بالای آنها است.

 

          کامپایلر یا مترجم:

 زبانهای موجود: 1- سطح پایین که با زبان ماشین (0و1) نزدیکتر است.

                      2- میانی (مانند اسمبلی)

                      3- سطح بالا(مانند C , Basic , Pascal )که به زبان بشر شباهت دارند.

* ما در این آموزش از زبان PIC Basic Pro استفاده خواهیم کرد.

 

* زبان سطح میانی و بالا باید به زبان ماشین ترجمه شوند تا برای سخت افزار قابل فهم باشد. این وظیفه به عهده ی کامپایلر است.

 

*یک برنامه تنها درصورت صحت کامل قابل کامپایل است و گرنه کامپایلر در قالب Error های مختلف اشتباهات موجود در برنامه را به برنامه نویس هشدار میدهد. زمانی که Error ها برطرف شوند برنامه کامپایل میشود.

در اثر یک کامپایل موفق فایلی که در کامپایلر PIC Basic Pro با پسوند pbp ذخیره شده بود شامل یک فایل اضافی با پسوند Hex میشود که میتوان آن را که شامل 1 و 0 یا همان زبان ماشین است برای انتقال به IC (Program کردن) استفاده کرد.


نوشته شده توسط : فرشید احمدی

The PS/2 Mouse/Keyboard Protocol ترجمه ی غیر حرفه ای جهت فهم متن اصلی

دوشنبه 28 آذر 1390   08:38 ب.ظ


نوع مطلب : الکترونیک ،رایانه و اینترنت ،بازی و سرگرمی ،

منبع : http://www.Computer-Engineering.org
نویسنده : آدم Chapweske
آخرین بروز رسانی : 05/09/03


اطلاعات حقوقی :

همه اطلاعات را در این مقاله ارائه شده است "AS IS" و بدون هیچ گونه بیان و یا ضمانت ، از جمله ، بدون محدودیت ، به طور ضمنی بیان ضمانت merchantibility و تناسب اندام برای یک هدف خاص.

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

چکیده :

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

    
PS / 2 (AT) رابط صفحه کلید
    
رابط موس PS / 2

رابط فیزیکی :

5 - پین DIN یا 6 پین مینی - DIN : PS / 2 پورت فیزیکی یکی از دو سبک از اتصال دهنده ها می باشد. هر دو اتصال دهنده ها به طور کامل (الکتریکی) مشابه است ، تنها تفاوت عملی بین این دو است که آرایش پین. این به این معنی دو نوع اتصال دهنده به راحتی می تواند با ساده سخت سیمی آداپتورهای تغییر. این هزینه در حدود 6 دلار در هر و یا شما می توانید اطلاعات را آن گونه که مایلید تغییر دهید با تطبیق پین بر روی هر دو کانکتور. DIN استاندارد توسط سازمان استاندارد آلمان (آلمان انستیتو fuer نورم) ایجاد شد. وب سایت خود را در http://www.din.de (این سایت در آلمانی ، اما بسیاری از صفحات خود را به زبان انگلیسی نیز در دسترس هستند.)

صفحه کلید کامپیوتر استفاده از یا 6 - پین کوچک DIN یا 5 - پین کانکتور DIN. اگر صفحه کلید خود را تا 6 پین مینی - DIN و کامپیوتر خود را تا 5 - پین DIN (یا بالعکس ویزا) ، این دو می تواند به صورت سازگار با آداپتورهای بالا توضیح داده شد. صفحه کلید با 6 پین مینی - DIN اغلب به عنوان "PS / 2 صفحه کلید آن اشاره شد ، در حالی که کسانی که با 5 - پین DIN نامیده می شوند" AT "دستگاه های الکترونیکی (" XT "صفحه کلید نیز استفاده می شود 5 - پین DIN ، اما آنها کاملا قدیمی است و برای سالهای زیادی بوده است ساخته شده است.) تمام صفحه کلید مدرن ساخته شده برای کامپیوتر هستند یا PS / 2 ، AT ، و یا USB. این سند به دستگاه های USB ، که استفاده از یک رابط کاربری کاملا متفاوت صدق نمی کند.

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

کابل اتصال صفحه کلید / موس را به کامپیوتر است که معمولا در حدود شش فوت طول و از چهار تا شش 26 سیم AWG احاطه شده توسط یک لایه نازک از sheilding مایلار فویل تشکیل شده است. اگر شما نیاز به یک کابل دیگر ، شما می توانید به PS / 2 کابل extenstion را از اکثر فروشگاه های لوازم الکترونیکی مصرفی خرید. شما باید کابل فرمت های مختلف متصل با هم. اگر شما نیاز به 30 پا کابل صفحه کلید ، خرید 30 پا کابل صفحه کلید است. آیا به سادگی نمی اتصال پنج کابل 6 - پا با هم. انجام این کار می تواند در برقراری ارتباط ضعیف بین صفحه کلید / موس و میزبان منجر شود.

یک نکته ، یک نوع دیگری از اتصال شما ممکن است به بر روی صفحه کلید اجرا وجود دارد. در حالی که اکثر کابل های صفحه کلید سخت سیمی به صفحه کلید ، برخی از که کابل است به طور دائم متصل شده اند و می آیند به عنوان یک جزء جداگانه وجود دارد. این کابل دارای یک کانکتور DIN در یک پایان (پایان که به کامپیوتر متصل است) و SDL (Sheilded ارتباط داده) اتصال در پایان صفحه کلید است. SDL توسط یک شرکت به نام "AMP ایجاد شد." این کانکتور است تا حدی شبیه به رابط تلفن است که در آن سیم و چشمه ها به جای پین ، و کشته آن را در جای خود نگه می دارد. اگر شما نیاز به اطلاعات بیشتر در مورد این کانکتور ، شما ممکن است بتوانید آن را در وب سایت AMP در http://www.connect.amp.com. آیا اشتباه از اتصال SDL با اتصال USB -- آنها احتمالا هر دو نگاه در نمودار زیر من مشابه است ، اما آنها در واقع بسیار متفاوت است. به خاطر داشته باشید که کانکتور SDL دارای چشمه ها و قطعات متحرک ، در حالی که اتصال USB ندارد.

pinouts برای هر اتصال در زیر نشان داده شده :
 
نر

(پلاگین)

زن

(سوکت)
5 پین DIN (AT / XT) :
1 -- ساعت
2 -- داده ها
3 -- اجرا نکرده
4 -- زمین
5 -- VCC (+5 V)

 
نر

(پلاگین)

زن

(سوکت)
6 - پین مینی - DIN (PS / 2) :
1 -- داده ها
2 -- اجرا نکرده
مبحث 3 -- زمین
4 -- VCC (+5 V)
5 -- ساعت
6 -- اجرا نکرده

 

6 - پین SDL :
-- پیاده سازی نشده
B -- داده ها
ج -- همکف
D -- ساعت
E -- VCC (+5 V)
F -- اجرا نشده


رابط برق :

توجه : در سراسر این سند ، من کلی تری به اصطلاح "میزبان" برای اشاره به کامپیوتر استفاده کنید -- یا هر چیز دیگری صفحه کلید / موس به آن مرتبط است -- و از واژه "دستگاه" به صفحه کلید / موس مراجعه کنید.

VCC / همکف ارائه قدرت به صفحه کلید / موس. صفحه کلید و یا موس باید بیش از 275 میلی آمپر را از میزبان قرعه کشی نیست و باید دقت شود برای جلوگیری از گذرا موج. چنین موج را می توان با "گرم متصل کردن یک صفحه کلید / موس (به عنوان مثال ، اتصال / قطع دستگاه در حالی که قدرت کامپیوتر است.) قدیمی تر مادربردها یک فیوز نصب شده در سطح محافظت از پورت های صفحه کلید و ماوس ایجاد می شود. وقتی این فیوز منفجر ، مادربرد به مصرف کننده بی فایده بود ، و غیر ثبات پذیر به تکنسین به طور متوسط. اکثر جدیدتر مادربردهای با استفاده از خودکار فیوزهای تنظیم مجدد "پلی" که به یک راه طولانی برای اصلاح این مشکل است. با این حال ، این یک استاندارد نیست و هنوز هم مقدار زیادی از مادربردها مسن تر در استفاده وجود دارد. بنابراین ، من در برابر گرم با متصل کردن یک ماوس یا صفحه کلید PS / 2 را توصیه کند.

    
خلاصه : مشخصات برق
    
VCC = 4.5 V تا 5.5 V.
    
حداکثر جریان = 275 میلی آمپر است.

داده ها و خطوط ساعت باز هر دو کلکتور با مقاومت pullup به VCC. "باز جمع آوری" رابط دارای دو حالت ممکن است : پایین ، یا امپدانس بالا است. یک ترانزیستور در حالت "کم" ، نیش ترمزی میزند خط به سطح زمین است. در دولت "امپدانس بالا ، رابط کاربری به عنوان مدار باز عمل می کند و خط پایین یا بالا رانندگی. علاوه بر این ، "مقاومت" pullup بین اتوبوس و VCC وصل شده تا اتوبوس بالا کشیده شده است اگر هیچ یک از دستگاه های موجود بر روی گذرگاه به طور جدی به کشیدن آن کم است. ارزش دقیق این مقاومت خیلی مهم نیست (1 ~ 10 kOhms) ، مقاومت در بزرگتر در نتیجه مصرف برق کمتر و کوچکتر در نتیجه مقاومت در زمان افزایش سریعتر است. رابط عمومی باز کلکتور در زیر نشان داده شده است :

    
شکل 1 : رابط کلکتور باز است. داده ها و ساعت ها بر روی پین میکروکنترلر A و B خوانده بود. هر دو خط به طور معمول در +5 V برگزار می شود ، اما می توان با ادعا منطق "1" C و D. در نتیجه به زمین کشیده شده ، داده ها برابر با D ، معکوس ، و ساعت برابر C ، معکوس است.



توجه : هنگامی که به دنبال از طریق نمونه هایی در این وب سایت ، شما متوجه چند کلاهبرداری استفاده می کنم هنگام اجرای کلکتور باز رابط با میکرو کنترلرهای PIC. من با استفاده از پین های یکسان برای هر دو ورودی و خروجی ، و من را قادر مقاومت pullup داخلی PIC به جای استفاده از مقاومت های خارجی. یک خط با تعیین پین مربوط به خروجی و نوشتن یک "صفر" به آن پورت را به زمین کشیده شده است. خط با تنظیم پین را به ورودی به حالت امپدانس بالا "تنظیم شده است. با توجه به دیودهای ساخته شده است در PIC حفاظت و کافی غرق فعلی ، من فکر می کنم این است که یک پیکربندی معتبر است. اجازه دهید من می دانم اگر تجربیات خود را به اثبات رسانده اند در غیر این صورت.

ارتباطات : توضیحات عمومی

موس PS / 2 و صفحه کلید پیاده سازی پروتکل سریال دو جهته همزمان. اتوبوس "غیر فعال" زمانی که هر دو خط بالا (باز و جمع آوری). این تنها دولت است که در آن صفحه کلید / موس اجازه شروع انتقال داده است. میزبان کنترل نهایی بیش از اتوبوس و ممکن است ارتباط در هر زمان با کشیدن ساعت خط پایین را مهار کند.

دستگاه همیشه تولید سیگنال کلاک است. اگر میزبان می خواهد به ارسال داده ها ، ابتدا باید ارتباطات از دستگاه با کشیدن پایین ساعت را مهار کند. میزبان سپس داده های کم و ساعت انتشار کشد. این "درخواست برای ارسال" دولت و سیگنال های دستگاه شروع به تولید پالس ساعت است.

    
خلاصه : واحد اتوبوسرانی ایالات
    
داده ها = بالا ، ساعت = بالا : بیکار دولت است.
    
داده ها = بالا ، ساعت = پایین : ارتباطات مهار.
    
داده ها = پایین ، ساعت = بالا : میزبان درخواست به ارسال

  
همه داده ها یک بایت را در یک زمان منتقل شده و هر یک از بایت است را در یک قاب متشکل از 11-12 بیت فرستاده می شود. این بیت عبارتند از :

    
* 1 بیت شروع. این است که همیشه 0 است.
    
* 8 بیت اطلاعات ، اولین بیت کم اهمیت.
    
* 1 بیت توازن (توازن فرد).
    
* 1 بیت ایست. این است که همیشه 1 است.
    
* 1 اذعان بیت (میزبان به دستگاه های ارتباطی تنها)

بیت توازن است اگر حتی از تعداد 1 ها در بیت داده و تنظیم مجدد (0) وجود دارد اگر عدد فرد از 1 ها در بیت داده ها وجود دارد. تعداد 1 ها در بیت داده به علاوه بیت توازن همیشه به یک عدد فرد (توازن فرد است.) این است که برای تشخیص خطا استفاده می شود. صفحه کلید / موس باید این بیت و بررسی در صورت اشتباه آن را باید پاسخ دهند که اگر آن را دستور نامعتبر دریافت کرده بود.

اطلاعات فرستاده شده از دستگاه به میزبان ، در لبه پایین رونده سیگنال ساعت خوانده شده است ، اطلاعات فرستاده شده از میزبان به دستگاه بر روی لبه در حال افزایش خوانده است. 16.7 کیلوهرتز -- فرکانس ساعت باید در محدوده 10 می باشد. این ساعت به معنی بالا باید برای 30 -- 50 میکروثانیه و کم به مدت 30 -- 50 میکروثانیه.. اگر شما در حال طراحی یک صفحه کلید ، ماوس ، و یا شبیه ساز میزبان ، شما باید تغییر / نمونه خط داده ها در وسط هر یک از سلول. به عنوان مثال 15 -- 25 میکروثانیه پس از گذر clock مناسب. باز هم ، صفحه کلید / موس همیشه تولید سیگنال کلاک ، اما میزبان همواره کنترل نهایی بیش از ارتباطات است.

زمان بندی کاملا حیاتی است. هر مقدار زمانی که من در این مقاله را باید دقیقا دنبال می شود.

ارتباطی : دستگاه به میزبان

داده ها و خطوط ساعت هر دو کلکتور باز است. مقاومت بین هر خط و +5 V متصل است ، بنابراین دولت بیکار از اتوبوس بالا است. هنگامی که صفحه کلید و یا موس را می خواهد برای ارسال اطلاعات است ، که برای اولین بار چک خط ساعت تا مطمئن شوید که آن را در یک سطح منطقی بالا است. اگر این طور نیست ، میزبان ارتباطات مهار و دستگاه باید هر به فرستاده بافر داده تا میزبان ساعت آزاد است. خط ساعت باید به طور مداوم بالا برای حداقل 50 میکروثانیه قبل از این دستگاه می تواند شروع به انتقال داده ها را.

همانطور که در بخش قبلی ذکر شد ، صفحه کلید و ماوس با استفاده از پروتکل سریال با فریم 11 - بیت. این بیت عبارتند از :

    
* 1 بیت شروع. این است که همیشه 0 است.
    
* 8 بیت اطلاعات ، اولین بیت کم اهمیت.
    
* 1 بیت توازن (توازن فرد).
    
* 1 بیت ایست. این است که همیشه 1 است.

صفحه کلید / موس می نویسد کمی در خط داده وقتی ساعت بالا است ، و آن میزبان وقتی ساعت کم است خواندن. شکل های 2 و 3 نشان دادن.

شکل 2 : ارتباطی دستگاه به میزبان است. خط تغییر وضعیت داده ها زمانی که کلاک بالا و آن داده ها معتبر است وقتی ساعت کم است.

شکل 3 : کد اسکن برای کلید "Q" (15h) که از یک صفحه کلید به کامپیوتر فرستاده می شود. کانال سیگنال کلاک است ؛ کانال B است که سیگنال داده است.

    
---

فرکانس ساعت 10-16.7 کیلو هرتز می باشد. زمان از افزایش لبه پالس ساعت انتقال داده ها باید حداقل 5 میکروثانیه. زمان از انتقال داده ها به لبه پایین رونده پالس ساعت باید حداقل 5 میکروثانیه و بزرگتر از 25 میکروثانیه است.

میزبان ممکن است ارتباط در هر زمان با کشیدن خط کلاک پایین برای حداقل 100 میکروثانیه مهار کند. اگر انتقال مهار است قبل از پالس ساعت 11th ، دستگاه باید سقط جنین انتقال در حال حاضر و آماده در حال حاضر "تکه" از داده ها را به دوباره فرستادن زمانی که میزبان ساعت انتشار. "تکه" از داده ها می تواند کد را ، شکستن کد ، ID دستگاه بسته جنبش ، ماوس ، و غیره به عنوان مثال ، اگر یک صفحه کلید قطع شده است در حالی که ارسال بایت دوم کد استراحت دو بایت است ، از آن خواهد نیاز به ارسال مجدد هر دو کلمه در ادامه متن از کد شکستن آن ، نه تنها که قطع شد.

اگر میزبان نیش ترمزی میزند ساعت پایین قبل از اولین گذر clock بالا به پایین ، و یا پس از لبه پایین رونده پالس ساعت گذشته ، صفحه کلید / موس نیازی نیست برای ارسال مجدد هر گونه اطلاعات. با این حال ، اگر داده های جدید ایجاد می شود که نیاز به انتقال داده شود ، آن را به بافر می شود تا زمانی که میزبان آزاد ساعت. صفحه کلید دارای یک بافر 16 بایتی برای این منظور است. اگر بیش از 16 کلمه در ادامه متن ارزش کلید رخ می دهد ، کلید بیشتر نادیده گرفته می شوند تا اتاق را در بافر وجود دارد. موش ها تنها ذخیره ترین بسته فعلی جنبش برای انتقال است.

میزبان به دستگاه ارتباطی :

بسته است فرستاده می شود کمی متفاوت در میزبان به دستگاه های ارتباطی...

اول از همه ، PS / 2 دستگاه همیشه تولید سیگنال کلاک است. اگر میزبان می خواهد به ارسال داده ها ، ابتدا باید ساعت و خطوط داده ها در یک "درخواست برای ارسال" دولت به شرح زیر قرار دهید :

    
* مهار ارتباط با کشیدن پایین ساعت حداقل 100 میکروثانیه است.
    
* درخواست "درخواست برای ارسال" را با کشیدن داده ها کم ، و پس از آن ساعت آزاد است.

این وسیله باید برای این دولت در فواصل بررسی بیش از 10 میلی ثانیه. هنگامی که دستگاه تشخیص این حالت ، تولید سیگنال های ساعت و ساعت در هشت بیت داده و یک بیت توقف آن آغاز خواهد شد. میزبان تغییر خط داده تنها زمانی که خط ساعت کم است ، و داده ها توسط دستگاه خوانده می وقتی ساعت بالا است. این مخالف چه چیزی occours در ارتباط دستگاه به میزبان است.

پس از کمی توقف دریافت ، دستگاه خواهد بایت دریافت شده توسط آوردن خط داده پایین و تولید یک پالس ساعت و زمان آخرین نبودهایم. اگر میزبان خط داده ها پس از پالس clock 11th آزاد نیست ، دستگاه ادامه خواهد داد برای تولید پالس ساعت تا زمانی که خط داده شده است (دستگاه خواهد شد و سپس تولید یک خطا.)

میزبان انتقال ممکن است سقط جنین در زمان قبل از پالس ساعت 11th (اذعان بیت) با نگه داشتن ساعت پایین برای حداقل 100 میکروثانیه.

برای این روند را کمی آسان تر به درک ، در اینجا مراحل میزبان باید به دنبال به ارسال داده ها به یک دستگاه PS / 2 :

    
1) را خط کلاک پایین برای حداقل 100 میکروثانیه است.
    
2) خط داده پایین بیاورید.
    
3) انتشار خط ساعت.
    
4) صبر کنید برای دستگاه به خط ساعت را پایین آورد.
    
5) تنظیم / تنظیم مجدد خط داده ها اولین بیت داده به ارسال
    
6) صبر کنید برای دستگاه را به ساعت بالا.
    
7) برای دستگاه به ارمغان می آورد پایین ساعت صبر کنید.
    
8) مراحل را تکرار 5-7 برای هفت تن دیگر از داده ها بیت و بیت توازن
    
9) انتشار خط داده.
    
10) صبر کنید برای دستگاه را به داده ها کم.
    
11) برای دستگاه را به پایین ساعت صبر کنید.
    
12) صبر کنید برای دستگاه به انتشار داده ها و ساعت


شکل 3 نشان می دهد که این گرافیکی و شکل 4 جدا زمان بندی را برای نشان می دهد که سیگنال های تولید شده توسط میزبان ، که توسط PS / 2 دستگاه تولید. متوجه تغییر در زمان بندی برای "بیت ACK -- (به جای زمانی که آن کم است به عنوان مورد برای 11 بیت دیگر) انتقال داده ها occours هنگامی که خط کلاک بالا

شکل 3 : میزبان به دستگاه ارتباطی است.

شکل 4 : تفسیر میزبان به دستگاه ارتباطی است.

 

با اشاره به شکل 4 ، دو کمیت زمان میزبان به نظر می رسد برای وجود دارد. () زمان طول می کشد تا دستگاه شروع به تولید پالس ساعت پس از میزبان در ابتدا طول می کشد ساعت پایین خط ، که باید بدون MS بیشتر از 15 است. (ب) زمان آن را برای طول می کشد تا بسته ارسال می شود ، که باید بزرگتر از 2ms است. اگر هر کدام از این محدودیت زمانی را برآورده نکرده است ، میزبان باید یک خطا تولید کند. "ACK" بلافاصله پس از دریافت ، میزبان ممکن است خط کلاک پایین در مهار ارتباطات در حالی که آن را پردازش داده ها به ارمغان بیاورد. اگر از دستور فرستاده شده توسط میزبان ، نیاز به پاسخ ، باید گفت که پاسخ دریافت شوند ، بعد از 20 هزارم ثانیه پس از میزبان خط ساعت آزاد است. اگر این اتفاق نمی افتد ، میزبان تولید خطا.


نوشته شده توسط : فرشید احمدی

The PS/2 Mouse/Keyboard Protocol

دوشنبه 28 آذر 1390   08:30 ب.ظ


نوع مطلب : الکترونیک ،رایانه و اینترنت ،بازی و سرگرمی ،

Source: http://www.Computer-Engineering.org
Author: Adam Chapweske
Last Updated: 05/09/03


Legal Information:

All information within this article is provided "as is" and without any express or implied warranties, including, without limitation, the implied warranties of merchantibility and fitness for a particular purpose.  

This article is protected under copyright law.  This document may be copied only if the source, author, date, and legal information is included.

Abstract:

This document descibes the interface used by the PS/2 mouse, PS/2 keyboard, and AT keyboard.  I'll cover the physical and electrical interface, as well as the protocol.  If you need higher-level information, such as commands, data packet formats, or other information specific to the keyboard or mouse, I have written separate documents for the two devices:

The physical PS/2 port is one of two styles of connectors:  The 5-pin DIN or the 6-pin mini-DIN.  Both connectors are completely (electrically) similar; the only practical difference between the two is the arrangement of pins.  This means the two types of connectors can easily be changed with simple hard-wired adaptors.  These cost about $6 each or you can make your own by matching the pins on any two connectors.  The DIN standard was created by the German Standardization Organization (Deutsches Institut fuer Norm) .  Their website is at http://www.din.de (this site is in German, but most of their pages are also available in English.)

PC keyboards use either a 6-pin mini-DIN or a 5-pin DIN connector.  If your keyboard has a 6-pin mini-DIN and your computer has a 5-pin DIN (or visa versa), the two can be made compatible with the adaptors described above.  Keyboards with the 6-pin mini-DIN are often referred to as "PS/2" keyboards, while those with the 5-pin DIN are called "AT" devices ("XT" keyboards also used the 5-pin DIN, but they are quite old and haven't been made for many years.)  All modern keyboards built for the PC are either PS/2, AT, or USB.  This document does not apply to USB devices, which use a completely different interface.

Mice come in a number of shapes and sizes (and interfaces.)  The most popular type is probably the PS/2 mouse, with USB mice gaining popularity.  Just a few years ago, serial mice were also quite popular, but the computer industry is abandoning them in support of USB and PS/2 devices.  This document applies only to PS/2 mice.  If you want to interface a serial or USB mouse, there's plenty of information available elsewhere on the web.

The cable connecting the keyboard/mouse to the computer is usually about six feet long and consists of four to six 26 AWG wires surrounded by a thin layer of mylar foil sheilding.  If you need a longer cable, you can buy PS/2 extenstion cables from most consumer electronics stores.  You should not connect multiple extension cables together.  If you need a 30-foot keyboard cable, buy a 30-foot keyboard cable.  Do not simply connect five 6-foot cables together.  Doing so could result in poor communication between the keyboard/mouse and the host.

As a side note, there is one other type of connector you may run into on keyboards. While most keyboard cables are hard-wired to the keyboard, there are some whose cable is not permanently attached and come as a separate component.  These cables have a DIN connector on one end (the end that connects to the computer) and a SDL (Sheilded Data Link) connector on the keyboard end.  SDL was created by a company called "AMP."  This connector is somewhat similar to a telephone connector in that it has wires and springs rather than pins, and a clip holds it in place.  If you need more information on this connector, you might be able to find it on AMP's website at http://www.connect.amp.com.  Don't confuse the SDL connector with the USB connector--they probably both look similar in my diagram below, but they are actually very different.  Keep in mind that the SDL connector has springs and moving parts, while the USB connector does not.

The pinouts for each connector are shown below:
 

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

 
6-pin SDL:
A - Not Implemented
B - Data
C - Ground
D - Clock
E - Vcc (+5V)
F - Not Implemented


The Electrical Interface:

Note:  Throughout this document, I will use the more general term "host" to refer to the computer--or whatever the keyboard/mouse is connected to-- and the term "device" will refer to the keyboard/mouse.

Vcc/Ground provide power to the keyboard/mouse.  The keyboard or mouse should not draw more than 275 mA from the host and care must be taken to avoid transient surges.  Such surges can be caused by "hot-plugging" a keyboard/mouse (ie, connect/disconnect the device while the computer's power is on.)  Older motherboards had a surface-mounted fuse protecting the keyboard and mouse ports.  When this fuse blew, the motherboard was useless to the consumer, and non-fixable to the average technician.  Most newer motherboards use auto-reset "Poly" fuses that go a long way to remedy this problem.  However, this is not a standard and there's still plenty of older motherboards in use.  Therefore, I recommend against hot-plugging a PS/2 mouse or keyboard.

Summary: Power Specifications
Vcc = +4.5V to +5.5V.  
Max Current = 275 mA.

The Data and Clock lines are both open-collector with pullup resistors to Vcc.  An "open-collector" interface has two possible state: low, or high impedance.  In the "low" state, a transistor pulls the line to ground level.  In the "high impedance" state, the interface acts as an open circuit and doesn't drive the line low or high. Furthermore, a "pullup" resistor is connected between the bus and Vcc so the bus is pulled high if none of the devices on the bus are actively pulling it low.  The exact value of this resistor isn't too important (1~10 kOhms); larger resistances result in less power consumption and smaller resistances result in a faster rise time.  A general open-collector interface is shown below:

Figure 1: General open-collector interface.  Data and Clock are read on the microcontroller's pins A and B, respectively.  Both lines are normally held at +5V, but can be pulled to ground by asserting logic "1" on C and D.  As a result, Data equals D, inverted, and Clock equals C, inverted.



Note: When looking through examples on this website, you'll notice I use a few tricks when implementing an open-collector interface with PIC microcontrollers.  I use the same pin for both input and output, and I enable the PIC's internal pullup resistors rather than using external resistors.  A line is pulled to ground by setting the corresponding pin to output, and writing a "zero" to that port.  The line is set to the "high impedance" state by setting the pin to input.  Taking into account the PIC's built-in protection diodes and sufficient current sinking, I think this is a valid configuration.  Let me know if your experiences have proved otherwise.

Communication: General Description

The PS/2 mouse and keyboard implement a bidirectional synchronous serial protocol.  The bus is "idle" when both lines are high (open-collector).  This is the only state where the keyboard/mouse is allowed begin transmitting data.  The host has ultimate control over the bus and may inhibit communication at any time by pulling the Clock line low.  

The device always generates the clock signal.  If the host wants to send data, it must first inhibit communication from the device by pulling Clock low.  The host then pulls Data low and releases Clock.  This is the "Request-to-Send" state and signals the device to start generating clock pulses.

Summary: Bus States
Data = high, Clock = high:  Idle state.
Data = high, Clock = low:  Communication Inhibited.
Data = low, Clock = high:  Host Request-to-Send

  All data is transmitted one byte at a time and each byte is sent in a frame consisting of 11-12 bits.  These bits are:
  • 1 start bit.  This is always 0.
  • 8 data bits, least significant bit first.
  • 1 parity bit (odd parity).
  • 1 stop bit.  This is always 1.
  • 1 acknowledge bit (host-to-device communication only)

The parity bit is set if there is an even number of 1's in the data bits and reset (0) if there is an odd number of 1's in the data bits.  The number of 1's in the data bits plus the parity bit always add up to an odd number (odd parity.)  This is used for error detection.  The keyboard/mouse must check this bit and if incorrect it should respond as if it had received an invalid command.

Data sent from the device to the host is read on the falling edge of the clock signal; data sent from the host to the device is read on the rising edge.  The clock frequency must be in the range 10 - 16.7 kHz.  This means clock must be high for 30 - 50 microseconds and low for 30 - 50 microseconds..  If you're designing a keyboard, mouse, or host emulator, you should modify/sample the Data line in the middle of each cell.  I.e.  15 - 25 microseconds after the appropriate clock transition.  Again, the keyboard/mouse always generates the clock signal, but the host always has ultimate control over communication.

Timing is absolutely crucial.  Every time quantity I give in this article must be followed exactly.

Communication: Device-to-Host

The Data and Clock lines are both open collector.  A resistor is connected between each line and +5V, so the idle state of the bus is high. When the keyboard or mouse wants to send information, it first checks the Clock line to make sure it's at a high logic level.  If it's not, the host is inhibiting communication and the device must buffer any to-be-sent data until the host releases Clock.  The Clock line must be continuously high for at least 50 microseconds before the device can begin to transmit its data. 

As I mentioned in the previous section, the keyboard and mouse use a serial protocol with 11-bit frames.  These bits are:

  • 1 start bit.  This is always 0.
  • 8 data bits, least significant bit first.
  • 1 parity bit (odd parity).
  • 1 stop bit.  This is always 1.
The keyboard/mouse writes a bit on the Data line when Clock is high, and it is read by the host when Clock is low.  Figures 2 and 3 illustrate this.

Figure 2:  Device-to-host communication.  The Data line changes state when Clock is high and that data is valid when Clock is low.

Figure 3:  Scan code for the "Q" key (15h) being sent from a keyboard to the computer.  Channel A is the Clock signal; channel B is the Data signal.

---

The clock frequency is 10-16.7 kHz.  The time from the rising edge of a clock pulse to a Data transition must be at least 5 microseconds.  The time from a data transition to the falling edge of a clock pulse must be at least 5 microseconds and no greater than 25 microseconds. 

The host may inhibit communication at any time by pulling the Clock line low for at least 100 microseconds.  If a transmission is inhibited before the 11th clock pulse, the device must abort the current transmission and prepare to retransmit the current "chunk" of data when host releases Clock.  A "chunk" of data could be a make code, break code, device ID, mouse movement packet, etc.  For example, if a keyboard is interrupted while sending the second byte of a two-byte break code, it will need to retransmit both bytes of that break code, not just the one that was interrupted.

If the host pulls clock low before the first high-to-low clock transition, or after the falling edge of the last clock pulse, the keyboard/mouse does not need to retransmit any data.  However, if new data is created that needs to be transmitted, it will have to be buffered until the host releases Clock.  Keyboards have a 16-byte buffer for this purpose.  If more than 16 bytes worth of keystrokes occur, further keystrokes will be ignored until there's room in the buffer.  Mice only store the most current movement packet for transmission.

Host-to-Device Communication:

The packet is sent a little differently in host-to-device communication...

First of all, the PS/2 device always generates the clock signal.  If the host wants to send data, it must first put the Clock and Data lines in a "Request-to-send" state as follows:

  • Inhibit communication by pulling Clock low for at least 100 microseconds.
  • Apply "Request-to-send" by pulling Data low, then release Clock.
The device should check for this state at intervals not to exceed 10 milliseconds.  When the device detects this state, it will begin generating Clock signals and clock in eight data bits and one stop bit.  The host changes the Data line only when the Clock line is low, and data is read by the device when Clock is high.  This is opposite of what occours in device-to-host communication.

After the stop bit is received, the device will acknowledge the received byte by bringing the Data line low and generating one last clock pulse.  If the host does not release the Data line after the 11th clock pulse, the device will continue to generate clock pulses until the the Data line is released (the device will then generate an error.)

The host may abort transmission at time before the 11th clock pulse (acknowledge bit) by holding Clock low for at least 100 microseconds.

To make this process a little easier to understand, here's the steps the host must follow to send data to a PS/2 device:

1)   Bring the Clock line low for at least 100 microseconds.
2)   Bring the Data line low.
3)   Release the Clock line.
4)   Wait for the device to bring the Clock line low.
5)   Set/reset the Data line to send the first data bit
6)   Wait for the device to bring Clock high.
7)   Wait for the device to bring Clock low.
8)   Repeat steps 5-7 for the other seven data bits and the parity bit
9)   Release the Data line.
10) Wait for the device to bring Data low.
11) Wait for the device to bring Clock  low.
12) Wait for the device to release Data and Clock


Figure 3 shows this graphically and Figure 4 separates the timing to show which signals are generated by the host, and which are generated by the PS/2 device.  Notice the change in timing for the "ack" bit--the data transition occours when the Clock line is high (rather than when it is low as is the case for the other 11 bits.)

Figure 3:  Host-to-Device Communication.

Figure 4:  Detailed host-to-device communication.

 

Referring to Figure 4, there's two time quantities the host looks for.  (a) is the time it takes the device to begin generating clock pulses after the host initially takes the Clock line low, which must be no greater than 15 ms. (b) is the time it takes for the  packet to be sent, which must be no greater than 2ms.  If either of these time limits is not met, the host should generate an error.  Immediately after the "ack" is received, the host may bring the Clock line low to inhibit communication while it processes data.  If the command sent by the host requires a response, that response must be received no later than 20 ms after the host releases the Clock line.  If this does not happen, the host generates an error.



نوشته شده توسط : فرشید احمدی

فلش پلیر

جمعه 27 آبان 1390   11:36 ق.ظ


نوع مطلب : رایانه و اینترنت ،

The Web's favorite video and animation player. ... these capabilities in Adobe Flash Player with only slightly ... Download



Adobe Flash Player IE 11.1.102.55
Description

Play files created with Flash and Director. ... content Adobe Flash Player (originally ... to use Adobe Flash Player are: -simple ... Download


Adobe Flash Lite 2.1
Description

View Flash content on your Pocket PC. ...installing Adobe Flash Player instead ...

Download




نوشته شده توسط : فرشید احمدی

به حرفم گوش کن یا رب

پنجشنبه 26 آبان 1390   10:15 ب.ظ


نوع مطلب : شعر ،

بگو یا رب بگو یا رب چه بد گفتم
چه بد کردم
که نزدت خویشتن را دیو و دد کردم
مرا یا رب نمیخواهی گناه هستو
اگر نفرین به این دنیای بد کردم

به حرفم گوش کن یا رب
به دردم گوش کن یا رب
اگر بیهوده میگویم مرا
خاموش کن یارب
اگر بیهوده میگویم مرا
خاموش کن یارب

بگو یا رب چه بد گفتم چه بد کردم
که نزدت خویشتن را دیو و دد کردم
به جز عشقی که دردش را
به من دادی به من یا رب
چه بخشیدی که رد کردم
فقط در عاشقی یا رب
مدد گفتم شدم عاشق
تمنای مدد کردم
به حرفم گوش کن یا رب
به دردم گوش کن یا رب
اگر بیهوده میگویم مرا
خاموش کن یارب

شب مستی اگر یک توبه بشکستم
سحر تکرار توبه صد به صد کردم
به سیلابم کشاندی زیر و بم دیدم
تحمل در عذاب جزر و مد کردم
برایم آتش دوزخ فرستادی
برایت لاله ها را در سبد کردم
برایم آتش دوزخ فرستادی
برایت لاله ها را در سبد کردم
به حرفم گوش کن یارب
به دردم گوش کن یارب
اگر بیهوده میگویم مرا
خاموش کن یارب

گرفتی جامه فضل مرا از من
صبورانه کله را از نمد کردم
نشانم ده اگر یک مور آزردم
اگر یکدانه گندم را لگد کردم
مرا یارب نمیخواهی گناه هستو
اگر نفرین به این دنیای بد کردم
مرا یارب نمیخواهی گناه هستو
اگر نفرین به این دنیای بد کردم
به حرفم گوش کن یا رب
به دردم گوش کن یا رب
اگر بیهوده میگویم مرا
خاموش کن یا رب
اگر بیهوده میگویم مرا
خاموش کن یا رب
مرا خاموش کن یا رب
مرا خاموش کن یا رب


نوشته شده توسط : فرشید احمدی

شانه هایت را برای گریه کردن دوست دارم

پنجشنبه 26 آبان 1390   10:14 ب.ظ


نوع مطلب : شعر ،

سر به روی شانه های مهربانت میگذارم
عقده ی دل می گشاید، گریه ی بی اختیارم

از غم نامردمی ها بغض ها در سینه دارم
شانه هایت را برای گریه کردن دوست دارم دوست دارم

شانه هایت را برای گریه کردن دوست دارم دوست دارم
بی تو بودن را برای با تو بودن دوست دارم دوست دارم
خالی از خودخواهی من برتر از آلایش تن
من تو را بالاتر از تن برتر از من دوست دارم
شانه هایت را برای گریه کردن دوست دارم دوست دارم

عشق صدها چهره دارد عشق تو آیینه دارد
عشق را در چهره ی آیینه دیدن دوست دارم
در خموشی چشم من را قصه ها وگفت وگو هاست
من تو را درجذبه ی محراب دیدن دوست دارم
من تو را بالاتر از تن برتر از من دوست دارم
شانه هایت را برای گریه کردن دوست دارم دوست دارم
بی تو بودن را برای با تو بودن دوست دارم دوست دارم

در هوای دیدنت یک عمر در چله نشستم
چله را در مقدم عشقت شکستن دوست دارم
بغض سر گردان ابرم قله ی آرامشم تو
شانه هایت را برای گریه کردن دوست دارم
من تو را بالاتر از تن برتر از من دوست دارم
شانه هایت را برای گریه کردن دوست دارم دوست دارم
بی تو بودن را برای با تو بودن دوست دارم دوست دارم

شانه هایت را برای گریه کردن دوست دارم دوست دارم
دوست دارم دوست دارم


نوشته شده توسط : فرشید احمدی