تارا فایل

پاورپوینت I2C BUS


I2C BUS

فهرست :
تاریخچه
منافع تولید کننده و طراح
مقدمه ای بر I2C Bus
سخت افزار
پروتکل ارتباطی
انواع استانداردهای I2C
کاربردهای I2C

تاریخچه
پروتکل I2C در اوایل دهه 1980 توسط شرکت Philips ابداع گردید.
هدف آن در ابتدا فراهم کردن راهی ساده جهت ارتباط یک CPU با تراشه های جانبی در یک دستگاه TV بود.
I2C در حقیقت مخفف Inter IC Bus می باشد که به منظور فراهم کردن یک لینک ارتباطی بین مدارات مجتمع می باشد.

البته امروزه این پروتکل در صنعت به صورت عمومی پذیرفته شده است و کاربرد آن از سطح تجهیزات صوتی و تصویری نیز فرا تر رفته است به گونه ای که شرکتهای گوناگون مانند Xicor ، SGS Thomson ، Siemens،Intel ، T I ، Maxim ، Atmel و Analog Devices به روشهای گوناگون شروع به سازگار کردن قطعات خود با این پروتکل نمودند.

منافع طراح و تولید کننده

منافع طراح
این پروتکل سبب سهولت و سرعت در طراحی مدارات میگردد. با این پروتکل به راحتی می توان نمونه اولیه را از روی بلوک دیاگرام سیستم بدست آورد ، زیرا :
بلوک دیاگرام عملیاتی کاملا با ICهای واقعی مطابقت دارند.
رابطهای I2C به صورت on-chip وجود دارند.
هم از لحاظ نرم افزاری و هم سخت افزاری قابل کنترل است.

ICها براحتی می توانند به این باس افزوده یا کم گردند.
عیب یابی و رفع آن براحتی امکان پذیر است.
زمان طراحی نرم افزاری نیز با استفاده از Library هایی که موجود هستند کاهش می یابد.

و بطور عمومی :

مصرف بی نهایت کم جریان
امنیت در برابر نویز بسیار بالا
محدوده وسیع ولتاژ تغذیه
رنج وسیع گرمایی

منافع تولید کننده
علاوه بر منافع ذکر شده برای طراح می توان به منافع زیر برای تولید کننده نیز اشاره کرد :

دو سیمه بودن آن سبب سادگی و کوچک شدن PCBها گردید.
حذف Decoderهای آدرس.
قابلیت ارائه در Packageهای کوچک.

خلاصه ای بر I2C و مشخصات کلی آن

مقدمه :
این باس بطور فیزیکی دو خط فعال زیر را دارا می باشد:
Serial Data line (SDA)
Serial Clock line (SCL)
در این باس هر قطعه متصل به باس دارای آدرس یکتاست که هر کدام می توانند به صورت گیرنده یا فرستنده و یا هر دو عمل کنند.
همچنین در این باس می توان یک یا چند Master داشت.

در حالت چند Master بودن در این پروتکل دو بحث زیر مطرح می باشد:

Arbitration : فرآیند انتخاب یک Master برای استفاده از Bus .
Synchronization : همزمان سازی clock برای دو یا چند دستگاه متفاوت که به یک باس متصل می باشد.

Bus Hardware
این نوع باس دارای خطوط SDA و SCL به صورت دو جهته می باشد. به همین خاطر می توان به صورت داخلی یا خارجی آنها را درایو کرد.
برای جلوگیری از تاثیر نامطلوب قطعات معیوب بر روی باس از تکنیکهای
open-drain output و
open-collector output
استفاده می شود.

در این باس خطوط SDA و SCL از طریق مقاومتهای pull-up ویا current-source ها به یک منبع ولتاژ مثبت متصل می باشند.
در این صورت هنگامی که چیزی بر روی خط اتفاق نمی افتد این خطوط در وضعیت منطقی HIGH قرار دارند.

هر چند که تکنیک ذکر شده (open-collector) دارای مزیت ارائه شده بود ولی اگر باس طولانی شود تاثیراتی بر روی سرعت انتقال داده ها می گذارد.
خطوط طولانی سبب ایجاد یک ظرفیت خازنی می گردد که با یک مقاومت pull-up پسیو یک ثابت زمانی RC تولید می گردد که بر روی شکل سیگنال تاثیر خواهد گذاشت.

