I2C توسط فیلیپس در دهه 1980 توسعه یافته است و یکی از رایج ترین پروتکل های ارتباطی سریال در الکترونیک است. I2C ارتباطات بین اجزای الکترونیکی یا IC به IC را فراهم می کند، اینکه آیا اجزاء در همان PCB هستند یا از طریق یک کابل متصل شده اند. ویژگی کلیدی I2C توانایی داشتن تعداد زیادی اجزای در یک اتوبوس ارتباطی تنها با دو سیم است که باعث می شود I2C مناسب برای برنامه های کاربردی است که به سادگی نیاز دارند و هزینه کمتری نسبت به سرعت دارند.
مرور کلی پروتکل I2C
I2C یک پروتکل ارتباطی سریال است که فقط نیاز به دو خط سیگنال دارد که برای ارتباط بین تراشه ها در PCB طراحی شده است. ابتدا I2C برای ارتباط با 100 کیلوبایت طراحی شده است، اما سرعت انتقال داده ها در طول سال ها برای رسیدن به سرعت تا 3.4Mbit توسعه یافته است. پروتکل I2C به عنوان یک استاندارد رسمی ایجاد شده است که برای سازگاری خوب بین پیاده سازی I2C و سازگاری خوب عقب مانده فراهم شده است.
سیگنال های I2C
پروتکل I2C تنها از دو خط سیگنال دو جهته برای برقراری ارتباط با تمام دستگاه های موجود در I2C استفاده می کند. دو سیگنال استفاده شده عبارتند از:
- خطی سریال (SDL)
- ساعت داده سریال (SDC)
دلیل اینکه I2C می تواند فقط دو سیگنال را برای ارتباط با تعدادی از لوازم جانبی استفاده کند، این است که چگونه ارتباط در طول اتوبوس در حال انجام است. هر ارتباطی I2C با یک آدرس 7 بیتی (یا 10 بیتی) شروع می شود که آدرس مکانی را فراخوانی می کند، بقیه ارتباطات به معنای دریافت ارتباط است. این به دستگاه های متعدد در اتوبوس I2C اجازه می دهد نقش اصلی دستگاه را به عنوان نیاز به سیستم دیکته کند. برای جلوگیری از برخورد های ناشی از برخورد، پروتکل I2C شامل قابلیت تشخیص داوری و برخورد است که اجازه ارتباط صاف در طول اتوبوس را می دهد.
مزایا و محدودیت ها
به عنوان یک پروتکل ارتباطی، I2C دارای مزایایی است که بسیاری از آن ها انتخاب خوبی برای بسیاری از برنامه های طراحی جاسازی شده است. I2C مزایای زیر را به ارمغان می آورد:
- I2C تنها نیاز به دو خط سیگنال دارد
- نرخ انتقال اطلاعات انعطاف پذیر
- هر دستگاه در اتوبوس به طور مستقل قابل آدرس گیری است
- دستگاه ها دارای یک رابط ساده استاد / فرعی هستند
- I2C قادر به اداره ارتباطات چندگانه با ارائه دادرسی و تشخیص برخورد است
- ارتباط طولانی تر از SPI
با تمام این مزایا، I2C همچنین دارای محدودیت هایی است که ممکن است لازم باشد در اطراف آنها طراحی شود. مهمترین محدودیت های I2C عبارتند از:
- از آنجا که تنها 7 بیت (یا 10 بیت) برای آدرس دستگاه در دسترس هستند، دستگاههای موجود در همان اتوبوس میتوانند همان آدرس را به اشتراک بگذارند. بعضی از دستگاه ها قادر به تنظیم چند بیت آخر آدرس می باشند، اما این هنوز محدودیت دستگاه هایی را در همان اتوبوس قرار می دهد.
- فقط چند محدودیت ارتباطی در دسترس هستند و بسیاری از دستگاه ها سرعت انتقال را پشتیبانی نمی کنند. پشتیبانی جزئی برای هر سرعت در اتوبوس لازم است برای جلوگیری از ورود دستگاه های کندتر به انتقال جزئی که باعث بروز مشکلات عملیاتی می شود.
- طبیعت مشترک اتوبوس I2C می تواند کل کل اتوبوس را هنگامی که یک دستگاه در اتوبوس متوقف می شود، منجر شود. دوچرخه سواری برق به اتوبوس می تواند برای راه اندازی مجدد اتوبوس و بازگرداندن عملیات مناسب استفاده شود.
- از آنجایی که دستگاه ها می توانند سرعت ارتباط خود را تنظیم کنند، دستگاه های کارکردی کندتر می توانند عملکرد دستگاه های سریعتر سرعت را تاخیر دهند.
- I2C با توجه به توپولوژي بازيابي خطوط ارتباطي، قدرت بيشتري نسبت به ساير مسيرهاي ارتباطي پيچيده را به خود مي گيرد.
- محدودیت های اتوبوس I2C معمولا تعداد دستگاه های موجود در یک اتوبوس را به حدود دوازده دستگاه محدود می کند.
برنامه های کاربردی
اتوبوس I2C یک گزینه عالی برای برنامه های کاربردی است که نیاز به هزینه کم و ساده دارد، نه سرعت بالا. برای مثال، خواندن حافظه های خاصی از حافظه، دسترسی به DAC ها و ADC ها، حسگرهای خواندن ، انتقال و کنترل اقدامات کارگردان کاربر، خواندن سنسورهای سخت افزاری و برقراری ارتباط با میکروکنترلر های متعدد، استفاده مشترک از پروتکل ارتباطات I2C است.