I2C بس پروٹوکول ٹیوٹوریل ، درخواستوں کے ساتھ انٹرفیس

مسائل کو ختم کرنے کے لئے ہمارے آلے کو آزمائیں





آج کل پروٹوکول ایک اہم کردار ادا کرتا ہے ایمبیڈڈ سسٹم ڈیزائن . پروٹوکولز میں جانے کے بغیر ، اگر آپ مائکروکانٹرولر کی پردیی خصوصیات کو بڑھانا چاہتے ہیں تو ، پیچیدگی اور بجلی کی کھپت میں اضافہ ہوگا۔ مختلف قسم کے بس پروٹوکول دستیاب ہیں جیسے یو ایسارٹ ، ایس پی آئی ، کین ، I2C بس پروٹوکول ، وغیرہ ، جو دو سسٹم کے مابین ڈیٹا کی منتقلی کے لئے استعمال ہوتے ہیں۔

I2C پروٹوکول

I2C بس کیا ہے؟




دو یا دو سے زیادہ آلات کے مابین معلومات کی ترسیل اور رسائ کے لئے ایک مواصلاتی راستہ درکار ہوتا ہے جسے بس سسٹم کہا جاتا ہے۔ I2C بس ایک دو طرفہ دو وائرڈ سیریل بس ہے جو مربوط سرکٹس کے مابین ڈیٹا منتقل کرنے کے لئے استعمال ہوتی ہے۔ I2C کا مطلب ہے 'انٹر انٹیگریٹڈ سرکٹ'۔ فلپس کے سیمیکمڈکٹرز نے اسے پہلی بار 1982 میں متعارف کرایا تھا۔ I2C بس میں تین ڈیٹا کی منتقلی کی رفتار ہوتی ہے جیسے معیاری ، تیز رفتار اور تیز رفتار موڈ۔ I2C بس 7 بٹ اور 10 بٹ ایڈریس اسپیس ڈیوائس کی حمایت کرتی ہے اور اس کا آپریشن کم وولٹیج سے مختلف ہے۔

I2c بس پروٹوکول

I2c بس پروٹوکول



I2C سگنل لائنز

I2C سگنل لائنز

I2C سگنل لائنز

آئی 2 سی ایک سیریل بس پروٹوکول ہے جس میں دو سگنل لائنز شامل ہیں جیسے ایس سی ایل اور ایس ڈی ایل لائنیں جو آلات کے ساتھ بات چیت کے ل used استعمال ہوتی ہیں۔ ایس سی ایل کا مطلب ایک ’سیریل کلاک لائن‘ ہے اور یہ اشارہ ہمیشہ ’ماسٹر ڈیوائس‘ کے ذریعہ چلتا ہے۔ ایس ڈی ایل کا مطلب ہے ’سیریل ڈیٹا لائن‘ ، اور یہ اشارہ ماسٹر یا I2C پیریفیریلز کے ذریعہ چلتا ہے۔ یہ دونوں ایس سی ایل اور ایس ڈی ایل لائنیں کھلی نالی کی حالت میں ہیں جب آئی 2 سی پردییوں کے مابین کوئی منتقلی نہیں ہوتی ہے۔

کھلی ڈرین آؤٹ پٹس


کھلی نالی ہے FET ٹرانجسٹر کے لئے تصور جس میں ٹرانجسٹر کا ڈرین ٹرمینل کھلی حالت ہے۔ ماسٹر ڈیوائس کے ایس ڈی ایل اور ایس سی ایل پنوں کو کھلی حالت میں ٹرانجسٹروں کے ساتھ ڈیزائن کیا گیا ہے ، لہذا ڈیٹا کی منتقلی اسی وقت ممکن ہے جب یہ ٹرانجسٹر چلائے جائیں۔ لہذا ، یہ لائنیں یا ڈرین ٹرمینلز کھنچوانے کے موڈ کے ل V وی سی سی سے مکمل پل اپ ریزسٹرس سے منسلک ہیں۔

I2C انٹرفیسز