همچنین در سرعتهای زیاد ممکن است نویزهای سوزنی بر روی سیگنال ظاهر گردد که با توجه به منطق موجود ممکن است ایجاد خطا کند.

داده ها بر روی این باس با سرعتهای زیر قابل جابجایی می باشند:

Standard-mode: حداکثر 100 Kbit/s
ّFast-mode: حداکثر 400 Kbit/s
High Speed-mode : حداکثر 3.4 Mbit/s

محدودیت امپدانسی خط نیز 400 pf می باشد.

مشخصات کلی
رنج فرکانسی :
بسته به نوع آن تا 3.4 Mbit/s نیز کار می کند.
رنج تغذیه :
2.5 تا 5.5 ولت یا 2.7 تا 5.5 ولت و با وسایل جدید 2.3 تا 5.5 ولت و یا 3 تا 3.6 ولت
رنج دمایی:
از 40- تا 85 درجه سانتیگراد و در بعضی موارد 0 تا 70 یا 0 تا 120 درجه سانتیگراد

پینهای آدرس سخت افزاری:
معمولا سه پایه (A0, A1, A2) تهیه شده که اجازه می دهد 8 نوع از یک IC در یک باس موجود باشد و تنها با آدرس دهی از هم متمایز گردند.
Packageهای ارائه شده:
قبلا در انواع DIP ، SOP ، SSOP ارائه می شدند.
وسایل جدید فقط در packageهای SOP و TSSOP و یا همراه وسایل دیگر در TSOP و MLP ارائه می شوند.

پروتکل انتقال داده در I2C BUS

انتقال بیت :
با توجه به تکنولوژی وسایل مرتبط با I2C سطوح صفر و یک منطقی ثابت نیستند و وابسته به سطح تغذیه VDD میباشد.
هر پالس ساعت نیز برای انتقال یک بیت توسط Master تولید می گردد.
تعیین اعتبار یک Bit :
سطوح HIGH یا LOW برای SDA تنها زمانی می تواند تغییر کند که SCL در سطح LOW باشد.

وضعیتهای Start و Stop :
یک تغییر وضعیت از سطح high به low بر روی SDA وقتی که SCL در سطح high است به عنوان وضعیت START شناخته می شود.
یک تغییر وضعیت از سطح low به high بر روی SDA وقتی که SCL در سطح high است به عنوان وضعیت STOP شناخته می شود.
وضعیت Start و Stop همیشه بوسیله Master تولید می شود.

تشخیص وضعیتهای START و STOP در صورتی که وسایل متصل به باس از سخت افزار رابط بر روی خود استفاده کنند بسیار راحتتر است.
میکروکنترلر هایی که این گونه سخت افزار را ندارند باید از SDA حداقل 2 بار در هر پالس ساعت نمونه برداری کنند تا بتوانند این تغییرات را حس کنند.
تشخیص وضعیتهای Start و Stop :

تولید پالس ساعت و مسئله Arbitration

همه Master ها پالس ساعت خودشان را به منظور ارسال داده ها بر روی SDA تولید می کنند.
اما چون تنها یک خط برای clock وجود دارد بایستی از یک حالت منطقی برای همزمان سازی clock چند Master استفاده نمود.
همزمان سازی با استفاده از خاصیت wired-AND رابطهای I2C بر روی SCL انجام می گردد.

Arbitration
یک Master تنها زمانی می تواند داده هایش را بر روی SDA ارسال کند که این خط آزاد باشد.
همچنین در هر زمان تنها یک Master می تواند بر روی باس داده بفرستد.
Arbitration بر روی خط داده تنها زمانی که پالس ساعت High می باشد اتفاق می افتد.
در اینجا نیز از خاصیت wired-AND وسایل متصل به خط استفاده می شود.

بدین صورت هنگامی که یک Master سطح High را ارسال می کند در حالی که دیگر Master ها سطح low را بر روی SDA می فرستند سبب میشود که سطح خروجی داده قطع شود.
این وضعیت می تواند برای چندین بیت متوالی ادامه داشته باشد.
هنگامی که یک Master حاکمیت خود بر باس را از دست می دهد آن را رها می کند یعنی باس را در سطح High رها می کند تا تاثیری بر کار دیگر Masterها نداشته باشد.

