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