USB یک رابط سریال پر سرعت (Universal Serial Bus) است که می تواند انرژی و توان لازم را برای وسیله ای که به آن متصل است فراهم و تا 127 وسیله را تا حداکثر سرعت 480 Mb/s آدرس دهی و پشتیبانی کند.
۱- مقدمه :
USB(Universal Serial Bus) یک رابط سریال پر سرعت که می تواند انرژی و توان لازم را برای وسیله ای که به آن متصل است فراهم و تا 127 وسیله را تا حداکثر سرعت 480 Mb/s آدرس دهی و پشتیبانی کند.
برای گذرگاه USB سه سرعت انتقال داده تعریف شده است:
1- Low-Speed : با حداکثر سرعت 1.5 Mb/s
2- Full-Speed : با حداکثر سرعت 12 Mb/s
3- High-speed : با حداکثر سرعت 480 Mb/s
حداکثر توانی که USB برای وسیله خارجی می تواند فراهم کند 100 mA با 5V است.
انتقال داده در USB بر اساس پروتکل Token-Base است.
۲- کابل و کانکتور USB :
کابل USB یک کابل چهار رشته است.
برای کابل های USB دو نوع کانکتور تعیین شده است : کانکتور نوع A و کانکتور نوع B .در شکل زیر این دو نوع کانکتور نشان داده داده شده است.
۳- کلاس دستگاه های USB :
دستگاه های جانبی که از گذرگاه USB استفاده می کنند عبارتند از : Mouse ، Keyboard ، Camera ، Scanner ، Printer ، Audio/Video Devices و ...
وسیله ای که به گذرگاه USB متصل می شود ممکن است یک وسیله کاملا دستی باشد که در اینصورت نیازمند راه انداز(Driver) است. و یا اینکه وسیله ای که به گذرگاه USB متصل می شود متعلق به یکی از کلاس های وسایل قابل اتصال به USB می باشد.
کلاس های مختلف وسایل این امکان را فراهم می کند که یک راه انداز مشترک برای چندین وسیله که دارای عملکرد های مشابه هستند استفاده شود.
در جدول زیر کلاس های متداول وسایل USB آمده است :
از بین تمام کلاس های وسایل USB کلاس Communication Device Class)CDC) دارای یک مزیت است. در این کلاس وسیله USB از نطر کامپیوتر به عنوان یک پورت COM شناخته می شود و این امکان را به ما میدهد که از نرم افزار Windows به عنوان نرم افزاری برای برقراری ارتباط میان میکروکنترلر و کامپیوتر از طریق پورت USB استفاده کنیم.
گذرگاه USB یک مبحث بسیار بسیار وسیع و گسترده است که بیان آن در یک یا دو مطلب چند صفحه ای امکان پذیر نیست و کسانی که علاقه مند به مطالعه و پیاده سازی یک وسیله USB هستند باید به مطالعه منابع اصلی این گذرگاه بپردازتد.
۴- تعیین سرعت در گذرگاه USB :
در دستگاهی که به انتهای گذرگاه USB متصل است ، یک مقاومت 1.5 K از لاین D+ یا D- به ولتاژ 3.3 V متصل شده است.در گذرگاه های Full-Speed ، مقاومت از D+ به 3.3 V متصل است و در گذرگاه های Low-Speed مقاومت 1.5 K از D- به 3.3 V متصل است.
هنگامی که هیچ دستگاه USB متصل نیست ، میزبان هر دو خط داده را بدون بار(صفر منطقی) می بیند و تشخیص می دهد که ارتباط USB برقرار نیست. و هنگامی که دستگاهی از طریق گذرگاه USB به میزبان متصل می شود ، یکی از خطوط D+ یا D- در حالت "یک منطقی" قرار می گیرد و میزبان متوجه می شود که یک دستگاه USB متصل شده و با توجه به نوع اتصال سرعت را تشخیص می دهد.
۵- انواع گردش داده در گذرگاه USB :
داده ها به چهار روش می توانند به گذرگاه USB منتقل شوند :
1-Bulk Transfer : این نوع انتقال برای انتقال حجم زیادی از داده بدون بروز خطا و در پهنای باند کم طراحی شده.
معمولا از این مد انتقال زمانی استفاده می شود که نرخ انتقال پایین برای انتقال داده ها مشکلی نداشته باشد. در حالت Full-Speed حداکثر اندازه بسته های انتقالی 8 تا 64 بسته و در حالت High-Speed تا 512 بسته است.
انتقال به صورت Bulk در حالت Low-Speed قابل انجام نیست.
2-Interrupt Transfer : این نوع انتقال داده برای انتقال مقادیر کم داده و با پهنای باند بالا استفاده می شود ؛ که انتقال داده ها را به صورت سریع و بدون تاخیر فراهم می کند.
باید توجه کرد که مد انتقال Interrupt هیچ عملی را با وقفه سیستم کامپیوتر انجام نمی دهد.
در این مد بسته ها می توانند در اندازه های 1 تا 8 بایت در حالت Low-Speed ، 1 تا 64 بایت در حالت Full-Speed و تا 1024 بایت در حالت High-Speed منتقل شود.
3-Isochronous Transfer : این نوع انتقال پهنای باند تضمین میکند ولی احتمال بروز خطا در دریافت داده توسط گیرنده وجود دارد.
این نوع انتقال داده معمولا در کاربردهایی مانند وسایل صوتی که سرعت انتقال مهم است ولی از بین رفتن مقداری از داده ها چندان مهم نیست استفاده می شود.
بسته های Isochronous در حالت Full-Speed می توانند حاوی 1023 بایت و در حالت High-Speed می تواند حاوی 1024 بایت باشد.
انتقال به صورت Isochronous در حالت Low-speed امکان پذیر نیست.
4-Control Transfer : این نوع انتقال داده ، یک انتقال دو طرفه است.این نوع انتقال معمولا برای پیکربندی اولیه ی وسایل جانبی توسط میزبان انجام می شود.
در این مد انتقال ، حداکثر اندازه بسته ها 8 بایت در حالت Low-Speed ، 8 تا 64 بایت در حالت Full-Speed و 64 بایت در حالت High-Speed است.
۶- سرشماری (ٍEnumeration) :
زمانی که وسیله جانبی به گذرگاه USB متصل می شود ، توسط فرایندی به میزبان(رایانه) معرفی می شود. به این فرایند "سرشماری" گفته می شود.
مراحل سرشماری:
۱-زمانی که وسیله ای به گذرگاه USB متصل می شود ، سطح یکی از خطوط داده (D+ یا D- ) تبدیل به 1 منطقی می شود.
۲-میزبان یک سیگنال USB Reset برای وسیله ارسال می کند تا وسیله وسیله را در یک موقعیت معیین و شناخته شده قرار دهد.
عملیات Reset دستگاه را در آدرس صفر قرار می دهد.
۳-میزبان با استفاده از فرمان Get Descriptor که به آدرس صفر برای دستگاه ارسال می کند حداکثر انداره بسته را دریافت می کند.
۴-دستگاه با ارسال بخش کوچکی از توصیف گرِ دستگاه(Device Descriptor) به میزبان پاسخ می دهد.
۵-میزبان مجددا یک USB Reset به دستگاه ارسال می کند.
۶-میزبان یک آدرس یگانه به دستگاه اختصاص می دهد و تقاضای Set Address را به دستگاه می فرستد. پس از کامل شدن تقاضا ، دستگاه به عنوان یک آدرس جدید فرض می شود و از این به بعد میزبان هیچ Reset دیگری را به دستگاه ارسال نمی کند.
۷-میزبان با ارسال فرمان Get Device Descriptor تقاضای دریافت کامل توصیف گر دستگاه را برای دریافت اطلاعاتی مانند سازنده دستگاه ، نوع دستگاه و حداکثر اندازه بسته کنترلی را درخواست می کند.
۸-میزبان با ارسال فرمان Get Configuration Descriptors دریافت اطلاعات پیکربندی دستگاه مانند احتیاجات توان (Power Requirements) ، نوع شماره رابط پشتیبان را درخواست می کند.
۹-میزبان ممکن است توصیف گر های دیگری نیز درخواست کند.
* ارتباطات اولیه بین وسیله و میزبان از نوع Control Transfer است.
۷- توصیف گرها (Descriptors) :
تمام دستگاه های USB دارای یک سری توصیف گر هستند که خصوصیات مختلف دستگاه را توصیف می کنند اطلاعات دستگاه درون توصیف گرها قرار دارد که طی عملیات سرشماری به میزبان منتقل می شود. بعضی از توصیف گر های رایج تر عبارتند از:
* توصیف گرهای دستگاه Device Descriptors
* توصیف گرهای پیکربندی Configuration Descriptors
* توصیف گرهای واسط Interface Descriptors
* توصیف گرهای دستگاه های رابط انسانی HID Descriptors
* توصیف گرهای دستگاه های ارتباطی CDC Descriptors
* توصیف گرهای اندپوینت Endpoint Descriptors
اطلاعات کامل در مورد USB را می توان در(منبع ۲) Universal Serial Bus Specification, Revision 2 یافت.
فصل ۹ این مرجع حاوی : درخواست های دستگاه (Device Requests) ، توصیف گرها (Descriptors) و تعریف کلاس ها (Class Definitions) است.
گذرگاه USB یک مبحث بسیار بسیار وسیع و گسترده است که بیان آن در یک یا دو مطلب چند صفحه ای امکان پذیر نیست و کسانی که علاقه مند به مطالعه و پیاده سازی یک وسیله USB هستند باید به مطالعه منابع اصلی این گذرگاه بپردازتد.
منابع :
1- www.usb.org
2- Specification Universal Serial Bus
3- eBook : Advanced PIC Microcontroller Projects in C
.....(From USB to RTOS with the PIC18F Series)
4- eBook : USB Completemplete