USB یک مدار واسطه سریع و قابل انعطاف برای اتصال دستگاهها به کامپیوتر است. همه کامپیوترهای امروزی حداقل یک جفت پورت USB داند. این پورت قابل استفاده توسط تمام ابزارهای جانبی استاندارد از جمله صفحه کلید، ماوس، دیسکگردانها و حتی دستگاههای تخصصیتر، میباشد. USB از ابتدا به منظور ایجاد رابطی راحت و آسان طراحی گردیده است که در آن کاربر نیاز به پیکربندیهای سختافزاری و نرمافزاری ندارد.
به طور خلاصه، USB با مدارهای واسط قبلی بسیار متفاوت است. یک دستگاه USB قادر است که چهار نوع پاسخ دهد که به وسیله آنها کامپیوتر، دستگاه را شناخته و آماده تبادل داده با آن میشود. همه دستگاهها باید بر روی کامپیوتر دارای راهاندازی باشند که به عنوان پلی بین برنامه کاربردی و سخت افزار USB عمل میکند.
برای ارتقا و ساخت یک دستگاه USB و طراحی نرمافرهای ارتباط با آن، شما باید اطلاعاتی درباره چگونگی نحوه کار سیستم عامل کامپیوتر داشته باشید. همچنین باید تراشه کنترلی، کلاس و روشهای ارتقا پروژهتان را معین کنید.
سرآغاز
مطالعه در زمینه سخت افزارهای کامپیوتری معمولاً مستلزم داشتن اطلاعات قبلی در این زمینه است. هر نوآوری در این صنعت باید قابل تطبیق با پدیدههایی باشد که قبل از آن آمدهاند. این مسئله هم در مورد کامپیوترها و هم در مورد وسایل جانبی آنها صدق میکند. حتی وسایل جانبیای که به نوبه خود انقلابی را در زمینه سختافزار ایجاد کردهاند، باید از رابطهایی استفاده کنند که کامپیوترها از آنها پشتیبانی کنند.
اما اگر امکان طراحی یک رابط وسایل جانبی را داشته باشید، چه نکات و خصوصیاتی را مد نظر قرار خواهید داد. در اینجا فهرستی از آنچه که ممکن است مورد نظر شما باشد آورده شده است:
کاربرد راحت: به گونهای که نیازی به آشنایی با جزئیات نصب نخواهیم داشت.
سرعت: به گونهای که رابط باعث پایین آمدن سرعت ارتباط نشود.
قابلیت اطمینان: به گونهای که خطاها کاهش یابد و امکان اصلاح خودکار خطاهایی که اتفاق میافتد وجود داشته باشد.
قابلیت تطبیق: به گونهای که انواع مختلفی از وسایل جانبی بتوانند از این رابط استفاده کنند.
ارزانقیمت: به گونهای که کاربران (و کارخانههایی که از این رابط برای تولیدات خود بهره میبرند) متحمل هزینه زیادی نشوند.
صرفه جویی در مصرف انرژی: به منظور کاهش مصرف باتری در کامپیوترهای قابل حمل.
شناخته شده توسط سیستم عاملها: به گونهای که ارتقادهندگانی که از این رابط برای ارتباط با وسیله جانبی خود استفاده میکنند مجبور به نوشتن راه اندازهایی نزدیک به زبان ماشین نباشند.
خبر خوب آنکه شما مجبور به ایجاد این رابط ایدهآل نیستید چون طراحان (USB) این کار را برای شما انجام دادهاند. طراحی USB از ابتدا بر این اساس بوده که بتواند رابطی باشد آسان، با توانایی ارتباط مؤثر با همه انواع وسایل جانبی و به دور از محدودیتهایی که در رابطهای کنونی وجود دارد.
همه کامپیوترهای جدید دارای یک جفت پورت USB هستند که به منظور ارتباط با صفحه کلید ، ماوس، اسکنر، چاپگر و یا هر نوع سخت افزار استاندارد دیگر ایجاد شدهاند، هابهای ارزانقیمت موجود این امکان را فراهم میکند که به هر تعداد که مایل باشید وسیله جانبی USB را به این دو پورت متصل کنید.
این اهداف بزرگ USB باعث شد که ارتقادهندگان، یعنی کسانی که وسایل جانبی USB را طراحی و برنامه ریزی میکنند، با مشکلاتی رو به رو شوند. یک نتیجه از کاربرد راحت این رابط پیچیده شدن آن نسبت به رابطهای قدیمیتر بود. به علاوه کارکردن با رابطی که هنوز عمری از طراحی آن نگذشته، فقط با این دلیل که جدید است طراحان را با سختیهایی رو به رو کرد. هنگامی که USB برای اولینبار روی کامپیوترها قرار گرفت، ویندوز هنوز دارای راهانداز برای همه انواع وسایل جانبی USB متعارف، نشده بود. از طرفی آنالیز کنندههای پروتکل و ابزاره ای ارتقا هنوز طراحی نشده بودند، بنابراین انتخاب USB به عنوان رابط مناسب دچار محدودیت میشد. مشکلاتی شبیه به این امروزه دیگر وجود ندارند و مزایای استفاده از USB در کنار متعدد شدن میکروکنترلرها و ابزارها ارتقا و تواناییهای سیستمهای عامل افزایش یافته است. این کتاب به شما نشان خواهد داد که چگونه میتوانید یک وسیله جانبی USB را به آسانی و سرعت و با استفاده از بهترین وسایلی که هم اکنون وجود دارد طراحی کنید و راه بیندازید.
این فصل شامل مطالبی از جمله شرح ویژگیهای از USB، مزایا و اشکالات آن، همچنین مسائلی که در طراحی و برنامهریزی وسایل جانبی USB پیش میآید و مختصری از تاریخچه رابطها خواهد بود.
کاربرد راحت
بزرگترین هدف از طراحی USB، ایجاد رابطی با کاربری راحت بوده است و حاصل آن رابطی است که به علتهای زیادی استفاده از آن مقبول واقع شده است.
یک رابط برای همه دستگاهها USB میتواند برای ارتباط با همه نوع وسیله جانبی مورد استفاده قرار گیرد به جای داشتن کانکتورهای مختلف و سختافزارهایی که فقط یک نوع وسیله جانبی را پشتیبانی کنند، از یک رابط برای همه وسایل جانبی استفاده میکنیم.
پیکربندی خودکار هنگامی که کاربر وسیله جانبی USB را به سیستم خود متصل میکند، ویندوز به طور خودکار آن را پیدا کرده و راهآنداز مربوط به آن را بارگذاری میکند. هنگامی که برای اولین بار یک وسیله را به کامپیوترمان متصل میکنیم، ممکن است ویندوز به ما پیغام دهد که دیسکتی که شامل راهانداز آن دستگاه میباشد را درون دستگاه قرار دهیم، اما در بقیه مواقع، نصب به صورت خودکار انجام میشود و ما مجبور نیستم که برنامه setup را اجرا کنیم و یا کامپیوتر را برای استفاده از آن وسیله جانبی restart کنیم.
به دور از تنظیمات کاربر وسایل جانبی USB امکان تنظیماتی از قبیل آدرس پورتها و یا خطوط در خواست وقفه (IRQ) را به کاربر نمیدهند. تعداد خطوط IRQ در یک کامپیوتر محدود است و عدم اجبار به تخصیص یک خط به وسیله جانبی خاص، خود میتواند یک دلیل کافی برای استفاده از USB باشد.
آزادکردن منابع سختافزاری برای وسایل جانبی دیگر استفاده از USB این امکان را فراهم میکند که خطوط IRQ برای دیگر وسایل جانبی که نیاز به استفاده از آن دارند، آزاد شود. در کامپیوتر یک سری از آدرس پورتها و یک خط IRQ برای رابط USB اختصاص داده میشود اما در عوض، هر وسیله جانبی که از رابط USB استفاده میکند دیگر احتیاج به منبع سختافزاری اضافی نخواهد داشت. توجه کنید که، هر وسیله جانبی غیر از USB نیاز به یک آدرس پورت و معمولاً یک خط IRQ و احیاناً یک کارت توسعه دهنده دارد (به عنوان مثال برای پورت موازی)
اتصال راحت برای استفاده از USB احتیاجی به بازکردن کامپیوتر برای اضافهکردن کارتهای توسعه دهنده نیست. هر کامپیوتر حداقل دارای دو پورت USB است که شما میتوانید تعداد آنها را با متصل کردن هابها پورتهای موجود تا تعداد دلخواه افزایش دهید. هر هاب دارای تعدادی پورت برای متصل کردن وسیله جانبی و یا هابهای دیگر میباشد.
سادگی کابل کانکتورهای کابل USB طوری ساخته شدهاند که اتصال اشتباه آنها امکان نیست. کابلها میتوانند تا 5 متر طول داشته باشند و یا حتی از طریق هابها دستگاهها میتوانند تا 30 متر از کامپیوتر فاصله بگیرند. شکل 11 کانکتورهای USB را نشان میدهد که در کنار کانکتورهای پورت 232 – RS و پورت موازی دیده میشوند و دیده میشود که در مقابل آنها چقدر کوچک و ظرفیت میباشد. برای اطمینان از عملکرد صحیح، کابلها در مرجع خصوصیات USB ویژگیهایی که باید کابلها و کانکتورها داشته باشند، آمده است.
HOT pluggable شما میتوانید بدون توجه با اینکه سیستم روشن است یا خاموش، وسیله جانبی خود را هر زمان که بخواهید به سیستم خود وصل یا از آن قطع کنید با اطمینان از اینکه به کامپیوتر یا ابزار جانبی شما صدمهای وارد نمیشود. سیستم عامل هم هنگامی که شما وسیله جانبی را وصل میکنید، به طور خودکار آن را پیداکرده و آماده استفاده مینماید.
عدم احتیاج به منبع تعذیه ( بیشتر مواقع) رابط USB شامل سیمهای زمین و تغذیه نیز میباشد که V 5+ را از طریق کامپیوتر و یا هاب به دستگاه میدهند . وسایل جانبی که حداکثر به mA 500 جریان نیاز دارند ، میتوانند از این سیم، جریان مورد نظر خود را بکشند بدون آنکه به منبع تغذیه مجزا نیاز داشته باشند. سایر وسایل جانبی باید از منبع تغذیه خارجی برای تأمین تغذیه استفاده کنند.
سرعت
USB سه سرعت متفاوت را برای باس پشتیبانی میکند؛ سرعت خیلی بالا با 480 مگابایت در هر ثانیه ، سرعت بالا با 12 مگابایت در هر ثانیه و سرعت پایین با 5/1 مگابایت در هر ثانیه . همه کامپیوترها سرعتهای پایین و بالا را پشتیبانی میکنند. سرعت خیلی بالا در نسخه 0/2 مرجع USB اضافه شده است و به سختافزار سازگار با USB نسخه 0/2 در روی مادربرد یا کارت توسعه دهنده احتیاج دارد.
این سرعتها، سرعت انتقال بیت روی باس است و نرخ انتقال داده مفید کمتر از این حد میباشد علاوه بر داده ، باس باید اطلاعات دیگری از قبیل بیتهای وضعیت ، کنترل و سیگنالهای بررسی خطا را نیز عبور دهد. به علاوه ممکن است چندین وسیله جانبی از یک باس مشترک استفاده کنند. ماکزیمم نرخ تئوری برای انتقال سیگنال حدود 53 مگابایت در هر ثانیه برای سرعت خیلی بالا و حدود 2/1 مگابایت در هر ثانیه برای سرعت بالا و 800 بایت در هر ثانیه برای سرعت پایین است.
حال چرا سه سرعت؟ سرعت پایین به دو هدف ایجاد شد. وسایل جانبی با سرعت پایین معمولاً میتوانند خیلی ارزانتر عرضه شوند و از طرفی برای ماوس و وسایلی که احتیاج به کابلهای قابل انعطاف دارند کابلهای سرعت پایین میتوانند خیلی قابل انعطافتر ساخته شوند به این دلیل که احتیاج به شیلد کردن زیاد نخواهند داشت.
سرعت بالا نزدیک و قابل انطباق با سرعت پورتهای سریال و موازی است و میتواند به جای آنها قرار گیرد.
بعد از نسخه 0/1 USB معلوم شد که رابطی، با سرعت بیشتر میتواند مفید باشد. تحقیقات نشان داد که افزایش سرعت تا 40 برابر امکان پذیر است به طوری که اساس رابط همانند رابطهای سرعتهای پایین و بالا باقی بماند و به این ترتیب سرعت خیلی بالا در USB نسخه 0/2 اضافه شد.
قابلیت اطمینان
قابل اطمینان بودن USB به خاطر نوع طراحی سختافزار و همچنین پروتکل انتقال داده میباشد. ویژگیهای سختافزاری لازم برای راهاندازها و گیرندهها و کابلهای USB، بیشتر نویزهایی را که میتواند باعث ایجاد خطا شود حذف میکند. همچنین، پروتکال USB این امکان را فراهم میکند که خطاهای احتمالی را تشخیص داده و از فرستنده خواسته شود که داده را دوباره بفرستد. این تشخیص و پیغام و انتقال مجدد دادهها توسط سختافزار انجام میشود و احتیاج به برنامه نویسی توسط کاربر ندارد.
قیمت پایین
در حالی که USB پیچیدهتر از رابطهای قبلی است، ولی تجهیزات و کابلهای آن، ارزانقیمت هستند. دستگاهی که از رابط USB استفاده میکند از نظر قیمت برابر یا ارزانتر از دستگاههایی است که از رابطهای قدیمیتر استفاده میکنند. برای وسایل جانبی خیلی ارزان، انتخاب سرعت پایین باعث میشود که احتیاج به سختافزارهای دقیق نداشته و به این ترتیب قیمت بیش از پیش کاهش مییابد.
صرفه جویی در مصرف انرژی
مدارهای ذخیره انرژی و استفاده از کدهای مخصوص باعث میشود وقتی از ابزار USB استفاده نمیشود. با نگهداشتن آن در حالت آماده به کار، مصرف انرژی کاهش یابد. کاهش مصرف انرژی علاوهبر مزیتهای محیطی، برای کامپیوترهایی که با باتری کار میکنند، در جایی که میلی آمپرها نیز اهمیت دارند، بسیار مفید میباشد.
مزیتها برای ارتقادهندگان
مزیتهایی ذکر شده برای کاربران برای ارتقادهندگان سخت افزارها و برنامه نویسان نیز مهم است. این مزیتها باعث میشود که کاربران از وسایل جانبی usb راضی باشند و طراحان ، نگران هدر رفتن وقتشان در طراحی وسایل جانبی با این رابط نباشند. از طرفی بسیاری از مزیتهای ذکر شده برای کاربران بعضی از مسایل را برای ارتقادهندگان راحتتر میکند بهعنوان مثال، استانداردهای کابلهای USB و بررسی خودکار خطا به این معناست که ارتقادهندگان مجبور نیستند که خصوصیات کابل دستگاه خود را مشخص کنند ویا نرمافزارهای بررسی خطا را طراحی کنند. استفاده از USB همچنین دارای مزیتهایی است که فقط ارتقادهندگان از آنها بهره میبرند.
ارتقادهندگان شامل گروههایی میشوند از جمله طراحان سختافزار که کارشان طراحی مدارهاست و تجهیزات لازم را انتخاب میکنند، برنامهنویسانی که نرم افزارهایی را مینویسند که با وسایل جانبی ارتباط برقرار میکنند و برنامه نویسانی که کدهای مربوط به وسیله جانبی را مینویسند.
مزیتهای USB برای ارتقا دهندگان، از انعطاف پذیری آن در مسائلی همچون پروتکلUSB و پشتیبانی توسط میکروکنترلرها و سیستم عامل ناشی میشود.
واضح است که کاربرها از این ویژگیها بهرهای نمی برند و تنها نتایج آن را که مسائلی مانند ارزان بودن و بدون مشکل بودن وسشایل جانبی است، خواستار هستند.
قابلیت انعطاف
چهار نوع انتقال داده و سه سرعت مختلف در USB آن را تبدیل به یک رابط عملی برای همه انواع وسایل جانبی کرده است. انواع مختلف انتقال داده برای سازگاری با مبادله بلوکهای بزرگ و کوچک داده با در نظر گرفتن یا نگرفتن قید زمان وجود دارد. برای دادههایی که میزان تأخیر بین دادهها مهم است. USB میتواند نرخ انتقال یا حداکثر فاصله زمانی بین انتقالها را ثابت نگه دارد. این تواناییها به ویژه برای ویندوز در جایی که احتیاج داریم با وسیله جانبی به صورت بلادرنگ ارتباط داشته باشیم مطلوب است. سیستم عاملها، راهاندازها و نرم افزارها هنوز تأخیرهای اجتناب ناپذیری را دارا میباشند اما USB این امکان را فراهم میکند که به انتقال داده بلادرنگ نزدیکتر شویم.
بر خلاف دیگر رابطها، USB برای سیگنالها کاربردهای ویژهای را تعریف نمیکند و یا فرضهایی را برای اینکه چگونه از رابط استفاده خواهد شد ندارد. به عنوان مثال در پورت موازی خطوط وضعیت و کنترل به منظور ارتباط با خطهای چاپگر تعریف شدهاند. در این پورت 5 خط ورودی با کاربردهای ویژه از قبیل تشخیص مشغول بودن یا وضعیت تمام شدن کاغذ وجوددارد. وقتی که ارتقا دهندگان میخواهند از این پورت برای وصل کردن اسکنر یا دیگر وسایل جانبی استفاده کنند که باید حجم زیادی از اطلاعات را توسط آنها به کامپیوتر بفرستند، محدودیت 5 خط ورودی مشکل ایجاد خواهد کرد.
USB این گونه پیش فرضها را ندارد و برای استفاده در هر نوع وسیله جانبی مناسب است. در مورد ارتباط با دستگاههای معمولی از جمله چاپگر و مودم کلاسهایی وجود دارد که در آنها مسائلی مربوط به نیازهای آن وسیله و پروتکل آن تعریف شده و آماده است. این ویژگی سبب میشود که نیاز به طراحی دوباره آنها نباشد.