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

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

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

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

دسته بندی الکترونیک و مخابرات
فرمت فایل doc
حجم فایل ۳.۱۶۹ مگا بایت
تعداد صفحات ۱۵۰
برای دانلود فایل روی دکمه زیر کلیک کنید
دریافت فایل

فهرست

عنوان صفحه

مقدمه ……………………………………………………………………………. ۱

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

۱-۱ تاریخچه درگاه موازی ………………………………………………… ۴

۱-۲ آشنائی با درگاه موازی ……………………………………………… ۹

۱-۳ پینها و ثباتهای پورت پارالل ……………………………………… ۱۴

۱-۴ شرح پینهای درگاه موازی …………………………………………. ۱۷

۱-۵ استاندارد Centronics ……………………………………………. 18

۱-۶ آدرسهای پورت موازی …………………………………………….. ۲۰

۱-۷ ثبات های نرم افزار در پورت پارالل استاندارد ……………….. ۲۳

۱-۸ پورتهای دو طرفه (Bi-Directional) ………………………… 25

۱-۹ استفاده از پورت پارالل در ورود ۸ بیت ……………………….. ۲۹

۱-۱۰ مود چهار بیتی (Nibble Mode) ………………………………. 31

۱-۱۱ بکارگیری IRQ پورت پارالل ……………………………………… ۳۲

۱-۱۲ مودهای پارالل پورت در BIOS …………………………………. 33

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

۲-۱ آشنایی با موتور پله ای ………………………………………….. ۳۷

۲-۲ ساختمان داخلی موتور پله ای …………………………………. ۴۰

۲-۳ طبقه بندی موتورهای پله ای ………………………………….. ۴۲

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

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

ج- موتورهای هیبرید …………………………………………….. ۴۷

۲-۴ انواع موتورهای پله ای و چگونگی عملکرد آنها…………. ۴۷

– موتورهای با مقاومت مغناطیسی متغییر ………………. ۴۸

– موتورهای تک قطبی …………………………………………….. ۵۱

– موتورهای دو قطبی …………………………………………….. ۵۲

– موتورهای چند فاز ……………………………………………….. ۵۴

۲-۵ ترتیب فازهای موتور پله ای ………………………………….. ۵۴

۲-۶ پارامترها و اصطلاحات موتور پله ای ………………………… ۵۹

۲-۷ مدارات کنترل موتور پله ای …………………………………. ۶۸

– موتورهای رلوکتانس متغییر …………………………………. ۶۸

– موتورهای مغناطیس دائم تک قطبی و هیبرید …………. ۷۱

– راه اندازهای تک قطبی و رلوکتانس متغییر کاربردی….. ۷۳

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

– مدارات راه انداز دوقطبی کاربردی …………………………. ۷۹

۲-۸ نرم افزار کنترل موتور پله ای ………………………………. ۸۴

۲-۹ آشنائی با چند موتور پله ای قابل دسترس در بازار …… ۸۸

۲-۹-۱ شناسایی بعضی از موتورهای پله ای

از روی تعداد و رنگ سیم …………………………………….. ۹۳

۲-۱۰ بررسی بعضی از مدارات کنترل و درایور موتورهای پله ای… ۹۵

فصل سوم – سخت افزار و نرم افزار پروژه ………………………… ۱۰۱

۳ -۱ معرفی میکرو کنترلر AVR …………………………………… 105

۳-۲ خصوصیات ATMEGA32 ……………………………………. 106

۳-۳ معرفی مختصر کامپایلر BASCOM ……………………… 107

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

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

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

درایور چهار محور ربات …………………………………………………. ۱۱۰

۳-۶ استفاده از کامپایلر C++ در برنامه نویسی پورت پارالل …….۱۱۲

۳-۷ برنامه کنترل ربات نوشته شده تحت کامپایلر C++ ………..115

ضمیمه الف ………………………………………………………………. ۱۲۱

ضمیمه ب ………………………………………………………………… ۱۲۶

ضمیمه ج …………………………………………………………………. ۱۳۳

