معرفی درگاه سریال I2C و نحوه استفاده از آن

5 دقیقه زمان مطالعه

معرفی درگاه سریال I2C

سریال I2C و درگاه آن را می‌توان برای طراحی دیجیتال قطعات الکترونیکی استفاده کرد. I2C از بهترین ویژگی‌های درگاه سریال SPI و UART استفاده می‌کند. با I2C می‌توانید چندین Slave را به یک Master واحد متصل کنید (مانند SPI) می‌توانید چندین Master داشته باشید که Slave های تکی یا چندگانه را کنترل می‌کنند. این واقعا زمانی مفید است که می‌خواهید بیش از یک میکروکنترلر از داده‌های ورودی به کارت حافظه یا نمایشگر متنی در یک LCD واحد داشته باشید.

I2C مانند ارتباط UART، فقط از دو سیم برای انتقال داده‌ها بین دستگاه‌ها استفاده می‌کند:

درگاه سریال I2C
درگاه سریال I2C
  • SDA (سریال داده) – خطی که Master و Slave برای دریافت و ارسال داده از آن استفاده می‌کنند.
  • SCL (سریال کلاک) – خطی که کلاک سیگنال را در آن حمل می‌کند.

درگاه سریال I2C در طراحی دیجیتال قطعات الکترونیکی یک درگاه ارتباطی است که در آن داده‌ها بیت به بیت از طریق یک سیم واحد منتقل می‌شود.

مانند SPI ، I2C همزمان است، بنابراین خروجی بیت‌ها با نمونه گیری از بیت‌ها توسط یک سیگنال کلاک مشترک بین Master و Slave همزمان می‌شوند. سیگنال کلاک همیشه توسط Master کنترل می‌شود.

سریال I2C چگونه کار می‌کند؟

با I2C در طراحی دیجیتال قطعات الکترونیکی همان طور که در دوره آموزش طراحی میکروکنترلرهای AVR گفته شد، داده‌ها در پیام‌ها منتقل می‌شوند. پیام‌ها به چهارچوب داده‌ها تقسیم می‌شوند. هر پیام دارای یک فریم آدرس است که حاوی آدرس باینری Slave است و یک یا چند فریم داده که حاوی داده‌های منتقل شده است. این پیام همچنین شامل شرایط شروع و توقف، بیت خواندن / نوشتن و بیت‌های ACK / NACK بین هر فریم داده است.

کارکرد و عملکرد I2C
کارکرد و عملکرد I2C

شرط شروع در درگاه سریال I2C :

خط SDA قبل از اینکه خط SCL از بالا به پایین تغییر یابد، از سطح ولتاژ بالا به سطح ولتاژ پایین سوئیچ می شود.

توقف وضعیت:

خط SDA پس از اینکه خط SCL از پایین به بالا تغییر می‌کند از سطح ولتاژ پایین به سطح ولتاژ بالا سوئیچ می‌شود.

آدرس فریم از مراحل در درگاه سریال I2C :

دنباله‌ای 7 یا 10 بیتی منحصر به فرد برای هر Slave که وقتی Master بخواهد با آن صحبت کند، Slave را مشخص می‌کند.

خواندن / نوشتن بیت:

بیت تکی مشخص می‌کند که Master در حال ارسال داده به Slave (سطح ولتاژ پایین) یا درخواست داده از آن (سطح ولتاژ بالا) است.

ACK / NACK Bit:

هر فریم در یک پیام توسط یک بیت تایید / عدم تایید دنبال می‌شود. اگر یک فریم آدرس یا فریم داده با موفقیت دریافت شد، یک بیت ACK از دستگاه دریافت کننده به فرستنده بازگردانده می‌شود.

مراحل انتقال داده‌های سریال I2C

1. Master با شروع سوئیچ خط SDA از سطح ولتاژ بالا به سطح ولتاژ پایین قبل از تعویض خط SCL از بالا به پایین، وضعیت شروع را به هر Slave متصل ارسال می‌کند:

مرحله اول انتقال داده‌های I2C
مرحله اول انتقال داده‌های I2C

2. Master به هر Slave آدرس 7 یا 10 بیتی Slave را که می‌خواهد با آن ارتباط برقرار کند، به همراه بیت خواندن / نوشتن ارسال می‌کند:

مرحله دوم انتقال داده‌های I2C
مرحله دوم انتقال داده‌های I2C

3. هر Slave آدرس ارسال شده از Master را با آدرس خود مقایسه می‌کند. اگر آدرس مطابقت داشته باشد، Slave با کشیدن خط SDA برای یک بیت، مقدار ACK را برمی‌گرداند. اگر آدرس Master با آدرس Slave مطابقت نداشته باشد، Slave خط SDA را بلند می‌کند.

مرحله سوم انتقال داده‌های I2C
مرحله سوم انتقال داده‌های I2C

4- Master فریم داده‌ها را می‌گیرد و می‌فرستد:

مرحله چهارم انتقال داده‌های I2C
مرحله چهارم انتقال داده‌های I2C

5- پس از انتقال هر فریم داده، دستگاه دریافت کننده مقدار کمی دیگر ACK را به فرستنده برمی‌گرداند تا دریافت موفقیت آمیز فریم را تایید کند.

مرحله پنجم انتقال داده‌های I2C
مرحله پنجم انتقال داده‌های I2C

6-برای متوقف کردن انتقال داده‌ها، Master با تعویض SCL بالا قبل از تعویض SDA، وضعیت توقف را به Slave می‌فرستد:

مرحله ششم انتقال داده‌های I2C
مرحله ششم انتقال داده‌های I2C

مزایا و معایب سریال I2C

در I2C موارد زیادی وجود دارد که ممکن است آن را در مقایسه با پروتکل‌های دیگر پیچیده تر جلوه دهد، اما دلایل خوبی وجود دارد که ممکن است شما بخواهید از I2C برای اتصال به یک وسیله خاص استفاده کنید یا نخواهید از آن استفاده کنید:

مزایای سریال I2C

  • فقط از دو سیم استفاده می‌کند.
  • پشتیبانی از Master های متعدد و Slave های متعدد.
  • بیت ACK / NACK تایید می‌کند که هر فریم با موفقیت منتقل می‌شود.
  • سخت افزار نسبت به UART کمتر پیچیده است
  • درگاه شناخته شده و پرکاربرد

معایب  I2C

  • سرعت انتقال داده آهسته تر از SPI
  • اندازه فریم داده به 8 بیت محدود شده است
  • به سخت افزار پیچیده تری برای پیاده سازی نسبت به SPI مورد نیاز است.

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

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