بہت غلام ڈیوائسز کو مائکرو قابو پایا جاتا ہے ان دونوں کے مابین معلومات کی منتقلی کے لئے I2C سطح کی شفٹر IC کے ذریعے I2C بس کی مدد سے۔ I2C پروٹوکول زیادہ سے زیادہ 128 ڈیوائسز کو مربوط کرنے کے لئے استعمال ہوتا ہے جو سارے ماسٹر یونٹ کے ایس سی ایل اور ایس ڈی ایل لائنوں کے ساتھ ساتھ غلام ڈیوائسز کے ساتھ بات چیت کے لئے جڑے ہوئے ہیں۔ یہ ملٹی ماسٹر مواصلات کی حمایت کرتا ہے ، جس کا مطلب ہے کہ بیرونی آلات کو بات چیت کرنے کے لئے دو ماسٹر استعمال کیے جاتے ہیں۔

I2C ڈیٹا کی منتقلی کے نرخ

I2C پروٹوکول تین طریقوں کو چلاتا ہے جیسے: فاسٹ موڈ ، ہائی اسپیڈ موڈ اور معیاری وضع جس میں معیاری موڈ ڈیٹا کی رفتار 0 ہ ہرٹٹ سے 100 ہ ہرٹز تک ہوتی ہے ، اور فاسٹ موڈ ڈیٹا 0Hz سے 400 KHz اسپیڈ اور 10 کے ساتھ ہائی اسپیڈ موڈ کے ساتھ منتقل کرسکتا ہے۔ KHz سے 100KHz۔ 9 بٹ ڈیٹا ہر ٹرانسفر کے لئے بھیجا جاتا ہے جس میں ٹرانسمیٹر MSB کے ذریعہ 8 بٹس ایل ایس بی کو بھیجے جاتے ہیں ، اور 9 واں بٹ وصول کنندہ کے ذریعہ بھیجا گیا ایک اعتراف بٹ ہے۔

I2C ڈیٹا کی منتقلی کے نرخ

I2C ڈیٹا کی منتقلی کے نرخ

I2C مواصلات

I2C بس پروٹوکول عام طور پر ماسٹر اور غلام مواصلات میں استعمال ہوتا ہے جس میں ماسٹر کو 'مائکروکونٹرولر' کہا جاتا ہے ، اور اس غلام کو دیگر آلات جیسے ADC ، EEPROM ، DAC اور ایمبیڈڈ سسٹم میں ملتے جلتے آلات کہا جاتا ہے۔ غلام ڈیوائسز کی تعداد ماسٹر ڈیوائس سے I2C بس کی مدد سے منسلک ہوتی ہے ، جس میں ہر غلام اس سے بات کرنے کے لئے ایک انوکھا پتے پر مشتمل ہوتا ہے۔ غلام کو ماسٹر ڈیوائس پر بات چیت کرنے کے لئے درج ذیل اقدامات استعمال کیے گئے ہیں۔

مرحلہ نمبر 1: سب سے پہلے ، ماسٹر ڈیوائس تمام غلام آلات کو مطلع کرنے کے لئے شروعاتی شرط جاری کرتا ہے تاکہ وہ سیریل ڈیٹا لائن پر سنیں۔

مرحلہ 2: ماسٹر ڈیوائس ٹارگٹ غلام ڈیوائس کا پتہ بھیجتا ہے جس کا موازنہ اسویل ڈیوائس کے تمام پتوں کے ساتھ کیا جاتا ہے جیسا کہ ایس سی ایل اور ایس ڈی ایل لائنوں سے منسلک ہوتا ہے۔ اگر کوئی میچ کرتا ہے تو اس کا آلہ منتخب کیا جاتا ہے ، اور باقی تمام آلات ایس سی ایل اور ایس ڈی ایل لائنوں سے منقطع ہوجاتے ہیں۔

سٹی 3: ماسٹر سے ملنے والے پتے کے ساتھ غلام آلہ ، آقا کے اعتراف کے ساتھ جواب دیتا ہے اس کے بعد ڈیٹا بس پر ماسٹر اور غلام دونوں آلات کے مابین مواصلت قائم ہوجاتی ہے۔

مرحلہ 4: ماسٹر اور غلام دونوں اس بات پر منحصر ہوتا ہے کہ آیا مواصلات پڑھی جاتی ہیں یا لکھی جاتی ہیں۔

