فایل شاپ

فروش مقاله،تحقیقات و پروژه های دانشجویی،دانلود مقالات ترجمه شده،پاورپوینت

فایل شاپ

فروش مقاله،تحقیقات و پروژه های دانشجویی،دانلود مقالات ترجمه شده،پاورپوینت

بازوی ربات قابل برنامه ریزی جهت بکارگیری در دستگاه های CNC

امروزه در دنیایی که کامپیوتر در ابعاد مختلف زندگی انسان باری را به دوش می کشد ، و ابؤاری برای سرعت ودقت کار ها محسوب می شود، همة ما می دانیم که رباتها یکی از پدیده های حیرت برانگیزخلق شده توسط انسان است و انسانها با در هم آمیختن علوم کامپیوتر ومکانیک وریاضی وشگفتی های غیر قابل انکاری پدید آوردند
دسته بندی الکترونیک و مخابرات
بازدید ها 31
فرمت فایل doc
حجم فایل 3169 کیلو بایت
تعداد صفحات فایل 150
بازوی ربات قابل برنامه ریزی جهت بکارگیری در دستگاه های CNC

فروشنده فایل

کد کاربری 8044
کاربر

فهرست

عنوان صفحه

مقدمه ........................................................................................ 1

فصل اول – درگاه موازی کامپیوتر................................................. 2

1-1 تاریخچه درگاه موازی ......................................................... 4

1-2 آشنائی با درگاه موازی ...................................................... 9

1-3 پینها و ثباتهای پورت پارالل ............................................. 14

1-4 شرح پینهای درگاه موازی ................................................. 17

1-5 استاندارد Centronics .................................................... 18

1-6 آدرسهای پورت موازی ..................................................... 20

1-7 ثبات های نرم افزار در پورت پارالل استاندارد .................... 23

1-8 پورتهای دو طرفه (Bi-Directional) .............................. 25

1-9 استفاده از پورت پارالل در ورود 8 بیت ............................. 29

1-10 مود چهار بیتی (Nibble Mode) ..................................... 31

1-11 بکارگیری IRQ پورت پارالل ............................................. 32

1-12 مودهای پارالل پورت در BIOS ........................................ 33

فصل دوم موتورهای پله ای و مدارات کنترل آنها ....................... 36

2-1 آشنایی با موتور پله ای .................................................. 37

2-2 ساختمان داخلی موتور پله ای ........................................ 40

2-3 طبقه بندی موتورهای پله ای ......................................... 42

الف- موتورهای پله ای نوع آهنربای دائمی ......................... 42

ب- موتورهای پله ای نوع رلوکتانس متغییر .................... 44

ج- موتورهای هیبرید ..................................................... 47

2-4 انواع موتورهای پله ای و چگونگی عملکرد آنها............. 47

- موتورهای با مقاومت مغناطیسی متغییر ................... 48

- موتورهای تک قطبی ..................................................... 51

- موتورهای دو قطبی ..................................................... 52

- موتورهای چند فاز ........................................................ 54

2-5 ترتیب فازهای موتور پله ای ......................................... 54

2-6 پارامترها و اصطلاحات موتور پله ای .............................. 59

2-7 مدارات کنترل موتور پله ای ........................................ 68

- موتورهای رلوکتانس متغییر ........................................ 68

- موتورهای مغناطیس دائم تک قطبی و هیبرید ............. 71

- راه اندازهای تک قطبی و رلوکتانس متغییر کاربردی..... 73

- موتورهای دوقطبی و H-bridge ................................. 76

- مدارات راه انداز دوقطبی کاربردی ............................... 79

2-8 نرم افزار کنترل موتور پله ای ..................................... 84

2-9 آشنائی با چند موتور پله ای قابل دسترس در بازار ...... 88

2-9-1 شناسایی بعضی از موتورهای پله ای

از روی تعداد و رنگ سیم ............................................ 93

2-10 بررسی بعضی از مدارات کنترل و درایور موتورهای پله ای... 95

فصل سوم – سخت افزار و نرم افزار پروژه .............................. 101

3 -1 معرفی میکرو کنترلر AVR .......................................... 105

3-2 خصوصیات ATMEGA32 ........................................... 106

3-3 معرفی مختصر کامپایلر BASCOM ........................... 107

3-4 استفاده از ATMEGA32 به عنوان درایور یک

STEPPER MOTOR ..................................................... 108

3-5استفاده از میکرو کنترلر ATMEGA32 به عنوان

درایور چهار محور ربات .......................................................... 110

3-6 استفاده از کامپایلر C++ در برنامه نویسی پورت پارالل .......112

3-7 برنامة کنترل ربات نوشته شده تحت کامپایلر C++ ...........115

ضمیمة الف ......................................................................... 121

ضمیمة ب ........................................................................... 126

ضمیمة ج ............................................................................ 133

مقدمه

