I2C بس - اسائنمنٹ، ڈیوائس، ڈیٹا ٹرانسفر، ایڈریسنگ

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

I2C بس - اسائنمنٹ، ڈیوائس، ڈیٹا ٹرانسفر، ایڈریسنگ

آج، صرف Philips ہی الیکٹرانک آلات کے لیے سو سے زیادہ I2C-مطابقت رکھنے والے آلات تیار کرتا ہے جس میں مختلف مقاصد ہیں: میموری، ویڈیو پروسیسر سسٹم، اینالاگ سے ڈیجیٹل اور ڈیجیٹل سے اینالاگ کنورٹرز، ڈسپلے ڈرائیورز، وغیرہ۔

I2C بس

I2C بس سیریل ڈیٹا ایکسچینج پروٹوکول کی ایک ترمیم ہے جو 100 سے 400 kbps کی شرحوں پر معمول کے "تیز" موڈ میں سیریل 8 بٹ ڈیٹا منتقل کرنے کے قابل ہے۔ ڈیٹا کے تبادلے کا عمل یہاں صرف دو تاروں پر لاگو کیا جاتا ہے (عام تار کو شمار نہیں کیا جاتا ہے): ڈیٹا کے لیے SDA لائن اور SCL لائن ہم آہنگی کے لیے۔

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

یہ پروٹوکول آپ کو ایڈریس ڈیکوڈرز اور دیگر بیرونی مذاکراتی منطق کو غیر فعال کرنے کی اجازت دیتا ہے۔ I2C بس پر بیک وقت چلنے والی چپس کی تعداد اس کی صلاحیت کے لحاظ سے محدود ہے - زیادہ سے زیادہ 400 pF۔

I2C پروٹوکول

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

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

ڈیوائس کنکشن کا خاکہ

I2C بس پر آپریشن کے کسی بھی لمحے، صرف ایک ڈیوائس ماسٹر کے طور پر کام کر سکتی ہے۔ یہ SCL لائن پر ایک سگنل پیدا کرتا ہے۔ایک ماسٹر یا تو ماسٹر وصول کنندہ یا ماسٹر ٹرانسمیٹر ہوسکتا ہے۔

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

آلات کے ایک جوڑے کی ہم آہنگی کو اس حقیقت سے یقینی بنایا جاتا ہے کہ تمام آلات بس سے جڑے ہوئے ہیں، جس سے ایک "AND" وائرنگ بنتی ہے۔ ابتدائی طور پر، SDA اور SCL سگنل زیادہ ہیں.

شروع کریں اور روکیں۔

ایکسچینج ماسٹر کے ساتھ شروع ہوتا ہے جو "START" حالت پیدا کرتا ہے: SDA لائن پر، سگنل اونچی سے نچلی حالت میں جاتا ہے، جب کہ SCL لائن میں مستحکم ہائی لیول ہوتا ہے۔ بس سے منسلک تمام آلات اس صورت حال کو ایکسچینج شروع کرنے کے حکم کے طور پر سمجھتے ہیں۔


شروع کریں اور بند کریں - مطابقت پذیر سگنل

بس پر ڈیٹا منتقل کرتے وقت ہر ماسٹر SCL لائن پر ایک انفرادی گھڑی کا سگنل تیار کرتا ہے۔

ایکسچینج ماسٹر کی طرف سے STOP ریاست کی تشکیل کے ساتھ ختم ہوتا ہے: SDA لائن پر سگنل کم سے اعلی میں تبدیل ہوتا ہے، جبکہ SCL لائن ایک مستحکم اعلی سطح ہے.

ڈرائیور ہمیشہ START اور STOP سگنلز کے ماخذ کے طور پر کام کرتا ہے۔ جیسے ہی «START» سگنل طے ہوتا ہے، اس کا مطلب ہے کہ لائن مصروف ہے۔ STOP سگنل کا پتہ چلنے پر لائن مفت ہے۔

مواد کی منتقلی