مرحلہ 5: پھر ، ماسٹر 8 بٹ ڈیٹا وصول کنندہ کو منتقل کرسکتا ہے جو 1 بٹ کی منظوری کے ساتھ جواب دیتا ہے۔

I2C سبق

گھڑی کی دالوں کے سلسلے میں بذریعہ مرحلہ وار معلومات منتقل اور حاصل کرنا I2C پروٹوکول کہلاتا ہے۔ یہ ایک بین نظام اور قلیل فاصلہ پروٹوکول ہے ، جس کا مطلب ہے ، سرکٹ بورڈ کے اندر ماسٹر اور غلام غلاموں کو بات چیت کرنے کے لئے استعمال کیا جاتا ہے۔

I2C پروٹوکول مبادیات

عام طور پر ، I2C بس سسٹم میں دو تاروں پر مشتمل ہوتا ہے جو آسانی سے ان پٹ اور آؤٹ پٹ پردیی خصوصیات جیسے ADC ، EEROM اور RTC کو بڑھانے کے لئے استعمال ہوتے ہیں ، اور دوسرے بنیادی اجزاء ایسا نظام بنانا جس کی پیچیدگی بہت کم ہو۔

مثال: چونکہ 8051 مائکروکانٹرولر کے پاس کوئی انبیلٹ اے ڈی سی نہیں ہے - لہذا ، اگر ہم کسی بھی اینالاگ سینسر کو 8051 مائکروکنٹرولر سے انٹرفیس کرنا چاہتے ہیں تو - ہمیں ADC0804-1 چینل ADC ، ADC0808-8 چینل ADC وغیرہ جیسے ADC آلات استعمال کرنا ہوں گے ، ہم ینالاگ سینسر کو مائکروکینٹرولر سے انٹرفیس کرسکتے ہیں۔

کسی بھی مائکروکنٹرولر یا پروسیسر کی I / O خصوصیات کو بڑھانے کے ل the پروٹوکول کا استعمال کیے بغیر ، ہم 8255 آئسیٹ 8 پن آلہ پر جاسکتے ہیں۔ 8051 مائکروکانٹرولر ایک 40 پن مائکروکانٹرولر ہے 8255 آایسی کا استعمال کرکے ، ہم ہر بندرگاہ میں 8 پنوں کے ساتھ 3-I / O بندرگاہوں کو بڑھا سکتے ہیں۔ پردیی سرکٹری کو بڑھانے کے ل R تمام آلات جیسے آر ٹی سی ، اے ڈی سی ، ایپرووم ، ٹائمر وغیرہ کا استعمال کرکے - پیچیدگی ، لاگت ، بجلی کی کھپت اور مصنوعات کے سائز میں بھی اضافہ کیا گیا ہے۔

اس مسئلے پر قابو پانے کے لئے ، ہارڈ ویئر کی پیچیدگی اور بجلی کی کھپت کو کم کرنے کے ل prot پروٹوکول تصور تصویر میں آتا ہے۔ ہم اس I2C پروٹوکول کا استعمال کرکے 128 ڈیوائسز تک I / 0 پییرفیرلز ، ADCs ، T / C اور میموری ڈیوائس جیسی مزید خصوصیات کو بڑھا سکتے ہیں۔
اصطلاحات I2C پروٹوکول میں استعمال کی جاتی ہیں

ٹرانسمیٹر: آلہ جو بس میں ڈیٹا بھیجتا ہے اسے ٹرانسمیٹر کہا جاتا ہے۔

وصول کنندہ: آلہ جو بس سے ڈیٹا وصول کرتا ہے اسے وصول کنندہ کہا جاتا ہے۔

ماسٹر: آلہ جو گھڑی کے اشارے پیدا کرنے اور منتقلی ختم کرنے کے لئے منتقلی کا آغاز کرتا ہے اسے ماسٹر کہا جاتا ہے۔

غلام: آقا جس کے ذریعہ ایک آقا نے خطاب کیا اسے غلام کہتے ہیں۔

ملٹی ماسٹر: ایک سے زیادہ ماسٹر بیک وقت پیغام کو خراب کرنے کے بغیر بس پر قابو پانے کی کوشش کر سکتے ہیں جسے ملٹی ماسٹر کہا جاتا ہے۔

