لینک باکس وبلاگ پر بازدید ترین لینک باکس ایران و لینک باکس منتخب
لینک باکس وبلاگ پر بازدید ترین لینک باکس ایران و لینک باکس منتخب
سجاد ( سه شنبه 87/2/31 :: ساعت 4:47 عصر)
I2C مخفف کلمه Inter Integrated Circuit است و یک پروتکل ارتباطی سریال بین مدارات مجتمع می باشد. همچنین نام دیگر آن TWI(Two Wire Interface) می باشد. از این پروتکل برای ارتباط میکروکنترلر و وسایل جانبی نظیر حافظه ها ، سنسورهای دما و ... استفاده می شود.
I2C مخفف کلمه Inter Integrated Circuit است و یک پروتکل ارتباطی سریال بین مدارات مجتمع می باشد. همچنین نام دیگر آن TWI(Two Wire Interface) می باشد. از این پروتکل برای ارتباط میکروکنترلر و وسایل جانبی نظیر حافظه ها ، سنسورهای دما و ... استفاده می شود.
این ارتباط تنها از طریق دو سیم برقرار می شود: SDA (Serial Data) و SCL (Serial Clock) .
هر دستگاهی که از طریق این پروتکل کار می کند یک آدرس 7بیتی منحصر به فرد دارد. 4 بیت بالا ثابت بوده و نشان دهنده نوع وسیله هستند به عنوان مثال کد 1010 نشان دهنده EEPROM می باشد. سه بیت کم ارزش، آدرس دستگاه جانبی می باشد.با این نوع آدرس دهی می توان تا 8 وسیله یکسان و 128 وسیله جانبی را از طریق یک پورت I2C به میکروکنترلر وصل کرد.
آدرس I2C در بایت اول فرستاده می شود که بیت کم ارزش بایت اول تقاضای خواندن و یا نوشتن master را نشان می دهد. 0 برای نوشتن و 1 برای خواندن.
در اینجا دستگاهی که اطلاعات را میفرستد Master و دستگاهی که اطلاعات را میگیرد Slave نامیده میشود. Master با فرستادن یک سیگنال بر روی خط SDA انتقال اطلاعات را آغاز و با فرستادن سیگنالی دیگر بر روی همین خط انتقال اطلاعات را متوقف می کند. در هنگام ارسال سیگنالهای Start و Stop سیگنال SCL یک میباشد. هنگامی که Master انتقال اطلاعات را آغاز کرد بایت Device address را در Slave مینویسد. Slave یک بیت Acknowledge بعد از دریافت اطلاعات خواهد فرستاد.
سخت افزار:
EEPROM مدل AT24C32 و میکروکنترلر مدل AT2313 وصل شده است. همچنین از یک LCD برای نشان دادن اطلاعات استفاده شده است. AT2313 دارای 4096 بایت حافظه است. SCL و SDA به پین های D.0 و D.1 وصل شده اند.
نرم افزار:
از کامپایلر BASCOM-AVR برای برنامه نویسی استفاده شده است. در زیر فرمانهای این کامپایلر آورده شده است:
در این نرم افزار شما ابتدا باید پورتهای استفاده شده برای SDA و SCL را Configure کرد. سپس برای انتخاب EEPROMی که متصل شده آدرس مورد نظر را ارسال کرد. سپس با فرستادن دو بایت به EEPROM آدرس مورد نظر برای نوشتن را انتخاب کرده و در نهایت دیتای مورد نظر را نوشت.
در زیر کد این برنامه را خواهید دید. در این برنامه مقدار متغیر D_wr در آدرس صفر EEPROM نوشته شده و سپس بایت صفر از EEPROM خوانده شده و در متغییر D_rd نوشته می شود و در LCD نمایش داده میشود.
******************************************************************* |