بافرهاي داده USB
كنترلر USB
، بايد بافرهايي براي ذخيره دادههايي كه دريافت ميكند يا دادههايي كه آماده
فرستادن روي باس هستند، داشته باشد. بعضي از تراشهها مانند NET2888
محصول NetChip ، از رجيسترهاي به عنوان بافر استفاده ميشكند.
در حالي كه برخي ديگر ، از جمله EZ-USB شركت سيپرس
از بخشي از حافظه داده به عنوان بافر بهره ميبرند.
رجيسترهايي كه دادههاي رسيده يا
منتقل شده را نگهداري ميكنند، عموماً داراي ساختار FIFO
(اولين ورودي، اولين خروجي) هستند. در هر خواندن از يك FIFO
، بايتي كه بيشتر از همه در حافظه بوده است بازگردانده ميشود. با هر نوشتن به روي
FIFO ، بايت بعد از همه بايتهايي كه در FIFO، محلي را كه داده بعدي در ن قرار دارد نشان ميدهد.
در تراشههاي ديگر، مثل سري enCore شركت سيپرس، بافرهاي USB
در حافظه داده جاسازي شدهاند و برنامه تراشه هر موقعيت را براي نوشتن يا خواندن
از آن انتخاب ميكند و اشارهگري كه به طور
خودكار افزايش يابد تا محل دادة بعدي را مشخص كند. وجود ندارد. بايتهاي
درون بافر فرستنده USB از پايينترين
آدرس به بالاترين آدرس نوشته ميشوند و بايتهاي بافر دريافت به ترتيب رسيدن، از
پايينترين آدرس به بالاترين آدرس ذخيره ميگردند. اين بافرها ساختار FIFO ندارند ولي گاهي با اين نام خوانده ميشوند.
براي ايجاد انتقالهاي سريعتر، بعضي از
تراشهها دو بافر دارند و قادرند دو مجموعه كامل داده در هر جهت را ذخيره كنند. در
حالي كه يك بلاك داده انتقال مي يابد، برنامه تراشه ميتواند بلاك داده بعدي را به
بافر ديگر بنويسد. به طوري كه اين بلاك تا وقتي كه بلاك اول فرستاده ميشود آماده
انتقال ميگردد. در جهت دريافت نيز. بافر اضافي ما را قادر ميسازد قبل از كامل
شدن پردازش داده بر روي ترنزكشن قبلي توسط برنامه تراشه، ترنزكشن بعدي دريافت شود.
سختافزار به صورت خودكار بين اين دو بافر سئويچ ميكند.
CPU
واحد پردازش مركزي (CPU) يك تراشه كنترلي USB
، با اجراي دستورات كدهايي كه در تراشه ذخيره شده است، فعاليتهايي تراشه را كنترل
ميكند. هر CPU از مجموعه دستوراتي پشتيباني ميكند كه شامل
دستورات زبان ماشين براي انتقال داده، انجام عملوندهاي منطقي، و پرشهاي برنامه مي
باشند. اين مجموعه دستورات همچنين CPU را قادر ميسازد
كه با SIE ارتباط برقرار كند. CPU
ممكن است ساختاري بر اساس يك ميكروكنترلر عمومي مانند 8051 داشته باشد يا اينكه
فقط به صورت ويژه براي استفاده در دستگاههاي USB
طراحي شده باشد.
تراشههايي كه cpu
ندارند ممكن است مجموعه دستوراتي وابسته به ارتباطهاي USB
داشته باشند يا فقط از يك سري رجيستر براي ذخيره دادههاي USB
و اطلاعات پيكربندي استفاده كنند. اين تراشهها مسيري را براي اضافه كردن
قابليتهاي USB به هر ميكروكنترلر خارجي ايجاد مي كنند.
حافظه برنامه
حافظه برنامه كدهايي را كه CPU اجرا ميكند نگهداري ميكند. اين حافظه ممكن
است روي تراشه CPU يا تراشهاي مجزا باشد.
حافظه برنامه ممكن است از هر نوع
حافظهاي استفاده كند: Flash EPRON, EEROM, EPOM, 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 هاي قابل پاك شدن به طريقه الكتريكي) نيز به
ماوراي بنفش و ولتاژ ويژه برنامهريزي كه EPROM ها نياز
دارند. احتياج ندارد. EEPROM ها زمان
دسترسي طولانيتري نسبت به Flash EPROM دارند. EEPROM ها با هر دو مدار واسط موازي كه توسط EPROMها و Flsh EPROM
ها استفاده ميشود و واسط سريال كه در ميكروواير، c
2 I و spi كاربرد دارد،
مورد استفاده قرار ميگيرد. EEPROMهاي سريال
براي ذخيره مقدار دادة كمي كه گهگاه تغيير مييابند از جمله دادههاي پيكربندي،
شماره مشخصههاي محصول و فروشنده مناسب
است. EEPROM هاي موجود حدود 10 ميليون بار مي توانند پاك
شده و دوباره برنامهريزي شوند.
RAM (حافظه با دسترسي تصادفي) ميتوانند به صورت
نامحدود پاك و نوشته شود، اما دادهها پس از خاموش شدن تراشه از دست ميروند. براين
اساس براي استفاده از RAM بايد در هر
بار بالا آمدن، كدها از كامپيوتر به تراشه بارگذاري شود. EZ-USB
شركت سيپرس براي ذخيره كدهاي برنامه از RAM استفاده مي
كند و سختافزار ويژه و راهاندازي دارد كه در هنگام اتصال تراشه، برنامه را در آن
بارگذاري مينمايد. همة CPUها مي
توانند از حافظة برنامه RAM با پشتيباني
باتري به منظور ذخيره كدهاي برنامه خود استفاده كنند. زمان دسترسي به RAM زياد است.