مقدمه

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

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

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

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

فصل اول

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

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

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

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

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

در سال ۱۹۹۱ دیداری توسط سازندگان پرینتر برای شروع بحث و مناظره روی گسترش یک استاندارد جدید، برای کنترل هوشمند پرینترها از طریق شبکه برگزار شد. این سازندگان که شامل 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 برای آخرین ویرایش در مارس ۱۹۹۴ تصویب شد.

۱-۲) آشنایی با درگاه موازی

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

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

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

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

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

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

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

همانطور که گفته شد، پارالل پورت مهمترین پورت مورد استفاده برای پروژه های دارای مدار واسط است. این پورت امکان استفاده از ۹ بیت ورودی یا ۱۲ بیت خروجی را در هر زمان مهیا می سازد. بنا بر این در کوچکتر کردن مدارهای خارجی در بسیاری از پروژه ها به ما کمک میکند. این پورت از ۴ خط کنترل، ۵ خط وضعیت و ۸ خط داده تشکیل شده است.

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

۱. Compatibility Mode.
۲. Nibble Mode. (Protocol not Described in this Document)
۳. Byte Mode. (Protocol not Described in this Document)
۴. EPP Mode (Enhanced Parallel Port).
۵. ECP Mode (Extended Capabilities Mode).

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

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

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

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

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

۳- قرار دادن پایه Strobe (پین ۱) در حالت Low . این به پرینتر می فهماند که داده معتبر روی خطوط داده (پینهای ۲ تا ۹) قرار دارد.

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

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

۱-۳) پینها وثبات های پورت پارالل

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

Parallel Port Pinout Diagram

Pin

Signal

۱

-Strobe

۲

Data 0

۳

Data 1

۴

Data 2

۵

Data 3

۶

Data 4

۷

Data 5

۸

Data 6

۹

Data 7

۱۰

-Acknowledge

۱۱

Busy

۱۲

Paper Empty

۱۳

+Select

۱۴

-Auto Feed

۱۵

-Error

۱۶

-Init

۱۷

-Slctin

۱۸

Ground

۱۹

Ground

۲۰

Ground

۲۱

Ground

۲۲

Ground

۲۳

Ground

۲۴

Ground

۲۵

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

______________________________________________________
/ 
 ۱۳ ۱۲ ۱۱ ۱۰ ۹ ۸ ۷ ۶ ۵ ۴ ۳ ۲ ۱ /
 /
 ۲۵ ۲۴ ۲۳ ۲۲ ۲۱ ۲۰ ۱۹ ۱۸ ۱۷ ۱۶ ۱۵ ۱۴ /
________________________________________________/

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 در مجموع ۳ نوع مختلف از کانکتور را برای پورت پارالل بوجود آورد. اولین آن ۱۲۸۴ Type A است، که همان D-Type 25 pin می باشد، که در پشت کامپیوترها دیده می شود. دومین نوع آن ۱۲۸۴ Type B یا ۳۶ pin Centronics Connector می باشد، که در اغلب پرینترها موجود است. نوع سوم آن IEEE 1284 Type C است که یک ۳۶ Conductor Connector شبیه به Centronics است، در حالیکه کمی کوچکتر می باشد. این کانکتور دارای ویژگیهای نصب آسان، لچLatch) ( بهتر و خصوصیات الکتریکی مناسبتر می باشد. همچنین دارای ۲ پین اضافی برای سیگنالهایی است که می توانند اتصال وسیله جانبی را، چک کنند. ۱۲۸۴ Type C برای طراحی های جدید در نظر گرفته شده است، لذا می توان انتظار داشت، که در آینده کانکتورهای جدیدتر دیگری هم عرضه شوند.

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

همانطور که گفته شد، خروجی پارالل پورت بصورت نرمال در سطح منطقی TTL است. غالب پورتهای پارالل می توانند حدود ۱۲ 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

۱

۱

nStrobe

In/Out

Control

Yes

۲

۲

Data 0

Out

Data

۳

۳

Data 1

Out

Data

۴

۴

Data 2

Out

Data

۵

۵

Data 3

Out

Data

۶

۶

Data 4

Out

Data

۷

۷

Data 5

Out

Data

۸

۸

Data 6

Out

Data

۹

۹

Data 7

Out

Data

۱۰

۱۰

nAck

In

Status

۱۱

۱۱

Busy

In

Status

Yes

۱۲

۱۲

Paper-Out / Paper-End

In

Status

۱۳

۱۳

Select

In

Status

۱۴

۱۴

nAuto-Linefeed

In/Out

Control

Yes

۱۵

۳۲

nError / nFault

In

Status

۱۶

۳۱

nInitialize

In/Out

Control

۱۷

۳۶

nSelect-Printer / nSelect-In

In/Out

Control

Yes

۱۸ – ۲۵

۱۹-۳۰

Ground

Gnd

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

جدول ۱-۱



۱-۴ ) شرح پینهای درگاه موازی

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

