1980-এর দশকে ফিলিপস দ্বারা উদ্ভাবিত, I2C (বিকল্প বানান I2C) ইলেকট্রনিক্সে সর্বাধিক ব্যবহৃত সিরিয়াল যোগাযোগ প্রোটোকলগুলির মধ্যে একটি হয়ে উঠেছে। I2C ইলেকট্রনিক উপাদান বা ইন্টিগ্রেটেড সার্কিটের মধ্যে যোগাযোগের সুবিধা দেয়, উপাদানগুলি একই PCB-তে থাকুক বা একটি তারের সাথে সংযুক্ত থাকুক।
I2C প্রোটোকল কি?
I2C হল একটি সিরিয়াল কমিউনিকেশন প্রোটোকল যার জন্য শুধুমাত্র দুটি সিগন্যাল লাইন প্রয়োজন। এটি একটি মুদ্রিত সার্কিট বোর্ডে (PCB) চিপগুলির মধ্যে যোগাযোগের জন্য ডিজাইন করা হয়েছিল। I2C মূলত 100 Kbps যোগাযোগের জন্য ডিজাইন করা হয়েছিল। যাইহোক, 3 পর্যন্ত গতি অর্জনের জন্য দ্রুত ডেটা ট্রান্সমিশন মোডগুলি কয়েক বছর ধরে তৈরি করা হয়েছে।4 Mbit.
I2C-এর মূল বৈশিষ্ট্য হল শুধুমাত্র দুটি তারের সাথে একটি যোগাযোগ বাসে অনেকগুলি উপাদান থাকার ক্ষমতা, যা I2C কে সাধারণ অ্যাপ্লিকেশনের জন্য নিখুঁত করে তোলে। I2C প্রোটোকল একটি অফিসিয়াল স্ট্যান্ডার্ড হিসাবে প্রতিষ্ঠিত হয়েছে, যা I2C বাস্তবায়নের মধ্যে পিছিয়ে থাকা সামঞ্জস্যের জন্য অনুমতি দেয়৷
I2C সংকেত
I2C প্রোটোকল কমিউনিকেশন বাসে থাকা ডিভাইসগুলির সাথে যোগাযোগ করতে দুটি দ্বি-মুখী সংকেত লাইন ব্যবহার করে। ব্যবহৃত দুটি সংকেত হল:
- সিরিয়াল ডেটা লাইন (SDL)
- সিরিয়াল ডেটা ক্লক (SDC)
I2C কয়েকটি পেরিফেরালের সাথে যোগাযোগ করার জন্য শুধুমাত্র দুটি সংকেত ব্যবহার করতে পারে তার কারণ হল বাসের সাথে যোগাযোগ কিভাবে পরিচালনা করা হয়। প্রতিটি I2C যোগাযোগ একটি 7-বিট (বা 10-বিট) ঠিকানা দিয়ে শুরু হয় যা পেরিফেরালের ঠিকানাকে কল করে।
এটি I2C বাসে একাধিক ডিভাইসকে প্রাথমিক ডিভাইসের ভূমিকা পালন করতে দেয় কারণ সিস্টেমের প্রয়োজনীয়তা নির্দেশ করে।যোগাযোগের সংঘর্ষ প্রতিরোধ করার জন্য, I2C প্রোটোকলের মধ্যে রয়েছে সালিসি এবং সংঘর্ষ সনাক্তকরণ ক্ষমতা, যা বাসের সাথে মসৃণ যোগাযোগের অনুমতি দেয়।
I2C এর সুবিধা
একটি যোগাযোগ প্রোটোকল হিসাবে, I2C এর নিম্নলিখিত সুবিধা রয়েছে:
- নমনীয় ডেটা ট্রান্সমিশন হার।
- SPI এর চেয়ে দীর্ঘ দূরত্বের যোগাযোগ।
- বাসের প্রতিটি ডিভাইস স্বাধীনভাবে ঠিকানাযোগ্য।
- ডিভাইসগুলির একটি সাধারণ প্রাথমিক/সেকেন্ডারি সম্পর্ক রয়েছে৷
- এতে শুধুমাত্র দুটি সিগন্যাল লাইন প্রয়োজন।
- এটি সালিসি এবং যোগাযোগ সংঘর্ষ সনাক্তকরণ প্রদান করে একাধিক প্রাথমিক যোগাযোগ পরিচালনা করতে সক্ষম৷
I2C এর সীমাবদ্ধতা
এই সমস্ত সুবিধার সাথে, I2C-এরও কিছু সীমাবদ্ধতা রয়েছে যেগুলির চারপাশে ডিজাইন করা প্রয়োজন হতে পারে। সবচেয়ে গুরুত্বপূর্ণ I2C সীমাবদ্ধতার মধ্যে রয়েছে:
- যেহেতু ডিভাইস ঠিকানার জন্য শুধুমাত্র 7-বিট (বা 10-বিট) উপলব্ধ, একই বাসে থাকা ডিভাইসগুলি একই ঠিকানা ভাগ করতে পারে। কিছু ডিভাইস ঠিকানার শেষ কয়েকটি বিট কনফিগার করতে পারে, কিন্তু এটি একই বাসে ডিভাইসগুলির একটি সীমাবদ্ধতা আরোপ করে৷
- শুধুমাত্র কয়েকটি সীমিত যোগাযোগের গতি উপলব্ধ, এবং অনেক ডিভাইস উচ্চ গতিতে ট্রান্সমিশন সমর্থন করে না। বাসের প্রতিটি গতির জন্য আংশিক সমর্থন প্রয়োজন যাতে ধীর গতির ডিভাইসগুলিকে আংশিক সংক্রমণ ধরা না হয় যার ফলে অপারেশনাল সমস্যা হতে পারে।
- I2C বাসের ভাগ করা প্রকৃতির ফলে বাসের একটি একক ডিভাইস কাজ করা বন্ধ করলে পুরো বাসটি ঝুলে যেতে পারে। বাসে পাওয়ার সাইকেল চালানো সঠিক অপারেশন পুনরুদ্ধার করতে পারে।
- যেহেতু ডিভাইসগুলি তাদের নিজস্ব যোগাযোগের গতি সেট করে, তাই ধীর গতির অপারেশনাল ডিভাইসগুলি দ্রুত ডিভাইসগুলির অপারেশনকে বিলম্বিত করতে পারে৷
- I2C কমিউনিকেশন লাইনের ওপেন-ড্রেন টপোলজির কারণে অন্যান্য সিরিয়াল কমিউনিকেশন বাসের চেয়ে বেশি শক্তি আঁকে।
- I2C বাসের সীমাবদ্ধতাগুলি সাধারণত একটি বাসে ডিভাইসের সংখ্যা প্রায় এক ডজনের মধ্যে সীমাবদ্ধ করে৷
I2C অ্যাপ্লিকেশন
I2C এমন অ্যাপ্লিকেশনগুলির জন্য একটি দুর্দান্ত বিকল্প যার জন্য উচ্চ গতির পরিবর্তে কম খরচ এবং সহজ বাস্তবায়ন প্রয়োজন৷ উদাহরণস্বরূপ, I2C কমিউনিকেশন প্রোটোকলের সাধারণ ব্যবহারগুলির মধ্যে রয়েছে:
- নির্দিষ্ট মেমরি আইসি পড়া।
- DAC এবং ADC অ্যাক্সেস করা।
- ব্যবহারকারী-নির্দেশিত ক্রিয়াকলাপ প্রেরণ এবং নিয়ন্ত্রণ করা।
- রিডিং হার্ডওয়্যার সেন্সর।
- একাধিক মাইক্রো-কন্ট্রোলারের সাথে যোগাযোগ করা।