START حالت کا اعلان کرنے کے فوراً بعد، ماسٹر SCL لائن کو کم کر دیتا ہے اور پہلے پیغام بائٹ کا سب سے اہم حصہ SDA لائن کو بھیجتا ہے۔ پیغام میں بائٹس کی تعداد محدود نہیں ہے۔SDA لائن پر تبدیلیاں صرف اس وقت فعال ہوتی ہیں جب SCL لائن پر سگنل کی سطح کم ہو۔ ڈیٹا درست ہے اور صرف اس وقت تبدیل نہیں کیا جانا چاہیے جب سنک پلس زیادہ ہو۔

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

تصدیق

لہذا، ٹرانسمیٹر سے 8 بٹس ڈیٹا وصول کرنے والے کو بھیجنا SCL لائن پر ایک اضافی پلس کے ساتھ ختم ہوتا ہے جب وصول کرنے والا آلہ SDA لائن پر کم ہو جاتا ہے، جس سے ظاہر ہوتا ہے کہ اس نے پورا بائٹ حاصل کر لیا ہے۔

اقرار مطابقت پذیری نبض

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

اگر منزل والا غلام اپنے پتے کو تسلیم نہیں کرتا ہے، مثال کے طور پر کیونکہ وہ فی الحال مصروف ہے، ڈیٹا لائن کو اونچا رکھنا چاہیے۔ اس کے بعد ماسٹر ڈسپیچ کو روکنے کے لیے STOP سگنل دے سکتا ہے۔

اگر استقبال ماسٹر وصول کنندہ کے ذریعہ کیا جاتا ہے، تو یہ ٹرانسمیشن کی تکمیل کے بعد غلام ٹرانسمیٹر کو مطلع کرنے کا پابند ہے - آخری بائٹ کی تصدیق کرکے نہیں۔ غلام ٹرانسمیٹر ڈیٹا لائن کو جاری کرتا ہے تاکہ ماسٹر STOP سگنل یا دوبارہ شروع کرنے والا START سگنل جاری کر سکے۔

آلات کی ہم وقت سازی کو اس حقیقت سے یقینی بنایا جاتا ہے کہ SCL لائن سے کنکشن "AND" اصول کے مطابق بنائے گئے ہیں۔

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

لمبے عرصے کے ختم ہونے تک سب سے کم پائیدار کم والے آلات بیکار رہیں گے۔ جب تمام آلات کم مطابقت پذیری کی مدت کو ختم کر لیں گے، SCL زیادہ ہو جائے گا۔

تمام آلات اونچی رفتار سے چلنے لگیں گے اور اپنی مدت پوری کرنے والا پہلا آلہ SCL لائن کو کم سیٹ کرنے والا پہلا آلہ ہوگا۔ نتیجے کے طور پر، ایس سی ایل کی نچلی حالت کی مدت کا تعین کسی ایک ڈیوائس کی مطابقت پذیری کی نبض کی سب سے طویل نچلی حالت سے کیا جائے گا، اور اعلیٰ حالت کی مدت کا تعین آلات میں سے کسی ایک کی مطابقت پذیری کی مختصر ترین مدت سے کیا جائے گا۔ آلات

ہم وقت سازی کے سگنل وصول کنندگان کے ذریعہ بٹ اور بائٹ کی سطح پر ڈیٹا ٹرانسمیشن کو کنٹرول کرنے کے ذریعہ استعمال کیے جا سکتے ہیں۔

اگر ڈیوائس زیادہ شرح پر بائٹس وصول کرنے کے قابل ہے، لیکن موصولہ بائٹ کو ذخیرہ کرنے یا اگلا بائٹ حاصل کرنے کے لیے تیار ہونے میں اسے ایک خاص وقت لگتا ہے، تو یہ بائٹ وصول کرنے اور اسے تسلیم کرنے کے بعد ایس سی ایل کو کم رکھنا جاری رکھ سکتا ہے، مجبوراً اسٹینڈ بائی حالت میں ٹرانسمیٹر۔

