USB ها چگونه کار می کنند؟

قبل از اینکه USBها به بازار بیایند مجبور بودیم که به کار با یکسری پورت های ناسازگار بسنده کنیم . در این مقاله می خوانیم که USBها چگونه کار را برایمان آسان کردند .

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

USB

بهنگام نصب تجهیزات جانبی ممکن است با مشکلاتی روبرو شوید. و این در حالی است که به ندرت دیده می شود که رابط کاربری این تجهیزات اشاره ای به این موارد بکند . اصلی ترین علت این امر این است که بیشتر این ابزارها از طریق Universal Serial Bus یا به اختصار USB به سیستم متصل می شوند , پورتی که 14 سال پیش به بازار آمد و ثابت کرد که آنقدر قابل اطمینان هست که نخواهیم به مشکلات کار با این ابزار فکر کنیم .

امروزه , کامپیوترها حداقل با یک جفت پورت USB عرضه می شوند و به تازگی دستگاههای جدیدتری را در بازار می بینیم که از استانداردهای نسل سوم که استانداردهای جدیدتر و سریعتری هستند پیروی می کنند . فروم USB Implementers ادعا دارد که این نوع رابط کامپیوتری موفق ترین نوع موجود است . فروش بیش از 8 بیلیون USB هم گواهی بر این ادعا است . در این مقاله نگاهی می اندازیم بر چگونگی و چرائی طراحی این ابزارها . با خواندن این مقاله شما درمی یابید که چطور آخرین نسل این USB ها سریعتر و بهتر کار می کنند .

پورت ها در قدیم

کانکتورهای کامپیوترها چند سالی است که بدون تغییر چشم گیری به همان صورت قبل عرضه می شوند اما در دهۀ 1970 وضع بدین ترتیب نبود ؛ هنگامیکه کامپیوترها بصورت انبوه تولید شدند و به خانه ها راه یافتند IBM هنوز اولین PC خود را رونمائی نکرده بود – همان کامپیوتری که مادر سیستم های امروزی است و ما حال که سه دهه از تولید آن گذشته از آن استفاده می کنیم . در آن زمان کارخانجات زیادی با هم در حال رقابت بودند و همین امر موجب شد که سیستم های سخت افزاری متنوع و در عین حال ناسازگار (incompatible) متعددی تولید شوند .

اما با این وجود سطحی از استاندارد وجود داشت . برای مثال , بسیاری کامپیوترها پورت سریالی RS-232 داشتند در نتیجه اتصال آنها به ابزارهای جانبی موجود در آن زمان ممکن بود . این استاندارد بصورت گسترده ای از سال 1960 مورد استفاده قرار گرفت .

حتی هنگامیکه IBM در سال 1981 اولین کامپیوتر شخصی خود را معرفی کرد اوضاع چندان که باید و شاید بهتر نشد . مدل استاندارد در آن زمان فقط یک درایو خارجی cassette و یک پورت از نوع DIN برای نصب کی بورد داشت . به مدلهای بعدی یک پورت سریال onboard اضافه شد . بالاخره در سال 1987 رابط کاربری PS/2 معرفی شد .

از آن پس کامپیوترهای شخصی با پورتهایی استاندارد ارائه شدند . از جمله این پورتها می توان به پورت سریالی RS-232 , پورت موازی DB-25 برای اتصال به پرینتر و کنترلرهای SCSI , کانکتور D-sub VGA و یک پورت mini-DIN برای اتصال به کی بورد و موس اشاره کرد . موارد آخری تحت عنوان کانکتورهای PS/2 هنوز هم کاربرد دارند اما بسیاری از موس های متفرقه تا سالها پس از معرفی پورت PS/2 از پورتهای سریالی استفاده می کردند .

برای بیش از 10 سال کامپیوترها از طریق همین پورتها به وسایل جانبی متصل می شدند . امروزه هنوز پورتهای ویژۀ D-sub ( که برای اتصال آنالوگ سیستم به مانیتور استفاده می شوند ) محبوبیت دارند و این در حالیست که انواع دیگر پورتها به نوعی از مد افتاده محسوب می شوند .

پورتهای عجیب همه کاره یا DO-IT-ALL

USB با همکاری شرکتهایی همچون IBM, Microsoft و غیره طراحی شد تا بتواند کمبودهای رابط های قبلی را مرتفع سازد . اما اصلی ترین کمبود این بود که نمی شد پورتهای سریال , موازی و PS2 را به جای هم استفاده کرد . عموماً , یک پورت سریال یا موازی تنها از یک نوع دستگاه پشتیبانی می کردند . با وجود این محدودیت , سازندگان PCها تنها قادر به پشتیبانی از تعداد معدودی  از دستگاهها می شدند یا اینکه مجبور بودند پشت کامپیوترها را پر کنند از انواع و اقسام پورتهای مختلف .

طرحهای اولیه کانکتورها ناقص بود ؛ پینهای نازک و شکننده ای داشتند و پیچهای نگهدارندۀ آنها خیلی خوب عمل نمی کردند و شل بودند . برای فائق آمدن بر این نواقص به استاندارد جدیدی نیاز بود تا به کمک آن بتوان جایگزینی برای پورتهای مختلف و متعدد یافت که در عین حال داده را سریعتر منتقل کند , به راحتی وصل شود و بتواند برای دستگاههای خاصی تامین انرژی کند .

USB 1.0 هنگامی که سال 1996 به بازار آمد تمامی این مشخصات را داشت . نرخ انتقال دادۀ آن بسیار بالا بود یعنی 12 مگابیت بر ثانیه ؛ در ساختار آن پیچ وجود نداشت و در عین حال به راحتی هم از جایش خارج نمی شد و در ضمن به راحتی متصل می شد و نیز قادر بود به میزان کمی انرژی تامین کند .

اما این کانکتور خالی از ایراد نبود و سیستم عاملهای آن زمان به خوبی از آن پشتیبانی نمی کردند . اما با آمدن USB1.1 در سال 1998 به بازار بود که این کانکتور مورد استقبال واقعی قرار گرفت . USB 2.0 که در آوریل 2000 عرضه شد بطور تئوری از یک مد انتقال داده با سرعتی بالغ بر 480 مگا بیت بر ثانیه پشتیبانی می کرد .

 موازی یا سریال

همانطور که از نام این ابزار مشخص است , USB یک کانکتور سریال است که در هر زمان یک بیت را انتقال می دهد . در مقابل , در استانداردهای موازی چندین بیت بطور همزمان و از طریق تعدادی کانال فرستاده می شوند . برای رقابت با سرعت انتقال موازی , کانکتورهای سریال می بایست داده را با سرعت بیشتری و با کلاک سریعتری انتقال دهند .

این کار از طریق کنترلرهای دادۀ جدید به سادگی میسر است . انتقال داده بطور سریال نسبت به انتقال داده موازی مزیت هایی دارد . از آنجا که برای ایجاد یک مدار برای انتقال داده تنها به یک جفت سیم نیاز هست , سیم های انتقال داده می توانند بسیار نازک تر و انعطاف پذیرتر باشند .

از طرف دیگر با حذف کانالهای انتقال دادۀ موازی دیگر cross-talk (تاثیر گذاری سیگنال یک کانال روی کانالهای دیگر) اتفاق نمی افتد . همین امر باعث میشود که بتوان از سیمهای طولانی تری استفاده کرد .

در حقیقت , یک کابل USB از دو جفت سیم تشکیل شده که یکی برای انتقال داده است و دیگری به منظور تامین برق برای برخی دستگاهها است . مثل تمام ارتباطات سیمی دیگر این جفت سیم ها که یک کانال ارتباطی را تشکیل می دهند به هم تابانده می شوند که در اصطلاح به آن “twisted pair” گفته می شود .

در این نوع کابل هر دو سیم به یک اندازه تحت تاثیر تداخل داده ای که از محیط اطراف ناشی می شود قرار می گیرند مثلا یک سیم برق که از کنار این کابل می گذرد می تواند بر آن تاثیر داشته باشد . در حالت ایده آل , هرچه روی یکی از سیمهای جفتی تاثیر بگذارد روی سیم دوم هم تاثیر می گذارد و در نتیجه خود به خود خنثی می شود . USBهای موجود در بازار plugهای متفاوتی دارند اما حتی ارزانترین آنها هم خوب عمل می کنند .

USB برای اتصال وسایل جانبی به یک سیستم کامپیوتری که حکم میزبان را دارد طراحی شده است , در نتیجه کار تبادل اطلاعات را یک کنترلر مرکزی که در کامپیوتر میزبان است سروسامان می دهد . میزبان یک root hub دارد – ابزاری منطقی که به عنوان نقطۀ مرکزی یک شبکۀ غیر رسمی متشکل از هاب ها و دستگاههای جانبی عمل می کند .

سیستم میزبان تمام ارتباطات بین دستگاههای USB و هاب ها را رهبری می کند , اگر لازم باشد داده ارسال می کند و مرتب سرکشی می کند تا ببیند کدام دستگاه داده ای برای ارسال کردن دارد .

هنگامیکه یک دستگاه جدید به سیستم متصل می شود این کنترلر متوجه حضور آن شده و آنرا reset می کند . به دستگاه جدید یک آدرس 7 بیتی داده می شود که در واقع میزبان به کمک همین آدرس آن دستگاه را از بین تمام دستگاههایی که به سیستم متصل اند شناسائی می کند . با این مکانیزم یک کنترلر USB به تنهایی می تواند تا 127 دستگاه یا هاب متصل شده به سیستم را کنترل کند .

کنترلر میزبان می تواند با یک دستگاه یا یک هاب دیگر ارتباط برقرار کند . این دستگاهها اکثرا دستگاههای غیر پیچیده ای همچون موس یا کی بورد یا حافظه های فلش هستند که شناخته شده اند و  با درایور مخصوص خود پشتیبانی می شوند . اما برای مثال یک دستگاه جانبی پیچیده تر ممکن است متشکل از چند زیر-دستگاه منطقی باشد .

پرینترها , اسکنرها یا فکس مودم و کارتخوان حافظه از این جمله اند . این دستگاهها که اصطلاحا دستگاههای «مرکب» (compound) نامیده می شوند خود یک هاب USB دارند و تمام زیر-دستگاههای آنها به این هاب متصل هستند . هر دستگاه جانبی یک سوکت USB دارد و تنها یک اتصال با کامپیوتر میزبان دارد اما به هر زیر-دستگاه و نیز به هاب آن یک آدرس مجزا اختصاص داده می شود .

انتشار اطلاعات

به محض اینکه کنترلر USB آدرسی را به یک دستگاه جانبی اختصاص دهد , امکان برقراری و تبادل اطلاعات با آن دستگاه فراهم می آید . مانند آنچه در شبکه های TCP/IP روی می دهد , اطلاعات بصورت بسته هایی فرستاده می شوند اما در USB1.1 و USB 2.0 این بسته ها مسیر دهی شده نیستند یعنی بسته به شبکه فرستاده می شود و دستگاههایی که آدرسشان با آدرس بسته یکی نیست آنرا نادیده می گیرند .

از آنجا که میزبان (host) تمام ترافیک داده ای را کنترل می کند احتمال وقوع برخورد (collision زمانی اتفاق می افتد که دو دستگاه همزمان داده ارسال می کنند) بسیار کم است . اطلاعاتی که به یک دستگاه فرستاده می شود یا از آن دریافت می گردد از پایپ هایی منطقی عبور می کند ؛ هرچند اینها اتصالات فیزیکی نیستند , هر دستگاه می تواند تا 16 پایپ ورودی (inbound) و 16 پایپ خروجی (outbound) داشته باشد که هر کدام داده را از طریق یک اتصال فیزیکی به root hub می فرستد .

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

نوعی از وقفه ها به ابزارهایی همچون موس و کی بورد سرویس دهی می کنند . داده های این دستگاهها در مقایسه با دیگر دستگاهها خیلی فوری نیستند و کمی تاخیر را قبول می کنند . تبادل اطلاعات با نرم افزارهایی همچون streaming video را ترنسفرهای همزمان (isochronous) انجام می دهند و در آخر هم ترنسفرهای حجیم از پهنای باند باقیمانده برای انتقال مقادیر زیاد داده مثل کپی کردن فایلها استفاده می کنند . ولی در این نوع آخر انتقال داده کیفیت را تضمین شده نیست .

عدد جادویی

مهم ترین ویژگی USB 3.0 دارا بودن بیشترین نرخ انتقال داده است که در مود SuperSpeed اطلاعات را با سرعت 4.8 گیگا بیت بر ثانیه انتقال می دهد . دستیابی به چنین سرعتی اینقدر ساده نیست و تنها با ده برابر کردن سرعت کلاک میسر نمی شود . در USB 3.0 پیشرفت های زیادی نسبت به اولین نمونه ها دیده می شود .

همانند کابل های USB 2.0 , کابل های USB 3.0 هم دو سیم برای power و یک جفت سیم بهم تابیده شده برای انتقال داده دارد با این تفاوت که در USB 3.0 جفت سیم های بیشتری برای انتقال داده وجود دارد که تعدادشان در مجموع به 8 تا می رسد . یک جفت از این سیم ها مخصوص برقراری ارتباط در مود SuperSpeed است و طوری ایزوله شده اند که کمترین تداخل داده ای صورت گیرد و بیشترین نرخ داده ای را داشته باشد .

یک جفت دیگر از سیم هایی که به USB 3.0 اضافه شده داده را از میزبان به دستگاه منتقل می کند و یک جفت دیگر هم داده را از مسیر مقابل به سمت میزبان می آورد و به این ترتیب امکان انتقال اطلاعات در دو جهت و بطور همزمان میسر می شود و در اصطلاح به آن full-duplex می گویند .

