I2C (Inter-Integrated Circuit) হল একটি সিরিয়াল কমিউনিকেশন প্রোটোকল যা একাধিক ডিভাইসের মধ্যে তথ্য আদান-প্রদান করতে ব্যবহৃত হয়। এটি একটি সিঙ্ক্রোনাস প্রোটোকল, যা সাধারণত একটি মাস্টার এবং একাধিক স্লেভ ডিভাইসের মধ্যে যোগাযোগের জন্য ডিজাইন করা হয়েছে।
বৈশিষ্ট্য:
মাস্টার-স্লেভ আর্কিটেকচার:
I2C প্রোটোকলে একটি মাস্টার ডিভাইস (যেমন মাইক্রোকন্ট্রোলার) একটি বা একাধিক স্লেভ ডিভাইস (যেমন সেন্সর, EEPROM) এর সাথে যোগাযোগ করে।
ডেটা লাইন সংখ্যা:
I2C যোগাযোগের জন্য সাধারণত দুটি প্রধান লাইন প্রয়োজন:
SDA (Serial Data Line): তথ্যের জন্য ব্যবহৃত হয়।
SCL (Serial Clock Line): ক্লক সিগন্যালের জন্য ব্যবহৃত হয়, যা তথ্য স্থানান্তর সমন্বয় করে।
7-বিট বা 10-বিট ঠিকানা:
I2C প্রোটোকলে ডিভাইসগুলোকে 7-বিট বা 10-বিট ঠিকানা দ্বারা চিহ্নিত করা হয়, যার ফলে একে অপরকে আলাদা করা যায়। 7-বিট ঠিকানা ব্যবহার করে 127টি স্লেভ ডিভাইস সংযুক্ত করা যেতে পারে।
সিঙ্ক্রোনাস:
I2C সিঙ্ক্রোনাস যোগাযোগ পদ্ধতি ব্যবহার করে, যেখানে ক্লক সিগন্যাল মাস্টার দ্বারা প্রদান করা হয়।
ডেটা স্থানান্তর গতি:
I2C সাধারণত 100 kHz (স্ট্যান্ডার্ড মোড), 400 kHz (ফাস্ট মোড), এবং 1 MHz (ফাস্ট প্লাস মোড) এর গতিতে কাজ করে।
ব্যবহার:
সেন্সর: বিভিন্ন সেন্সর যেমন তাপমাত্রা, আর্দ্রতা, এবং গতি সেন্সরের সাথে যোগাযোগের জন্য ব্যবহৃত হয়।
মেমরি ডিভাইস: EEPROM, RTC (রিয়েল-টাইম ক্লক) এবং অন্যান্য মেমরি ডিভাইসের সাথে সংযোগ স্থাপন।
আইওট ডিভাইস: স্মার্ট হোম এবং IoT অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয়, যেখানে একাধিক ডিভাইসের সাথে যোগাযোগ প্রয়োজন।
উদাহরণ:
Arduino I2C Library: Arduino প্ল্যাটফর্মে I2C ডিভাইসের সাথে কাজ করার জন্য লাইব্রেরি প্রদান করে।
MCP9808: একটি ডিজিটাল তাপমাত্রা সেন্সর যা I2C ইন্টারফেস ব্যবহার করে।
সারসংক্ষেপ:
I2C (Inter-Integrated Circuit) একটি জনপ্রিয় সিরিয়াল যোগাযোগ প্রোটোকল যা বিভিন্ন ডিভাইসের মধ্যে সহজ এবং কার্যকর তথ্য আদান-প্রদান নিশ্চিত করে। এটি কমপ্লেক্স সিস্টেমের মধ্যে একাধিক ডিভাইস সংযোগের জন্য আদর্শ এবং সেন্সর, মেমরি ডিভাইস, এবং IoT ডিভাইসগুলিতে ব্যাপকভাবে ব্যবহৃত হয়। I2C এর সহজ ডিজাইন, কম পিন সংখ্যা এবং মাল্টি-ডিভাইস সাপোর্ট এটিকে এমবেডেড সিস্টেমের জন্য একটি জনপ্রিয় পছন্দ করে।