بلٹ ان ہارڈویئر سرکٹس کے بغیر ایک مائکروکنٹرولر، مثال کے طور پر بٹ لیول پر، اپنی کم حالت کا دورانیہ بڑھا کر گھڑی کی رفتار کو کم کر سکتا ہے۔ نتیجتاً، ماسٹر ڈیوائس کی بوڈ ریٹ کا تعین اس کی رفتار سے کیا جائے گا۔ سست آلہ.


I2C بس

ایڈریسنگ

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

نارمل موڈ سات بٹ ایڈریسنگ فرض کرتا ہے۔ ایڈریسنگ اس طرح کام کرتی ہے: «START» کمانڈ کے بعد، ماسٹر پہلا بائٹ بھیجتا ہے، جو اس بات کا تعین کرتا ہے کہ آقا کے ساتھ بات چیت کرنے کے لیے کس غلام ڈیوائس کی ضرورت ہے۔ ایک مشترکہ کال ایڈریس بھی ہے جو بس میں موجود تمام آلات کی وضاحت کرتا ہے، تمام آلات (نظریاتی طور پر) اس کا جواب تسلیم کرتے ہیں، لیکن عملی طور پر ایسا نایاب ہے۔

تو پہلے بائٹ کے پہلے سات بٹس غلام کا پتہ ہیں۔ سب سے کم اہم بٹ، آٹھواں، ڈیٹا بھیجنے کی سمت کی نشاندہی کرتا ہے۔ اگر ایک «0» ہے، تو معلومات آقا سے اس غلام تک لکھی جائے گی۔ اگر «1»، معلومات کو اس غلام سے آقا پڑھے گا۔

ماسٹر ایڈریس بائٹ بھیجنے کے بعد، ہر غلام اپنے ایڈریس کا اس سے موازنہ کرتا ہے۔ ایک ہی ایڈریس والا کوئی بھی غلام ہے اور اس کی تعریف ایڈریس بائٹ کے کم سے کم اہم بٹ کی قدر پر منحصر ہے، غلام ٹرانسمیٹر یا غلام وصول کنندہ کے طور پر کی جاتی ہے۔

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

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

مجموعہ «11110XX» 10 بٹ ایڈریسنگ کے لیے مخصوص ہے۔ اگر ہم "START" کمانڈ سے "STOP" کمانڈ میں ڈیٹا کے تبادلے کا تصور کریں تو یہ اس طرح نظر آئے گا:


خطاب کرتے ہوئے۔

سادہ اور مشترکہ ڈیٹا ایکسچینج فارمیٹس کی یہاں اجازت ہے۔ مشترکہ فارمیٹ کا مطلب ہے کہ «START» اور «STOP» کے درمیان آقا اور غلام ریسیورز اور ٹرانسمیٹر کے طور پر کام کر سکتے ہیں، یہ سیریل میموری مینجمنٹ میں مثال کے طور پر مفید ہے۔

ڈیٹا کے پہلے بائٹ کو میموری ایڈریس منتقل کرنے دیں۔ پھر، «START» کمانڈ کو دہرانے اور غلام کا پتہ پڑھنے سے، میموری ڈیٹا کام کرے گا۔ پہلے تک رسائی شدہ ایڈریس کو خود بخود بڑھانے یا کم کرنے کے فیصلے ڈیوائس ڈویلپر کی طرف سے پہلے چپ دستاویزات کا مطالعہ کرنے کے بعد کیے جاتے ہیں۔ کسی نہ کسی طریقے سے، START کمانڈ حاصل کرنے کے بعد، تمام آلات کو اپنی منطق کو بحال کرنا چاہیے اور اس حقیقت کے لیے تیار ہونا چاہیے کہ اب پتہ کا نام رکھا جائے گا۔

ہم آپ کو پڑھنے کا مشورہ دیتے ہیں:

بجلی کا کرنٹ کیوں خطرناک ہے؟