امروزه در دنیایی که کامپیوتر در ابعاد مختلف زندگی انسان باری را به دوش می کشد ، و ابؤاری برای سرعت ودقت کار ها محسوب می شود، همة ما می دانیم که رباتها یکی از پدیده های حیرت برانگیزخلق شده توسط انسان است و انسانها با در هم آمیختن علوم کامپیوتر ومکانیک وریاضی و...شگفتی های غیر قابل انکاری پدید آوردند .

هم اکنون در سال 2001 میلادی استفاده از رباتها در کشور های صنعتی امری مرسوم شده و بکار گیری آنها در خطوط صنعتی، اکتشافات فضایی، انجام کارهای پر خطر برای انسان، خانه ىاری وسرگرمی بوضوح دیده می شود .بطور مثال در کشور ژاپن بیش از سه ونیم میلیون ودر کشور ایالات متحده آمریکا بیش ازیک میلیون و هشتصد هزارربات در حال کار وجود دارد .این در حالی است که این معقولة مطالعاتی در کشور های توسعه نیافته یا در حال توسعه هنوز مورد توجه واقع نیست و ِا بطور شایسته به آن پرداخته نشده و عقب ماندگی زیادی در این مورد وموارد مشابه حس می گردد.بطوریکه منابع اطلاعاتی این صنعت در کشور ما بسیار محدود است، و معمولاًَ دنانده شرکت یا سازمانی در این مورد گامی هم برداشته باشد، از انتشار ودر اختیار گذاشتن آن برای استفادة دیگران به شدت خودداری می ورزد بابیم آنکه منافع مالی سازمان مورد تهدید واقع شود .

پایان نامه ای که هم اکنون پیش روی شماست حاصل تلاش اینجانب برای بررسی مقدمات علم رباتیک می باشد .هدف این پژوهش مطالعة موتورهای پله ایtepping Motor) ( ودرگاه موازی کامپیوتر( Parallel Port ) ومیکروکنترلرها(AVR) می باشد .

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

فصل اول

درگاه موازی کامپیوتر

1-1 ) تاریخچه درگاه موازی

وقتی IBM در سال 1981 ، PC را معرفی کرد، پورت پارالل بعنوان جایگزینی برای پورت سریال، به جهت سرویس دهی و راه اندازی پرینترهای Dot Matrix با بازده بالا در نظر گرفته شد.

پورت موازی این خاصیت را داشت که در هر لحظه هشت بیت داده را منتقل کند. این درحالیست که پورت سریال فقط می توانست یک بیت داده را در هر لحظه منتقل کند. همراه با رشد تکنولوژی، نیاز به اتصالات خروجی قویتر و بزرگتر افزایش یافت، لذا پورت موازی با این هدف که شما می توانستید وسایل جنبی با بازده بالاتری را به آن متصل کنید، بوجود آمد. این وسایل جنبی هم اکنون شامل محدودة وسیعی از پرینترهای اشتراکی، دیسک درایوهای پرتابل و Tape Backup گرفته تا آداپتورهای شبکه های محلی ( LAN ) و CD-ROM Player ها می شود .

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

در سال 1991 دیداری توسط سازندگان پرینتر برای شروع بحث و مناظره روی گسترش یک استاندارد جدید، برای کنترل هوشمند پرینترها از طریق شبکه برگزار شد. این سازندگان که شامل Lexmark, IBM, Texas instuments و بقیه می شد، پیمان بین المللی پرینت شبکه ای ( Network Printing Alliance ) را بوجود آوردند.

NPA مجموعه ای از پارامترهایی را توصیف می کند که وقتی بر روی پرینتر و میزبان پیاده سازی شود، کنترل کامل کاربردها (Applications) وکارها ( Jobs) را ممکن میسازد.

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

NPA یک پیشنهاد به IEEE ارائه کرد که برای رسیدن به یک ارتباط دو طرفه سریع بر روی PC کمیته ای تشکیل دهد. لازم بود که این کمیته در نظر داشته باشد که استاندارد جدید باید کاملا سازگار با پورت پارالل اصلی (Original ) و وسایل جنبی آن باشد. و در عین حال نرخ داده را تا بیشتر از یک مگابایت در ثانیه افزایش دهد. این کمیته استاندارد IEEE 1284 را بوجود آورد.

استانداردIEEE 1284 یا Standard Signaling Method for Bi-directional” “Parallel Pripheral Interface for Personal Computers برای آخرین ویرایش در مارس 1994 تصویب شد.

1-2) آشنایی با درگاه موازی

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

درکل IBM سه نوع آداپتور که شامل پورت موازی پرینتر هستند، برای میکرو کامپیوترهایPC/ XT/ AT تدارک دیده است. بسته به آنکه کدامیک نصب شده باشند، هر پورت قابل دستیابی دارای یکی از سه آدرس 3BC, 378, 278 (همگی بصورت HEX) خواهد بود. اکثر PC ها با یک پورت موازی و آنهم با آدرس 378 HEX تولید شده اند.

