I2c মাস্টার যে গাড়ি চালাতে পারে সেখানে সর্বাধিক সংখ্যক আই 2 সি ক্রীতদাস রয়েছে? শারীরিক সীমাবদ্ধতার কারণগুলি কী কী?
I2c মাস্টার যে গাড়ি চালাতে পারে সেখানে সর্বাধিক সংখ্যক আই 2 সি ক্রীতদাস রয়েছে? শারীরিক সীমাবদ্ধতার কারণগুলি কী কী?
উত্তর:
সফ্টওয়্যার সীমিতকরণের কারণটি দাসদের জন্য ব্যবহৃত ঠিকানার আকার: 7-বিট বা 10-বিট, যা যথাক্রমে 127 এবং 1023 ডিভাইস সমর্থন করে support শারীরিকভাবে, দুটি বিধিনিষেধ আছে। প্রথমত, বাসের দৈহিক আকার কারণ বাসটি কেবল সংক্ষিপ্ত রানের জন্য ব্যবহৃত হয় (আন্তঃ আইসি অংশ)। বাসটি খুব বড় হলে ক্যাপাসিটিভ লোডিং এবং প্রসারণের বিলম্বের প্রভাব রয়েছে যা মোকাবেলা করা দরকার। দ্বিতীয়ত, কিছু ডিভাইস I2C ঠিকানার সম্পূর্ণ পরিসর সমর্থন করতে পারে না। উদাহরণস্বরূপ, MPU6050 জাইরোস্কোপ কেবল দুটি ঠিকানা সমর্থন করে এবং কিছু ডিভাইস বিশেষ উদ্দেশ্যে নির্দিষ্ট ঠিকানা সংরক্ষণ করে।
সম্বোধন ডিভাইসের সংখ্যা সীমিত করে - কেউ কেউ 10-বিট ঠিকানা ব্যবহার করতে পারে (মোটামুটি খুব কম ব্যবহৃত হয়), যা ঠিকানার সংখ্যা 1024-এ সীমাবদ্ধ করে। সেখানে বেশ কয়েকটি 'সংরক্ষিত' ঠিকানা রয়েছে।
আই 2 সি ("দুটি তারের বাসের বিপরীতে" বা অন্যেরা যাঁরা অনুরূপ বাস কল করতে চান) এর NXP ( N Phile ফিলিপস) স্ট্যান্ডার্ড, ইউএম 10204 আই 2 সি -বাস স্পেসিফিকেশন এবং ব্যবহারকারী ম্যানুয়াল অনুসরণ করা উচিত । এটি আপনার প্রাথমিক রেফারেন্স ডকুমেন্ট হতে হবে, অন্য কোথাও বিদ্যমান বিভিন্ন ব্যাখ্যা এবং উপগ্রহ নয়।
সর্বাধিক সংখ্যক ডিভাইস দুর্বল আউটপুট (যা পরিবর্তে সর্বনিম্ন পুলআপ প্রতিরোধক নির্ধারণ করে), তারের এবং ইনপুট ক্যাপাসিটেন্স এবং অপারেটিং মোড / ফ্রিকোয়েন্সি দ্বারা ড্রাইভ ক্ষমতা দ্বারা প্রভাবিত হবে। Cap.২ বিভাগটি সর্বাধিক অনুমোদনযোগ্য বাস ক্যাপাসিট্যান্সের উপরে অপারেটিং দেখুন যদি সর্বাধিক ক্যাপাসিট্যান্স অতিক্রম করতে হবে:
একটি আই 2 সি বাস মূলত বাসের ক্যাপাসিটেন্স (এবং এইভাবে গতি), এবং অ্যাক্সেসযোগ্য ডিভাইসের ঠিকানাগুলির দ্বারা সীমাবদ্ধ। এবং শারীরিক বোর্ড স্পেস।
তবে কোনও বাস্তব উপরের সীমা নেই, যখন আপনি বাস বাফার, এক্সটেন্ডার, রিপিটার, হাবস, মাল্টিপ্লেক্সার, সুইচ (বা একাধিক বাসের মধ্যে স্যুইচ করতে পারে এমন কোনও ডিভাইসের জন্য অন্য কোনও নাম) ফ্যাক্ট করেন। এগুলি কিছু আই 2 সি ওভারহেড যুক্ত করে, একই আই 2 সি বাসের মাধ্যমে অ্যাক্সেসযোগ্য হতে পারে। উদাহরণস্বরূপ, PCA9548A হ'ল একটি 8 বিটের বাস স্যুইচ।
এই একক চিপ তাত্ত্বিকভাবে আই 2 সি ক্রীতদাসের সংখ্যা (127 * 8) অন্যথায় উপলভ্য করতে পারেন। এবং PCA9548A একক বাসে 8 টি পর্যন্ত ঠিকানার জন্য কনফিগার করা যায়, তাই 8 * 8 * 127 ডিভাইস। (গণিত বন্ধ হতে পারে)। এবং এটি কেবল এই ডিভাইসটির সাথে এবং আরও কিছু নয়।
সত্যি বলতে গেলে, আপনি ক্যাপাসিট্যান্সের জন্য সামঞ্জস্য করলে কোনও তাত্ত্বিক সীমা নেই।
আই 2 সি 2 ঠিকানা দৈর্ঘ্য, 7 এবং 10 বিট নির্দিষ্ট করে , যা তাত্ত্বিক সর্বোচ্চ 128 এবং 1024 স্বতন্ত্র ঠিকানা দেয় যথাক্রমে।
তবে কয়েকটি সংরক্ষিত ঠিকানা রয়েছে, যেমন 0x00 (সাধারণ কল)। এটি ঠিকানার জায়গার আরও সীমাবদ্ধ করে।
আপনি যদি এমন কোনও সিস্টেম তৈরি করছেন যেখানে আই 2 সি ডিভাইসগুলির উপর আপনার সরাসরি নিয়ন্ত্রণ রয়েছে, আপনি নিজের ব্যবহারের জন্য সংরক্ষিত ঠিকানাগুলি ব্যবহার করতে পারেন তবে সিস্টেমটি আর আই 2 সি মান মেনে চলবে না।
সম্বোধনের পাশাপাশি শারীরিক বাসের সীমাবদ্ধতা রয়েছে। বাসের প্রতিটি ডিভাইসকে একটি নির্দিষ্ট সময়ের ব্যবধানে (বাসের গতির উপর নির্ভর করে) বাসটিকে কম টানতে সক্ষম হতে হবে। বাসে প্রচুর ক্যাপাসিটেন্স থাকলে ডিভাইসগুলি এসডিএকে খুব কম দ্রুত টানতে সক্ষম না হতে পারে এবং টানা আপগুলি এসডিএকে দ্রুত পর্যাপ্ত পরিমাণে ব্যাক আপ করতে না পারে।
এখন, ড্রাইভার হার্ডওয়্যার কিছুটা দিয়ে হার্ডওয়্যার সমস্যাগুলি কাটিয়ে উঠতে পারে। আমি এই মুহূর্তে এমন একটি প্রকল্পে কাজ করছি যা বেশ কয়েকটি 10 মিটারের বেশি ডিভাইসগুলির সাথে যোগাযোগ করতে I2C ব্যবহার করে। প্রধান বাসটিতে 24v ব্যবহার করা হয় এবং প্রতিটি বোর্ডের একটি ড্রাইভার থাকে যা এটিকে 3.3v এ নামিয়ে দেয়।
বাদামের শেলের মধ্যে, আই 2 সি এর শারীরিক সীমাবদ্ধতা কাটিয়ে উঠতে পারে। অ্যাড্রেসিং করতে পরাস্ত, কিন্তু শুধুমাত্র যদি আপনি ডিভাইস এর মাধ্যমে সরাসরি নিয়ন্ত্রণ রয়েছে।
একজন মাস্টার যে দাসদের চালনা করতে পারে তার প্রাথমিক সীমাবদ্ধতাটি কেবল বৈদ্যুতিন কারণ যেমন বাস ক্যাপাসিটেন্স, ফুটো, ড্রাইভিং শক্তি ইত্যাদি থেকে আসতে পারে যদি কেউ শূন্য পরজীবী ক্যাপাসিটেন্স এবং শূন্য ফাঁস দিয়ে দাস তৈরি করতে পারে, এবং যদি কেউ তাদের সংযোগ করতে পারে শূন্য-ক্যাপাসিট্যান্স বোর্ডের ট্রেস সহ, তবে বাসের ক্যাপাসিটেন্স কোনও কারণ হবে না, তবে বাস্তবে উভয়ই অনুমান ধারণ করবে না।
অন্যদিকে একে অপরের সম্পর্কে "জানে" এমন ডিভাইসগুলির সম্বোধন করা আসলেই কোনও সমস্যা নয়। পেরিফেরিয়াল ডিজাইন করা তুচ্ছ হবে যা একটি পড়ার এবং একটি লেখার ঠিকানা ব্যবহার করে কোটি কোটি চিপকে সংযুক্ত হতে দেয়। কেবলমাত্র উল্লেখ করুন যে প্রতিটি ডিভাইসের অবশ্যই একটি অনন্য ফোর-বাইট আইডি থাকতে হবে এবং লেখার ঠিকানাটি সর্বদা শোনার প্রয়োজন হয় তবে অবশ্যই প্রতিটি লেনদেনের বাইরে যেতে হবে যার প্রথম চারটি সংক্রমণিত ডেটা বাইটগুলি তাদের আইডির সাথে মেলে না। আরও উল্লেখ করুন যে শেষ লিখনের লেনদেন শুনেছি যদি তারা তাদের ঠিকানার সাথে মিলে যায় তবে ডিভাইসগুলি কেবল পঠনের ঠিকানায় সাড়া দিতে পারে।
যদি কোনও মাস্টার সমস্ত সংযুক্ত দাসের আইডি নির্ধারণ করার ক্ষমতা যুক্ত করতে চান তবে এই জাতীয় উদ্দেশ্যে কেউ কিছু বিশেষ আইডি রেঞ্জ সংরক্ষণ করতে পারে। উদাহরণস্বরূপ, কেউ বলতে পারেন যে প্রথম আইডি বাইটটি যদি এফএফ হয়, তবে পরবর্তী চারটি বাইটগুলি একটি মাস্ক এবং চারটি পরে একটি আইডি হবে; কোনও ডিভাইস সংযুক্ত থাকতে হবে (এবং মাস্কের দ্বারা নির্দিষ্ট করা আইডির অংশটি কমান্ডের সাথে মিলে গেলে এটির শেষ আইডি বাইটটি ছোঁড়া উচিত)। এটি কোনও মাস্টারকে 64 টি লেনদেন ব্যবহার করে কমপক্ষে একটি ডিভাইস এবং 62 বা ততোধিক সংখ্যক কম লেনদেন ব্যবহার করে অতিরিক্ত ডিভাইস সনাক্ত করার অনুমতি দেবে। সম্ভবত ডিভাইস শনাক্তকরণের দ্রুততম উপায় নয়, তবে বিলিয়ন বিলিয়ন ডিভাইসের আইডি অনুসন্ধানের জায়গা দেওয়া খারাপ নয়।
সংক্ষিপ্ত উত্তর: এটি নির্ভর করে
যদি আপনার 104 ডিভাইস পর্যন্ত 7 বিট অ্যাড্রেস সহ (সাধারণ) ডিভাইস থাকে (128 ঠিকানা - সংরক্ষিত ঠিকানা (0x00-0x07 এবং 0xF0-0xFF সংরক্ষিত)) (নির্দিষ্ট সীমাবদ্ধতা প্রযোজ্য) যদি আপনার (কম সাধারণ) ডিভাইসগুলি থাকে যা 10 বিট সমর্থন করে 1024 ডিভাইস পর্যন্ত সম্বোধন করা (আপনি 7 বিট এবং 10 বিবিট ডিভাইসগুলি মিশ্রিত করতে পারেন এবং 1136 ডিভাইস পর্যন্ত যেতে পারেন)
এখন সীমাবদ্ধতা: সর্বাধিক সাধারণ ডিভাইসগুলি কেবল দুটি থেকে 8 টি আলাদা ঠিকানায় কনফিগার করা যায়। আপনি বিভিন্ন বেস ঠিকানাগুলির সাথে কাস্টম অর্ডার করে ডিভাইসগুলি দিয়ে এটি কাটিয়ে উঠতে পারেন (তবে এর অর্থ সাধারণত আপনি ডিভাইসের ন্যূনতম পরিমাণের অর্ডার দেন) এখানে হার্ডওয়্যার সীমাবদ্ধতাগুলিও রয়েছে (মূলত বাস ক্যাপাসিটেন্স) তবে এটি বিশেষ আই 2 সি ড্রাইভার দ্বারা সমাধান করা যেতে পারে।
আপনি যদি বড় ডিস্টেন্সের মাধ্যমে অনেকগুলি ডিভাইস সংযোগ করতে চান তবে আমি যেভাবেই কোনও ফিল্ডবাস ব্যবহার করার পরামর্শ দেব! আই 2 সি একটি ডিভাইসের অভ্যন্তরে যোগাযোগের উদ্দেশ্যে করা হয়েছে (টিভি সেটের মতো)। আমি নিজেই আইপিসিটি রাস্পবেরিপি দিয়ে 50 সেমি পর্যন্ত বহিরাগত কেবলগুলি সহ ব্যবহার করছি (এমনকি টি-বিভাগগুলির সাথেও আপনার কোনও বাস সিস্টেমে থাকা উচিত নয়)। এটি আশ্চর্যজনকভাবে ভাল কাজ করে।
বাসের সাথে সংযুক্ত ডিভাইসের সংখ্যা কেবলমাত্র 400 পিএফ এর অনুমোদিত অনুমোদিত বাস ক্যাপাসিটেন্স দ্বারা সীমাবদ্ধ। যেহেতু আইসিসি ইন্টারফেস সহ বেশিরভাগ আইসি কম-শক্তি, উচ্চ-প্রতিবন্ধক সিএমওএস প্রযুক্তি ব্যবহার করে, সর্বাধিক ক্যাপাসিট্যান্স পৌঁছানোর আগে অনেকগুলি আইসি আই আই সি বাসের সাথে সংযুক্ত হতে পারে
যুক্ত মাল্টিপ্লেক্সার চিপস (যেমন টিসিএ 9544 এ) বা বাফারগুলির সাথে (পিসিএ 9515 বি এর মতো) আপনি সমস্ত সীমা অতিক্রম করতে পারবেন - উভয় বাসের সক্ষমতা এবং সম্বোধন।
আপনি একটি মাল্টিপ্লেক্সারের পিছনে অভিন্ন ঠিকানা সম্বলিত 3 টি ডিভাইস রাখতে পারেন এবং এর মধ্যে কেবল একটি নির্বাচন করতে পারেন, এটির সাথে যোগাযোগ করুন এবং পরে অন্যটি নির্বাচন করতে পারেন। অবশ্যই সফ্টওয়্যার আরও জটিল হয়।
আপনার যদি দীর্ঘ তারের থাকে তবে আপনি মাঝখানে একটি বাফার রাখতে পারেন এবং ক্যাপাসিট্যান্স সীমাটি অতিক্রম করতে পারেন।