PDA

View Full Version : تفاوت LPT1 و LPT2 در برنامه نویسی



siavashman
سه شنبه 29 دی 1388, 02:20 صبح
1. من توی دلفی برای کنترل LPT به این صورت کد مینویسم:


Out32($378,$53);

عدد $378 چیه که توی کد نویسی ها ازش استفاده میشه؟

2. فکر کنید با دلفی داریم برنامه مینویسیم برای یک کابل تبدیلی usb به LPT1, مثل این:
http://apple.clickandbuild.com/cnb/shop/ftdichip?op=catalogue-products-null&prodCategoryID=84&title=USB-+RS232+%2B+DB9

حالا سوالم اینه که همون دستوراتی که برای LPT روی mainboard مینویسیم برای همین کابل تبدیل هم بایدبه همون شکل بنویسیم؟ نباید بگیم مثلا فلان usb باید دستورات را اجرا کنه؟

3. من دیدم که همیشه پین های 1 تا 9 مورد استفاده قرار میگیرن. البته میدونم در LPT2 پینهای دیگه برای پرینتر کاربرد دارن. مثلا نوع پرینتر را تشخیص میدن و ... حالا میخوام بدونم LPT1 فقط 1 تا 9 رو داره برای اینکه برای پرینتر نیست و فقط 1 تا 9 رو میتونیم 0 و 1 کنیم و برنامه نویسی اش هم دقیقا مثل LPT2 هستش؟

4. پورتهای LPT توانایی 8 بیت اطلاعات یعنی 255 حالت رو دارن. حالا اگه بخوایم بیشتر از 255 حالت رو داشته باشیم، مثلا اگه بخوایم 2000 حالت داشته باشیم و وضعیت 2000 مورد رو در عین حال trace کنیم. چه جوری باید این کار رو انجام بدیم؟ (میدونم خیلی کلی پرسیدم) :خجالت:

5. کابلهای تبدیل usb to LPT شرکت ftdichip توی ایران پیدا میشه؟ آخه خیلی خوب درایورهاش رو ساپورت میکنه. از کجا باید خرید؟

farzadsw
سه شنبه 29 دی 1388, 05:23 صبح
عدد $378 چیه که توی کد نویسی ها ازش استفاده میشه؟
آدرس پورت lpt هست

. فکر کنید با دلفی داریم برنامه مینویسیم برای یک کابل تبدیلی usb به LPT1, مثل این:
http://apple.clickandbuild.com/cnb/s...+RS232+%2B+DB9

حالا سوالم اینه که همون دستوراتی که برای LPT روی mainboard مینویسیم برای همین کابل تبدیل هم بایدبه همون شکل بنویسیم؟ نباید بگیم مثلا فلان usb باید دستورات را اجرا کنه؟


اون لینک مربوط به تبدیل سریال (rs232) به usb هست نه lpt
درایورهایی که همراه کابل تبدیل هست ، معمولا یه پورت مجازی درست میکنه و برنامه نویسی برای اون پورت مجازی مشابه پورت واقعیه.
برنامه نویسی برای usb (مخصوصا بدون داشتن درایور ) پیچیده هست. با ایجاد پورت مجازی توسط درایور نیازی به نوشتن برنامه برای usb نیست.

. من دیدم که همیشه پین های 1 تا 9 مورد استفاده قرار میگیرن. البته میدونم در LPT2 پینهای دیگه برای پرینتر کاربرد دارن. مثلا نوع پرینتر را تشخیص میدن و ... حالا میخوام بدونم LPT1 فقط 1 تا 9 رو داره برای اینکه برای پرینتر نیست و فقط 1 تا 9 رو میتونیم 0 و 1 کنیم و برنامه نویسی اش هم دقیقا مثل LPT2 هستش؟
تا اونجایی که من میدونم lpt1,lpt2 اسمهای پورتهای موازی هستن و فرقی با هم ندارن . برنامه نویسی برای جفتشون یجور هست.

پورتهای LPT توانایی 8 بیت اطلاعات یعنی 255 حالت رو دارن. حالا اگه بخوایم بیشتر از 255 حالت رو داشته باشیم، مثلا اگه بخوایم 2000 حالت داشته باشیم و وضعیت 2000 مورد رو در عین حال trace کنیم. چه جوری باید این کار رو انجام بدیم؟ (میدونم خیلی کلی پرسیدم)
یکی از دلایلی که پورتهای پارالل نسبت به سریال خیلی کمتر استفاده میشن اینه که قابلیت انعطاف زیادی ندارن . البته برای کار های ساده مثل قطع و وصل چند تا کلید پورت موازی ساده تره( باید مدارتون رو طوری طراحی کنید که به مادربوردتون آسیبی نرسه!)
البته میتونید 2000 تا وضعیت رو با 2تا پورت و یا حتی 1 پورت موازی ایجاد کنید ولی به ic ها جانبی زیادی احتیاج دارید و مدارتون بزرگتر میشه.(شیفت رجیستر ، دیکدر و...)
در حالی که اگر از ارتباط سریال(rs232) و یک میکرو کنترلر استفاده کنید ، مدارتون ساده تر و قابلیت انعطاف تو طراحی زیادتر میشه.

