آشنایی با ابزارها و امکانات متنوع سخت افزاری ...
تبهای اولیه
کارکرد سخت افزاری :
----------------------------
رو پایه های USB همونجور که میبینین : نوشته + نوشته - نوشته و نوشته -D اینا یعنی چی :
+ : یعنی +5 ولت ... برقی که کامپیوتر به پورت USB میده 5 ولته .
- : قطب منفی پورت USB هست ... همونطور که باتری دو تا قطب داره یکی + یکی هم - . اینم همونجوریه ....
این دو تا پین باعث میشه وقتی دستگاهی رو به پورت USB میزنیم روشن بشنه ... اگر این دو تا نباشه برق به دستگاه USB مون نمیرسه و روشن نمیشه .
و -D چی هستن ؟؟؟
ارتباط میان کامپیوتر و ابزار جانبی ( رد و بدل کردن Data ) از طریق این دو PIN صورت میگیره ... همانطور که میدانیم اطلاعات در درون کامپیوتر به صورت باینری یا دو دویی میباشند ... کامپیوتر وقتی میخواد با یه دستگاه جانبی ارتباط برقرار کنه اطلاعات رو که به صورت بیت های 0 و 1 هستند رو بر روی این دوخط قرار میده و برای گیرنده ارسال میکنه ... پس از آنکه گیرنده اطلاعات خودش رو دریافت کرد ... پاسخ خودش رو دقیقا بر روی همین دو خط قرار میده و برای کامپیوتر ارسال میکنه ... سوال پیش میاد که چرا در USB دوخط برای این کار در نظر گرفته شده ... با اینکه میتونستن این عمل رو با یک خط داده نیز انجام داد ... مثلا میتونیم با یک PIN یا یک رشته سیم اطلاعاتی که حاوی 0 ها و 1 ها هستند رو انتقال بدیم ...
جواب : خوب نمیایم این کار رو بکنیم ... و از روش دیگه ای استفاده میکنیم ...
1- اگر کامپیوتر بخواهد کد 1 باینری رو ارسال کند ... روی خط ولتاژ 3 ولت رو میزاره و روی خط -D ولتاژ 3- ولت رو ... و توی گیرنده بررسی میکنیم اگر خط
ولتازش بالاتر از -D بود ... یعنی کامپیوتر برای ما کد 1 رو ارسال کرده ...
2- اگر کامپیوتر بخواهد کد 0 باینری رو ارسال کند ... روی خط ولتاژ 3- ولت رو میزاره و روی خط -D ولتاژ 3 ولت رو .... و توی گیرنده بررسی میکنیم اگر خط
ولتاژش کمتر از -D بود .... یعنی کامپیوتر برای ما کد 0 رو ارسال کرده ....
چرا ؟؟؟ ... برای اینکه بتونیم اطلاعات رو با اطمینان خاطر بیشتری و برای مسافت های بیشتری ارسال کنیم ... اگر فقط 0 یا 5 ولت رو روی خط میزاشتیم ... و در گیرنده منتظر 0 یا 5 ولت بودیم ... ممکن بود نویز روی کابل تاثیر بگذاره و نتونیم 0 یا 5 ولت رو در گیرنده بگیریم ... اونوقت گیرنده نمیتونست بفهمه منظور فرستنده 0 باینری بوده یا 1 باینری ... ولی تو این روش کافی هست از -D ولتاژش بیشتر باشه ... تا ما 1 منطقی رو از کابل استخراج کنیم ....
کارکرد نرم افزاری :
----------------------------
کارکرد نرم افزاری پورت USB خیلی خیلی جالب هست ... ویندوز خیلی جالب با پورت USB برخورد میکنه ... ببینیم این کار رو چجوری انجام میده ...
1- تا یه دستگاه USB رو به پورت USB وصل میکنیم ... اون دستگاه از پورت کامپیوتر جریان الکتریکی میکشه و ویندوز متوجه میشه که یه چیزی به این درگاه وصل شده ...
2- از روی میزان جریانی که میکشه متوجه میشه سرعت اون دستگاه USB چقدر هست FULL SPEED هست یا LOW SPEED .
3- تا 127 دستگاه رو میشه به پورت USB وصل کرد ... همینکه ویندوز میبینه شما یه دستگاهی رو به پورت USB وصل کردین میبره و اونو میزاره تو آدرس 0 .
4- بعدش میگه سلام علیکم ....حالتن خوبه ؟؟؟ میبینه آیا دستگاه USB جواب میده یا نه ... اگر نداد دوباره میپرسه ... و دوباره ... اگر باز هم جواب نداد ... به کاربر پیام میده ... USB وصل کردی ... ولی هر کار میکنم جواب نمیده ...
5- اگر جواب داد ... بعد از سلام وعلیک ... بازجویی شروع میشه ...
6- اسمت چیه ... دستگاه USB جواب میده ... مثلا میگه HP1018
7- تو چه پروتکلی کار میکنی ... جواب میده BULK ...
8- ماکزیمم سرعتی که لازم داری چقدره ... میگه 115200 بیت در ثانیه ...
9- میگه تو چه ساب کلاسی کار میکنی ... میگه CDC ...
10 - اسم درایورت چیه : مثلا میگه Hpnn
11- میگه تا حالا مهمون بودی نمیشناختمت برای همین تو آدرس 0 بودی ... حالا برو تو آدرس 89 بشین و آدرس 0 رو برای USB جدید که میخواد بیاد خالی کن ...
12- و این دستگاه USB میره تو اون آدرس میشینه ...
حالا هر وقت یه Application یا یک نرم افزار کامپیوتری بخواد با پورت USB در ارتباط قرار بگیره ... ویندوز میدونه ... اون USB چه خصوصیاتی داره ... تو کدوم آدرس نشسته ... چه سرعتی رو لازم داره ... نام و نام خانوادگیش چی هست و چجوری باهاش ارتباط برقرار کنه .
اگر هم بخواین به حرفایی که بین Windows و اون دستگاه USB زده میشه گوش بدین اسنیفر های نرم افزاری و سخت افزاری وجود داره که این کار رو انجام میده که در شکل زیر نشون داده شده ...
دسترسی به USB در زبانهای سطح بالا :
----------------------------------------------------------------------
خوب برای اینکه بتونیم ادامه بدیم باید یه کم دیگه در مورد USB حرف بزنیم ... ممکن هست شما دو تا کار بخواین بکنین ... یا یه دستگاه خودتون ساختین که USB هست و به پورت USB وصلش میکنین ... یا اینکه یه ابزار مثله پرینتر به پورت USB تون وصل شده و میخواین باهاش ارتباط برقرار کنین... فعلا فرض میکنیم یه دستگاه درست کردین که دارای پورت USB هست و میخواین تو C# یا VB یا هر زبون سطح بالای دیگه ای بهش دسترسی پیدا کنین ...
حالت اول : ارتباط با دستگاه خود ساخته :
--------------------------------------------------------
وقتی شما میخواین یه دستگاه USB بسازین اون رو باید تو یکی از 4 مد زیر بسازینش ...
- مد Interrupt : یا وقفه ای که این جور دستگاه ها طوری ساخته میشن که تو هر Interval زمانی ( یه دوره زمانی ) یه پکت داده ای رو برای کامپیوتر میفرستن ... مثلا موس USB تو هر 34 میلی ثانیه دایما داره یه پکت رو برای کامپیوتر میفرسته ... یا کیبورد USB همچنین .
- مد Control : این مود برای معرفی ابزار USB مون به کامپیوتر مورد استفاده قرار میگیره ... با اینکه میشه باهاش انتقال Data هم کرد ... ولی نکنیم بهتره .
- مد ISO : این مد برای ساختن دستگاههایی به کار میره که حجم اطلاعات زیادی رو میخوان بفرستن و این ارسال نیز به صورت مداوم هست ... مثه Webcam .
- مد BULK : این مد برای ساختن دستگاه هایی به کار میره که حجم اطلاعات زیادی رو فقط برایه یک بار ارسال میکنند مثله Cooldisk ها .
خوب ... وقتی شما دارین یه دستگاه که پورت USB داره رو میسازین باید تو Firmware اون دستگاه این اطلاعات رو درج کنین :
1- اگر کامپیوتر ازم اسمم رو پرسید چی جواب بدم .
2- اگر کارخونه سازندم رو پرسید چی جواب بدم
3- اگر مد کاریم رو پرسید کدوم یک از حالات بالا رو جواب بدم .
4- اگر ازم پرسید نیاز به چه مقدار سرعت دارم چی جواب بدم .
5- و متناسب با این تنظیمات ... هر وقت Windows ازم درخواست کرد اطلاعات رو براش بفرستم ...
در زیر شماتیک یه دستگاهی که USB داره رو میزارم و روش یکم حرف میزنیم ...
' alt='IMAGE(
)' />
همونطور که میبینین یه درگاه USB داریم و 3 تا مقاومت .... یه مقاومت 1.5 کیلو اهمی تو شکل هست ... اگر اون مقاومت 1.5 کیلو اهمی به وصل بشه یعنی دستگاهمون High Speed هست و ویندوز باهاش ارتباط سریع برقرار میکنه و اگر اون مقاومت روی -D باشه ویندوز باهاش با سرعت پاییین تری حرف میزنه LOW SPEED ... پس وقتی داریم دستگاهمون رو میسازیم باید بدونیم نیاز به چه سرعتی داریم و مقاومت 1.5 کیلو اهمیمون رو روی اون درگاه قرار بدیم .
بحث دوم برمیگره به نرم افزاری که میخوایم تو پردازنده دستگاهمون بریزیم ... در اینجا فرض میکنم میخوایم یه دونه COOLDISK بسازیم و اون رو به USB کامپیوتر وصل کنیم ... در لینک زیر میتونین روتین هایی که به زبان C نوشته شده رو دانلود کنین و ازش استفاده کنین ... اما این روتین ها احتیاج به کمی توضیح دارن که در شکل های زیر نشونشون دادم .
ادامه دارد ...
اگر براتون مفید بودش برام دعا کنین ... ممنون !!!
چهارمین امکان و ابزاری که میخوام معرفی کنم آشایی با سیستم های مبتنی بر ارتباط SERIAL هست ... سعی میکنیم ... سخت افزار و نرم افزار سیستم های مبتنی بر پورت سریال رو بشناسیم .... بحث شامل دو قسمت سخت افزاری و نرم افزاری هست ... که جداگانه به بیان هر یک میپردازیم ... دستگاهی میسازیم که بتونه باپورت سریال در ارتباط قرار بگیره و تو یه زبون سطح بالا بهش دسترسی پیدا میکنیم ...
اگر در مورد پورت موازی یه تحقیق کوچیکی بکنین متوجه میشین که دارای ایراداتی هست ... پورت های سریال دو مدل هستند یا 9 پین هستند یا 25 پین که اصلاحا به اونا DB9 و DB25 نیز گفته میشه ... پورت سریال رو با نام COM نیز میشناسن .... مثلا یه کامپیوتر میتونه دو پورت سریال COM1 , COM2 برای انتقال اطلاعات داشته باشه ...
نکته مهم و مفهوم اساسی که در پورت سریال وجود داره و ما باید بهش توجه کنیم ... آهنگ ارسال و دریافت اطلاعات هست ... نام خارجکی این مفهوم Baudrate هست ... به عنوان مثال وقتی میگن سرعت پورت روی 9600 بیت بر ثانیه گذاشته شده ... یعنی اون پورت سریال طوری تنظیم شده که میتونه در هر ثانیه در حدود 9600 بیت یا 1200 بایت رو روی خط بزاره و ارسال کنه ...
همونجور که میدونیم هر دستگاه و ابزاری که تو کامپیوتر وجود داره باید آدرس داشته باشه ... اگر آدرس نداشته باشه ما نمیتونیم بهشون دسترسی داشته باشیم ... در زیر یه برنامه مینویسم که آدرس پورت سریال رو براتون در میاره :
ادامه دارد ....
برای بدست آوردن آدرس پورت سریال از Device Manager ویندوز هم میشه استفاده کرد ... علاوه بر تظیماتی که مربوط به ارسال و دریافت داده ها هست ... امکانات دیگری نیز وجود داره مثله DMA ... کنترل وقفه ها و ... که اگر عمری بود براتون مینویسم ...
در شکل زیر پین های مربوط به پورت سریال رو مشاهده میکنین و در کنار هر یک عملکرد اون رو نشون داده که به تفضیل در مورد هر یک بحث میکنیم و میگیم هر پایه کارش چی هست و به چه دردی میخوره ....
ادامه دارد ....
برای دسترسی به پورت سریال روشهای متفاوتی وجود داره ... ولی ما اینجا سه روش برای دسترسی به پورت سریال رو بررسی میکنیم ....
دسترسی به پورت سریال در ++C :
------------------------------------------------
ادامه دارد ....
دسترسی به پورت سریال در #C :
------------------------------------------------
ادامه دارد ....
دسترسی به پورت سریال در VB :
------------------------------------------------
ادامه دارد ...
ساخته دستگاهی که بتونیم به پورت سریال وصلش کنیم و با کامپیوتر کنترلش کنیم :
--------------------------------------------------------------------------------------------------------
ادامه دارد ...
' alt='IMAGE(
)' />
ساده ترن و پرکاربرد ترین پورتی که روی کامپیوترها وجود داره پورته موازی هست ... برنامه نویسی و دسترسی به این پوت خیلی خیلی راحت هست ... نه پروتکلی داره ... نه سنکرون کردنی ... همینجوری اطلاعاتت رو میریزی رو پورت و حالش رو میبری ... اسم دیگه این نوع پورت LPT هست ... اینقدر کار کردن با این پورت راحت هست که فکر کنم یه دانش آموز هم بتونه با اون کار کنه ...
در درون ارتباطاتی که از نوع سریال هست هر بار یک بیت رو روی خط میزاریم و اونو ارسال میکنیم ... ولی در این نوع ارتباط هر بار یک بایت ... یا به بیان دیگه یه 8 بیت رو روی خط میزاریم و اونو ارسال میکنیم ...
خوب حالا چجوری شروع کنیم :
----------------------------------------
فرض میکنیم که شما میخواین یک داده 8 بیتی ... یا یه بایت رو توسط پورت موازی به بیرون از کامپیوتر ارسال کنین ... در این صورت باید بدونین آدرس پورت موازی چی هست و توسط یه زبونی مثله C یا ++C تو اون آدرس Data خودتون رو قرار بدین ...
پیکر بندی سخت افزار LPT تو کامپیوتر چیجوری هست :
---------------------------------------------------------------------
وقتی خواستن پورت پارالل رو بسازن ... سه تا رجیستر در نظر گرفتن که تنظیمات پورت پارالل توسط اون ها انجام میشه ... از این رو برای پورت پارالل یه آدرس مرجع ( پایه ) در نظر میگیرن ...که بقیه آدرس ها بالاتر از این آدرس مرجع هست ...
( جلوتر منظورم رو میفهمین ) ...
اولین قدم اینه که بفهمیم آدرس پورت موازی چی هست : یه برنامه C براتون مینویسم که میتونه آدرس پورت های موازی رو بهتون بگردونه :
ادامه دارد ...
پنجمین امکان و ابزاری که میخوام معرفی کنم آشایی با سیستم های مبتنی بر ارتباط Ethernet هست ... سعی میکنیم ... سخت افزار و نرم افزار سیستم های مبتنی بر پورت شبکه رو بشناسیم .... بحث شامل دو قسمت سخت افزاری و نرم افزاری هست ... که جداگانه به بیان هر یک میپردازیم ... دستگاهی میسازیم که بتونه با پورت شبکه در ارتباط قرار بگیره و تو یه زبون سطح بالا بهش دسترسی پیدا میکنیم ... ادامه دارد ...' alt='IMAGE(
)' />
سلام ...
خوب و خوش باشین و سلامت ...
آشنایی با قطعات الکترونیکی و کاربرد هر یک :
1- pcb :
--------------------
بعضی ها هم بهش "کیت" میگن ... یه بردی سبز رنگ هست که قطعات الکترونیکی رو روش هویه میکنن ... مثلا مادربرد کامپیوتر در حقیقت یه pcb هست که بر روی اون قطعات الکتریکی هویه شده است . Pcb در حقیقت 2 کار رو انجام میده ... اولا قطعات بر روی اون سوار میشن ... ثانیا ارتباط میون قطعات الکترونیکی برقرار میشه ... میدونیم که وقتی میخوایم قطعات الکترونکی رو به هم اتصال بدیم این کار رو با سیم انجام میدیم ... Pcb شامل ارتباطات الکترونیکی میشه که قطعات الکترونیکی رو به هم اتصال میده ... در شکل زیر یک نمونه pcb رو مشاهده میکنید ...
ادامه دارد ...
Pcb ها میتونن یه لایه ... دو لایه ... چهار لایه ... 8 لایه ... 12 لایه و ... باشند که بسته به نوع نیاز طراح برد الکترونیکی میتونه تعداد لایه های pcb رو افزایش بده ..
2: مقاومت :
--------------------
مقاومت قطعه ای الکتریکی است که ...
3- خازن
--------------------
ادامه دارد ...
4- ترانزیستور
--------------------
ادامه دارد ...
5- سلف
--------------------
ادامه دارد ...
6- آیسی :
-------------------
ادامه دارد ...
7- رگولاتور
------------------
ادامه دارد ...
8- دیود
-----------------
ادامه دارد ...