پورت موازی PCبطور اخص برای اتصال پرینترها بوسیلة یک واسط (Interface ) طراحی شده اند. اما می توان از آن بعنوان یک پورت ورودی/ خروجی عمومی برای هر وسیله یا هر کاربرد دیگری که با قابلیتهای ورودی و خروجی آن سازگار باشد، استفاده کرد.این پورت دارای 12 بافر TTL است که قابل نوشتن و خواندن تحت برنامة کنترلی و با استفاده از دستورالعملهای ورود و خروج هستند.

آداپتور کامپیوتر همچنین دارای پنج ورودی مجزا است که ممکن است توسط دستورالعملهای ورودی پروسسور خوانده شوند. در مجموع یکی از ورودی ها می تواند برای تولید وقفة پروسسور استفاده شود. این وقفه میتواند، تحت برنامة کنترل فعال یا غیر فعال شود. همچنین توسط یک خروجی می توان وسیلة متصل شده به پورت را همزمان با وقفة روشن شدن ( Reset from the Power-on Circuite) راه اندازی کرد.

سیگنالهای خروجی توسط یک متصل کنندة 25 پین از نوع D ، ( D-Type ) که در پشت آداپتور قرار دارد در دسترس هستند. وقتی که این پورت برای استفاده از پرینتر در نظر گرفته می شود، اطلاعات و دستورات بصورت هشت بیتی منتقل می شوند، و پایة STROBE نیز فعال است. در این حالت ممکن است برنامه پینهای ورودی را جهت اطلاع از وضعیت پرینتر بخواند، و سپس کاراکتر بعدی را بفرستد که این عمل با استفاده از خط “Not Busy” صورت می گیرد.

همچنین ممکن است اطلاعات بر روی مدار واسط نوشته ویا از روی آن خوانده شود.این کار اجازه می دهد که وسیلة متصل شده و پورت موازی از هم ایزوله یا مجزا گردند، و آسیبی به آنها وارد نشود.

برای ایزولاسیون پورت و حفاظت از آن راه های مختلفی وجود دارد، که در شکل های بعدی نمونه هایی از آنها را ملاحظه خواهید کرد. در شکل 1-2 صفحة بعد مدار ایزوله کنندة پورت موازی را که بوسیله IC 74LS573 صورت گرفته می بینید.

همانطور که گفته شد، پارالل پورت مهمترین پورت مورد استفاده برای پروژه های دارای مدار واسط است. این پورت امکان استفاده از 9 بیت ورودی یا 12 بیت خروجی را در هر زمان مهیا می سازد. بنا بر این در کوچکتر کردن مدارهای خارجی در بسیاری از پروژه ها به ما کمک میکند. این پورت از 4 خط کنترل، 5 خط وضعیت و 8 خط داده تشکیل شده است.

پورتهای پارالل جدید تحت استاندارد IEEE 1284 ، ویرایش نخست سال 1994 هستند. این استاندارد 5 مود عملیاتی را که به شرح زیر هستند، تعریف می کند:

1. Compatibility Mode.
2. Nibble Mode. (Protocol not Described in this Document)
3. Byte Mode. (Protocol not Described in this Document)
4. EPP Mode (Enhanced Parallel Port).
5. ECP Mode (Extended Capabilities Mode).

هدف این بود که، درایورها و وسایل جانبی، طوری طراحی شوند که با همدیگر سازگار باشند و همچنین با پورت پارالل استاندارد (SPP ) نیز سازگاری داشته باشند. مود های Compatibility,Nibble و Byte فقط از سخت افزارهای استاندارد موجود بر پورت پارالل استاندارد استفاده می کنند، در حالیکه مودهای EPP و ECP نیاز به سخت افزار مضاعفی که بتواند با سرعت بیشتری عمل کند نیازمندند، درحالیکه همچنان با پورت پارالل استاندارد نیز سازگاری دارند.Compatibility Mode یا “Centronics Mode” فقط می تواند داده را بصورت یکطرفه با سرعتی معادل 50 Kbyte/s ( حداکثر 150 kb/s ) منتقل کند.

در هر حال برای دریافت داده شما مجبورید از یکی از مود های ”نیبل” یا ”بایت” استفاده کنید. Nibble Mode می تواند یک نیبل ( 4 بیت ) را از وسیلة جانبی به کامپیوتر منتقل کند.Byte Mode از خصوصیت دوطرفه (که روی بعضی از کارتها وجود دارد) برای ورود یک بایت (8 بیت) استفاده می کند.

پورتهای پارالل توسعه یافته و بهبود یافته ( Enhanced and Extended )، سخت افزار مضاعفی را برای ایجاد مدیریت hand shaking استفاده می کنند. برای فرستادن یک بایت به یک پرینتر یا هر وسیلة دیگر، با استفاده از Compatibility Mode نرم افزار باید مراحل زیر را انجام دهد.

1- نوشتن یک بایت بر روی پورت داده.

2- بررسی اینکه آیا پرینتر در وضعیت مشغول است یا نه. اگر پرینتر مشغول باشد هیچ داده ای را نمی پذیرد و داده نوشته شده از دست می رود.

3- قرار دادن پایه Strobe (پین 1) در حالت Low . این به پرینتر می فهماند که دادة معتبر روی خطوط داده (پینهای 2 تا 9) قرار دارد.

