در این پروژه نحوه اتصال چندین دستگاه I 2 C را به یک میکروکنترلر آردوینو نشان خواهیم داد.
گذرگاه I 2 C گذرگاهی است که ارتباط دو طرفه پرسرعت بین دستگاه ها را در حالی که از حداقل تعداد پین های ورودی/خروجی برای تسهیل ارتباط استفاده می کند، امکان پذیر می کند.
یک گذرگاه I 2 C توسط یک دستگاه اصلی (معمولاً یک میکروکنترلر) کنترل می شود و حاوی یک یا چند دستگاه Slave است که اطلاعات را از دستگاه اصلی دریافت می کند.
پروتکل I 2 C توسط فیلیپس در اوایل دهه 1980 ایجاد شد و در دهه 1990 استاندارد و به طور گسترده پذیرفته شد. این پروتکل به پروتکل "دو سیم" معروف است زیرا از 2 خط برای ارتباط استفاده می شود. این 2 خط خط ساعت و خط داده هستند.
پروتکل I 2 C می تواند از چندین دستگاه استفاده کند که همگی خطوط ارتباطی یکسانی دارند: یک سیگنال ساعت (SCL) و یک خط داده دو طرفه که برای ارسال اطلاعات به عقب و جلو بین master و slave (SDA) استفاده می شود.
برای کار، 2 خط I 2 C، ساعت و خطوط داده، به مقاومت های کششی به منبع ولتاژ مثبت نیاز دارند.
گذرگاه I 2 C به چندین دستگاه Slave اجازه می دهد تا خطوط ارتباطی را با یک دستگاه اصلی به اشتراک بگذارند. آردوینو به عنوان دستگاه اصلی عمل می کند. مستر اتوبوس مسئول شروع تمام ارتباطات است. دستگاه های برده نمی توانند ارتباطات را آغاز کنند. آنها فقط به درخواست هایی که توسط دستگاه اصلی ارسال می شوند پاسخ می دهند. این مانع از تلاش چندین دستگاه برده برای برقراری ارتباط در یک چیز می شود و باعث ایجاد پیام های مخدوش می شود.
هنگامی که یک فرمان یا درخواست توسط دستگاه اصلی ارسال می شود، توسط تمام دستگاه های Slave در اتوبوس دریافت می شود. هر دستگاه I 2 C یک آدرس 7 بیتی یا شماره شناسه منحصر به فرد دارد. هنگامی که ارتباط توسط دستگاه اصلی آغاز می شود، شناسه دستگاه منتقل می شود. دستگاههای برده I 2C به دادههای موجود در اتوبوس تنها زمانی واکنش نشان میدهند که به شماره شناسه آنها کشیده شود. از آنجایی که همه دستگاه ها تمام داده های ارسال شده توسط دستگاه اصلی را دریافت می کنند، هر دستگاه باید یک شماره شناسه منحصر به فرد داشته باشد تا Master بتواند با دستگاه Slave خاصی صحبت کند.
برخی از دستگاههای I 2 C دارای آدرسهای قابل انتخاب هستند، در حالی که برخی دیگر از سازنده با یک آدرس ثابت میآیند.
نمونه ای از دستگاه I 2 C که آدرس های ثابتی دارد سنسور دمای TC74 است. این بدان معنی است که آدرس ها توسط سازنده ثابت شده است. با این حال، فقط به دلیل رفع مشکل به این معنی نیست که نمی توانید چندین سنسور TC74 را به هم متصل کنید. با خرید این آی سی با هشت شماره شناسه مختلف، می توان سنسورهای احتمالی را به باس I 2 C متصل کرد. بنابراین می توانید تا هشت مورد از آنها را در یک اتوبوس متصل کنید. هر یک از 8 خط دارای آدرس های مختلف است.
سایر I 2 C، مانند AD7414 و AD7415، دارای پین های انتخاب آدرس (AS) هستند که به شما امکان می دهد آدرس I 2 C دستگاه را پیکربندی کنید.
مراحل اساسی برای کنترل هر دستگاه I 2 C به شرح زیر است.
- دستگاه Master یک بیت شروع ارسال می کند
- Master آدرس برده 7 بیتی دستگاه برده ای را که می خواهد با آن صحبت کند ارسال می کند
- Master بسته به اینکه میخواهد دادهها را در ثبات دستگاه I2 C بنویسد یا میخواهد از یکی از ثباتهای دستگاه I2 C بخواند، بیت خواندن ( 1) یا نوشتن (0) را ارسال میکند.
- سپس دستگاه Slave با یک بیت "تأیید" یا ACK پاسخ می دهد (کم منطقی)
- در حالت نوشتن، Master هر بار 1 بایت اطلاعات ارسال می کند و Slave با ACK پاسخ می دهد. در حالت خواندن، Master هر بار 1 بایت اطلاعات دریافت می کند و پس از هر بایت یک ACK برای Slave ارسال می کند.
- هنگامی که ارتباط کامل شد، استاد یک بیت توقف ارسال می کند
اجزای مورد نیاز