ثالثی: اس بات کا یقین کرنے کا طریقہ کار ، اگر ایک ساتھ ایک سے زیادہ ماسٹر بیک وقت بس پر قابو پانے کی کوشش کرتے ہیں تو - صرف ایک کو ایسا کرنے کی اجازت ہے تاکہ فاتحانہ پیغام خراب نہ ہو۔

ہم وقت سازی: دو یا دو سے زیادہ ڈیوائسز کے گھڑی سنگلز کو ہم آہنگ کرنے کے طریقہ کار کو ہم وقت سازی کہلاتا ہے۔

I2C بنیادی احکامات ترتیب

  1. بٹ کی حالت شروع کریں
  2. بٹ کی حالت روکیں
  3. اعتراف کی حالت
  4. ماسٹر ٹو غلام لکھنا آپریشن
  5. ماسٹر کو آپریشن غلامی پڑھیں

شروع اور روکنے بٹ کی حالت

جب ماسٹر (مائکروکینٹرلر) غلام ڈیوائس (مثال کے طور پر اے ڈی سی) سے بات کرنا چاہتا ہے تو ، یہ I2C بس پر اسٹارٹ کنڈیشن جاری کرکے مواصلات کا آغاز کرتا ہے ، اور پھر اسٹاپ کی شرط جاری کرتا ہے۔ I2C اسٹارٹ اور اسٹاپ منطق کی سطح کو اعداد و شمار میں دکھایا گیا ہے۔

I2C اسٹارٹ حالت ایس ڈی اے لائن کی اعلی سے کم منتقلی کی وضاحت کرتی ہے جبکہ ایس سی ایل لائن زیادہ ہے۔ ایک I2C روکنے کی حالت اس وقت ہوتی ہے جب ایس ڈی اے لائن نیچے سے اوپر تک جاتی ہے جبکہ ایس سی ایل لائن زیادہ ہوتی ہے۔

I2C ماسٹر ہمیشہ ایس اور پی کے حالات پیدا کرتا ہے۔ ایک بار جب I2C ماسٹر اسٹارٹ شرط شروع کردے تو ، I2c بس مصروف حالت میں سمجھی جاتی ہے۔

شروع اور روکنے بٹ کی حالت

شروع اور روکنے بٹ کی حالت

پروگرامنگ:

شرط شروع کریں:

sbit SDA = P1 ^ 7 // مائکروکونٹرولر کے ایس ڈی اے اور ایس سی ایل پنوں کو شروع کریں //
sbit SCL = P1 ^ 6
باطل تاخیر (بغیر دستخط شدہ)
باطل اہم ()
{
ایس ڈی اے = 1 // ڈیٹا پر عملدرآمد //
ایس سی ایل = 1 // گھڑی اونچی ہے //
تاخیر ()
ایس ڈی اے = 0 // ڈیٹا بھیج دیا //
تاخیر ()
ایس سی ایل = 0 // گھڑی کا سگنل کم ہے //
}
باطل تاخیر (INT p)
{
سائنڈینٹا ، بی
(a = 0a) کے لئے<255a++) //delay function//
کے لئے (b = 0b)}

روکنے کی حالت:

باطل اہم ()
{
ایس ڈی اے = 0 // ڈیٹا پر کارروائی کرنا بند کریں //
ایس سی ایل = 1 // گھڑی اونچی ہے //
تاخیر ()
ایس ڈی اے = 1 // رک گیا //
تاخیر ()
ایس سی ایل = 0 // گھڑی کا سگنل کم ہے //
}
باطل تاخیر (INT p)
{
سائنڈینٹا ، بی
(a = 0a) کے لئے<255a++) //delay function//
کے لئے (b = 0b)}

اعتراف (ACK) اور کوئی اعتراف (NCK) کی حالت نہیں

