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