پورت موازی ( LPT )
تعریف پورت :
یک پورت مجموعه ای از خطوط سیگانالی است که پردازنده توسط آنها با دیگر اجزا در حال تبادل
داده است. ما نیز از پورت ها برای ارتباط با ماوس ، کی بورد ، پرینتر و ... استفاده
می کنیم. حالت باز پورت را با 1 و حالت بسته پورت را با صفر نشان می دهیم. شکل زیر
یک پورت موازی را به همراه نام هر پین نشان می دهد : پورت موازی دارای چهار مجمموعه
پین است که به شرح زیر می باشند :
|
1. پورت های داده
2. پورت های وضعیت
3. پورت های کنترل
4. پورت های زمین
|
|
|
پورت های داده :
همانطور که از نام این پورت ها برمی آید ،از این پورت ها برای مبادله داده استفاده می کنیم.
این پورت ها با نام D0 تا D7 در شکل مشخص شده اند . پورت های وضعیت : همه خروجی های
چاپگر به PC هستند که برای اعلام وضعیت تولید می شوند و به قرار زیرند :
• S0 این پورت زمانی 1 می شود که در مد EPP یک timeout روی دهد . این پورت بر روی کانکتور
قرار ندارد.
• S1 : استفاده نشده است و بر روی کانکتور وجود ندارد.
• S2 : اکثرا استفاده نمی شود ولی گاهی این بیت PIRQ پورت را نشان می دهد . این پورت بر روی
کانکتور وجو ندارد.
• S3 : در صورتی که خطایی در پرینتر روی دهد مقدار این بیت صفر می شود. این پین را ERROR نیز
می نامند.
• S4 : زمانی که داده ورودی در دسترس باشد مقدار این بیت 1 می شود . این بیت را SELECT نیز می
نامند.
• S5 : زمانی که کاغذ در پرینتر وجو نداشته باشد ، مقدار این بیت 1 می شود . این بیت را
PaperEnd ، PapaerEmpty یا PError می نامند.
• S6 : به وسیله چاپگر به منظور اعلام دریافت داده و دریافت کاراکتر جدید ارسال می شود . این
بیت را ACK می نامند که هنگام دریافت داده از سوی پرینتر صفر می شود.
• S7 : اگر پرینتر آماده دریافت کاراکتر جدید نباشد این بیت به سطح بالا می رود . این بیت را
BUSY می نامند.
پورت های کنترلی:
این پورت معمولا به عنوان خروجی استفاده می شود اما برای ورودی نیز می توان از آن استفاده
کرد. این پورت شامل پین های C0 تا C7 است که از میان آنها پین های C4 و C5 و C6 و
C7 بر روی کانکتور وجود ندارند. آدرس این پورت نیز در مبنای شانزده 0x37A می باشد.
C0: این پین ذخیره شده است. این پین دستوری را برای خواندن D0 تا D7 ارسال می کند.
زمانی که کامپیوتر شروع به کار می کند این پین در وضعیت سطح بالا قرار دارد که آنرا
Strobe می نامند.
C1 این پین رزرو شده است و دستوری را به پرینتر ارسال می کند تا پرینتر خط
بعدی را بخواند. این پین را Auto LF می نامند.
C2: این پین برای بازنشانی پرینتر و پاک کردن بافر آن است.
C3: این پین رزرو شده است و برای باز کرده خط ورودی مقدار 1 ارسال می کند. این پین
را SelecIn می نامند.
C4: بر روی کانکتور قابل مشاهده نمی باشد.
C5: جهت پورت را تنظیم می کند و بر روی کانکتور قابل مشاهده نمی باشد.
C6: استفاده نمی شود و بر روی کانکتور نیز وجود ندارد.
C7: اکثرا استفاده نمی شود و بر روی کانکتور وجود ندارد.
پین های زمین:
این پین های با نام های G0 تا G7 بر روی شکل نشان داده شده است. |
آدرس پورت های LPT نیز به شرح زیر می باشد :
|
LPT1
|
I/O 0378-037A/037F
|
IRQ 7
|
DMA 3
|
|
LPT2
|
I/O 0278-027A/027F
|
IRQ 5
|
DMA 3
|
|
LPT3
|
I/O 03BC-03BE
|
IRQ 7
|
/
|
|
ارتباط با LPT از طریق .Net :
برای ارتباط با پورت ها در .Net نیاز به فایل inpout32.dll داریم . برای دریافت فایل
inpout32.dll اینجا را کلیک کنید . پس از دریافت فایل فوق برای استفاده
از توابع آن در برنامه باید API های آن را وارد برنامه کنیم. تکه کد زیر نحوه انجام
این کار را نشان می دهد :
|
|
[DllImport("inpout32.dll", EntryPoint="Out32")]
public static
extern void
Output(int adress, int
value);
[DllImport("inpout32.dll", EntryPoint="Inp32")]
public static
extern int
Input(int adress);
|
برنامه زیر که با زبان برنامه نویسی C# 2005 نوشته شده است ، نحوه کار با LPT را به
طور کامل نشان می دهد .
در این برنامه آموزشی سعی شده با تعدادی قطعه کم هزینه نحوه کار با پورت موازی نشان
داده شود . بدین منظور نیاز به 8 عدد LED و 8 عدد مقاومت 470 اهمی داریم که به پین
های Data بر روی پورت LPT متصل خواهیم کرد.
پس از متصل کردن قطعات به پورت موازی می توانید با اجرای برنامه مقادیر هریک از پین
های D0 تا D7 را ست یا ریست کرده و به این طریق LEDها را خاموش و روشن کنید.
|
|
|
برای دریافت برنامه اینجا را کلیک کنید. |