خانه / پروژه / مبانی پروتکل ارتباطی I2C

مبانی پروتکل ارتباطی I2C

به نام خدا

مبانی پروتکل ارتباطی ۱۲C

مبانی پروتکل ارتباطی 12C

 

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

مبانی پروتکل ارتباطی 12C

 

چگونگی کار کرد

در I2C داده ها به صورت پیام هایی فرستاده شده و پیام ها نیز خود به چند بخش تقسیم می شوند. هر پیام شامل یک بخش آدرس بوده، که همان آدرس باینری مربوط به اسلیو است. یک یا دو بخش مربوط به داده نیز در پیام های ارسالی وجود دارد. پیام همچنین شامل شرایط اولیه و پایانی، بیت های read/write و بیت های ACK / NACK بین هربخش از پیام می شود.

 

مبانی پروتکل ارتباطی 12C

SDA (Serial Data) =   ارسال و دریافت داده بین مستر و اسلیو

SCL (Serial Clock) =   حامل سیگنال کلاک

I2C یک پروتکل ارتباطی سریال می باشد، لذا داده ها به صورت بیت به بیت از طریق خط SDA منتقل خواهند شد.

همانند SPI، پروتکل I2C نیز به صورت همزمان می باشد، لذا بیت های خروجی با بیت های نمونه توسط سیگنال کلاک همزمان می باشند. سیگنال کلاک توسط مستر کنترل می شود.

بیشتر بخوانید...  کلاس آموزشی گام به گام رباتیک

 

 

بعد از این که فریم آدرس ارسال شد، ارسال داده می‌تواند شروع شود. مستر به تولید پالس کلاک با وقفه‌های منظم ادامه می‌دهد، و بسته به بیت R/W داده توسط مستر یا اسلیو روی SDA قرار داده‌ می‌شود. بخش داده همیشه شامل ۸ بیت بوده و بیت های باارزش تر(MSB) در ابتدا فرستاده می شوند. این بخش ها بلافاصله با بیت ACK / NACK همراه شده تا تشخیص داده شود، که داده به درستی دریافت شده است. بیت ACK قبل از اینکه داده بعدی ارسال گردد، باید توسط مستر  و یا اسلیو دریافت شود ( بستگی دارد به اینکه کدام یک داده را ارسال کرده باشند).بعد از ارسال تمامی بخش های پیام، مستر می تواند شرایط توقف را به اسلیو ارسال کند تا انتقال اطلاعات متوقف شود. شرایط پایانی در واقع تغییر ولتاژ خط SDA از حالت low به high، بعد از تغییر خط SCL به همین صورت و باقی ماندن در وضعیت high می باشد.

.

مراحل ارسال داده

 

مستر به تمامیه اسلیو های متصل شرایط شروع را می فرستد . در شکل زیر می توانید مشاهده کنید :

مبانی پروتکل ارتباطی 12C

 

مستر به هر اسلیو ۷ یا ۱۰ بیت آدرس اسلیوی که میخواهد متصل شود را می فرستد.

 

 

مبانی پروتکل ارتباطی 12C

 

هر اسلیو آدرس فرستاده شده از مستر را با آدرس خود مقایسه می کند. اگر آدرس ها مطابقت داشتند اسلیو یک بیت ACK از طریق خط sda باز می گرداند.

 

مبانی پروتکل ارتباطی 12C

 

مسرت دیتا فریم را ارسال و یا دریافت می کند

بیشتر بخوانید...  آموزش پروژه محور رسپبری پای – جلسه اول مقدمه

مبانی پروتکل ارتباطی 12C

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

 

مبانی پروتکل ارتباطی 12C

برای توقف انتقال داده ها، مستر شرایط توقف را به اسلیو ارسال می کند، به این صورت که ابتدا خط SCL و سپس خط SDA را از حالت low به حالت high تغییر می دهد.

 

مبانی پروتکل ارتباطی 12C

استفاده از یک مستر برای کنترل چند اسلیو

به دلیل اینکه ۱۲C از آدرس دهی استفاده می کند ، چند اسلیو را می توان با استفاده از یک مستر کنترل کرد.

 

 

مبانی پروتکل ارتباطی 12C

 

استفاده از چند مستر برای کنترل چند اسلیو

امکان اتصال چند مستر به یک و یا چند اسلیو  وجود دارد. در این حالت مشکل زمانی به وجود می آید که دو مستر بخواهند به طور هم زمان از یک خط SDA داده را ارسال و یا دریافت کنند. برای حل این مشکل هر کدام از مستر ها قبل از ارسال پیام باید تشخیص دهند که خط SDA در حالت low قرار دارد و یا حالت high.

 

 

مبانی پروتکل ارتباطی 12C

 

مزایا:

  • استفاده از دو سیم
  • پشتیبانی کردن از چند مستر و چند اسلیو
  • اطلاع از انتقال صحیح داده ها توسط بیت های ACK/NACK
  • ساختار سخت افزاری ساده تر نسبت به روش UART

معایب:

  • سرعت پایین تر انتقال اطلاعات نسبت به روش SPI
  • حداکثر طول داده ۸ بیت می باشد.
  • تجهیزات سخت افزاری مشکل تر برای پیاده سازی نسبت به روش SPI

درباره‌ی mjavad

همچنین بخوانید...

مبانی ارتباطی پروتکل UART

به نام خدا مبانی ارتباطی پروتکل UART در ارتباط UART دو دستگاه به طور مستقیم …

مدار RFID با استفاده از آردوینو

ساخت مدار RFID با استفاده از آردوینو

به نام خدا ساخت مدار RFID با استفاده از آردوینو در این پروژه قصد داریم …

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

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

سلام ،خوش آمدید
آیا می خواهید آموزش ها و پروژه های جدید برای شما ارسال شود؟
مشخصات خود را وارد نمایید
متشکرم
منتظر فایل های ما باشید