I2C بس پر منتقل ہونے والی ہر بائٹ کے بعد وصول کنندہ کی طرف سے ایک اعتراف کی شرط لگائی جاتی ہے ، جس کا مطلب ہے ، جب 8 بٹ کی ترسیل کو مکمل کرنے کے لئے ماسٹر ایس سی ایل کو کم کھینچتا ہے ، تو ایس ڈی اے وصول کنندہ کے ذریعہ ماسٹر کی طرف گھسیٹا جائے گا۔ اگر ، وصول کنندہ کی ترسیل کے بعد ، کھینچ نہیں آتا ہے تو ، ایس ڈی اے لائن LOW کو NCK کی حالت سمجھا جاتا ہے۔

اعتراف (ACK)

اعتراف (ACK)

پروگرامنگ

اعتراف
باطل اہم ()
{
ایس ڈی اے = 0 // ایس ڈی اے لائن کم // پر جاتا ہے
ایس سی ایل = 1 // گھڑی کم سے کم ہے //
تاخیر (100)
ایس سی ایل = 0
}
کوئی اعتراف نہیں:
باطل اہم ()
{
ایس ڈی اے = 1 // ایس ڈی اے لائن اعلی // تک جاتی ہے
ایس سی ایل = 1 // گھڑی کم سے کم ہے //
تاخیر (100)
ایس سی ایل = 0
}

ماسٹر ٹو غلام لکھتے آپریشن

I2C پروٹوکول ڈیٹا کو پیکٹ یا بائٹس کی شکل میں منتقل کرتا ہے۔ ہر بائٹ کے بعد ایک تھوڑا سا اعتراف ہوتا ہے۔

ڈیٹا کی منتقلی کی شکل

ڈیٹا کی منتقلی کی شکل

ڈیٹا کی منتقلی کی شکل

شروع کریں: بنیادی طور پر ، اعداد و شمار کی منتقلی ترتیب ماسٹر نے شروع کی حالت پیدا کرتے ہوئے کی تھی۔

7 بٹ ایڈریس: اس کے بعد ماسٹر غلام پتے کو کسی بھی 16 بٹ ایڈریس کی بجائے دو 8 بٹ فارمیٹس میں بھیجتا ہے۔

R / W: اگر پڑھنے اور لکھنے میں تھوڑا سا زیادہ ہے تو ، پھر لکھنے کا عمل انجام دیا جاتا ہے۔

ALAS: اگر غلام آلہ میں تحریری کارروائی کی جاتی ہے ، تو وصول کنندہ مائکرو قابو پانے والے کو 1 بٹ ACK بھیجتا ہے۔

رک: غلام ڈیوائس میں رائٹ آپریشن کی تکمیل کے بعد ، مائکروکنٹرولر اسٹاپ کی حالت کو غلام ڈیوائس پر بھیجتا ہے۔

پروگرامنگ

آپریشن لکھیں

باطل تحریر (دستخط شدہ چار ڈی)
{
غیر دستخط شدہ چار ک ، j = 0x80
(k = 0k) کے لئے<8k++)
{
ایس ڈی اے = (ڈی اینڈ جے)
J = j >> 1
ایس سی ایل = 1
تاخیر (4)
ایس سی ایل = 0
}
ایس ڈی اے = 1
ایس سی ایل = 1
تاخیر (2)
c = ایس ڈی اے
تاخیر (2)
ایس سی ایل = 0
}

آپریشن پڑھنے کے لئے ماسٹر

اعداد و شمار کو بٹ یا بائٹس کی شکل میں غلام ڈیوائس سے دوبارہ پڑھا جاتا ہے - پہلے سب سے اہم بٹ پڑھیں اور کم سے کم اہم بٹ کو آخری بار پڑھیں۔

ڈیٹا ریڈ فارمیٹ

ڈیٹا پڑھنے کی شکل

ڈیٹا پڑھنے کی شکل

شروع کریں: بنیادی طور پر ، ڈیٹا کی منتقلی کی ترتیب ماسٹر کے ذریعہ شروع کی حالت پیدا کرتی ہے۔

7 بٹ ایڈریس: اس کے بعد ماسٹر غلام پتے کو کسی بھی 16 بٹ ایڈریس کی بجائے دو 8 بٹ فارمیٹس میں بھیجتا ہے۔

R / W: اگر پڑھنے اور لکھنے میں تھوڑا سا کم ہے ، تو پڑھنے کا عمل انجام دیا جاتا ہے۔

