پورت موازي و استفاده از آن در پروژه‌ها
هدف
پورت موازي يك سيستم كامپيوتر راهي جهت كنترل پروژه‌هاي سخت‌افزاري مي باشد. در اين فصل با بررسي انواع پورت‌هاي موازي، نحوه استفاده از اين پورت را به عنوان نمونه در چندپروژه خواهيم آورد. نحوه برنامه‌ريزي پورت‌هاي موازي و استفاده از وقفه‌ها در كنترل پورت‌ها را نيز مورد بررسي قرار مي دهيم.
دراين فصل سعي خواهيم كرد با بررسي پورت موازي يا چاپگرها،نحوۀ استفاده از آن در پروژه‌ها و كنترل ابزارهاي خروجي و ورودي و ديجيتال يا آنالوگ با آن را بررسي نماييم. گر چه اين فصل چندان ارتباطي با اسلات‌هاي توسعه ندارد ولي نحوۀ استفاده از يك يا چند آدرس را در پروژه‌هاي سخت‌‌‌‌‌افزاري نشان خواهد داد كه براي طراحان كارتهاي جانبي خارج از اسلات‌ها كه جديدا نيز زياد شده است بسيار مفيد خواهد بود.

۱-۱۱ پين‌هاي اينترفيس چاپگر سنترونيكس
پورت‌ موازي به عنوان اينترفيس استاندارد چاپگرها در سيستمهاي ۸۶ ۸۰ تعريف و استفاده مي‌شود. اين مشابه استاندارد چاپگر اپسيون Fx-100 مي‌باشد. اين پورت داراي ۲۶ پين بوده كه تعداد زيادي سيگنال زمين در آن جهت جلوگيري از تداخل نويز در نظر گرفته شده است. اين ۳۶ پايه را مي‌توان در ۴ گروه به صورت زير تقسيم‌بندي نمود:
۱٫ خطوط اطلاعات كه اطلاعات را از سيستم به چاپگر منتقل مي‌نمايد.
۲٫ سيگنالهاي حالت چاپگر. اين سيگنالهاي حالت چاپگر را در هر لحظه نشان مي‌دهند.
۳٫ سيگنالهاي كنترل چاپگر. اين سيگنالها به چاپگر مي‌گويد كه چه عملي بايد انجام دهد.
۴٫ سيگنالهاي زمين. اين سيگنالها جهت برگشت زمين هر كدام از خطوط اطلاعات و يا سيگنالهاي حالت و كنترل مورد استفاده قرار مي‌گيرد.

خطوط اطلاعات و زمين آنها
خطوط ورودي D1 تا D8، يك خط موازي جهت ارسال اطلاعات از سيستم كامپيوتر به چاپگر را فراهم مي‌آورند. سيگنالهاي ۲۰ تا ۲۸ خطوط زمين D1 تا D8 مي‌ساشند.

سيگنالهاي حالت چاپگر
سيگنالهاي خروجي فوق از چاپگر به سيستم آمده تا حالت قسمتهاي مختلف چاپگر را به سيستم و برنامۀ كاربردي مورد نظر نشان دهد. اين سيگنالها عبارت‌اند از:
(پين ۱۲) PE : جهت نمايش نداشتن كاغذ توسط چاپگر
(پين ۱۱) BUSY اين سيگنال در صورت آماده نبودن چاپگر جهت دريافت اطلاعات جديد در حالت high قرار مي‌گيرد.يعني زماني كه چاپگر off-line است يا آمادگي دريافت اطلاعات جديد را ندارد به حالت high مي‌رود و به سيستم مي‌گويد كه نبايد براي چاپگر ارسال اطلاعات داشته باشد.
(پين ۳۲) ERROR : يك سيگنال خروجي كه درحالت معمولي high بوده و زماني كه يك خطا (مثلا نبودن كاغذ) رخ دهد به حالت low خواهد رفت.
(پين ۱۳) SLCT : در حالت نرمال به صورت high بوده و از چاپگر به PC مي‌رود و زماني كه چاپگر روشن مي‌شود نشان مي‌دهد كه چاپگر انتخاب شده است.
(پين ۱۰) ACKNLG : جواب دادن به دريافت اطلاعات ارسال شده از سوي كامپيوتر مي‌باشد و اعلان مي‌كند كه آمادۀ دريافت اطلاعات جديد است.

