پروتوکل I2C چیست؟
پروتوکل I2C :
یا مدار یکپارچه ( Inter-Integrated Circuit) ، یک پروتکل ارتباطی به روش سریال ، پرکاربرد است که ارتباط بین مدارهای مجتمع (ICs) یا میکروکنترلرها را امکان پذیر می کند. این روش به دلیل سادگی، تطبیق پذیری و کارایی خود معروف است، که آن را به گزینه ای محبوب برای اتصال لوازم جانبی، حسگرها و سایر دستگاه ها در سیستم های مختلف الکترونیکی تبدیل می کند. در این مقاله، به اصول ارتباط در پروتوکل I2C ، ویژگیهای کلیدی آن میپردازیم و طیف متنوعی از کاربردهای آن را بررسی میکنیم.
آشنایی با ارتباطات I2C
برقراری ارتباط به روش I2C یک پروتکل ارتباطی سریال از نوع همزمان ، master و slave است که توسط فیلیپس Semiconductor (در حال حاضر NXP Semiconductors) طراحی شده است. پروتوکل I2C تنها از دو سیم – یک خط داده سریال (SDA) و یک خط کلاک سریال (SCL) – برای برقراری ارتباط بین دستگاه ها درگذرگاه ( باس) ارتباطی استفاده می کند.
ویژگی های کلیدی I2C
رابط دو سیم:
پروتوکل I2C از یک رابط دو سیمه، متشکل از یک خط داده دو طرفه (SDA) برای انتقال و دریافت داده ها و یک خط کلاک (SCL) برای همگام سازی انتقال داده بین دستگاه ها استفاده می کند.
معماری Master-Slave:
I2C از معماری master-slave استفاده می کند، که در آن یک یا چند دستگاه اصلی ارتباطات را در گذرگاه کنترل می کنند و چندین دستگاه Slave به دستورات Master ها پاسخ می دهند.
طرح آدرس دهی:
به هر دستگاه Slave متصل به گذرگاه I2C یک آدرس 7 بیتی یا 10 بیتی منحصر به فرد اختصاص داده می شود که به دستگاه اصلی اجازه می دهد تا با استفاده از آدرس های منحصر به فرد خود با Slave خاص ارتباط برقرار کند.
ارتباط همزمان:
ارتباط در گذرگاه I2C همزمان است، به این معنی که داده ها بر اساس زمان بندی ارائه شده توسط سیگنال ساعت (SCL) ارسال و دریافت می شوند. داده ها در قالب بایت به بایت منتقل می شوند و هر بایت با یک سیگنال تایید (ACK) همراه است.
فرآیند ارتباط I2C
فرآیند ارتباط در پروتوکل I2C معمولاً شامل مراحل زیر است:
مقداردهی اولیه:
دستگاه اصلی با ارسال یک شرط شروع (از سطح ولتاژ بالا به سطح ولتاژ پایین تغییر می کند در حالی که خط SCL هنوز یک (بالا) است) ارتباط را در گذرگاه آغاز می کند. و برای توقف خط SDA پس از اینکه خط SCL از کم به زیاد تغییر می کند از سطح ولتاژ پایین به سطح ولتاژ بالا تبدیل می شود.
آدرس دهی:
دستگاه اصلی آدرس دستگاه slave را که می خواهد با آن ارتباط برقرار کند به همراه بیت خواندن/نوشتن که جهت انتقال داده (خواندن یا نوشتن) را نشان می دهد، ارسال می کند.
انتقال داده:
هنگامی که دستگاه Slave آدرس خود را تأیید کرد، انتقال داده بین دستگاه های master و slave انجام می شود. Master در صورت نیاز بایت های داده را به ( یا ) از دستگاه Slave ارسال یا دریافت می کند.
پایان ارتباط:
پس از تکمیل انتقال داده، دستگاه اصلی یک شرط توقف (یک تغییر ولتاژ از کم به زیاد در خط SDA در حالی که خط SCL بالا است) را برای پایان دادن به ارتباط ارسال می کند.
کاربردهای پروتوکل I2C
ارتباطات در پروتوکل I2C کاربردهای گسترده ای در سیستم های الکترونیکی مختلف پیدا می کند، از جمله:
رابط حسگر:
I2C معمولاً برای ارتباط با حسگرهایی مانند سنسورهای دما، سنسورهای رطوبت، شتاب سنج ها، ژیروسکوپ ها و مغناطیس سنج ها استفاده می شود. این حسگرها اغلب دارای رابط های I2C برای ادغام آسان در سیستم های دیجیتال هستند.
اتصالات جانبی:
بسیاری از دستگاههای جانبی، از جمله نمایشگرهای LCD، نمایشگرهای OLED، درایورهای LED ، EEPROM ها و … از ارتباطات I2C برای ارتباط با میکروکنترلرها یا سایر دستگاههای میزبان استفاده میکنند.
سیستم های جاسازی شده:
I2C به طور گسترده در سیستم های طراحی شده برای ارتباط بین اجزای مختلف مانند میکروکنترلرها، سنسورها، محرک ها و ماژول های ارتباطی استفاده می شود. این امکان یکپارچه سازی و کنترل یکپارچه زیرسیستم های مختلف در یک سیستم کامل را فراهم می کند.
مدیریت سیستم:
I2C در برنامه های مدیریت سیستم، مانند طراحی و نظارت مدیریت انرژی استفاده می شود. دستگاههایی مانند تنظیمکنندههای ولتاژ، کنترلکنندههای فن و سنسورهای دما اغلب از پروتوکل I2C برای ارتباط با کنترلکنندههای سیستم یا پردازندههای مدیریتی استفاده میکنند.
لوازم الکترونیکی مصرفی:
در محصولات الکترونیکی مصرفی مانند گوشیهای هوشمند، تبلتها، دوربینهای دیجیتال و دستگاههای صوتی، I2C برای ارتباط بین اجزای مختلف مانند صفحهنمایشهای لمسی، دوربینها، کدکهای صوتی و حسگرهای نور محیط استفاده میشود.
ارتباطات در (پروتوکل) I2C یک پروتکل ارتباطی زنجیره ای همه کاره و کارآمد است که به طور گسترده در سیستم های الکترونیکی برای اتصال دستگاه ها و لوازم جانبی استفاده می شود. سادگی، رابط دو سیمه و پشتیبانی از ارتباطات چند Master ، آن را برای طیف گسترده ای از کاربردها، از رابط حسگر گرفته تا لوازم الکترونیکی مصرفی، مناسب می کند. درک اصول و کاربردهای ارتباطات در پروتوکل I2C برای مهندسان و علاقمندان به طراحی سخت افزار، توسعه و راه اندازی پروژه های الکترونیکی ضروری میباشد.