استفاده از همزمان سازی پالس ساعت به عنوان handshake
یک receiver ممکن است در هر دو سطح بایتی یا بیتی اطلاعات را دریافت کند ولی نیاز به زمان بیشتری دارد تا یک بایت را ذخیره کند یا یک بایت جدید را برای ارسال فراهم کند.
در سطح بایتی slave ها می توانند SCL را بعد از دریافت دیتا low نگه دارند تا master به حالت انتظار وارد شود.
در سطح بیتی نیز یک میکرو کنترلر می تواند سطح low برای پالس ساعت باس را افزایش دهد تا سرعت را کاهش دهد.
Hs-mode تنها در سطح بایتی موجود است.

آدرسدهی به صورت 7 بیتی

غیر از حالتی که به general call معروف است همیشه بعد از START هفت بیت خواهیم داشت که مشخص کننده آدرس slave مورد نظر است بعد از آن نیز یک بیت کم ارزش دیگر خواهیم داشت که بیانگر جهت پیغام است :

صفر باشد : حالت write است.
یک باشد : حالت read است.

آدرس یک slave از دو قسمت ثابت و قابل برنامه ریزی تشکیل شده است که سبب می شود چندین دستگاه یکسان در یک باس داشته باشیم.

قسمت قابل برنامه ریزی مشخص کننده حداکثر این دستگاهها می باشد که این نیز به نوبه خود به حداکثر پین در دسترس بستگی دارد.

باید توجه داشت که دو دسته از آدرسهای (0000XXX (1111XXX , برای مقاصد خاص نگه داشته شده اند.

ترکیب های مختلف برای آدرس دهی

General call address
از این حالت برای آدرسدهی تمامی وسایل متصل به باس I2C استفاده می شود.
اگر وسیله ای نیاز به آدرسدهی داشته باشد بعد از این کد به عنوان slave-receiver عمل می کند.
اما بایت دوم دو حالت دارد:
هنگامی که بیت کم ارزش آن صفر باشد.
هنگامی که یک باشد.

بایت START
میکرو ها می توانند با باس به دو صورت ارتباط داشته باشند:

به کمک رابط های on-chip برای ارتباط با I2C

از طریق نرم افزار. یک میکرو اساساً بایستی به باس دسترسی داشته باشد، تعداد دسترسی های کمتر سبب می شود که بهتر بتواند کارهای داخلی خودش را انجام دهد.

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

میکروکنترلر دیگر با سرعت کم از SDA نمونه برداری می کند تا اینکه یکی از هفت بیت صفر ارسالی در این روال را تشخیص دهد سپس شروع به نمونه برداری با سرعت بالا می کند تا وضعیت Sr را بمنظور همزمان سازی مجدد تشخیص دهد.

تحولات در I2C

توسعه خصوصیات باس:
به دو دلیل زیر نیاز به توسعه از حالت استاندارد احساس گردید:

ابزارهای جدید نیاز به سرعتهای بالاتر داشتند.
حداکثر 112 حالت آدرسدهی در حالت 7 بیتی بسیار کم بود.

بنابراین تحولات زیر صورت گرفت:

ایجاد Fast-mode
ایجاد Hs-mode
آدرسدهی 10 بیتی

Fast-mode :
زمان بندی سیگنالهای SDA و SCL تطبیق داده شد.
در ورودی آنها در SDA و SCL سیستم حذف نویز سوزنی و Schmitt trigger را تعبیه کردند.
اگر تغذیه قطع شود پینهای ورودی و خروجی شناور شده و بر روی خط تاثیری ندارند.

دستگاههای pull-up خارجی باید با زمان خیز برای این باس تطبیق داده شود.

برای کمتر از 200 pf می توان از pull-up های مقاومتی استفاده کرد و برای بیشتر از آن از منابع جریان ( حداکثر 3 mA ) یا مدارات مقاومتی سوئیچینگ استفاده کرد.

Hs-mode :
دارای یک بافر خروجی open-drain برای سیگنال SDAH و ترکیبی ازمدارات open-drain pull-down، pull-up و current-source بر روی خروجی SCLH است که زمان خیز را برای SCLH کاهش می دهد. البته در هر لحظه فقط منبع جریان یک Master فعال است.

Arbitration و همزمان سازی clock وجود ندارد.
Masterها در این مد سیگنال ساعت سریال را با نسبت 1 به 2 برای سطح high به low تولید می کنند که زمانبندی را کاهش می دهد.
دارای پلهای داخلی هستند که برای اتصال SDAH و SCLH به SDA و SCL در Fast-mode استفاده می شود.

فرمت ارسال داده های سریال در Hs-mode
Hs-mode تنها بعد از وضعیت های زیر تولید می گردد :

وضعیت Start (S)
کد Master به صورت 8 بیتی (00001XXX)
بیت not-Acknowledge

Hs-mode devices at lower speed
در این حالت این ابزارها در Fast-mode به کار خود ادامه می دهند و از همان پینهای SDAH و SCLH برای این منظور استفاده می شود و پینهای SDA و SCL (در صورت وجود) برای دیگر کاربردها استفاده می شود.

Mixed speed modes on one serial bus
در این حالت از پلهای داخلی و پایه های SDA و SCL در وسایل High speed استفاده می شود.

آدرسدهی 10 بیتی

حالت 1111XXX برای این مقصود رزرو شده است .
اما باز هم تنها حالت 11110XX استفاده می شود و حالت 11111XX برای مقاصد آتی رزرو شده است.

بیت دوم نیز مانند حالت 7 بیتی شامل هفت بیت آدرس و یک بیت Read/Write می باشد.

شکلهای آتی حالات مختلف آدرسدهی 10 بیتی را نشان می دهند.

کاربردهای I2C

میکروکنترلرها
شرکت فیلیپس پایه و اساس میکرو های خود را بر معماری 80c51 بنا نهاده است.
با توجه به ساختار کوچک و ارزان این تراشه می توان از آن در اکثر سیستم های کنترلی ارزان قیمت استفاده کرد.
شرکت مذکور تراشه هایی در کاربردهای متنوع ارائه داده است.

در مجموع این تراشه ها شامل
ROM(OTP/Flash) و RAM قابل افزایش ، پورت I2C ، I/O گسترده ، ADC و… می باشند.

حافظه های قابل برنامه ریزی در قالب های مختلفی ارائه می شوند نظیر:
ISP (In-System Programmable)
IAP (In-Application Programmable)
OTP (One Time Programmable)
MTP (Multi Time Programmable)

تقریبا تمامی میکروهای فیلیپس I2C را پشتیبانی می کنند.
تعدادی هم پروتکل CANBus را پشتیبانی می کنند مانند : 87C591

لیست میکروهای فیلیپس سازگار با I2C

میکروکنترلر80C552 (PLCC-68)

CS6208
برای کاربردهای شبکه با I2C Interface بمنظور پیاده سازی شبکه های Master/Slave

ADUC831
Micro converter
12 بیت ADC/DAC
62KB Flash memory

ارتباط I2C با RS232

مثال : استفاده از میکروهای AT89C2051/AT89C4051
در ارتباط با قطعاتی با رابط I2C

RS232 & I2C servo control IC

Extender , Repeater & Hub
از جمله :
PCA9511-16 , PCA9518 , P82B715 , P82B96
که مزایای زیر را دارا هستند :
اجازه می دهند که امپدانس خط بیشتر از 400pf گردد.
طولانی شدن خط
امکان وجود منابع و سطوح منطقی ولتاژ مختلف در یک سیستم

امکان ایزولاسیون نوری برای ایمنی بیشتر
قرار دادن کارتهای بدون منبع تغذیه به خط فعال I2C
ایزوله کردن قسمتهایی از سیستم که منبع تغذیه آنها به دلایلی قطع می شود.

مثال 1 –

مثال 2 :

مثال 3 :
I2C Hot swap Buffer

مثال 4 : استفاده از کابل USB برای انتقال اطلاعات با رابط I2C
I2C Bus Extenders

I2C general purpose I/O Expanders

ارتباط باس موازی با I2C Controller

Multiplexed/Latched I2C EEPROM

مثال :

I2C Device for LED Display Control
Same as :
PCA9530-33 , PCA9550-53 , SAA1064

مثال 1 : استفاده از PCA955X

برای LED دو پایه

برای LED سه پایه

مثال 2 : Blinkers

LED Dimmers

ایجاد طیف رنگی بوسیله PCA953X

Sensors
LM75A (digital temperature sensor and thermal watch-dog)

LM82 : Remote diode & local digital temperature sensor with 2 wire interface

AD7416 : temperature sensor

CMOS Sensor-MB86S02A

Application Note Automated linearization of sensor circuits

کاربردهای متنوع

Server Management Card

Motorola handheld computer

I2C 2002-1 Evaluation Board kit


تعداد صفحات : 117 | فرمت فایل : پاورپوینت قابل ویرایش

بلافاصله بعد از پرداخت لینک دانلود فعال می شود