ALAS: اگر غلام آلہ میں تحریری کارروائی کی جاتی ہے ، تو وصول کنندہ مائکرو قابو پانے والے کو 1 بٹ ACK بھیجتا ہے۔

رک: غلام ڈیوائس میں رائٹ آپریشن کی تکمیل کے بعد ، مائکروکنٹرولر اسٹاپ کی حالت کو غلام ڈیوائس پر بھیجتا ہے۔

پروگرامنگ

باطل پڑھیں ()
{
غیر دستخط شدہ چار j ، z = 0x00 ، q = 0x80
ایس ڈی اے = 1
(j = 0j) کے لئے<8j++)
{
ایس سی ایل = 1
تاخیر (100)
جھنڈا = ایس ڈی اے
اگر (پرچم == 1)
س)
q = q >> 1
تاخیر (100)
ایس سی ایل = 0

انٹرفیسنگ ADC کی عملی مثال 8051 مائکروکانٹرولر

اے ڈی سی ایک ایسا آلہ ہے جو ینالاگ ڈیٹا کو ڈیجیٹل اور ڈیجیٹل کی شکل میں ینالاگ میں تبدیل کرنے کے لئے استعمال ہوتا ہے۔ 8051 مائکروکانٹرولر میں انبلٹ اے ڈی سی نہیں ہے لہذا ہمیں آئی 2 سی پروٹوکول کے ذریعہ بیرونی طور پر شامل کرنا ہے۔ پی سی ایف 8591 آئی 2 سی پر مبنی ہے ڈیجیٹل کے مطابق اور ڈیجیٹل ٹو ینالاگ کنورٹر۔ یہ آلہ 2.5 سے 6v وولٹیج کے ساتھ زیادہ سے زیادہ 4 اینالاگ ان پٹ چینلز کی حمایت کرسکتا ہے۔

ینالاگ نتائج

ینالاگ آؤٹ پٹ وولٹیج کی شکل میں آتے ہیں۔ مثال کے طور پر ، 5 وی اینالاگ سینسر 0.01v سے 5v کی آؤٹ پٹ منطق دیتا ہے۔
5v کی زیادہ سے زیادہ ڈیجیٹل ویلیو = 256 ہے۔
زیادہ سے زیادہ وولٹیج کی قیمت کے مطابق 2.5v کی قیمت = 123 ہے۔

ینالاگ آؤٹ پٹ کا فارمولا یہ ہے:

ڈیجیٹل آؤٹ پٹس کا فارمولا:

انٹرفیسنگ اے ڈی سی سے 8051 مائکروکانٹرولر

انٹرفیسنگ اے ڈی سی سے 8051 مائکروکانٹرولر

مذکورہ بالا اعداد و شمار ADC ڈیوائس سے 8051 مائکروکانٹرولر میں I2C پروٹوکول کا استعمال کرتے ہوئے ڈیٹا کی منتقلی کو ظاہر کرتا ہے۔ ایس سی ایل اور ایس ڈی اے کے اے ڈی سی پنوں کے مابین مواصلات کو قائم کرنے کے لئے مائکروقابو کنٹرولر کے پن 1.7 اور 1.6 کے ساتھ جڑے ہوئے ہیں۔ جب سینسر ADC کو ینالاگ قدر دیتا ہے ، تو وہ ڈیجیٹل میں تبدیل ہوتا ہے اور I2C پروٹوکول کے ذریعہ ڈیٹا کو مائکروکونٹرولر میں منتقل کرتا ہے۔

یہ مناسب پروگراموں والے I2C بس پروٹوکول سبق کے بارے میں ہے۔ ہم امید کرتے ہیں کہ دیا ہوا مواد آپ کو I2C مواصلات کا استعمال کرتے ہوئے مائکروکونٹرولرز کے ساتھ متعدد آلات کو باہمی تعامل کا عملی تصور فراہم کرتا ہے۔ اگر آپ کو اس پروٹوکول کے باہمی مداخلت کے طریقہ کار میں کوئی شک ہے تو ، آپ نیچے تبصرہ کرکے ہم تک پہنچ سکتے ہیں۔