سیستم حفاظتی، امنیتی و رفاهی
درب های اتوماتیک
الکترونیک
سیستم های مخابراتی
سریال I2C و درگاه آن را میتوان برای طراحی دیجیتال قطعات الکترونیکی استفاده کرد. I2C از بهترین ویژگیهای درگاه سریال SPI و UART استفاده میکند. با I2C میتوانید چندین Slave را به یک Master واحد متصل کنید (مانند SPI) میتوانید چندین Master داشته باشید که Slave های تکی یا چندگانه را کنترل میکنند. این واقعا زمانی مفید است که میخواهید بیش از یک میکروکنترلر از دادههای ورودی به کارت حافظه یا نمایشگر متنی در یک LCD واحد داشته باشید.
I2C مانند ارتباط UART، فقط از دو سیم برای انتقال دادهها بین دستگاهها استفاده میکند:
درگاه سریال I2C در طراحی دیجیتال قطعات الکترونیکی یک درگاه ارتباطی است که در آن دادهها بیت به بیت از طریق یک سیم واحد منتقل میشود.
مانند SPI ، I2C همزمان است، بنابراین خروجی بیتها با نمونه گیری از بیتها توسط یک سیگنال کلاک مشترک بین Master و Slave همزمان میشوند. سیگنال کلاک همیشه توسط Master کنترل میشود.
با I2C در طراحی دیجیتال قطعات الکترونیکی همان طور که در دوره آموزش طراحی میکروکنترلرهای AVR گفته شد، دادهها در پیامها منتقل میشوند. پیامها به چهارچوب دادهها تقسیم میشوند. هر پیام دارای یک فریم آدرس است که حاوی آدرس باینری Slave است و یک یا چند فریم داده که حاوی دادههای منتقل شده است. این پیام همچنین شامل شرایط شروع و توقف، بیت خواندن / نوشتن و بیتهای ACK / NACK بین هر فریم داده است.
خط SDA قبل از اینکه خط SCL از بالا به پایین تغییر یابد، از سطح ولتاژ بالا به سطح ولتاژ پایین سوئیچ می شود.
خط SDA پس از اینکه خط SCL از پایین به بالا تغییر میکند از سطح ولتاژ پایین به سطح ولتاژ بالا سوئیچ میشود.
دنبالهای 7 یا 10 بیتی منحصر به فرد برای هر Slave که وقتی Master بخواهد با آن صحبت کند، Slave را مشخص میکند.
بیت تکی مشخص میکند که Master در حال ارسال داده به Slave (سطح ولتاژ پایین) یا درخواست داده از آن (سطح ولتاژ بالا) است.
هر فریم در یک پیام توسط یک بیت تایید / عدم تایید دنبال میشود. اگر یک فریم آدرس یا فریم داده با موفقیت دریافت شد، یک بیت ACK از دستگاه دریافت کننده به فرستنده بازگردانده میشود.
1. Master با شروع سوئیچ خط SDA از سطح ولتاژ بالا به سطح ولتاژ پایین قبل از تعویض خط SCL از بالا به پایین، وضعیت شروع را به هر Slave متصل ارسال میکند:
2. Master به هر Slave آدرس 7 یا 10 بیتی Slave را که میخواهد با آن ارتباط برقرار کند، به همراه بیت خواندن / نوشتن ارسال میکند:
3. هر Slave آدرس ارسال شده از Master را با آدرس خود مقایسه میکند. اگر آدرس مطابقت داشته باشد، Slave با کشیدن خط SDA برای یک بیت، مقدار ACK را برمیگرداند. اگر آدرس Master با آدرس Slave مطابقت نداشته باشد، Slave خط SDA را بلند میکند.
4- Master فریم دادهها را میگیرد و میفرستد:
5- پس از انتقال هر فریم داده، دستگاه دریافت کننده مقدار کمی دیگر ACK را به فرستنده برمیگرداند تا دریافت موفقیت آمیز فریم را تایید کند.
6-برای متوقف کردن انتقال دادهها، Master با تعویض SCL بالا قبل از تعویض SDA، وضعیت توقف را به Slave میفرستد:
در I2C موارد زیادی وجود دارد که ممکن است آن را در مقایسه با پروتکلهای دیگر پیچیده تر جلوه دهد، اما دلایل خوبی وجود دارد که ممکن است شما بخواهید از I2C برای اتصال به یک وسیله خاص استفاده کنید یا نخواهید از آن استفاده کنید:
دیدگاهتان را بنویسید