4- برگرداندن Strobe به حالت high پس از حدود 5 میکروثانیه از زمانیکه Strobe به حالت Low رفته بود. (برگشت به قدم سوم).

این عملیات سرعت پورت را محدود می کند. پورتهای ECP & EPP تقریبا به همین شکل عمل می کنند، در حالیکه از hand shaking استفاده می کنند، که این موجب افزایش سرعت می شود. این پورتها می توانند حدود 1 تا 2 مگابایت بر ثانیه منتقل کنند. همچنین پورت ECP توانایی استفاده از کانالهای DMA (دسترسی مستقیم به حافظه) را دارد، لذا داده می تواند بصورت گردشی شیفت پیدا کند در حالیکه از دستورالعمل I/O استفاده نمی شود.

1-3) پینها وثبات های پورت پارالل

پورت پارالل دارای 25 پایه می باشد که بترتیب شماره در دیاگرام زیر آمده اند.

Parallel Port Pinout Diagram

Pin

Signal

1

-Strobe

2

Data 0

3

Data 1

4

Data 2

5

Data 3

6

Data 4

7

Data 5

8

Data 6

9

Data 7

10

-Acknowledge

11

Busy

12

Paper Empty

13

+Select

14

-Auto Feed

15

-Error

16

-Init

17

-Slctin

18

Ground

19

Ground

20

Ground

21

Ground

22

Ground

23

Ground

24

Ground

25

Ground

که اسامی پین ها را در محل واقعی آنها بیان می کند.

IBM-PC Parallel Printer Port Registers & Pinouts

Registers (- unavailable)

Pinouts

Register  DB-25     I/O
Signal Name    Bit      Pin   Direction
===========  ========  =====  =========
-Strobe        ¬C0       1      Output
+Data Bit 0     D0       2      Output
+Data Bit 1     D1       3      Output
+Data Bit 2     D2       4      Output
+Data Bit 3     D3       5      Output
+Data Bit 4     D4       6      Output
+Data Bit 5     D5       7      Output
+Data Bit 6     D6       8      Output
+Data Bit 7     D7       9      Output
-Acknowledge    S6      10       Input
+Busy          ¬S7      11       Input
+Paper End      S5      12       Input
+Select In      S4      13       Input
-Auto Feed     ¬C1      14      Output
-Error          S3      15       Input
-Initialize     C2      16      Output
-Select        ¬C3      17      Output
Ground          -     18-25       -

(Note again that the S7, C0, C1 & C3 signals are inverted)

IBM-PC Parallel Printer Port Female DB-25 Socket external Pin layout

______________________________________________________
/                                                      \
\  13  12  11  10   9   8   7   6   5   4   3   2   1  /
\                                                    /
\  25  24  23  22  21  20  19  18  17  16  15  14  /
\________________________________________________/

So it's also the Pin layout on the solder side of the Male DB-25 Cable Connector that plugs into it

در جدول بعد پینهای خروجی (Pinouts) کانکتورهایD-Type 25 pin وCentronics 36 pin را مشاهده می کنید. همانطور که می دانید، کانکتورD-Type 25 pin متداولترین کانکتور پورت پارالل کامپیوتر است، در حالیکه کانکتور Centronics معمولا روی پرینترها دیده می شود. استاندارد IEEE 1284 در مجموع 3 نوع مختلف از کانکتور را برای پورت پارالل بوجود آورد. اولین آن 1284 Type A است، که همان D-Type 25 pin می باشد، که در پشت کامپیوترها دیده می شود. دومین نوع آن 1284 Type B یا 36 pin Centronics Connector می باشد، که در اغلب پرینترها موجود است. نوع سوم آن IEEE 1284 Type C است که یک 36 Conductor Connector شبیه به Centronics است، در حالیکه کمی کوچکتر می باشد. این کانکتور دارای ویژگیهای نصب آسان، لچLatch) ( بهتر و خصوصیات الکتریکی مناسبتر می باشد. همچنین دارای 2 پین اضافی برای سیگنالهایی است که می توانند اتصال وسیلة جانبی را، چک کنند. 1284 Type C برای طراحی های جدید در نظر گرفته شده است، لذا می توان انتظار داشت، که در آینده کانکتورهای جدیدتر دیگری هم عرضه شوند.

به جدول صفحة بعد که خصوصیات سخت افزاری پورت و کانکتورها را مورد بررسی قرار داده است، توجه کنید. در این جدول از حرف “n” در جلوی نام بعضی از سیگنالها استفاده شده، که برای توجه دادن به اینکه آن سیگنال Active Low می باشد، بکار رفته است. بطور مثال nError ، اگر در پرینتر خطایی رخ دهد، این خط Low خواهد شد. این خط بصورت نرمال high می باشد، که نمایانگر عملکرد صحیح پرینتر است. “hardware inverted” نیز به این معنی است که سیگنال توسط سخت افزار کارت پارالل معکوس شده است. یک نمونة آن سیگنال Busy است. اگر +5v (منطق1) به این پین نسبت داده شود، و ثبات وضعیت خوانده شود، مقدار 0 در بیت 7 از ثبات داده، مشاهده خواهد شد.

همانطور که گفته شد، خروجی پارالل پورت بصورت نرمال در سطح منطقی TTL است. غالب پورتهای پارالل می توانند حدود 12 mA بکشند یا بدهند(Sink and Source) . به هر حال بعضی از آنها در Data Sheet خود مقادیر زیر را هم دارند:

Sink 16 mA/Source 4 mA

Sink 12 mA/Source 20 mA

Sink/Source 4 mA

Sink/Source 12 mA

Pin No (D-Type 25)

Pin No (Centronics)

SPP Signal

Direction In/out

Register

Hardware Inverted

1

1

nStrobe

In/Out

Control

Yes

2

2

Data 0

Out

Data

3

3

Data 1

Out

Data

4

4

Data 2

Out

Data

5

5

Data 3

Out

Data

6

6

Data 4

Out

Data

7

7

Data 5

Out

Data

8

8

Data 6

Out

Data

9

9

Data 7

Out

Data

10

10

nAck

In

Status

11

11

Busy

In

Status

Yes

12

12

Paper-Out / Paper-End

In

Status

13

13

Select

In

Status

14

14

nAuto-Linefeed

In/Out

Control

Yes

15

32

nError / nFault

In

Status

16

31

nInitialize

In/Out

Control

17

36

nSelect-Printer / nSelect-In

In/Out

Control

Yes

18 - 25

19-30

Ground

Gnd

Assignments of the D-Type 25 pin Parallel Port Connector.

جدول 1-1

 
 

1-4 ) شرح پینهای درگاه موازی