۱.STROBE signal

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

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

۲-۹. 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 برای اعلام اینکه جوهر تمام کرده ، استفاده می کند. شما می توانید از این پایه برای اهداف دلخواه خود استفاده کنید.

۱-۵) استاندارد Centronics

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

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

۱-۶) آدرسهای پورت ( Port Addresses )

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

LPT1 بطور نرمال به پایه آدرس ۳۷۸h اطلاق می گردد، در حالیکه LPT2 به ۲۷۸h نسبت داده می شود. ۲۷۸h & 378h همیشه برای استفاده پورت پارالل در نظر گرفته شد. حرف “h” به این معنی است، که آدرس در مبنای ۱۶ (hexadecimal) است.

Address

Notes:

۳BCh – 3BFh

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

۳۷۸h – 37Fh

Usual Address For LPT 1

۲۷۸h – 27Fh

Usual Address For LPT 2

Port Addressesجدول ۱-۲ ) آدرس پورتها

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

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

Start Address

Function

۰۰۰۰:۰۴۰۸

LPT1’s Base Address

۰۰۰۰:۰۴۰A

LPT2’s Base Address

۰۰۰۰:۰۴۰C

LPT3’s Base Address

۰۰۰۰:۰۴۰E

LPT4’s Base Address (Note 1)

LPT Addresses in the BIOS Data Area جدول ۱-۳)

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


#include <stdio.h>
#include <dos.h>

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 %Xhn" a+1 address);

*ptraddr++;
}
}

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

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 جدول ۱-۴)

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

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

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جدول ۱-۵)

پورت وضعیت (base address + 1) یک پورت فقط خواندنی است. هر داده ای که روی این پورت نوشته شود، در نظر گرفته نخواهد شد. پورت وضعیت از ۵ خط ورودی (پینهای ۱۰، ۱۱، ۱۲، ۱۳ و۱۵) و یک ثبات وضعیت IRQ و دو بیت رزرو ساخته شده است. توجه داشته باشید که بیت ۷ (BUSY) یک ورودی Active Low است. برای مثال اگر بیت هفت نمایش دهنده منطق صفر باشد، بدین معنی است که ولتاژ +۵v روی پین ۱۱ قرار دارد. بطور مشابه اگر بیت ۲ (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 جدول ۱-۶)

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

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

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

بیتهای ۴و۵ کنترلهای داخلی هستند. بیت ۴، IRQ را ممکن می سازد(به بخش IRQ پورت پارالل مراجعه کنید) و بیت ۵ اجازه استفاده دوطرفه از پورت را می دهد، یعنی شما می توانید ۸ بیت را با استفاده از (DATA 0-7) وارد کنید. این مود فقط برای کارتهایی که آنرا پشتیبانی می کنند ممکن است. بیتهای ۶و۷ رزرو هستند، هرگونه نوشتاری بر روی این دو بیت نادیده گرفته می شود.

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

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

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

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

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

همکاری در فروش فایل  بهترین سایت فروش پاورپوینت

0
افکار شما را دوست داریم، لطفا نظر دهید.x