5. کابلهای تبدیل usb to LPT شرکت ftdichip توی ایران پیدا میشه؟ آخه خیلی خوب درایورهاش رو ساپورت میکنه. از کجا باید خرید؟
معمولا کابلهایی که تو ایران هستن از همون ftdi استفاده کردن ولی در عمل زیاد فرقی نمیکنه چیپشون چی باشه ، همشون یه پورت مجازی درست میکنن(به وسیله درایوری که توی cd همراه کابل هست) که از این به بعد شما با این پورت مجازی کار دارید.


اگه شما اصراری روی استفاده از پورت پارالل و یا تبدیل usb/lpt ندارید ، من توصیه میکنم از rs232 به جای lpt استفاده کنید و طرف سخت افزارتون یه میکرو کنترلر داشته باشید.

arturmacnight
سه شنبه 29 دی 1388, 20:06 عصر
dll برای پروگرمینگ پورت rs232 هست؟

siavashman
سه شنبه 29 دی 1388, 20:18 عصر
خیلی راهنمایی هاتون به من کمک میکنه.

نمیشه $378 رو عوض کرد و مثلا یه شماره دیگه برای USB داد تا اتصال به اون تبدیل وصل بشه؟

مثلا بگیم کابل تبدیل USB to LPT یک بایت رو صفر کنه یا یک کنه


برنامه نویسی برای rs232 توی دلفی به چه شکلیه؟ میشه یه مثال برام بزارید؟ :لبخندساده:

farzadsw
چهارشنبه 30 دی 1388, 21:03 عصر
با اون دستور out32 فقط میشه با پورت lpt ارتباط برقرار کرد .
همونطور که گفتم برنامه نویسی برای پورت usb خیلی سخت تر از بقیه پورتهاست چون بسته به اینکه سخت افزارتون تو مد hid , modem یا چیز های دیگه باشه نوشتن برنامه براش فرق میکنه.( ولی در عوض کار end user راحت تر میشه ). البته نیازی هم به نوشتن برنامه برای پورت usb نیست چون اون کابل شما یه پورت مجازی (اگه lpt/usb باشه یه lpt مجازی و اگه serial/usb باشه یه سریال مجازی) درست میکنه . شما کافیه اسم یا آدرس اون پورت مجازی ایجاد شده رو ببینید و مثل یه پورت عادی براش برنامه بنویسید.(رایت کلیک روی mycomputer بعد انتخاب computer managment > device manager )
اگه خود ارتباط براتون مهم هست نه طریق ارتباط (serial , paralell) با همون سریال کار کنید چون مزیتش خیلی بیشتر از پارالل هست. (تقریبا پارالل منسوخ شده)
من با دلفی اصلا کار نکردم ! تو visual c , visual basic یه کامپوننت هست به اسم mscomm (فکرکنم) که کافیه اون کامپوننت رو به برنامتون اضافه کنید و مقدار baudrate , parity و سایر تنظیمات رو بهش بدید و بعد ازش استفاده کنید . تو این تاپیک یه سری اطلاعات کلی در مورد ارتباط سریال , موازی هست:
http://barnamenevis.org/forum/showthread.php?t=183351
نمونه کد برای ارتباط سریال با دلفی توی اینترنت زیاده ، نمونش اینه (ip ایران رو قیلتر کرده ، باید با قیلتر شکن ببینید!):
http://mc-computing.com/languages/Delphi/Delphi_SerialIO.htm
اینم یه توضیحات کلی درمورد پورت سریال:
http://mc-computing.com/Languages/SerialIO.htm

farzadsw
چهارشنبه 30 دی 1388, 21:13 عصر
راستی شاید اینم به دردتون بخوره:
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=295&lngWId=7

Modernidea
جمعه 29 مهر 1390, 13:16 عصر
سلام

من لینکا هایی رو که دادید رو هم بررسی کردم اما متوجه نشدم که چطوری از یک USB2Paralell استفاده کنم.
وقتی درایور رو نصب میکنم فقط یک پورت USB درست میشه و هیچ پورت پاراللی توی Device Manager ساخته نمیشه.
از کجا شماره پورت رو پیدا کنم؟
ببنید این مشخصات این مبدلی هست که نصب میکنم:

76883

موفق باشید

farzadsw
جمعه 29 مهر 1390, 23:31 عصر
این درایور شما پورت پارالل مجازی درست نکرده ، اگر درست کنه به عنوان پورت lpt میشناستش و تو تب resources میشه آدرس رو دید . احتمالا باید از یه تبدیل دیگه استفاده کنید.