در این بخش به شرح وظیفة تک تک پینهای پورت پارالل پرداخته شده است.

1.STROBE signal

سیگنال /STROBE با پالس زیر ( low pulse ) نشانگر دادة معتبر روی D1..D8 است، که شما می توانید از این سیگنال برای فرستادن داده به یک Latch یا Register و یا برای تولید یک وقفه، روی بعضی سخت افزارهای خارجی استفاده کنید.

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

2-9. D1..D8

اینها پایه های خروجی داده هستند که از نوع TTL میباشند. در بعضی از ماشینها (بطور مثال Indy) این پایه ها دو طرفه هستند، وقتی که قرار است اطلاعات خوانده شود، این پایه ها امپدانس بالا ( High Impedance ) میشوند. ( به قسمت PR/SC توجه کنید).

بعضی از ماشینها این پینها را با هم Latch(چفت و بست) می کنند و بعضی دیگر نه. مطمئن ترین روش اینکار این است که خودتان آنها را Latch کنید، اینکار موجب می شود که سخت افزار شما روی هر ماشینی کار کند. ( برای اطلاعات بیشتر می توانید به برنامه Portdemo.c در بخش ضمیمه الف مراجعه کنید.)

/ACKNOWLEDGE

وقتی یک وسیله خارجی اطلاعاتی از منبع خود دریافت کند ( مثلا بعد از پالس /STROBE ) باید یک پالس /ACKNOWLEDGE برای مشخص کردن اینکه انتقال داده با موفقیت انجام شده بفرستد. برای یک خروجی ساده شما می توانید پایه های /STROBE و /ACKNOWLEDGE را بهم ببندید ( متصل کنید ) که در اینصورت خود واسط ( Interface ) به خودش ACKNOWLEDGE میدهد. این به این معناست که شما می توانید بر روی پورت، با سریعترین سرعت ممکن بنویسید.

BUSY

وسیلة خروجی می تواند پایة BUSY را بصورت سیگنال بالا ( High Signal ) برای اینکه مشخص کند در حالت اشغال است قرار دهد و بفهماند که قادر به ارتباط (Communicate) نیست. معمولا پرینترها از این پایه برای اعلام اینکه وظیفة وقتگیری در حال اجرا است استفاده می کنند. (از جمله حرکت هد پرینتر ). اگر نمی خواهید از این پایه استفاده کنید می توانید آنرا به یکی از پایه های زمین ( Ground ) متصل کنید.

EOP

پرینتر از این پین در حالت High برای اعلام تمام شدن کاغذ استفاده می کند. ولی شما می توانید از این ورودی برای اهداف دیگری استفاده کنید.

ON LINE

پرینتر از این پایه در حالت High برای اعلام اینکه روی خط ( انتخاب شده Selected) است، استفاده می کند.

PR/SC

این سیگنال برای اعلام اینکه پورت قصد خواندن و یا نوشتن دارد استفاده می شود. این پین در حالت معمولی بصورت High ( Printer Mode ) می باشد. اما در زمانیکه از پورت بصورت دو طرفه ( Bidirectional ) استفاده می شود، در صورتیکه دستوری برای خواندن داده شود، این پین به حالت Low می رود ( Scanner Mode ).

FAULT

