I2C Protocol پیچیدگی های خاص بخش 2: گمشده شروع

این 2 در یک سری از مقالات در بیشتر جنبه های ظریف از پروتکل I2C (که پوشش TWI و SMBus پیاده سازی و همچنین). در مقاله قبلی ما در مورد پایه سخت افزار و نرم افزار روش برای پیاده سازی پشتیبانی از I2C به عنوان یک استاد و یا به عنوان یک برده. این مقاله به بحث در مورد از دست رفته شروع خطا بیماری است.

آنچه که یک “نرمال” شروع کنم ؟

هر I2C مشخصات شروع تعریف شده است به عنوان یک سقوط SDA خط در حالی که SCL بالا باقی می ماند. این تئوری می تواند رخ دهد در هر نقطه در طول یک انتقال و باید تنظیم مجدد تمام I2C برده دستگاه (و کارشناسی ارشد و همچنین در چند استاد محیط) برای آماده پذیرش یک برده آدرس انتقال است. البته داشتن این رخ می دهد تحت شرایطی غیر از یک اتوبوس بیکار بیماری و یا در حالی که در انتظار یک متوقف است و احتمال خطا (غیر منتظره شروع); این خواهد بود مورد بحث در مقاله بعدی.

آنچه که یک “از دست رفته” شروع کنم ؟

از دست رفته شروع بیماری می تواند رخ دهد اگر زمان, اتوبوس, مجوز دولت یا یک شروع و یا یک تکرار به عنوان شروع دولت بعدی اما به جای آن می بیند سقوط SCL (با SDA بودن یا بالا و یا پایین اما به طور کلی آن بالا خواهد بود). قبلی شرایط عبارتند از: (a) اتوبوس بیکار به دنبال یک شروع; (ب) یک ناک داشتن فرستاده شده توسط یک دستگاه برده و پس از ادامه عملیات به دنبال تکرار شروع یا (c) یک ناک داشتن فرستاده شده توسط استاد پس از یک عملیات نوشتن و پس از تکرار شروع می شود. در مورد یک ACK داشتن فرستاده شده توسط هر استاد و یا آن را ممکن است برای تشخیص ‘از دست رفته’ شروع پس از یک شروع و یا تکرار شروع لازم نیست تحت این شرایط است.

با تعریف یک اتوبوس بیکار وضعیت تنها می تواند وارد و پس از یک توقف صادر شده است (اگر چه در راه اندازی یک بیکار بیماری معمولا ممکن است فرض پس از استاد مقداردهی اولیه). در اتوبوس بیکار SDA و SCL تعریف شده به عنوان در هر دو بالا است. تولید از دست رفته شروع خطا در این مورد نیاز به SCL به سقوط در حالی که SDA بالا باقی می ماند. این سوال می تواند خواسته است که آن را ممکن است برای بازیابی داده های معتبر حتی در این سناریو ؟ در I2C سقوط SCL نشان می دهد که فرستنده (یا استاد یا برده) هم اکنون می توانید پیشبرد به بعد داده های کمی و به روز رسانی خط SDA. با اين وجود قبلی داده های معتبر بیت. برده, دستگاه باید انتظار می رود به چشم پوشی SCL فعالیت تا زمانی معتبر شروع به دیده می شود به عنوان برده باید قبول برده آدرس بدون مدرک معتبر شروع قبل از آن.

پس از ناک وضعیت اتوبوس بعدی دولت باید یا توقف و یا یک تکرار شروع می شود. اگر فعالیت دیده می شود در SCL پس از ناک آن می توان فرض کرد که یک تکرار شروع به از دست رفته است, پس از یک توقف صادر نکرده (و در نتیجه اتوبوس باقی مانده تحت کنترل زمان کارشناسی ارشد). برده دستگاه به احتمال زیاد نمی خواهد درمان اولین بایت پس از ناک به عنوان نشانی از یک شروع و یا تکرار شروع لازم است برای آماده سازی دستگاه برده به قبول یک آدرس جدید. این سوال که چگونه در حال حاضر فعال, برده, در پاسخ به سایر مشکلات ناسازگار بودن پس از یک ناک است که دستگاه وابسته است اما هر گونه اطلاعات ارائه شده به طور کلی باید به عنوان نامعتبر است.

مقاله بعدی در این سری خواهد شد در تمرکز از دست رفته جلوگیری از خطا. با تشکر برای خواندن!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *