لینک پرداخت و دانلود *پایین مطلب*
فرمت فایل:Word (قابل ویرایش و آماده پرینت)
تعداد صفحه:29
کنترلر USB ، باید بافرهایی برای ذخیره دادههایی که دریافت میکند یا دادههایی که آماده فرستادن روی باس هستند، داشته باشد. بعضی از تراشهها مانند NET2888 محصول NetChip ، از رجیسترهای به عنوان بافر استفاده میشکند. در حالی که برخی دیگر ، از جمله EZ-USB شرکت سیپرس [1] از بخشی از حافظه داده به عنوان بافر بهره میبرند.
رجیسترهایی که دادههای رسیده یا منتقل شده را نگهداری میکنند، عموماً دارای ساختار FIFO (اولین ورودی، اولین خروجی) هستند. در هر خواندن از یک FIFO ، بایتی که بیشتر از همه در حافظه بوده است بازگردانده میشود. با هر نوشتن به روی FIFO ، بایت بعد از همه بایتهایی که در FIFO، محلی را که داده بعدی در ن قرار دارد نشان میدهد.
در تراشههای دیگر، مثل سری enCore شرکت سیپرس، بافرهای USB در حافظه داده جاسازی شدهاند و برنامه تراشه هر موقعیت را برای نوشتن یا خواندن از آن انتخاب میکند و اشارهگری که به طور خودکار افزایش یابد تا محل دادة بعدی را مشخص کند. وجود ندارد. بایتهای درون بافر فرستنده USB از پایینترین آدرس به بالاترین آدرس نوشته میشوند و بایتهای بافر دریافت به ترتیب رسیدن، از پایینترین آدرس به بالاترین آدرس ذخیره میگردند. این بافرها ساختار FIFO ندارند ولی گاهی با این نام خوانده میشوند.
برای ایجاد انتقالهای سریعتر، بعضی از تراشهها دو بافر دارند و قادرند دو مجموعه کامل داده در هر جهت را ذخیره کنند. در حالی که یک بلاک داده انتقال می یابد، برنامه تراشه میتواند بلاک داده بعدی را به بافر دیگر بنویسد. به طوری که این بلاک تا وقتی که بلاک اول فرستاده میشود آماده انتقال میگردد. در جهت دریافت نیز. بافر اضافی ما را قادر میسازد قبل از کامل شدن پردازش داده بر روی ترنزکشن قبلی توسط برنامه تراشه، ترنزکشن بعدی دریافت شود. سختافزار به صورت خودکار بین این دو بافر سئویچ میکند.
[1] - Serial Interface Engine
مقاله در مورد بافرهای داده USB