پرینتر از این پین در حالت Low برای اعلام اینکه خطایی اتفاق افتاده استفاده می کند. مثل EOP ،توجه داشته باشید که این پین مقدار عکس را بر می گرداند. یعنی اگر این پین در حالت High باشد، بیت PLPFAULT مربوطه مقدار صفر را بر میگرداند و بر عکس.

RESET

میزبان ( ماشین ) با قرار دادن این پایه در حالت Low وسیلة خارجی را دوباره تنظیم (RESET) می کند. شما می توانید در هر زمان که بخواهید Reset ایجاد کنید. (اینکار توسط صدا زدن PLPIOCRESET انجام می شود).

EOI

پرینتر از این پایه در حالت High برای اعلام اینکه جوهر تمام کرده ، استفاده می کند. شما می توانید از این پایه برای اهداف دلخواه خود استفاده کنید.

1-5) استاندارد Centronics



Centronicsیک استاندارد قدیمی برای انتقال داده از یک میز بان به یک پرینتر می باشد. اکثر پرینترها از این hand shake استفاده می کنند. این hand shake بصورت نرمال با استفاده از یک پورت پارالل استاندارد، تحت یک نرم افزار کنترلی قابل پیاده سازی است. در زیر یک دیاگرام ساده از پروتکل Centronics آورده شده است.

داده در ابتدا روی پینهای 2 تا 9 پورت پارالل قرار داده می شود، سپس میزبان چک می کند، که آیا پرینتر مشغول است یا نه. بطوریکه خط Busy باید در حالت Lowباشد. برنامه، Strobe را برای حداقل 1 میکروثانیه فعال می کند، و سپس آنرا غیر فعال می کند. داده توسط پرینتر/ وسیلة جنبی در زمان لبة بالا روندة Strobe خوانده می شود. و در این زمان پرینتر از طریق خط Busy می فهماند که مشغول پردازش داده است. وقتی که پرینتر داده را پذیرفت، از طریق یک پالس منفی در حدود 5 میکروثانیه، روی خط nAck اعلان پذیرش میکند. در بعضی از مواقع میزبان برای صرفه جویی در وقت از کنترل خط nAck صرف نظر می کند. اخیرا شما در پورتهای ECP یک مود سریع Contronics می بینید، که به سخت افزار اجازه می دهد، همة hand shakingها را خودش برای شما انجام دهد.فقط برنامه نویس باید داده را روی پورت I/O بنویسد، خود سخت افزار کنترل خواهد کرد که پرینتر مشغول است یا نه، و Strobe تولید خواهد کرد. این مود معمولا nAck را چک نمی کند.

1-6) آدرسهای پورت ( Port Addresses )

پورت پارالل دارای 3 پایه آدرس متداول می باشد، که در جدول زیر آمده است. پایه آدرس 3BCh در واقع برای معرفی پورتهای پارالل، واقع بر ویدئو کارتهای قدیمی بوجود آمد. این آدرس بعدها، وقتی که پورت پارالل از روی ویدئوکارتها حذف گردید، منسوخ گشت. و امروزه از آن بعنوان انتخابی دیگر برای پورت پارالل، روی مادربوردها استفاده می شود، که از طریق BIOS قابل تنظیم و تغییر است.

LPT1 بطور نرمال به پایه آدرس 378h اطلاق می گردد، در حالیکه LPT2 به 278h نسبت داده می شود. 278h & 378h همیشه برای استفادة پورت پارالل در نظر گرفته شد. حرف “h” به این معنی است، که آدرس در مبنای 16 (hexadecimal) است.

Address

Notes:

3BCh - 3BFh

Used for Parallel Ports which were incorporated on to Video Cards - Doesn't support ECP addresses

378h - 37Fh

Usual Address For LPT 1

278h - 27Fh

Usual Address For LPT 2

Port Addressesجدول 1-2 ) آدرس پورتها

وقتی که کامپیوتر در ابتدا روشن می شود BIOS (Basic Input Output System) تعداد پورتهای موجود را مشخص می کند، و وسایل جانبی را با نامهای LPT1, LPT2, LPT3 را به آنها منتسب می کند. BIOS ابتدا، آدرس 3BCh را کنترل می کند، اگر پورت پاراللی یافت شد آنرا LPT1 فرض می کند. سپس در مکان 378h جستجو می کند، اگر کارت پاراللی در آن یافت شد، به آن برچسب وسیلة آزاد بعدی را لقب خواهد داد. یعنی اگر در مکان 3BCh کارتی یافت نشد، نام آن LPT1 خواهد بود، ولی اگر در 3BCh کارت پاراللی وجود داشت، نام مکان جدید LPT2 خواهد بود.آخرین پورت مورد جستجو 278h خواهد بود که، روتینی مشابه دو پورت قبل را طی خواهد کرد. چیزی که مسئله را کمی پیچیده می کند، این است که بعضی از سازندگان کارتهای پورت پارالل جامپرهایی(jumper) را در نظر گرفته اند که، به شما اجازه می دهد، تا پورت را روی LPT1, LPT2, LPT3 تنظیم کنید. حال کدام آدرس LPT1 است؟ در اکثر کارتها، 378h ، LPT1 و 278h، LPT2 است. اما بعضی دیگر 3BCh را بعنوان LPT1 و 278hرا بعنوان LPT2 در نظر می گیرند.