اینگونه است که سرعت USB 3.0 در مقایسه با USB 2.0 که نیمه duplex است بطور قابل توجهی بیشتر است . اما این تمام ماجرا نیست ؛ مزیت های بیشتری هست که در ادامه به آنها می پردازیم . اگرچه هنوز این میزبان است که ارتباطات را کنترل می کند اما حالا دستگاهها به جای آنکه منتظر سرکشی کردن میزبان بمانند خود قادرند به میزبان اعلام کنند که داده ای برای ارسال دارند .

بدین وسیله از پهنای باندی که قبلا تلف می شد بصورت بهینه استفاده می شود . تغییر مهم دیگری که در USB 3.0 دیده می شود ایجاد پایپ های ارتباطی منطقی بین root hub و دستگاههای جانبی است . از این پایپ ها برای آدرسدهی بسته های اطلاعاتی استفاده می شود یعنی بسته های ارتباطی دیگر در کل شبکه منتشر نمی شوند بلکه یکراست به جایی که باید بروند فرستاده می شوند و این خود به معنی هدر نرفتن پهنای باند است .

تلاش زیادی صورت گرفته تا استانداردهای جدید با دستگاههای USB 2.0 سازگاری داشته باشند . به همین منظور کانکتورها و پورت های جدید تا آنجا که ممکن بوده شبیه و نزدیک به مدلهای قدیمی طراحی شده اند تا بتوان هر دو نوع قدیمی و جدید کابل ها و دستگاهها را با هم ترکیب کرد .

تنها استثناء موجود در اینجا این است که برای اتصال یک دستگاه USB 2.0 به یک هاب  USB 3.0 باید از یک کابل USB 2.0 استفاده کرد . برای بیشتر کردن سازگاری , تمام کنترلرهای USB 3.0 یک کنترلر USB 2.0 هم دارند و تبادل اطلاعات بین USB 3.0 و USB 2.0 بوسیلۀ سیم های جداگانه ای صورت می گیرد و مزیت اش این است که با اتصال USBهای 2.0 و 3.0 به یک هاب مشترک دستگاههای USB 3.0 مجبور نیستند برای تعامل با USBهای 2.0 کُندتر کار کنند

USBهای جدید را طوری تغییر داده اند که بتوانند برای دستگاههایی که power ندارند تامین انرژی کنند و نیز می توانند به مود low-power وارد و یا از آن خارج شوند . انرژی ای که یک هاب تولید می کند به واحدهایی تقسیم می شود ؛ برای دستگاهی که بصورت فیزیکی به هاب متصل است اما هنوز پیکر بندی نشده تنها یک واحد انرژی می تواند درخواست شود .

در USB 3.0 یک واحد انرژی 150 میلی آمپر است . این مقدار در USB 2.0 , 100 میلی آمپر است . به محض اینکه دستگاه مزبور پیکربندی (configure) شود می تواند تا شش واحد دیگر (5 واحد در USB 2.0) انرژی درخواست کند یعنی 900 میلی آمپر که در مقایسه با USB 2.0 که 500 میلی آمپر است میزان بیشتری می باشد .

ضمناً , از آنجا که لازم نیست دستگاهها بیدار باشند تا به سرکشی های مدام کنترلر میزبان پاسخ دهند , دیگر می توانند بدون کسب اجازه از میزبان به مود low-power وارد شوند .

رقیبی برای USB ها

USBها تقریبا در تمام طول عمر حضورشان با FireWire ها مورد مقایسه قرار گرفته اند . FireWire که یک رابط سریالی محصول شرکت Apple در دهۀ 1990 است که محبوبیت کمتری نسبت به USB داشت . نرخ تبادل اطلاعات FireWire 400 مگابیت بر ثانیه بود که بعدا به 800 مگا بیت بر ثانیه رسید .

حالا در انواع جدید آن سرعت انتقال داده به 3.2 گیگا بیت بر ثانیه می رسد . FireWire ها چند مزیت بر USB ها دارند . از همه مهمتر اینکه آنها می توانند میزان بیشتری انرژی الکتریکی تامین کنند . در ضمن , دستگاهها می توانند بدون کمک گرفتن از میزبان با هم ارتباط برقرار کنند . حالا برای اولین بار سرعت انتقال داده در USB ها به پای Firewire ها رسیده و چه بسا بیشتر از آن شده است . با چنین سرعت بالایی و نیز پیشرفت هایی که USB 3.0 داشته به نظر میرسد که همچنان گزینۀ برتر و حاکم در بازار باشد .

منبع: ماهنامه رایانه

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد