دسته بندی | فنی و مهندسی |
فرمت فایل | doc |
حجم فایل | 128 کیلو بایت |
تعداد صفحات فایل | 76 |
گزارش کارآموزی پورت USB و تراشه های کاربردی در 75 صفحه ورد قابل ویرایش
فهرست مطالب
عنوان صفحه
مقدمه................................................................................................................................1
سرآغاز..............................................................................................................................2
کاربرد راحت.....................................................................................................................4
- یک رابط برای همه دستگاهها .........................................................................4
- پیکربندی خودکار.............................................................................................4
- به دور از تنظیمات کاربر...................................................................................4
- آزاد کردن منابع سخت افزاری برای وسایل جانبی ........................................4
- سادگی کابل......................................................................................................5
- Hot pluggable..............................................................................................5
- عدم احتیاج به منبع تغذیه..............................................................................5
سرعت..............................................................................................................................6
قابلیت اطمینان................................................................................................................7
قیمت پایین......................................................................................................................7
صرفهجویی در مصرف انرژی...........................................................................................7
قابلیت انعطاف..................................................................................................................8
پشتیبانی توسط سیستم عامل........................................................................................9
پشتیبانی وسیله جانبی..................................................................................................10
مجمع ابزار آلات USB...................................................................................................11
الف
این پورت کامل نیست....................................................................................................12
- از دید کاربران.................................................................................................12
- پشتیبانی نشدن توسط سخت افزارهای قدیمی............................................12
- محدودیت سرعت...........................................................................................13
- محدودیت فاصله.............................................................................................14
- ارتباطات نظیر به نظیر....................................................................................14
- تولیدات شکلدار............................................................................................14
- از دید ارتقاء دهندگان....................................................................................15
- پیچیدگی پروتکل...........................................................................................15
- پشتیبانی در سیستم عامل............................................................................15
- گیرهای سخت افزاری.....................................................................................16
- مبالغ................................................................................................................16
USB در برابر IEEE _ 1394.....................................................................................17
حداقل نیازهای کامپیوتر................................................................................................17
- کنترل کننده میزبان.......................................................................................18
- سیستم عامل..................................................................................................18
- اجزا..................................................................................................................18
- اجزای یک اتصال............................................................................................19
- تجهیزات لازم برای ارتقاء...............................................................................20
- انتخاب تراشه..................................................................................................21
اجزای یک کنترلر USB....................................................................................21
- پورت USB ....................................................................................................22
ب
- بافرهای داده USB ........................................................................................22
- CPU..............................................................................................................23
- حافظه برنامه...................................................................................................24
- حافظه داده ....................................................................................................26
- رجیسترها.......................................................................................................26
- I/O های دیگر................................................................................................26
- ویژگیهای دیگر..............................................................................................27
ساده سازی پروسه ارتقاء..............................................................................................27
- انتخاب معماری...............................................................................................27
- تراشههایی که از ابتدا برای USB طراحی شدهاند......................................28
- تراشههایی بر اساس خانوادههای آشنا.........................................................28
- تراشههایی که به میکرو کنترلرهای خارجی متصل میگردند......................29
- مرجع خصوصیات تراشه................................................................................30
- برنامه تراشه نمونه..........................................................................................30
- انتخاب راه انداز..............................................................................................30
- ابزارهای اشکالزدایی.....................................................................................31
- بردهای ارتقا از فروشندگان تراشه................................................................31
- بردهای از منابع دیگر.....................................................................................32
- نیازمندیهای پروژه.........................................................................................33
نگاهی به بعضی از تراشهها...........................................................................................35
- EnCore محصول شرکت سیپرس...............................................................35
- معماری CPU................................................................................................35
پ
- کنترلر USB..................................................................................................36
- EZ _ USB شرکت سیپرس........................................................................37
- معماری CPU................................................................................................37
- کنترلر USB..................................................................................................38
PCI 16C7X5 شرکت میکروچیپ ............................................................................42
- معماری............................................................................................................42
- کنترلر USB...................................................................................................42
NET 2888 شرکت نت چیپ
- کنترلر USB
USB 9603 شرکت National Semiconductor.....................................................44
- کنترلر USB...................................................................................................46
PDIUSBD 11/1 محصول فیلیپس...........................................................................46
- معماری...........................................................................................................46
- کنترلرهای USB...........................................................................................47
Strong ARM اینتل...................................................................................................47
- کلاسهای دستگاهها.......................................................................................48
- استفاده از کلاسها..........................................................................................48
- اجزای یک مربع خصوصیات کلاس................................................................49
- کلاسهای تعریف شده.....................................................................................50
- مطابقت یک دستگاه با یک کلاس ................................................................52
- وسایل جانبی استاندارد.................................................................................52
- صفحه کلید ، ماوس و دسته بازی .................................................................52
ت
- دستگاههای انبارش تودهای..........................................................................53
- چاپگرها.........................................................................................................55
- دوربینها و اسکنرها .......................................................................................55
- برنامههای صوتی............................................................................................56
- مودمها...........................................................................................................57
- کاربردهای غیر استاندارد..............................................................................57
- دستگاههایی که دادهها را با یک سرعت کم منتقل میکنند......................58
- به روز رسانی دستگاههای RS _ 232..........................................................59
- دستگاههای مراکز فروش...............................................................................60
- جایگزینی دستگاههای با پورت موازی غیر استاندارد..................................61
- ارتباطهای کامپیوتر به کامپیوتر....................................................................63
ث
- پیوندهای بیسیم...........................................................................................63
پیشگفتار
در مدتی که به عنوان کار آموز در این شرکت فعالیت داشتم کارهای مختلفی انجام میشد که از آن جمله میتوان به نصب شبکه و سخت افزار کامپیوتر و همچنین به صورت محدود طراحی وساخت پاره ای از پروژه های الکترونیکی اشاره کرد.
اینجانب از طرف مسئول کار آموزی در قسمت سخت افزار مشغول به کار شدم. در این قسمت کارهای مختلفی انجام میشد مانند اسمبل کردن قطعات کامپیوترو تعمیرات قطعات مختلف آن و... .
هر مهندس الکترونیک باید به حد کافی با سخت افزار کامپیوتروارتباط اجزای مختلف آن با یکدیگر آشنا باشد.
ارتباط کامپیوتر با خارج از آن به خصوص با مدارات مختلف الکترونیکی یکی از مسائلی است که به شدت مورد توجه مهندسان الکترونیک و طراحان می باشد.
ارتباط کامپیوتر با دنیای خارج از طریق پورتهای آن می باشد. پورت سریال پورت موازی پورت USB و... . یکی از پورتهایی که به شدت مورد توجه قرار گرفته پورت USB می باشد من نیز از این فرصت استفاده کرده و به بررسی این پورت پرداختم گسترش این پورت به گونه ای است که حتی پرینترهای جدید و قطعات جانبی دیگر مانند ماوس و اسکنر و ... به گونه ای طراحی شده اند که به این پورت وصل می شوند در ادامه به بررسی این پورت و آی سی های جانبی آن پرداخته می شود
ü مقدمه
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 متر از کامپیوتر فاصله بگیرند. شکل 1ـ1 کانکتورهای 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 دارند. اما برخی دیگر برای انجام کارهای بیشتر، از جمله رهبری فرستادن توضیح دهندهها به میزبان، تنظیم بیت data-toggle و اطمینان از فرستاده شدن پاکت تأیید متقابل مناسب به کد برنامه نیاز دارند.
بعضی از تراشهها دارای یک CPU در خود تراشه هستند، در حالی که برخی دیگر باید با یک CPU خارجی در ارتباط قرار گیرند. همه کنترلرهای USB یک یا چند پورت USB دارند. کنترلری با CPU درونی همچنین دارای حافظه داده و برنامه یا واسطی به حافظههای خارجی است.
همه کنترلرها از هر چهار نوع انتقال پشتیبانی نمیکنند و کنترلرهای مختلف، سرعتهای باس متفاوتی دارند. بیشتر تراشهها از اندپوینتهایی کمتر از حداکثر تعداد مجاز پشتیبانی میکنند (یک اندپوینت کنترلی و 30 اندپوینت دیگر)
پورت USB
وسیلة جانبی USB قاعدتاً باید یک پورت USB و مداری برای ارتباط با میزبان داشته باشد. فرستنده ـ گیرنده USB واسط سخت افزاری با باس ایجاد میکند. مدارهایی که با فرستنده ـ گیرنده ارتباط برقرار میکنند دارای نام عمومی، موتور واسط سریال (SIE) هستند. SIE فرستادن و دریافت دادههای تر نزکشن را به عهده دارد. این موتور دادههای رسیده را ترجمه میکند و فقط دادههایی را که برایش در دسترسی قرار گرفتهاند میفرستد و دادههایی را که رسیدهاند ذخیره مینماید. یک SIE عمومی باید همه کارهای زیر را انجام دهد:
تشخیص ورود یک پاکت
فرستادن پاکتها
تشخیص و تولید، سینگالهای شروع پاکت، انتهای پاکت، ریست، بازگشت
رمز گذاری کردن و از رمز خارج کردن دادهها به قالب دبندیای که باس دارد (NRZI با بیت استاف)
بررسی و تولید مقادیر CRC
تشخیص و ایجاد شماره مشخصههای پاکت
تبدیل بین دادههای سریال USB و دادههایس موازی رجیسترها و حافظه
ایجاد چنین قابلیتهایی احتیاج به 2500 گیت دارد.
بافرهای داده USB
کنترلر USB، باید بافرهایی برای ذخیره دادههایی که دریافت میکند یا دادههایی که آماده فرستادن روس باس هستند، داشته باشد. بعضی از تراشهها مانند NET2888 محصول NetChip، از رجیسترها به عنوان بافر استفاده میکنند. در حالی که برخی دیگر، از جمله EZ- USB شرکت سیپرس از بخشی از حافظه داده به عنوان بافر بهره میبرند.
رجیسترهایی که دادههای رسیده یا منتقل شده را نگهداری میکنند، عموماً دارای ساختار FIFO (اولین ورودی، اولین خروجی) هستند. در هر خواندن از یک FIFO، بایتی که بیشتر از همه در حافظه بوده است بازگردانده میشود. با هر نوشتن به روی FIFO، بایت بعد از همه بایتهایی که در FIFO وجود دارند ذخیره میشود. یک اشارهگر داخلی با افزایش خودکار در هنگام خواندن و نوشتن FIFO، محلی را که داده بعدی در آن قرار دارد نشان میدهد.
در تراشههای دیگر، مثل سری enCore شرکت سیپرس، بافرهای USB در حافظه داده جاسازی شدهاند و برنامه تراشه هر موقعیت را برای نوشتن یا خواندن از آن انتخاب میکند و اشارهگری که به طور خودکار افزایش یابد تا محل دادة بعدی را مشخص کند، وجود ندارد. بایتهای درون بافر فرستنده USB از پایینترین آدرس به بالاترین آدرس نوشته میشوند و بایتهای بافر دریافت به ترتیب رسیدن، از پایینترین آدرس به بالاترین آدرس ذخیره میگردند. این بافرها ساختار FIFO ندارند ولی گاهی با این نام خوانده میشوند.
برای ایجاد انتقالهای سریعتر، بعضی از تراشهها دو بافر دارند و قادرند دو مجموعه کامل داده در هر جهت را ذخیره کنند. در حالی که یک بلاک داده انتقال مییابد، برنامه تراشه میتواند بلاک داده بعدی را به بافر دیگر بنویسد. به طوری که این بلاک تا وقتی که بلاک اول فرستاده میشود آماده انتقال میگردد. در جهت دریافت نیز، بافر اضافی ما را قادر میسازد قبل از کامل شدن پردازش داده بر روی ترنزکشن قبلی توسط برنامه تراشه، ترنزکشن بعدی دریافت شود. سخت افزار به صورت خودکار بین این دو بافر سوئیچ میکند.
CPU
واحد پردازش مرکزی (CPU) یک تراشه کنترلی USB، با اجرای دستورات کدهایی که در تراشه ذخیره شده است فعالیتهای تراشه را کنترل میکند. هر CPU از مجموعه دستوراتی پشتیبانی میکند که شامل دستورات زبان ماشین برای انقال داده، انجام عملوندهای منطقی، و پرشهای برنامه میباشند. این مجموعه دستورات همچنین CPU را قادر میسازد که با SIE ارتباط برقرار کند. CPU ممکن است ساختاری بر اساس یک میکروکنترلر عمومی مانند 8051 داشته باشد یا اینکه فقط به صورت ویژه برای استفاده در دستگاههای USB طراحی شده باشد.
تراشههایی که CPU ندارند ممکن است مجموعه دستوراتی وابسته به ارتباطهای USB داشته باشند یا فقط از یک سری رجیستر برای ذخیره دادههای USB و اطلاعات پیکربندی استفاده کنند. این تراشهها مسیری را برای اضافهکردن قابلیتهای USB به هر میکروکنترلر خارجی ایجاد میکنند.
حافظه برنامه
حافظه برنامه کدهایی را که CPU اجرا میکند نگهداری میکند. این حافظه ممکن است روی تراشه CPU یا تراشهای مجزا باشد.
حافظه برنامه ممکن است از هر نوع حافظهای استفاده کند: Fash EPROM, EEPROM, EPROM, ROM یا RAM همه این حافظهها بجز RAM (بدون باتری)، همیشگی هستند. آنها دادههای نوشته شده را به صورت دائن نگهداری میکنند. مقدار این حافظههای برنامه ممکن است حدود کیلوبایت یا بیشتر باشد. اما تراشههایی که از حافظههای خارجی استفاده میکنند امکان دارد محدودهای در حدد مگا بایت را نیز پشتیبانی کنند.
نام دیگر کدهای ذخیره شده در حافظه برنامه، برنامة تراشه است، که مشخص میکند حافظه از نوع همیشگی بوده و مانند RAM نمیتوان به راحتی آنها را ویرایش کرد و دوباره بر روی دیسک ذخیره نمود.
ROM (حافظه فقط خواندنی) باید در کارخانه برنامه نویسی شود و قابل پاک کردن نیست. این حافظه فقط برای تولید انبوه کاربرد دارد.
EPROM (ROM قابل برنامهریزی و پاک شدن) قابل برنامه ریزی توسط کاربر است. بسیاری از تراشهها سخت افزار و نرم افزار برنام نویسی ارازان دارند. برای پاک کردن EPROM تراشه را در پاک کننده EPROM قرار میدهید، در این دستگاه مدارهای تراشه زیر تابش اشعه ماورای بنفش قرار میگیرند پاک شدن حدود 10 تا 30 دقیقه خواهد کشید. سپس تراشه آماده خواهد بود تا دوباره برنامه ریزی شود. در اطلاعات فنی این تراشهها به ندرت به تعداد دفعات ممکن پاک شدن اشاره میشود، اما این مقدار حدوداً 100 میباشد.
OTP PROM ها ارزانتر هستند. ساختار آنها شبیه به EPROM ها میباشد و مانند آنها برنامه ریزی میشوند تفاوتشان این است که این تراشهها پنجرههای کوارتز برای پاک کردن ندارند. این حافظه بیشتر در محصولات نهایی استفاده میشوند. بسیاری از CPU ها هر دو نوع حافظه EPROM و OTP PROM را دارا هستند.
Flash EPROM ها حافظههایی با تکنولوژی جدید هستند که قابل پاک شدن به طریقه الکتریکی میباشند و احتیاج به اشعه ماورای بنفش ندارند و معمولاً به ولتاژ برنامه ریزی خاص مورد نیاز برخی از EPROMها احتیاج ندارند. Flash EPROM های موجود قادرند حدود 000/100 بار پاک شده و دوباره برنامهریزی شوند.
EEPROM (PROM های قابل پاک شدن به طریقه الکتریکی) نیز به ماورای بنفش و ولتاژ ویژه برنامه ریزی که EEPROM ها نیاز دارند، احتیاج ندارد. EEPROMها زمان دسترسی طولانیتری نسبت به Flash EPROMها دارند. EEPROM ها با هر دو مدار واسط موازی که توسط EPROMها و Flash EPROMها استفاده میشود و واسط سریال که در میکرووایر، I2C و SPI کاربرد دارد. مورد استفاده قرار میگیرد. EEPROMهای سریال برای ذخیره مقدار دادة کمی که گهگاه تغییر مییابند از جمله دادههای پیکربندی شماره مشخصههای محصول و فروشنده مناسب است. EEPROM های موجود حدود 10 میلیون با رمیتوانند پاک شده و دوباره برنامه ریزی شوند.
RAM ( حاقظه با دسترسی تصادفی) میتوانند به صورت نامحدود پاک و نوشته شود، اما دادهها پس از خاموش شدن تراشه از دست میروند. براین اساس برای استفاده از RAM باید در هر بار بالا آمدن، کدها از کامپیوتر به تراشه بارگذاری شود. EZ- USB شرکت سیپرس برای ذخیره کدهای بنامه از RAM استفاده میکند و سختافزار ویژه و راهاندازی دارد که در هنگام اتصال تراشه، برنامه را در آن بارگذاری مینماید. همة CPU ها میتوانند از حافظة برنامه RAM با پشتیبانی باتری به منظور دخیره کدهای برنامه خود استفاده کنند. زمان دسترسی به RAM زیاد است.