سيگنالهاي كنترل چاپگر
دو سيگنال TROBE (پين ۱) و CLNLG به عنوان مهمترين سيگنالهاي كنترلي مورد استفاده قرار مي‌گيرد. پين NIT (پين ۳۱) به عنوان يك سيگنال ورودي بوده كه در حالت نرمال high مي‌باشد. وقتي فعال مي‌شود (low مي‌شود) باعث باز نشاندن چاپگر شده و يك برنامۀ خاص اجرا خواهد شد. شكل ۲-۱۱ كليۀ سيگنالهاي پورت سنترونيكس يرا نشان مي‌دهد. براي ارسال اطلاعات از كامپيوتر به چاپگر مراحل زير انجام مي‌گيرد:
۱) سيگنال Busy كه از چاپگر به سيستم مي‌آيد توسط PC چك مي‌شود تا نشان داده شود كه چاپگر آمادۀ دريافت اطلاعات است (مشغول نيست)
۲) كامپيوتر ۸ بيت اطلاعات را بر روي باس اطلاعات كه ما بين چاپگر و سيستم برقرار است قرار مي‌دهد.

۳) كامپيوتر سيگنال TROB را فعال مي‌كند(به حالت low). اطلاعات بايد حداقل ۵/۰ ميكرو ثانيه روي باس اطلاعات باشد.
۴) خط TROB بايد به آرامي در مدت ۵/۰ ميكرو ثانيه به حالت low برگردد.
۵) فعال شدن سيگنال TROB باعث فعال شدن سيگنال Busy از سوي چاپگر خواهد شد و به كامپيوتر مي‌گويد كه بايد تا پايان يافتن اين مرحله منتظر شود.
۶) زماني كه چاپگر آمادۀ دريافت اطلاعات جديد باشد سيگنال CLNLG را به حالت فعال ، براي كامپيوتر ارسال خواهد كرد. اين سيگنال براي ۵ ميكروثانيه به حالت low خواهد رفت.
۲-۱۱ اينترفيس چاپگر PC

در سيستمهاي PC و سازگار با آن ، برنامۀ POST (تست خودش در زمان روشن شدن) به عنوان قسمتي از باياس ، براي وجود و اتصال چاپگر به پورت موازي عمليات تست را انجام مي‌دهد.
پين رفت پين برگشت سيگنال نوع ورودي/خروجي توضيحات
۱

۲
۳
۴
۵
۶
۷
۸
۹
۱۹

۲۰
۲۱
۲۲
۲۳
۲۴
۲۵
۲۶
۲۷ STROBE

D1
D2
D3
D4
D5
D6
D7
D8
ورودي

ورودي
ورودي
ورودي
ورودي
ورودي
ورودي
ورودي
ورودي

جهت خواندن اطلاعات بوده و حداقل پهناي آن بايد ۵/۰ ميكرو ثانيه باشد. در حالت نرمال به صورت high مي‌باشد.

خطوط اطلاعات جهت ارسال اطلاعات
۱۰ ۲۸ ACKNLG خروجي پالس با حدود ۵/۰ ميكروثانيه به حالت LOWكه نشان مي‌دهد كه اطلاعات دريافت شده و آمادۀ دريافت اطلاعات بعدي است.
۱۱

۱۲
۱۳

۱۴

۱۵
۱۶۱۷
۱۸٫
۳۰-۱۹
۳۱

۳۲

۳۳
۳۴
۳۵
۳۶ ۲۹
۳۰





GND



۳۶ Busy

PE
SLGT

UTOFEEDXT


۰V
CHASISEND


NIT

ERROR

GND


LCTIN
خروجي

خروجي
خروجي

ورودي





سيگنالهاي گرفتني زمين ورودي

خروجي



ورودي حالت high بودن آن نشان مي دهد كه چاپگر آماده درايفت اطلاعات نيست .
حالت high نشان مي‌دهد كه چاپگر كاغذ ندارد.
نشان مي‌دهد كه چاپگر در حالت انتخاب شده‌اي قرار داد.
با غعال بودن اين سيگنال، بعد از هر چاپ يك خط را عبور خواهد داد.

سيگنال زمين يا صفر ولت
جدا بودن دو سيگنال زمين از چاپگر

با غعال شدن اين سيگنال چاپگربا پاك كردن بافرهايش يك برنامۀ خاص را اجرا مي‌كند.
زماني كه يك خطا رخ دهد اين سيگنال از چاپگر به سيستم ارسال خواهد شد.
همانند سگنالهاي ۱۹ تا ۳۰

با مقاومت‌هاي ۷/۴ ميكرواهم با ۵ ولت پولآپ شده‌اند.
ارسال اطلاعات به چاپگر فقط زماني كه اين سيگنال low باشد امكانپذير است.

آدرس پورت‌هاي موازي (حداكثر ۴ پورت قابل تعريف مي‌باشد) در چهار آدرس به صورت جدول زير در محدودۀ فضاي اطلاعات باياس قرار دارند. در اين محدوده فضاي آدرس چك مي‌شود تا مشخص شود كه كدام پورت وجود دارد.
مدار اينترفيس چاپگر از سه پورت I/O اصلي جهت شروع پورت‌هاي I/O به صورت: يك پورت I/O جهت خطوط اطلاعات LPT ها، يك پورت I/O جهت خطوط كنترل ، استفاده مي‌كند.به عنوان مثال اگر آدرس شروع براي پورت LPT1 عدد ۳۷۸H باشد آنگاه پورت ۳۷۸H براي اطلاعات، ۳۷۹H براي خطوط حالت و ۳۷AH براي خطوط كنترل استفاده خواهد شد كه شكل ۳-۱۱ سه آدرس فوق را براي LPT1 تا LPT3 نشان مي‌دهد.
مثال : با استفاده از نرم‌افزار ديباگ مشخص كنيد كه كدام پورت چاپگر در دسترس مي‌باشد:
حل:
C:\>DEBUG.
D 40:08L8
0040:0008 7803000000000000
اين نشان مي‌دهد كه آدرس پورت LPT1 كه همان ۰۳۷۸H مي‌باشد در دسترس است و پورت ديگري تعريف نشده است.
پورت چاپگر پورت اطلاعات (r/w) پورت حالت(فقط خواندني) پورت كنترل (R/W)
LPT1
LPT2
LPT3 03BCH
037CH
0278H 03BDH
0379H
0279H 03BEH
039AH
027AH

مثال: در شكل ۳-۱۱ آدرس پورت LPTI و ۳BCH ذكر كرده‌ايم و درمثال قبل اين آدرس را ۳۷۸H آورديم، كدام مطلب درست است؟
حل: هر دو مطلب صحيح است. زيرا كارخانه اول از آدرس اصلي ۳BCH استفاده كرده است و كارخانه دوم از ۳۷۸H كه هردو دراست است، براي درستي عمل فوق مي‌توان با فرمان ديباگ آدرسهاي ۰۰۴۰٫۰۰۰۸و ۰۰۴۰:۰۰۰۹ را خوانده وباهمديگر مقايسه كنيم.
شكل ۴ به طوركامل آدرس يك پورت به همراه سيگنالهاي ورودي ياخروجي به هركدام را نشان ميدهد.
نكته:
سيگنال D5 در پورت كنترل جهت مد توسعه يافته استفاده مي‌شود. اين مد اجازه ميدهد كه خطوط DO تا D7 به صورت دو طرفه عمل نمايند ولي سيستمهاي PC قديمي از مد توسعه يافته پشتيباني نمي كنند(توضيحات بيشتر را در ادامه خواهيم آورد.)
۴-۱۱ باس اطلاعات دو طرفه در پورت‌هاي موازي
در كامپيوتر هاي اوليه و تاسالهاي ۱۹۸۷، پورت موازي كامپيوتر به صورت يك طرفه عمل مي كرد به طوري كه فقط قادر به ارسال اطلاعات از سيستم به چاپگر بوديد. براي امكان دريافت اطلاعات(مثلا كابلهاي لينك كه دو كامپيوتر را از طريق پورت موازي به همديگر متصل مي‌نمايد.) از طريق پورت موازي بايد از پورت‌هاي حالت و كنترل آن و همچنين از سيگنالهايي به غير از DO تا D7 استفاده كنيد.
اما در سيستمهاي بعد از ۱۹۸۱، امكان دو طرفه بودن پورت موازي فراهم شد كه دراين قسمت آنها را بررسي خواهيم كرد.
SPP
Spp استاندارد معمولي يا پورت موازي استاندارد (standard parallel port) در اولين سري كامپيوترهاي PC تعريف و وجود داشت. اين حالت جهت سازگاري هم‌اكنون نيز درتمام كامپيوترهاي جديد تعريف و استفاده مي شود. دراين استاندارد باس اطلاعات به صورت موازي به طوريك طرفه عمل مي‌نمايد و فقط اطلاعات را از كامپيوتر به چاپگر ارال مي كند. در اين حالت، طراحان هيچ‌گونه تلاشي جهت خواندن اطلاعات از طريق پورت موازي را نخواهند داشت زيرا باعث سوختن پورت خواهد شد. بدين خاطر شمانيز هيچ‌وقت به فكر استفاده از پورت چاپگر درحالتspp جهت خواندن اطلاعات نيافتيد. گرچه جهت خسارت كمتر ويا احتمالا عدم ايجاد خسارت، خطوط پورت موازي با مقاومت پول‌آپ شده‌ اند.

۲/PS
اولين تغيير در پورت موازي چاپگرها در سال ۱۹۸۷ با آمدن كامپيوترهاي PS/2 به وجود آمد.با آمدن اين پورت موازي، سرعت انتقال به مقدار چشمگيري افزايش پيدا كرد. همچنين مدار داخلي باس اطلاعات به نحوي تغيير كرد كه خطوط انتقال بتوانند به طور يكطرفه كار كنند. در زمان روشن‌روشن كامپيوتر، با باس به طور اتومات اين پورت را درحالتspp تعريف و ست مي كند. همزمان بيت كانتر۵(cs)به كاربر اجازه تغيير جهت پورت را مي دهد . در زمان بوت، C5=0 مي باشد، و اين به معني خروجي بودن اطلاعات خواهد بود. با قراردادن C5=1، حالت پورت به صورت ورودي تغيير خواهد كرد.
مثال: فرض كنيد كه آدرس پايه پورت LPT2، دركامپيوترهاي PS/2 و سازگار با آن آدرس ۲۷۸H باشد. نحوه تغيير بيت C5 جهت تعريف پورت در حالت وروردي را نشان دهيد.
حل: باتوجه به آدرس پايه H 278 براي اطلاعات، پورت حالت H279 و پورت كنترل AH27 خواهد بود.
MOV DX,27AH: DXآدرس پورت كنترل
IN AL, DX;گرفتن اطلاعات جاري
قراردادن C5=1 بدون تغيير چيزي ديگري OR AL, 00100000;
OUT DX; AL;پورت اطلاعات در حالت ورودي قراردارد.