وسایل جانبی ملقب به LPT3, LPT2, LPT1 نباید موجب نگرانی کسانی گردد، که می خواهند وسیله ای را توسط مدار واسط به کامپیوتر خود متصل کنند. اغلب اوقات آدرس پایه را به LPT1 نسبت می دهند. و شما می توانید برای پیدا کردن آدرس LPT1 به Lookup Table مهیا شده توسط BIOS مراجعه کنید. وقتی BIOS آدرسی را به وسیلة متصل شدة شما نسبت میدهد، آن آدرس را در مکان خاصی از حافظه، که ما می توانیم به آن دسترسی داشته باشیم قرار می دهد. به جدول زیر توجه کنید:

Start Address

Function

0000:0408

LPT1's Base Address

0000:040A

LPT2's Base Address

0000:040C

LPT3's Base Address

0000:040E

LPT4's Base Address (Note 1)

LPT Addresses in the BIOS Data Area جدول 1-3)

جدول فوق آدرس پورت پرینترهایی را نمایش می دهد که ما می توانیم، آنها را در محیط دادة BIOS پیدا کنیم. هر آدرس شامل دو بایت است. نمونه برنامة نوشته شده به زبان C که در زیر ملاحظه می کنید، نشان می دهد که چگونه می توان مکان اختصاص داده شده به آدرس پورتهای پرینتر را مشخص نمود.

 
#include 
#include 
 
void main(void)
{
unsigned int far *ptraddr;  /* Pointer to location of Port Addresses */
unsigned int address;       /* Address of Port*/
int a;
 
ptraddr=(unsigned int far *)0x00000408;
 
for (a = 0; a < 3; a++)
{
address = *ptraddr;
if (address == 0)
 
printf("No port found for LPT%d \n",a+1);
else
printf("Address assigned to LPT%d is %Xh\n",a+1,address);
 
*ptraddr++;
}
}

1-7) ثباتهای نرم افزار در پورت پارالل استاندارد

Software Registers - Standard Parallel Port (SPP)

Offset

Name

Read/Write

Bit No.

Properties

Base + 0

Data Port

Write (Note-1)

Bit 7

Data 7

Bit 6

Data 6

Bit 5

Data 5

Bit 4

Data 4

Bit 3

Data 3

Bit 2

Data 2

Bit 1

Data 1

Bit 0

Data 0

Data Port جدول 1-4)

Note 1 : If the Port is Bi-Directional then Read and Write Operations can be performed on the Data Register.

آدرس پایه معمولا، پورت داده یا ثبات داده نامیده می شود، و عموما برای خروج داده روی خطوط دادة پورت پارالل (پینهای 2 تا 9) استفاده می شود. این ثبات بطور نرمال تنها یک پورت فقط نوشتنی است. اگر شما از پورت بخوانید، مجبورید آخرین بایت فرستاده شده را دریافت کنید، درحالیکه اگر پورت شما دوطرفه باشد، شما می توانید روی این آدرس، داده دریافت کنید.(برای اطلاعات بیشتر به بخش پورتهای دوطرفه رجوع کنید).

Offset

Name

Read/Write

Bit No.

Properties

Base + 1

Status Port

Read Only

Bit 7

Busy

Bit 6

Ack

Bit 5

Paper Out

Bit 4

Select In

Bit 3

Error

Bit 2

IRQ (Not)

Bit 1

Reserved

Bit 0

Reserved

Status Portجدول 1-5)

پورت وضعیت (base address + 1) یک پورت فقط خواندنی است. هر داده ای که روی این پورت نوشته شود، در نظر گرفته نخواهد شد. پورت وضعیت از 5 خط ورودی (پینهای 10، 11، 12، 13 و15) و یک ثبات وضعیت IRQ و دو بیت رزرو ساخته شده است. توجه داشته باشید که بیت 7 (BUSY) یک ورودی Active Low است. برای مثال اگر بیت هفت نمایش دهندة منطق صفر باشد، بدین معنی است که ولتاژ +5v روی پین 11 قرار دارد. بطور مشابه اگر بیت 2 (nIRQ) نمایانگر”1” باشد، آنگاه وقفه ای رخ نداده است.

Offset

Name

Read/Write

Bit No.

Properties

Base + 2

Control Port

Read/Write

Bit 7

Unused

Bit 6

Unused

Bit 5

Enable Bi-Directional Port

Bit 4

Enable IRQ Via Ack Line

Bit 3

Select Printer

Bit 2

Initialize Printer (Reset)

Bit 1

Auto Linefeed

Bit 0

Strobe

Control Port جدول 1-6)

پورت کنترل (base address + 2) بصورت یک پورت فقط نوشتنی در نظر گرفته شده است. وقتی که یک پرینتر به پورت پارالل متصل است، چهار کنترل مورد استفاده واقع شده است، که شاملStrobe, Auto Linefeed, Initialize و Select Printer می باشد که همگی بجز Initialize بصورت معکوس هستند.

پرینتر نه سیگنالی برای مقدار دهی اولیه (Initialize) کامپیوتر می فرستد، و نه به کامپیوتر می گوید که از auto linefeed استفاده کند. به هر حال این چهار خروجی بعنوان ورودی هم قابل استفاده هستند.وقتی کامپیوتر یک پین را در حالت (+5v) high قرار می دهد، و وسیلة جانبی شما می خواهد آنرا به low تغییر دهد، شما باید بطور موثری پورت را آزاد کنید تا از بروز conflict روی آن جلوگیری شود. به همین دلیل این خطوط، بصورت خروجی open collector هستند. این بدان معنی است که دارای دو حالت هستند. یک حالت low (0v) و یک حالت امپدانس بالا (مدار باز).

بطور معمول کارت پرینتر، مقاومتهای داخلی از نوع pull-up خواهد داشت، اما همیشه اینطور نیست. بعضی ها فقط دارای خروجی کلکتور باز هستند، در حالیکه ممکن است بقیه دارای خروجی قطب مضاعف نرمال باشند.در هر حال برای اینکه شما بتوانید وسیله ای بسازید، که روی اکثر پورتها دارای عملکرد صحیح باشد، می توانید از یک مقاومت خارجی استفاده کنید. از یک مقاومت خارجی 4.7k می توان برای کشیدن پین به high استفاده کرد. وقتی پین پورت پارالل در حالت (+5v) high باشد، وسیلة خارجی می تواند پین را به low بکشد، و پورت کنترل مقدار مخالفی را نشان دهد. از این طریق از چهار پین پورت کنترل می توان بصورت دو طرفه برای انتقال داده استفاده کرد.به هر حال پورت کنترل باید با مقدار xxxx0100 تنظیم شود، تا قادر باشد داده را بخواند، که در اینصورت همه پینها +5v هستند، و لذا شما می توانید آنرا بسمت زمین (GND) بکشید (منطق صفر کنید).

بیتهای 4و5 کنترلهای داخلی هستند. بیت 4، IRQ را ممکن می سازد(به بخش IRQ پورت پارالل مراجعه کنید) و بیت 5 اجازه استفادة دوطرفه از پورت را می دهد، یعنی شما می توانید 8 بیت را با استفاده از (DATA 0-7) وارد کنید. این مود فقط برای کارتهایی که آنرا پشتیبانی می کنند ممکن است. بیتهای 6و7 رزرو هستند، هرگونه نوشتاری بر روی این دو بیت نادیده گرفته می شود.

1-8) پورتهای دو طرفه ( Bi-directional Ports )


دیاگرام شماتیک زیر نمایی ساده از رجیستر دادة پورت پارالل را نشان میدهد. پیاده سازی کارتهای پورت پارالل اصلی بصورت منطق 74LS است. امروزه همة اینها بصورت مجتمع در یک ASIC قرار دارند، ولی تئوری عملکرد آنها هنوز یکسان است.

پورتهای غیر دوطرفه که با خروجی 74LS374 ساخته شده اند، بصورت همیشه خروجی استفاده می شوند. وقتی شما رجیستر دادة پورت پارالل را می خوانید، داده ها از طریق 74LS374 که به پینهای داده متصل هستند وارد می شوند. پورتهای دوطرفه از بیت کنترل 5 که به پایة Output Enable آی سی 374 متصل است، استفاده می کنند، لذا راه اندازهای خروجی قابلیت خاموش شدن دارند. از این طریق شما می توانید داده های موجود بر پینهای دادة پورت پارالل را بدون اینکه تضادی (conflict) ایجاد شود بخوانید.

بیت 5 کنترل عملکرد دوطرفة پورت پارالل را فعال یا غیر فعال می کند، که فقط روی پورتهای دوطرفه ممکن است.وقتی که این پین ‘1’ می شود، پینهای 2 تا 9 به حالت امپدانس بالا می روند. در این حالت شما می توانید یکبار بر روی این خطوط داده وارد کنید، و آنرا از پورت داده (آدرس پایه) بازیابی کنید. هر داده ای که روی پورت داده نوشته شود ذخیره خواهد شد، ولی روی پینهای داده قابل دسترسی نخواهد بود. برای خاموش کردن مود دوطرفه، بیت 5 پورت کنترل را ‘0’ کنید.

به هر حال همة پورتها یکسان نیستند. در برخی از پورتها نیاز است که بیت 6 پورت کنترل برای فعال کردن مود دوطرفه، وبیت 5 برای غیر فعال کردن مود دوطرفه set گردد. سازندگان مختلف، پورتهای دوطرفه خود را بصورتهای مختلفی پیاده سازی کرده اند. اگر شما قصد دارید تا از پورت خود برای ورود داده استفاده کنید، ابتدا آنرا با یک پروب منطقی یا مولتی متر کنترل کنید، تا از قرار داشتن آن در مود دوطرفه مطمئن شوید.


نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد